nominal-api 0.596.1__py3-none-any.whl → 0.598.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


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

nominal_api/__init__.py CHANGED
@@ -75,5 +75,5 @@ __all__ = [
75
75
 
76
76
  __conjure_generator_version__ = "4.9.0"
77
77
 
78
- __version__ = "0.596.1"
78
+ __version__ = "0.598.0"
79
79
 
nominal_api/_impl.py CHANGED
@@ -5441,19 +5441,21 @@ class event_CreateEvent(ConjureBeanType):
5441
5441
  'timestamp': ConjureFieldDefinition('timestamp', api_Timestamp),
5442
5442
  'duration': ConjureFieldDefinition('duration', scout_run_api_Duration),
5443
5443
  'name': ConjureFieldDefinition('name', str),
5444
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
5444
5445
  'type': ConjureFieldDefinition('type', event_EventType),
5445
5446
  'labels': ConjureFieldDefinition('labels', List[api_Label]),
5446
5447
  'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue])
5447
5448
  }
5448
5449
 
5449
- __slots__: List[str] = ['_asset_rids', '_origins', '_timestamp', '_duration', '_name', '_type', '_labels', '_properties']
5450
+ __slots__: List[str] = ['_asset_rids', '_origins', '_timestamp', '_duration', '_name', '_description', '_type', '_labels', '_properties']
5450
5451
 
5451
- def __init__(self, asset_rids: List[str], duration: "scout_run_api_Duration", labels: List[str], name: str, origins: List["event_EventOrigin"], properties: Dict[str, str], timestamp: "api_Timestamp", type: "event_EventType") -> None:
5452
+ def __init__(self, asset_rids: List[str], duration: "scout_run_api_Duration", labels: List[str], name: str, origins: List["event_EventOrigin"], properties: Dict[str, str], timestamp: "api_Timestamp", type: "event_EventType", description: Optional[str] = None) -> None:
5452
5453
  self._asset_rids = asset_rids
5453
5454
  self._origins = origins
5454
5455
  self._timestamp = timestamp
5455
5456
  self._duration = duration
5456
5457
  self._name = name
5458
+ self._description = description
5457
5459
  self._type = type
5458
5460
  self._labels = labels
5459
5461
  self._properties = properties
@@ -5484,6 +5486,13 @@ class event_CreateEvent(ConjureBeanType):
5484
5486
  def name(self) -> str:
5485
5487
  return self._name
5486
5488
 
5489
+ @builtins.property
5490
+ def description(self) -> Optional[str]:
5491
+ """
5492
+ If not provided, will default to an empty string.
5493
+ """
5494
+ return self._description
5495
+
5487
5496
  @builtins.property
5488
5497
  def type(self) -> "event_EventType":
5489
5498
  return self._type
@@ -5513,6 +5522,7 @@ class event_Event(ConjureBeanType):
5513
5522
  'timestamp': ConjureFieldDefinition('timestamp', api_Timestamp),
5514
5523
  'duration': ConjureFieldDefinition('duration', scout_run_api_Duration),
5515
5524
  'name': ConjureFieldDefinition('name', str),
5525
+ 'description': ConjureFieldDefinition('description', str),
5516
5526
  'type': ConjureFieldDefinition('type', event_EventType),
5517
5527
  'labels': ConjureFieldDefinition('labels', List[api_Label]),
5518
5528
  'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue]),
@@ -5520,15 +5530,16 @@ class event_Event(ConjureBeanType):
5520
5530
  'created_by': ConjureFieldDefinition('createdBy', OptionalTypeWrapper[scout_rids_api_UserRid])
5521
5531
  }
5522
5532
 
5523
- __slots__: List[str] = ['_uuid', '_asset_rids', '_origins', '_timestamp', '_duration', '_name', '_type', '_labels', '_properties', '_is_archived', '_created_by']
5533
+ __slots__: List[str] = ['_uuid', '_asset_rids', '_origins', '_timestamp', '_duration', '_name', '_description', '_type', '_labels', '_properties', '_is_archived', '_created_by']
5524
5534
 
5525
- def __init__(self, asset_rids: List[str], duration: "scout_run_api_Duration", is_archived: bool, labels: List[str], name: str, origins: List["event_EventOrigin"], properties: Dict[str, str], timestamp: "api_Timestamp", type: "event_EventType", uuid: str, created_by: Optional[str] = None) -> None:
5535
+ def __init__(self, asset_rids: List[str], description: str, duration: "scout_run_api_Duration", is_archived: bool, labels: List[str], name: str, origins: List["event_EventOrigin"], properties: Dict[str, str], timestamp: "api_Timestamp", type: "event_EventType", uuid: str, created_by: Optional[str] = None) -> None:
5526
5536
  self._uuid = uuid
5527
5537
  self._asset_rids = asset_rids
5528
5538
  self._origins = origins
5529
5539
  self._timestamp = timestamp
5530
5540
  self._duration = duration
5531
5541
  self._name = name
5542
+ self._description = description
5532
5543
  self._type = type
5533
5544
  self._labels = labels
5534
5545
  self._properties = properties
@@ -5570,6 +5581,10 @@ associated assets. Thus an event RID would not identify a valid authorized resou
5570
5581
  def name(self) -> str:
5571
5582
  return self._name
5572
5583
 
5584
+ @builtins.property
5585
+ def description(self) -> str:
5586
+ return self._description
5587
+
5573
5588
  @builtins.property
5574
5589
  def type(self) -> "event_EventType":
5575
5590
  return self._type
@@ -6314,19 +6329,21 @@ class event_UpdateEvent(ConjureBeanType):
6314
6329
  'timestamp': ConjureFieldDefinition('timestamp', OptionalTypeWrapper[api_Timestamp]),
6315
6330
  'duration': ConjureFieldDefinition('duration', OptionalTypeWrapper[scout_run_api_Duration]),
6316
6331
  'name': ConjureFieldDefinition('name', OptionalTypeWrapper[str]),
6332
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
6317
6333
  'type': ConjureFieldDefinition('type', OptionalTypeWrapper[event_EventType]),
6318
6334
  'labels': ConjureFieldDefinition('labels', OptionalTypeWrapper[List[api_Label]]),
6319
6335
  'properties': ConjureFieldDefinition('properties', OptionalTypeWrapper[Dict[api_PropertyName, api_PropertyValue]])
6320
6336
  }
6321
6337
 
6322
- __slots__: List[str] = ['_uuid', '_asset_rids', '_timestamp', '_duration', '_name', '_type', '_labels', '_properties']
6338
+ __slots__: List[str] = ['_uuid', '_asset_rids', '_timestamp', '_duration', '_name', '_description', '_type', '_labels', '_properties']
6323
6339
 
6324
- def __init__(self, uuid: str, asset_rids: Optional[List[str]] = None, duration: Optional["scout_run_api_Duration"] = None, labels: Optional[List[str]] = None, name: Optional[str] = None, properties: Optional[Dict[str, str]] = None, timestamp: Optional["api_Timestamp"] = None, type: Optional["event_EventType"] = None) -> None:
6340
+ def __init__(self, uuid: str, asset_rids: Optional[List[str]] = None, description: Optional[str] = None, duration: Optional["scout_run_api_Duration"] = None, labels: Optional[List[str]] = None, name: Optional[str] = None, properties: Optional[Dict[str, str]] = None, timestamp: Optional["api_Timestamp"] = None, type: Optional["event_EventType"] = None) -> None:
6325
6341
  self._uuid = uuid
6326
6342
  self._asset_rids = asset_rids
6327
6343
  self._timestamp = timestamp
6328
6344
  self._duration = duration
6329
6345
  self._name = name
6346
+ self._description = description
6330
6347
  self._type = type
6331
6348
  self._labels = labels
6332
6349
  self._properties = properties
@@ -6355,6 +6372,10 @@ If provided, must contain at least one asset rid.
6355
6372
  def name(self) -> Optional[str]:
6356
6373
  return self._name
6357
6374
 
6375
+ @builtins.property
6376
+ def description(self) -> Optional[str]:
6377
+ return self._description
6378
+
6358
6379
  @builtins.property
6359
6380
  def type(self) -> Optional["event_EventType"]:
6360
6381
  return self._type
@@ -8401,14 +8422,16 @@ class ingest_api_JournalJsonOpts(ConjureBeanType):
8401
8422
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
8402
8423
  return {
8403
8424
  'source': ConjureFieldDefinition('source', ingest_api_IngestSource),
8404
- 'target': ConjureFieldDefinition('target', ingest_api_DatasetIngestTarget)
8425
+ 'target': ConjureFieldDefinition('target', ingest_api_DatasetIngestTarget),
8426
+ 'channel': ConjureFieldDefinition('channel', OptionalTypeWrapper[api_Channel])
8405
8427
  }
8406
8428
 
8407
- __slots__: List[str] = ['_source', '_target']
8429
+ __slots__: List[str] = ['_source', '_target', '_channel']
8408
8430
 
8409
- 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:
8410
8432
  self._source = source
8411
8433
  self._target = target
8434
+ self._channel = channel
8412
8435
 
8413
8436
  @builtins.property
8414
8437
  def source(self) -> "ingest_api_IngestSource":
@@ -8418,6 +8441,14 @@ class ingest_api_JournalJsonOpts(ConjureBeanType):
8418
8441
  def target(self) -> "ingest_api_DatasetIngestTarget":
8419
8442
  return self._target
8420
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
+
8421
8452
 
8422
8453
  ingest_api_JournalJsonOpts.__name__ = "JournalJsonOpts"
8423
8454
  ingest_api_JournalJsonOpts.__qualname__ = "JournalJsonOpts"
@@ -10153,12 +10184,12 @@ class persistent_compute_api_FullResult(ConjureBeanType):
10153
10184
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
10154
10185
  return {
10155
10186
  'subscription_id': ConjureFieldDefinition('subscriptionId', persistent_compute_api_SubscriptionId),
10156
- 'result': ConjureFieldDefinition('result', scout_compute_api_ComputeWithUnitsResult)
10187
+ 'result': ConjureFieldDefinition('result', scout_compute_api_ComputeWithUnitsResponse)
10157
10188
  }
10158
10189
 
10159
10190
  __slots__: List[str] = ['_subscription_id', '_result']
10160
10191
 
10161
- def __init__(self, result: "scout_compute_api_ComputeWithUnitsResult", subscription_id: str) -> None:
10192
+ def __init__(self, result: "scout_compute_api_ComputeWithUnitsResponse", subscription_id: str) -> None:
10162
10193
  self._subscription_id = subscription_id
10163
10194
  self._result = result
10164
10195
 
@@ -10167,7 +10198,7 @@ class persistent_compute_api_FullResult(ConjureBeanType):
10167
10198
  return self._subscription_id
10168
10199
 
10169
10200
  @builtins.property
10170
- def result(self) -> "scout_compute_api_ComputeWithUnitsResult":
10201
+ def result(self) -> "scout_compute_api_ComputeWithUnitsResponse":
10171
10202
  return self._result
10172
10203
 
10173
10204
 
@@ -10323,8 +10354,9 @@ persistent_compute_api_StreamingComputeNodeSubscription.__module__ = "nominal_ap
10323
10354
 
10324
10355
  class persistent_compute_api_SubscriptionError(ConjureBeanType):
10325
10356
  """
10326
- This will be sent if there is an error creating a subscription specified in `ClientMessage::subscribe`.
10327
- Equivalent to throwing a 400 in a REST endpoint.
10357
+ This will be sent if there is an error while creating or updating a subscription. Note: This won't
10358
+ automatically cancel the subscription. The client will have to call `ClientMessage::unsubscribe` to do that
10359
+ if warranted.
10328
10360
  """
10329
10361
 
10330
10362
  @builtins.classmethod
@@ -16057,12 +16089,13 @@ class scout_catalog_EnrichedDataset(ConjureBeanType):
16057
16089
  'timestamp_type': ConjureFieldDefinition('timestampType', scout_catalog_WeakTimestampType),
16058
16090
  'labels': ConjureFieldDefinition('labels', List[api_Label]),
16059
16091
  'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue]),
16060
- 'granularity': ConjureFieldDefinition('granularity', api_Granularity)
16092
+ 'granularity': ConjureFieldDefinition('granularity', api_Granularity),
16093
+ 'allow_streaming': ConjureFieldDefinition('allowStreaming', bool)
16061
16094
  }
16062
16095
 
16063
- __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']
16064
16097
 
16065
- 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:
16066
16099
  self._rid = rid
16067
16100
  self._uuid = uuid
16068
16101
  self._name = name
@@ -16081,6 +16114,7 @@ class scout_catalog_EnrichedDataset(ConjureBeanType):
16081
16114
  self._labels = labels
16082
16115
  self._properties = properties
16083
16116
  self._granularity = granularity
16117
+ self._allow_streaming = allow_streaming
16084
16118
 
16085
16119
  @builtins.property
16086
16120
  def rid(self) -> str:
@@ -16154,6 +16188,10 @@ class scout_catalog_EnrichedDataset(ConjureBeanType):
16154
16188
  def granularity(self) -> "api_Granularity":
16155
16189
  return self._granularity
16156
16190
 
16191
+ @builtins.property
16192
+ def allow_streaming(self) -> bool:
16193
+ return self._allow_streaming
16194
+
16157
16195
 
16158
16196
  scout_catalog_EnrichedDataset.__name__ = "EnrichedDataset"
16159
16197
  scout_catalog_EnrichedDataset.__qualname__ = "EnrichedDataset"
@@ -17118,7 +17156,7 @@ class scout_catalog_SearchDatasetsRequest(ConjureBeanType):
17118
17156
  @builtins.property
17119
17157
  def page_size(self) -> Optional[int]:
17120
17158
  """
17121
- Defaults to 100. Will throw if larger than 1_000.
17159
+ Defaults to 100. Will throw if larger than 1000.
17122
17160
  """
17123
17161
  return self._page_size
17124
17162
 
@@ -18585,6 +18623,27 @@ scout_chartdefinition_api_GeoAdditionalVariable.__qualname__ = "GeoAdditionalVar
18585
18623
  scout_chartdefinition_api_GeoAdditionalVariable.__module__ = "nominal_api.scout_chartdefinition_api"
18586
18624
 
18587
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
+
18588
18647
  class scout_chartdefinition_api_GeoCustomFeature(ConjureUnionType):
18589
18648
  """Additional static objects on the map, such as a point representing a tower"""
18590
18649
  _point: Optional["scout_chartdefinition_api_GeoPoint"] = None
@@ -18958,15 +19017,17 @@ class scout_chartdefinition_api_GeoVizDefinitionV1(ConjureBeanType):
18958
19017
  'plots': ConjureFieldDefinition('plots', List[scout_chartdefinition_api_GeoPlotFromLatLong]),
18959
19018
  'title': ConjureFieldDefinition('title', OptionalTypeWrapper[str]),
18960
19019
  'custom_features': ConjureFieldDefinition('customFeatures', List[scout_chartdefinition_api_GeoCustomFeature]),
19020
+ 'base_tileset': ConjureFieldDefinition('baseTileset', OptionalTypeWrapper[scout_chartdefinition_api_GeoBaseTileset]),
18961
19021
  'additional_tileset': ConjureFieldDefinition('additionalTileset', OptionalTypeWrapper[scout_chartdefinition_api_GeoAdditionalTileset])
18962
19022
  }
18963
19023
 
18964
- __slots__: List[str] = ['_plots', '_title', '_custom_features', '_additional_tileset']
19024
+ __slots__: List[str] = ['_plots', '_title', '_custom_features', '_base_tileset', '_additional_tileset']
18965
19025
 
18966
- 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:
18967
19027
  self._plots = plots
18968
19028
  self._title = title
18969
19029
  self._custom_features = custom_features
19030
+ self._base_tileset = base_tileset
18970
19031
  self._additional_tileset = additional_tileset
18971
19032
 
18972
19033
  @builtins.property
@@ -18981,6 +19042,10 @@ class scout_chartdefinition_api_GeoVizDefinitionV1(ConjureBeanType):
18981
19042
  def custom_features(self) -> List["scout_chartdefinition_api_GeoCustomFeature"]:
18982
19043
  return self._custom_features
18983
19044
 
19045
+ @builtins.property
19046
+ def base_tileset(self) -> Optional["scout_chartdefinition_api_GeoBaseTileset"]:
19047
+ return self._base_tileset
19048
+
18984
19049
  @builtins.property
18985
19050
  def additional_tileset(self) -> Optional["scout_chartdefinition_api_GeoAdditionalTileset"]:
18986
19051
  return self._additional_tileset
@@ -64004,9 +64069,6 @@ class scout_video_VideoFileService(Service):
64004
64069
  return _decoder.decode(_response.json(), List[scout_video_api_VideoFile], self._return_none_for_unknown_union_types)
64005
64070
 
64006
64071
  def list_files_in_video(self, auth_header: str, video_rid: str) -> List["scout_video_api_VideoFile"]:
64007
- """
64008
- Returns all video files and their metadata associated with the given video RID.
64009
- """
64010
64072
 
64011
64073
  _headers: Dict[str, Any] = {
64012
64074
  'Accept': 'application/json',
@@ -64035,6 +64097,38 @@ class scout_video_VideoFileService(Service):
64035
64097
  _decoder = ConjureDecoder()
64036
64098
  return _decoder.decode(_response.json(), List[scout_video_api_VideoFile], self._return_none_for_unknown_union_types)
64037
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
+
64038
64132
  def update(self, auth_header: str, request: "scout_video_api_UpdateVideoFileRequest", video_file_rid: str) -> "scout_video_api_VideoFile":
64039
64133
  """
64040
64134
  Updates the metadata for a video file associated with the given RID.
@@ -64661,6 +64755,35 @@ class scout_video_VideoService(Service):
64661
64755
  _decoder = ConjureDecoder()
64662
64756
  return _decoder.decode(_response.json(), Dict[api_rids_VideoRid, scout_video_api_DetailedIngestStatus], self._return_none_for_unknown_union_types)
64663
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
+
64664
64787
  def archive(self, auth_header: str, video_rid: str) -> None:
64665
64788
  """
64666
64789
  Archives a video, which excludes it from search and hides it from being publicly visible, but does not
@@ -64792,6 +64915,78 @@ frame-timestamp mapping.
64792
64915
  _decoder = ConjureDecoder()
64793
64916
  return _decoder.decode(_response.json(), List[scout_video_api_SegmentSummary], self._return_none_for_unknown_union_types)
64794
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
+
64795
64990
 
64796
64991
  scout_video_VideoService.__name__ = "VideoService"
64797
64992
  scout_video_VideoService.__qualname__ = "VideoService"
@@ -64976,13 +65171,13 @@ class scout_video_api_CreateVideoRequest(ConjureBeanType):
64976
65171
  'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
64977
65172
  'labels': ConjureFieldDefinition('labels', List[api_Label]),
64978
65173
  'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue]),
64979
- 'origin_metadata': ConjureFieldDefinition('originMetadata', scout_video_api_VideoOriginMetadata),
65174
+ 'origin_metadata': ConjureFieldDefinition('originMetadata', OptionalTypeWrapper[scout_video_api_VideoOriginMetadata]),
64980
65175
  'workspace': ConjureFieldDefinition('workspace', OptionalTypeWrapper[api_ids_WorkspaceId])
64981
65176
  }
64982
65177
 
64983
65178
  __slots__: List[str] = ['_title', '_description', '_labels', '_properties', '_origin_metadata', '_workspace']
64984
65179
 
64985
- 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:
64986
65181
  self._title = title
64987
65182
  self._description = description
64988
65183
  self._labels = labels
@@ -65007,7 +65202,7 @@ class scout_video_api_CreateVideoRequest(ConjureBeanType):
65007
65202
  return self._properties
65008
65203
 
65009
65204
  @builtins.property
65010
- def origin_metadata(self) -> "scout_video_api_VideoOriginMetadata":
65205
+ def origin_metadata(self) -> Optional["scout_video_api_VideoOriginMetadata"]:
65011
65206
  return self._origin_metadata
65012
65207
 
65013
65208
  @builtins.property
@@ -65126,6 +65321,41 @@ scout_video_api_DetailedIngestStatusVisitor.__qualname__ = "DetailedIngestStatus
65126
65321
  scout_video_api_DetailedIngestStatusVisitor.__module__ = "nominal_api.scout_video_api"
65127
65322
 
65128
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
+
65129
65359
  class scout_video_api_ErrorIngestStatus(ConjureBeanType):
65130
65360
 
65131
65361
  @builtins.classmethod
@@ -65149,6 +65379,35 @@ scout_video_api_ErrorIngestStatus.__qualname__ = "ErrorIngestStatus"
65149
65379
  scout_video_api_ErrorIngestStatus.__module__ = "nominal_api.scout_video_api"
65150
65380
 
65151
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
+
65152
65411
  class scout_video_api_GetIngestStatusResponse(ConjureBeanType):
65153
65412
 
65154
65413
  @builtins.classmethod
@@ -65172,6 +65431,29 @@ scout_video_api_GetIngestStatusResponse.__qualname__ = "GetIngestStatusResponse"
65172
65431
  scout_video_api_GetIngestStatusResponse.__module__ = "nominal_api.scout_video_api"
65173
65432
 
65174
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
+
65175
65457
  class scout_video_api_GetSegmentByTimestampRequest(ConjureBeanType):
65176
65458
 
65177
65459
  @builtins.classmethod
@@ -65208,6 +65490,29 @@ scout_video_api_GetSegmentByTimestampRequest.__qualname__ = "GetSegmentByTimesta
65208
65490
  scout_video_api_GetSegmentByTimestampRequest.__module__ = "nominal_api.scout_video_api"
65209
65491
 
65210
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
+
65211
65516
  class scout_video_api_GetVideosRequest(ConjureBeanType):
65212
65517
 
65213
65518
  @builtins.classmethod
@@ -65283,6 +65588,64 @@ scout_video_api_IngestError.__qualname__ = "IngestError"
65283
65588
  scout_video_api_IngestError.__module__ = "nominal_api.scout_video_api"
65284
65589
 
65285
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
+
65286
65649
  class scout_video_api_McapTimestampManifest(ConjureBeanType):
65287
65650
  """
65288
65651
  Timestamps are derived from the mcap file containing the video frames.
@@ -66078,14 +66441,20 @@ class scout_video_api_UpdateIngestStatusRequest(ConjureBeanType):
66078
66441
  @builtins.classmethod
66079
66442
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
66080
66443
  return {
66444
+ 'video': ConjureFieldDefinition('video', api_rids_VideoRid),
66081
66445
  'ingest_status': ConjureFieldDefinition('ingestStatus', scout_video_api_VideoFileIngestStatus)
66082
66446
  }
66083
66447
 
66084
- __slots__: List[str] = ['_ingest_status']
66448
+ __slots__: List[str] = ['_video', '_ingest_status']
66085
66449
 
66086
- 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
66087
66452
  self._ingest_status = ingest_status
66088
66453
 
66454
+ @builtins.property
66455
+ def video(self) -> str:
66456
+ return self._video
66457
+
66089
66458
  @builtins.property
66090
66459
  def ingest_status(self) -> "scout_video_api_VideoFileIngestStatus":
66091
66460
  return self._ingest_status
@@ -66104,26 +66473,20 @@ class scout_video_api_UpdateVideoFileRequest(ConjureBeanType):
66104
66473
  @builtins.classmethod
66105
66474
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
66106
66475
  return {
66107
- 'video_rid': ConjureFieldDefinition('videoRid', OptionalTypeWrapper[api_rids_VideoRid]),
66108
66476
  'title': ConjureFieldDefinition('title', OptionalTypeWrapper[str]),
66109
66477
  'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
66110
66478
  'starting_timestamp': ConjureFieldDefinition('startingTimestamp', OptionalTypeWrapper[api_Timestamp]),
66111
66479
  'scale_parameter': ConjureFieldDefinition('scaleParameter', OptionalTypeWrapper[scout_video_api_ScaleParameter])
66112
66480
  }
66113
66481
 
66114
- __slots__: List[str] = ['_video_rid', '_title', '_description', '_starting_timestamp', '_scale_parameter']
66482
+ __slots__: List[str] = ['_title', '_description', '_starting_timestamp', '_scale_parameter']
66115
66483
 
66116
- 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:
66117
- 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:
66118
66485
  self._title = title
66119
66486
  self._description = description
66120
66487
  self._starting_timestamp = starting_timestamp
66121
66488
  self._scale_parameter = scale_parameter
66122
66489
 
66123
- @builtins.property
66124
- def video_rid(self) -> Optional[str]:
66125
- return self._video_rid
66126
-
66127
66490
  @builtins.property
66128
66491
  def title(self) -> Optional[str]:
66129
66492
  return self._title
@@ -66211,13 +66574,13 @@ class scout_video_api_Video(ConjureBeanType):
66211
66574
  'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue]),
66212
66575
  'created_by': ConjureFieldDefinition('createdBy', str),
66213
66576
  'created_at': ConjureFieldDefinition('createdAt', str),
66214
- 'origin_metadata': ConjureFieldDefinition('originMetadata', scout_video_api_VideoOriginMetadata),
66577
+ 'origin_metadata': ConjureFieldDefinition('originMetadata', OptionalTypeWrapper[scout_video_api_VideoOriginMetadata]),
66215
66578
  'all_segments_metadata': ConjureFieldDefinition('allSegmentsMetadata', OptionalTypeWrapper[scout_video_api_VideoAllSegmentsMetadata])
66216
66579
  }
66217
66580
 
66218
66581
  __slots__: List[str] = ['_rid', '_title', '_description', '_labels', '_properties', '_created_by', '_created_at', '_origin_metadata', '_all_segments_metadata']
66219
66582
 
66220
- 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:
66221
66584
  self._rid = rid
66222
66585
  self._title = title
66223
66586
  self._description = description
@@ -66257,7 +66620,7 @@ class scout_video_api_Video(ConjureBeanType):
66257
66620
  return self._created_at
66258
66621
 
66259
66622
  @builtins.property
66260
- def origin_metadata(self) -> "scout_video_api_VideoOriginMetadata":
66623
+ def origin_metadata(self) -> Optional["scout_video_api_VideoOriginMetadata"]:
66261
66624
  return self._origin_metadata
66262
66625
 
66263
66626
  @builtins.property
@@ -66278,7 +66641,7 @@ class scout_video_api_VideoAllSegmentsMetadata(ConjureBeanType):
66278
66641
  'rid': ConjureFieldDefinition('rid', api_rids_VideoRid),
66279
66642
  'num_frames': ConjureFieldDefinition('numFrames', int),
66280
66643
  'num_segments': ConjureFieldDefinition('numSegments', int),
66281
- 'scale_factor': ConjureFieldDefinition('scaleFactor', float),
66644
+ 'scale_factor': ConjureFieldDefinition('scaleFactor', OptionalTypeWrapper[float]),
66282
66645
  'min_absolute_timestamp': ConjureFieldDefinition('minAbsoluteTimestamp', api_Timestamp),
66283
66646
  'max_absolute_timestamp': ConjureFieldDefinition('maxAbsoluteTimestamp', api_Timestamp),
66284
66647
  'media_duration_seconds': ConjureFieldDefinition('mediaDurationSeconds', float),
@@ -66291,7 +66654,7 @@ class scout_video_api_VideoAllSegmentsMetadata(ConjureBeanType):
66291
66654
 
66292
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']
66293
66656
 
66294
- 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:
66295
66658
  self._rid = rid
66296
66659
  self._num_frames = num_frames
66297
66660
  self._num_segments = num_segments
@@ -66318,7 +66681,10 @@ class scout_video_api_VideoAllSegmentsMetadata(ConjureBeanType):
66318
66681
  return self._num_segments
66319
66682
 
66320
66683
  @builtins.property
66321
- 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
+ """
66322
66688
  return self._scale_factor
66323
66689
 
66324
66690
  @builtins.property
@@ -66346,28 +66712,28 @@ class scout_video_api_VideoAllSegmentsMetadata(ConjureBeanType):
66346
66712
  @builtins.property
66347
66713
  def min_timestamp(self) -> Optional["api_Timestamp"]:
66348
66714
  """
66349
- deprecated
66715
+ deprecated. Will be removed after April 15th.
66350
66716
  """
66351
66717
  return self._min_timestamp
66352
66718
 
66353
66719
  @builtins.property
66354
66720
  def max_timestamp(self) -> Optional["api_Timestamp"]:
66355
66721
  """
66356
- deprecated
66722
+ deprecated. Will be removed after April 15th.
66357
66723
  """
66358
66724
  return self._max_timestamp
66359
66725
 
66360
66726
  @builtins.property
66361
66727
  def duration_seconds(self) -> Optional[float]:
66362
66728
  """
66363
- deprecated
66729
+ deprecated. Will be removed after April 15th.
66364
66730
  """
66365
66731
  return self._duration_seconds
66366
66732
 
66367
66733
  @builtins.property
66368
66734
  def frame_rate(self) -> Optional[float]:
66369
66735
  """
66370
- deprecated
66736
+ deprecated. Will be removed after April 15th.
66371
66737
  """
66372
66738
  return self._frame_rate
66373
66739
 
@@ -66746,6 +67112,104 @@ scout_video_api_VideoFileTimestampManifestVisitor.__qualname__ = "VideoFileTimes
66746
67112
  scout_video_api_VideoFileTimestampManifestVisitor.__module__ = "nominal_api.scout_video_api"
66747
67113
 
66748
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
+
66749
67213
  class scout_video_api_VideoOriginMetadata(ConjureBeanType):
66750
67214
 
66751
67215
  @builtins.classmethod
@@ -69179,18 +69643,28 @@ class storage_writer_api_WriteLogsRequest(ConjureBeanType):
69179
69643
  @builtins.classmethod
69180
69644
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
69181
69645
  return {
69182
- 'logs': ConjureFieldDefinition('logs', List[storage_writer_api_LogPoint])
69646
+ 'logs': ConjureFieldDefinition('logs', List[storage_writer_api_LogPoint]),
69647
+ 'channel': ConjureFieldDefinition('channel', OptionalTypeWrapper[api_Channel])
69183
69648
  }
69184
69649
 
69185
- __slots__: List[str] = ['_logs']
69650
+ __slots__: List[str] = ['_logs', '_channel']
69186
69651
 
69187
- 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:
69188
69653
  self._logs = logs
69654
+ self._channel = channel
69189
69655
 
69190
69656
  @builtins.property
69191
69657
  def logs(self) -> List["storage_writer_api_LogPoint"]:
69192
69658
  return self._logs
69193
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
+
69194
69668
 
69195
69669
  storage_writer_api_WriteLogsRequest.__name__ = "WriteLogsRequest"
69196
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
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: nominal-api
3
- Version: 0.596.1
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
@@ -1,5 +1,5 @@
1
- nominal_api/__init__.py,sha256=KsL8mfnlOjuyoxECocOHpFwZbxNAzFqAq3M24KD4YOY,1968
2
- nominal_api/_impl.py,sha256=1fVkPMCKHsGTcuZIuZewuo-aDn_jmnX73Bt5h8NMEQc,2860814
1
+ nominal_api/__init__.py,sha256=vF9QLYnYkCaomAQ4PCroMw_Dd4IWN4Foq-6-1dCxz7w,1968
2
+ nominal_api/_impl.py,sha256=5rDJSSIe4tRKSIjh9Gg2gZBUZZtyLw_IhONl7ecgf2o,2878488
3
3
  nominal_api/py.typed,sha256=eoZ6GfifbqhMLNzjlqRDVil-yyBkOmVN9ujSgJWNBlY,15
4
4
  nominal_api/api/__init__.py,sha256=kJBEE_HLVpKYdLH12KyO-cSAVzwxYpBwaaDutCtT-LM,1236
5
5
  nominal_api/api_ids/__init__.py,sha256=CAtt44XgNZEEUDv-BbEbYtuxQ8y1wqSZU-STjBYdZv8,80
@@ -24,7 +24,7 @@ nominal_api/scout_assets/__init__.py,sha256=dT-b9HnbwVbI-fEalfskKSMGzhGRwZDZ2cdz
24
24
  nominal_api/scout_catalog/__init__.py,sha256=ZGm4w1YKd4B-3CNxijTpB-1B653nctA_R0u24oPS3To,3508
25
25
  nominal_api/scout_channelvariables_api/__init__.py,sha256=4OQV1O-M2MQE36yCGlyYftnqaXSddYTYTyGce_WC4JQ,466
26
26
  nominal_api/scout_chart_api/__init__.py,sha256=sw7WSYs6SarSW7x-3IBkSIrVea1cVFnQnpYiNKbCWnQ,184
27
- nominal_api/scout_chartdefinition_api/__init__.py,sha256=5KGggvdNP5_boatvY7B31c7ITvTb9xDMuIFYbMcF63E,9030
27
+ nominal_api/scout_chartdefinition_api/__init__.py,sha256=agFq9gd3BjT2Mvi1jMDii8hiMZaWx471uNk5vuqMiww,9094
28
28
  nominal_api/scout_checklistexecution_api/__init__.py,sha256=lpBtfyRP-ReEwNzFTcynDgiMe8ahtEJb75pg7cKl-Q0,3266
29
29
  nominal_api/scout_checks_api/__init__.py,sha256=RJH7HsXjUhItC11V9C-hfv6lkIfiSXyxnB8slUpaT2g,5203
30
30
  nominal_api/scout_comparisonnotebook_api/__init__.py,sha256=8BL5jE9NDxqCj9DyvZWSPhq6zw2J7xp6aLsl3x9rpyw,4530
@@ -54,7 +54,7 @@ nominal_api/scout_template_api/__init__.py,sha256=bsu8qPiZ4gf67G5iFvwsfkqEKJRZ7L
54
54
  nominal_api/scout_units_api/__init__.py,sha256=KxRDScfumX__0ncWJftGvgApn_LBTfnIBAvnaBrcA5A,368
55
55
  nominal_api/scout_versioning_api/__init__.py,sha256=Sf4T4t0rZXNRIZgkqLBN3yh0sAnrxiuzaTfDQVVkyO4,1323
56
56
  nominal_api/scout_video/__init__.py,sha256=zB7mM23yGAgC529rF4gjDmqcLRbsp0kJA3xef8meZko,200
57
- nominal_api/scout_video_api/__init__.py,sha256=uV--adN5Su2PiKDpbeeIQj2qWghdh5YFzNT8u-6rPYY,3134
57
+ nominal_api/scout_video_api/__init__.py,sha256=QuI0ou7Bg_Nn4AdhALNXGQryuleyeV34vSUK53TtREg,3758
58
58
  nominal_api/scout_workbookcommon_api/__init__.py,sha256=6Ai0cYNOOw2A6JOlKzraTbpZwolspM-WTqVGLMN2HdI,413
59
59
  nominal_api/secrets_api/__init__.py,sha256=V5BpnbNzjdMP8kgvR2N6SEVcVyXi6Vyl_lh_5fKjJzw,736
60
60
  nominal_api/security_api_workspace/__init__.py,sha256=18MQr8sUGDfaXl50sMR7objE5rBJ9dZ1Sjwuyf997dA,156
@@ -72,7 +72,7 @@ nominal_api/timeseries_logicalseries_api/__init__.py,sha256=Q9iZHurmyDsJIFbUg-Eb
72
72
  nominal_api/timeseries_seriescache/__init__.py,sha256=tFCkNuyrVMgtj-HIl1pOYPJHaL2VikI4C_x97bX_Lcs,109
73
73
  nominal_api/timeseries_seriescache_api/__init__.py,sha256=U9EhlqdF9qzD1O9al0vcvcdgS_C5lq-lN3Kmr0K3g84,1191
74
74
  nominal_api/upload_api/__init__.py,sha256=ZMudWMSqCrNozohbHaJKuxJnT9Edepe7nxxXMz_pT9k,87
75
- nominal_api-0.596.1.dist-info/METADATA,sha256=er0GVrkG1KsZKdf-uKA_17FZNmpYKz8mHsmG6AFadXo,199
76
- nominal_api-0.596.1.dist-info/WHEEL,sha256=beeZ86-EfXScwlR_HKu4SllMC9wUEj_8Z_4FJ3egI2w,91
77
- nominal_api-0.596.1.dist-info/top_level.txt,sha256=gI1ZdNJbuHcJZeKtCzzBXsEtpU1GX6XJKs6ksi_gCRA,12
78
- nominal_api-0.596.1.dist-info/RECORD,,
75
+ nominal_api-0.598.0.dist-info/METADATA,sha256=vgeYVruXfKOlkUsZ8LA4R_WdilkGfEtKSQXRWXypLuo,199
76
+ nominal_api-0.598.0.dist-info/WHEEL,sha256=L0N565qmK-3nM2eBoMNFszYJ_MTx03_tQ0CQu1bHLYo,91
77
+ nominal_api-0.598.0.dist-info/top_level.txt,sha256=gI1ZdNJbuHcJZeKtCzzBXsEtpU1GX6XJKs6ksi_gCRA,12
78
+ nominal_api-0.598.0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (76.1.0)
2
+ Generator: setuptools (78.0.1)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5