nominal-api 0.565.1__tar.gz → 0.567.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 (76) hide show
  1. {nominal_api-0.565.1 → nominal_api-0.567.0}/PKG-INFO +1 -1
  2. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/__init__.py +1 -1
  3. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/_impl.py +356 -69
  4. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/ingest_api/__init__.py +6 -2
  5. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api.egg-info/PKG-INFO +1 -1
  6. {nominal_api-0.565.1 → nominal_api-0.567.0}/setup.py +1 -1
  7. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/api/__init__.py +0 -0
  8. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/api_rids/__init__.py +0 -0
  9. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/attachments_api/__init__.py +0 -0
  10. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/authentication/__init__.py +0 -0
  11. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/authentication_api/__init__.py +0 -0
  12. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/authorization/__init__.py +0 -0
  13. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/comments_api/__init__.py +0 -0
  14. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/datasource/__init__.py +0 -0
  15. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/datasource_api/__init__.py +0 -0
  16. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/datasource_logset/__init__.py +0 -0
  17. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/datasource_logset_api/__init__.py +0 -0
  18. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/datasource_pagination_api/__init__.py +0 -0
  19. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/event/__init__.py +0 -0
  20. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/py.typed +0 -0
  21. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout/__init__.py +0 -0
  22. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_api/__init__.py +0 -0
  23. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_asset_api/__init__.py +0 -0
  24. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_assets/__init__.py +0 -0
  25. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_catalog/__init__.py +0 -0
  26. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_channelvariables_api/__init__.py +0 -0
  27. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_chart_api/__init__.py +0 -0
  28. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_chartdefinition_api/__init__.py +0 -0
  29. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_checklistexecution_api/__init__.py +0 -0
  30. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_checks_api/__init__.py +0 -0
  31. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_comparisonnotebook_api/__init__.py +0 -0
  32. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_comparisonrun_api/__init__.py +0 -0
  33. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_compute_api/__init__.py +0 -0
  34. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_compute_api_deprecated/__init__.py +0 -0
  35. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_compute_representation_api/__init__.py +0 -0
  36. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_compute_resolved_api/__init__.py +0 -0
  37. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_dataexport_api/__init__.py +0 -0
  38. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_datareview_api/__init__.py +0 -0
  39. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_datasource/__init__.py +0 -0
  40. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_datasource_connection/__init__.py +0 -0
  41. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_datasource_connection_api/__init__.py +0 -0
  42. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_datasource_connection_api_influx/__init__.py +0 -0
  43. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_favorites/__init__.py +0 -0
  44. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_favorites_api/__init__.py +0 -0
  45. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_integrations_api/__init__.py +0 -0
  46. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_internal_search_api/__init__.py +0 -0
  47. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_jobs_api/__init__.py +0 -0
  48. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_layout_api/__init__.py +0 -0
  49. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_metadata/__init__.py +0 -0
  50. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_notebook_api/__init__.py +0 -0
  51. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_plotting/__init__.py +0 -0
  52. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_rids_api/__init__.py +0 -0
  53. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_run_api/__init__.py +0 -0
  54. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_template_api/__init__.py +0 -0
  55. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_units_api/__init__.py +0 -0
  56. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_versioning_api/__init__.py +0 -0
  57. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_video/__init__.py +0 -0
  58. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_video_api/__init__.py +0 -0
  59. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/scout_workbookcommon_api/__init__.py +0 -0
  60. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/secrets_api/__init__.py +0 -0
  61. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/storage_datasource_api/__init__.py +0 -0
  62. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/storage_series_api/__init__.py +0 -0
  63. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/storage_writer_api/__init__.py +0 -0
  64. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/themes_api/__init__.py +0 -0
  65. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/timeseries_archetype/__init__.py +0 -0
  66. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/timeseries_archetype_api/__init__.py +0 -0
  67. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/timeseries_logicalseries/__init__.py +0 -0
  68. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/timeseries_logicalseries_api/__init__.py +0 -0
  69. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/timeseries_seriescache/__init__.py +0 -0
  70. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/timeseries_seriescache_api/__init__.py +0 -0
  71. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api/upload_api/__init__.py +0 -0
  72. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api.egg-info/SOURCES.txt +0 -0
  73. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api.egg-info/dependency_links.txt +0 -0
  74. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api.egg-info/requires.txt +0 -0
  75. {nominal_api-0.565.1 → nominal_api-0.567.0}/nominal_api.egg-info/top_level.txt +0 -0
  76. {nominal_api-0.565.1 → nominal_api-0.567.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: nominal-api
3
- Version: 0.565.1
3
+ Version: 0.567.0
4
4
  Requires-Python: >=3.8
5
5
  Requires-Dist: requests
6
6
  Requires-Dist: conjure-python-client<3,>=2.8.0
@@ -69,5 +69,5 @@ __all__ = [
69
69
 
70
70
  __conjure_generator_version__ = "4.9.0"
71
71
 
72
- __version__ = "0.565.1"
72
+ __version__ = "0.567.0"
73
73
 
@@ -7003,6 +7003,41 @@ ingest_api_ExistingDatasetIngestDestination.__qualname__ = "ExistingDatasetInges
7003
7003
  ingest_api_ExistingDatasetIngestDestination.__module__ = "nominal_api.ingest_api"
7004
7004
 
7005
7005
 
7006
+ class ingest_api_ExistingVideoIngestDestination(ConjureBeanType):
7007
+
7008
+ @builtins.classmethod
7009
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
7010
+ return {
7011
+ 'video_rid': ConjureFieldDefinition('videoRid', api_rids_VideoRid),
7012
+ 'video_file_details': ConjureFieldDefinition('videoFileDetails', ingest_api_VideoFileIngestDetails)
7013
+ }
7014
+
7015
+ __slots__: List[str] = ['_video_rid', '_video_file_details']
7016
+
7017
+ def __init__(self, video_file_details: "ingest_api_VideoFileIngestDetails", video_rid: str) -> None:
7018
+ self._video_rid = video_rid
7019
+ self._video_file_details = video_file_details
7020
+
7021
+ @builtins.property
7022
+ def video_rid(self) -> str:
7023
+ """
7024
+ RID of the video to ingest the newly created video file to.
7025
+ """
7026
+ return self._video_rid
7027
+
7028
+ @builtins.property
7029
+ def video_file_details(self) -> "ingest_api_VideoFileIngestDetails":
7030
+ """
7031
+ Metadata to associate with any created video file
7032
+ """
7033
+ return self._video_file_details
7034
+
7035
+
7036
+ ingest_api_ExistingVideoIngestDestination.__name__ = "ExistingVideoIngestDestination"
7037
+ ingest_api_ExistingVideoIngestDestination.__qualname__ = "ExistingVideoIngestDestination"
7038
+ ingest_api_ExistingVideoIngestDestination.__module__ = "nominal_api.ingest_api"
7039
+
7040
+
7006
7041
  class ingest_api_GcsIngestSource(ConjureBeanType):
7007
7042
 
7008
7043
  @builtins.classmethod
@@ -7232,41 +7267,58 @@ ingest_api_IngestDestinationVisitor.__module__ = "nominal_api.ingest_api"
7232
7267
 
7233
7268
  class ingest_api_IngestDetails(ConjureUnionType):
7234
7269
  _dataset: Optional["ingest_api_IngestDatasetFileDetails"] = None
7270
+ _video: Optional["ingest_api_IngestVideoFileDetails"] = None
7235
7271
 
7236
7272
  @builtins.classmethod
7237
7273
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
7238
7274
  return {
7239
- 'dataset': ConjureFieldDefinition('dataset', ingest_api_IngestDatasetFileDetails)
7275
+ 'dataset': ConjureFieldDefinition('dataset', ingest_api_IngestDatasetFileDetails),
7276
+ 'video': ConjureFieldDefinition('video', ingest_api_IngestVideoFileDetails)
7240
7277
  }
7241
7278
 
7242
7279
  def __init__(
7243
7280
  self,
7244
7281
  dataset: Optional["ingest_api_IngestDatasetFileDetails"] = None,
7282
+ video: Optional["ingest_api_IngestVideoFileDetails"] = None,
7245
7283
  type_of_union: Optional[str] = None
7246
7284
  ) -> None:
7247
7285
  if type_of_union is None:
7248
- if (dataset is not None) != 1:
7286
+ if (dataset is not None) + (video is not None) != 1:
7249
7287
  raise ValueError('a union must contain a single member')
7250
7288
 
7251
7289
  if dataset is not None:
7252
7290
  self._dataset = dataset
7253
7291
  self._type = 'dataset'
7292
+ if video is not None:
7293
+ self._video = video
7294
+ self._type = 'video'
7254
7295
 
7255
7296
  elif type_of_union == 'dataset':
7256
7297
  if dataset is None:
7257
7298
  raise ValueError('a union value must not be None')
7258
7299
  self._dataset = dataset
7259
7300
  self._type = 'dataset'
7301
+ elif type_of_union == 'video':
7302
+ if video is None:
7303
+ raise ValueError('a union value must not be None')
7304
+ self._video = video
7305
+ self._type = 'video'
7260
7306
 
7261
7307
  @builtins.property
7262
7308
  def dataset(self) -> Optional["ingest_api_IngestDatasetFileDetails"]:
7263
7309
  return self._dataset
7264
7310
 
7311
+ @builtins.property
7312
+ def video(self) -> Optional["ingest_api_IngestVideoFileDetails"]:
7313
+ return self._video
7314
+
7265
7315
  def accept(self, visitor) -> Any:
7266
7316
  if not isinstance(visitor, ingest_api_IngestDetailsVisitor):
7267
7317
  raise ValueError('{} is not an instance of ingest_api_IngestDetailsVisitor'.format(visitor.__class__.__name__))
7268
7318
  if self._type == 'dataset' and self.dataset is not None:
7269
7319
  return visitor._dataset(self.dataset)
7320
+ if self._type == 'video' and self.video is not None:
7321
+ return visitor._video(self.video)
7270
7322
 
7271
7323
 
7272
7324
  ingest_api_IngestDetails.__name__ = "IngestDetails"
@@ -7280,6 +7332,10 @@ class ingest_api_IngestDetailsVisitor:
7280
7332
  def _dataset(self, dataset: "ingest_api_IngestDatasetFileDetails") -> Any:
7281
7333
  pass
7282
7334
 
7335
+ @abstractmethod
7336
+ def _video(self, video: "ingest_api_IngestVideoFileDetails") -> Any:
7337
+ pass
7338
+
7283
7339
 
7284
7340
  ingest_api_IngestDetailsVisitor.__name__ = "IngestDetailsVisitor"
7285
7341
  ingest_api_IngestDetailsVisitor.__qualname__ = "IngestDetailsVisitor"
@@ -7362,18 +7418,24 @@ class ingest_api_IngestMcapResponse(ConjureBeanType):
7362
7418
  @builtins.classmethod
7363
7419
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
7364
7420
  return {
7365
- 'outputs': ConjureFieldDefinition('outputs', List[ingest_api_McapIngestionOutput])
7421
+ 'outputs': ConjureFieldDefinition('outputs', List[ingest_api_McapIngestionOutput]),
7422
+ 'async_handle': ConjureFieldDefinition('asyncHandle', OptionalTypeWrapper[ingest_api_AsyncHandle])
7366
7423
  }
7367
7424
 
7368
- __slots__: List[str] = ['_outputs']
7425
+ __slots__: List[str] = ['_outputs', '_async_handle']
7369
7426
 
7370
- def __init__(self, outputs: List["ingest_api_McapIngestionOutput"]) -> None:
7427
+ def __init__(self, outputs: List["ingest_api_McapIngestionOutput"], async_handle: Optional["ingest_api_AsyncHandle"] = None) -> None:
7371
7428
  self._outputs = outputs
7429
+ self._async_handle = async_handle
7372
7430
 
7373
7431
  @builtins.property
7374
7432
  def outputs(self) -> List["ingest_api_McapIngestionOutput"]:
7375
7433
  return self._outputs
7376
7434
 
7435
+ @builtins.property
7436
+ def async_handle(self) -> Optional["ingest_api_AsyncHandle"]:
7437
+ return self._async_handle
7438
+
7377
7439
 
7378
7440
  ingest_api_IngestMcapResponse.__name__ = "IngestMcapResponse"
7379
7441
  ingest_api_IngestMcapResponse.__qualname__ = "IngestMcapResponse"
@@ -7385,6 +7447,7 @@ class ingest_api_IngestOptions(ConjureUnionType):
7385
7447
  _mcap_protobuf_timeseries: Optional["ingest_api_McapProtobufTimeseriesOpts"] = None
7386
7448
  _journal_json: Optional["ingest_api_JournalJsonOpts"] = None
7387
7449
  _csv: Optional["ingest_api_CsvOpts"] = None
7450
+ _video: Optional["ingest_api_VideoOpts"] = None
7388
7451
 
7389
7452
  @builtins.classmethod
7390
7453
  def _options(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -7392,7 +7455,8 @@ class ingest_api_IngestOptions(ConjureUnionType):
7392
7455
  'dataflash': ConjureFieldDefinition('dataflash', ingest_api_DataflashOpts),
7393
7456
  'mcap_protobuf_timeseries': ConjureFieldDefinition('mcapProtobufTimeseries', ingest_api_McapProtobufTimeseriesOpts),
7394
7457
  'journal_json': ConjureFieldDefinition('journalJson', ingest_api_JournalJsonOpts),
7395
- 'csv': ConjureFieldDefinition('csv', ingest_api_CsvOpts)
7458
+ 'csv': ConjureFieldDefinition('csv', ingest_api_CsvOpts),
7459
+ 'video': ConjureFieldDefinition('video', ingest_api_VideoOpts)
7396
7460
  }
7397
7461
 
7398
7462
  def __init__(
@@ -7401,10 +7465,11 @@ class ingest_api_IngestOptions(ConjureUnionType):
7401
7465
  mcap_protobuf_timeseries: Optional["ingest_api_McapProtobufTimeseriesOpts"] = None,
7402
7466
  journal_json: Optional["ingest_api_JournalJsonOpts"] = None,
7403
7467
  csv: Optional["ingest_api_CsvOpts"] = None,
7468
+ video: Optional["ingest_api_VideoOpts"] = None,
7404
7469
  type_of_union: Optional[str] = None
7405
7470
  ) -> None:
7406
7471
  if type_of_union is None:
7407
- if (dataflash is not None) + (mcap_protobuf_timeseries is not None) + (journal_json is not None) + (csv is not None) != 1:
7472
+ if (dataflash is not None) + (mcap_protobuf_timeseries is not None) + (journal_json is not None) + (csv is not None) + (video is not None) != 1:
7408
7473
  raise ValueError('a union must contain a single member')
7409
7474
 
7410
7475
  if dataflash is not None:
@@ -7419,6 +7484,9 @@ class ingest_api_IngestOptions(ConjureUnionType):
7419
7484
  if csv is not None:
7420
7485
  self._csv = csv
7421
7486
  self._type = 'csv'
7487
+ if video is not None:
7488
+ self._video = video
7489
+ self._type = 'video'
7422
7490
 
7423
7491
  elif type_of_union == 'dataflash':
7424
7492
  if dataflash is None:
@@ -7440,6 +7508,11 @@ class ingest_api_IngestOptions(ConjureUnionType):
7440
7508
  raise ValueError('a union value must not be None')
7441
7509
  self._csv = csv
7442
7510
  self._type = 'csv'
7511
+ elif type_of_union == 'video':
7512
+ if video is None:
7513
+ raise ValueError('a union value must not be None')
7514
+ self._video = video
7515
+ self._type = 'video'
7443
7516
 
7444
7517
  @builtins.property
7445
7518
  def dataflash(self) -> Optional["ingest_api_DataflashOpts"]:
@@ -7457,6 +7530,10 @@ class ingest_api_IngestOptions(ConjureUnionType):
7457
7530
  def csv(self) -> Optional["ingest_api_CsvOpts"]:
7458
7531
  return self._csv
7459
7532
 
7533
+ @builtins.property
7534
+ def video(self) -> Optional["ingest_api_VideoOpts"]:
7535
+ return self._video
7536
+
7460
7537
  def accept(self, visitor) -> Any:
7461
7538
  if not isinstance(visitor, ingest_api_IngestOptionsVisitor):
7462
7539
  raise ValueError('{} is not an instance of ingest_api_IngestOptionsVisitor'.format(visitor.__class__.__name__))
@@ -7468,6 +7545,8 @@ class ingest_api_IngestOptions(ConjureUnionType):
7468
7545
  return visitor._journal_json(self.journal_json)
7469
7546
  if self._type == 'csv' and self.csv is not None:
7470
7547
  return visitor._csv(self.csv)
7548
+ if self._type == 'video' and self.video is not None:
7549
+ return visitor._video(self.video)
7471
7550
 
7472
7551
 
7473
7552
  ingest_api_IngestOptions.__name__ = "IngestOptions"
@@ -7493,6 +7572,10 @@ class ingest_api_IngestOptionsVisitor:
7493
7572
  def _csv(self, csv: "ingest_api_CsvOpts") -> Any:
7494
7573
  pass
7495
7574
 
7575
+ @abstractmethod
7576
+ def _video(self, video: "ingest_api_VideoOpts") -> Any:
7577
+ pass
7578
+
7496
7579
 
7497
7580
  ingest_api_IngestOptionsVisitor.__name__ = "IngestOptionsVisitor"
7498
7581
  ingest_api_IngestOptionsVisitor.__qualname__ = "IngestOptionsVisitor"
@@ -8084,60 +8167,33 @@ ingest_api_IngestStatus.__qualname__ = "IngestStatus"
8084
8167
  ingest_api_IngestStatus.__module__ = "nominal_api.ingest_api"
8085
8168
 
8086
8169
 
8087
- class ingest_api_IngestVideoDestination(ConjureUnionType):
8088
- _new_video: Optional["ingest_api_NewVideoIngestDestination"] = None
8170
+ class ingest_api_IngestVideoFileDetails(ConjureBeanType):
8089
8171
 
8090
8172
  @builtins.classmethod
8091
- def _options(cls) -> Dict[str, ConjureFieldDefinition]:
8173
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
8092
8174
  return {
8093
- 'new_video': ConjureFieldDefinition('newVideo', ingest_api_NewVideoIngestDestination)
8175
+ 'video_file_rid': ConjureFieldDefinition('videoFileRid', api_rids_VideoFileRid),
8176
+ 'video_rid': ConjureFieldDefinition('videoRid', api_rids_VideoRid)
8094
8177
  }
8095
8178
 
8096
- def __init__(
8097
- self,
8098
- new_video: Optional["ingest_api_NewVideoIngestDestination"] = None,
8099
- type_of_union: Optional[str] = None
8100
- ) -> None:
8101
- if type_of_union is None:
8102
- if (new_video is not None) != 1:
8103
- raise ValueError('a union must contain a single member')
8179
+ __slots__: List[str] = ['_video_file_rid', '_video_rid']
8104
8180
 
8105
- if new_video is not None:
8106
- self._new_video = new_video
8107
- self._type = 'newVideo'
8108
-
8109
- elif type_of_union == 'newVideo':
8110
- if new_video is None:
8111
- raise ValueError('a union value must not be None')
8112
- self._new_video = new_video
8113
- self._type = 'newVideo'
8181
+ def __init__(self, video_file_rid: str, video_rid: str) -> None:
8182
+ self._video_file_rid = video_file_rid
8183
+ self._video_rid = video_rid
8114
8184
 
8115
8185
  @builtins.property
8116
- def new_video(self) -> Optional["ingest_api_NewVideoIngestDestination"]:
8117
- return self._new_video
8118
-
8119
- def accept(self, visitor) -> Any:
8120
- if not isinstance(visitor, ingest_api_IngestVideoDestinationVisitor):
8121
- raise ValueError('{} is not an instance of ingest_api_IngestVideoDestinationVisitor'.format(visitor.__class__.__name__))
8122
- if self._type == 'newVideo' and self.new_video is not None:
8123
- return visitor._new_video(self.new_video)
8124
-
8186
+ def video_file_rid(self) -> str:
8187
+ return self._video_file_rid
8125
8188
 
8126
- ingest_api_IngestVideoDestination.__name__ = "IngestVideoDestination"
8127
- ingest_api_IngestVideoDestination.__qualname__ = "IngestVideoDestination"
8128
- ingest_api_IngestVideoDestination.__module__ = "nominal_api.ingest_api"
8129
-
8130
-
8131
- class ingest_api_IngestVideoDestinationVisitor:
8132
-
8133
- @abstractmethod
8134
- def _new_video(self, new_video: "ingest_api_NewVideoIngestDestination") -> Any:
8135
- pass
8189
+ @builtins.property
8190
+ def video_rid(self) -> str:
8191
+ return self._video_rid
8136
8192
 
8137
8193
 
8138
- ingest_api_IngestVideoDestinationVisitor.__name__ = "IngestVideoDestinationVisitor"
8139
- ingest_api_IngestVideoDestinationVisitor.__qualname__ = "IngestVideoDestinationVisitor"
8140
- ingest_api_IngestVideoDestinationVisitor.__module__ = "nominal_api.ingest_api"
8194
+ ingest_api_IngestVideoFileDetails.__name__ = "IngestVideoFileDetails"
8195
+ ingest_api_IngestVideoFileDetails.__qualname__ = "IngestVideoFileDetails"
8196
+ ingest_api_IngestVideoFileDetails.__module__ = "nominal_api.ingest_api"
8141
8197
 
8142
8198
 
8143
8199
  class ingest_api_IngestVideoRequest(ConjureBeanType):
@@ -8198,18 +8254,30 @@ class ingest_api_IngestVideoResponse(ConjureBeanType):
8198
8254
  @builtins.classmethod
8199
8255
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
8200
8256
  return {
8201
- 'video_rid': ConjureFieldDefinition('videoRid', api_rids_VideoRid)
8257
+ 'video_rid': ConjureFieldDefinition('videoRid', api_rids_VideoRid),
8258
+ 'video_file_rid': ConjureFieldDefinition('videoFileRid', api_rids_VideoFileRid),
8259
+ 'async_handle': ConjureFieldDefinition('asyncHandle', OptionalTypeWrapper[ingest_api_AsyncHandle])
8202
8260
  }
8203
8261
 
8204
- __slots__: List[str] = ['_video_rid']
8262
+ __slots__: List[str] = ['_video_rid', '_video_file_rid', '_async_handle']
8205
8263
 
8206
- def __init__(self, video_rid: str) -> None:
8264
+ def __init__(self, video_file_rid: str, video_rid: str, async_handle: Optional["ingest_api_AsyncHandle"] = None) -> None:
8207
8265
  self._video_rid = video_rid
8266
+ self._video_file_rid = video_file_rid
8267
+ self._async_handle = async_handle
8208
8268
 
8209
8269
  @builtins.property
8210
8270
  def video_rid(self) -> str:
8211
8271
  return self._video_rid
8212
8272
 
8273
+ @builtins.property
8274
+ def video_file_rid(self) -> str:
8275
+ return self._video_file_rid
8276
+
8277
+ @builtins.property
8278
+ def async_handle(self) -> Optional["ingest_api_AsyncHandle"]:
8279
+ return self._async_handle
8280
+
8213
8281
 
8214
8282
  ingest_api_IngestVideoResponse.__name__ = "IngestVideoResponse"
8215
8283
  ingest_api_IngestVideoResponse.__qualname__ = "IngestVideoResponse"
@@ -8630,14 +8698,16 @@ class ingest_api_McapIngestionOutput(ConjureBeanType):
8630
8698
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
8631
8699
  return {
8632
8700
  'source': ConjureFieldDefinition('source', ingest_api_McapSource),
8633
- 'target': ConjureFieldDefinition('target', ingest_api_McapDestination)
8701
+ 'target': ConjureFieldDefinition('target', ingest_api_McapDestination),
8702
+ 'video_file_rid': ConjureFieldDefinition('videoFileRid', OptionalTypeWrapper[api_rids_VideoFileRid])
8634
8703
  }
8635
8704
 
8636
- __slots__: List[str] = ['_source', '_target']
8705
+ __slots__: List[str] = ['_source', '_target', '_video_file_rid']
8637
8706
 
8638
- def __init__(self, source: "ingest_api_McapSource", target: "ingest_api_McapDestination") -> None:
8707
+ def __init__(self, source: "ingest_api_McapSource", target: "ingest_api_McapDestination", video_file_rid: Optional[str] = None) -> None:
8639
8708
  self._source = source
8640
8709
  self._target = target
8710
+ self._video_file_rid = video_file_rid
8641
8711
 
8642
8712
  @builtins.property
8643
8713
  def source(self) -> "ingest_api_McapSource":
@@ -8647,6 +8717,14 @@ class ingest_api_McapIngestionOutput(ConjureBeanType):
8647
8717
  def target(self) -> "ingest_api_McapDestination":
8648
8718
  return self._target
8649
8719
 
8720
+ @builtins.property
8721
+ def video_file_rid(self) -> Optional[str]:
8722
+ """
8723
+ If the destination points to a video, this will be populated with the video file
8724
+ populated during ingestion.
8725
+ """
8726
+ return self._video_file_rid
8727
+
8650
8728
 
8651
8729
  ingest_api_McapIngestionOutput.__name__ = "McapIngestionOutput"
8652
8730
  ingest_api_McapIngestionOutput.__qualname__ = "McapIngestionOutput"
@@ -8961,35 +9039,57 @@ class ingest_api_NewVideoIngestDestination(ConjureBeanType):
8961
9039
  @builtins.classmethod
8962
9040
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
8963
9041
  return {
9042
+ 'title': ConjureFieldDefinition('title', OptionalTypeWrapper[str]),
9043
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
8964
9044
  'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue]),
8965
9045
  'labels': ConjureFieldDefinition('labels', List[api_Label]),
8966
- 'title': ConjureFieldDefinition('title', OptionalTypeWrapper[str]),
8967
- 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str])
9046
+ 'video_file_details': ConjureFieldDefinition('videoFileDetails', OptionalTypeWrapper[ingest_api_VideoFileIngestDetails])
8968
9047
  }
8969
9048
 
8970
- __slots__: List[str] = ['_properties', '_labels', '_title', '_description']
9049
+ __slots__: List[str] = ['_title', '_description', '_properties', '_labels', '_video_file_details']
8971
9050
 
8972
- def __init__(self, labels: List[str], properties: Dict[str, str], description: Optional[str] = None, title: Optional[str] = None) -> None:
8973
- self._properties = properties
8974
- self._labels = labels
9051
+ def __init__(self, labels: List[str], properties: Dict[str, str], description: Optional[str] = None, title: Optional[str] = None, video_file_details: Optional["ingest_api_VideoFileIngestDetails"] = None) -> None:
8975
9052
  self._title = title
8976
9053
  self._description = description
9054
+ self._properties = properties
9055
+ self._labels = labels
9056
+ self._video_file_details = video_file_details
9057
+
9058
+ @builtins.property
9059
+ def title(self) -> Optional[str]:
9060
+ """
9061
+ Title of the Video that will get created.
9062
+ If not provided, a name is deduced from the ingested file.
9063
+ """
9064
+ return self._title
9065
+
9066
+ @builtins.property
9067
+ def description(self) -> Optional[str]:
9068
+ """
9069
+ Description that is applied to the newly created video
9070
+ """
9071
+ return self._description
8977
9072
 
8978
9073
  @builtins.property
8979
9074
  def properties(self) -> Dict[str, str]:
9075
+ """
9076
+ Key-Value properties that are applied to the newly created video
9077
+ """
8980
9078
  return self._properties
8981
9079
 
8982
9080
  @builtins.property
8983
9081
  def labels(self) -> List[str]:
9082
+ """
9083
+ Labels that are applied to the newly created video
9084
+ """
8984
9085
  return self._labels
8985
9086
 
8986
9087
  @builtins.property
8987
- def title(self) -> Optional[str]:
8988
- return self._title
8989
-
8990
- @builtins.property
8991
- def description(self) -> Optional[str]:
8992
- return self._description
9088
+ def video_file_details(self) -> Optional["ingest_api_VideoFileIngestDetails"]:
9089
+ """
9090
+ Metadata to associate with any created video file
9091
+ """
9092
+ return self._video_file_details
8993
9093
 
8994
9094
 
8995
9095
  ingest_api_NewVideoIngestDestination.__name__ = "NewVideoIngestDestination"
@@ -9672,6 +9772,163 @@ ingest_api_UtcTimestamp.__qualname__ = "UtcTimestamp"
9672
9772
  ingest_api_UtcTimestamp.__module__ = "nominal_api.ingest_api"
9673
9773
 
9674
9774
 
9775
+ class ingest_api_VideoFileIngestDetails(ConjureBeanType):
9776
+
9777
+ @builtins.classmethod
9778
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
9779
+ return {
9780
+ 'file_description': ConjureFieldDefinition('fileDescription', OptionalTypeWrapper[str]),
9781
+ 'file_properties': ConjureFieldDefinition('fileProperties', Dict[api_PropertyName, api_PropertyValue]),
9782
+ 'file_labels': ConjureFieldDefinition('fileLabels', List[api_Label])
9783
+ }
9784
+
9785
+ __slots__: List[str] = ['_file_description', '_file_properties', '_file_labels']
9786
+
9787
+ def __init__(self, file_labels: List[str], file_properties: Dict[str, str], file_description: Optional[str] = None) -> None:
9788
+ self._file_description = file_description
9789
+ self._file_properties = file_properties
9790
+ self._file_labels = file_labels
9791
+
9792
+ @builtins.property
9793
+ def file_description(self) -> Optional[str]:
9794
+ """
9795
+ Description that is applied to the newly created video file.
9796
+ If not provided, defaults to the description used to create the video.
9797
+ """
9798
+ return self._file_description
9799
+
9800
+ @builtins.property
9801
+ def file_properties(self) -> Dict[str, str]:
9802
+ """
9803
+ Key-Value properties that are applied to the newly created video file.
9804
+ """
9805
+ return self._file_properties
9806
+
9807
+ @builtins.property
9808
+ def file_labels(self) -> List[str]:
9809
+ """
9810
+ Labels that are applied to the newly created video file.
9811
+ """
9812
+ return self._file_labels
9813
+
9814
+
9815
+ ingest_api_VideoFileIngestDetails.__name__ = "VideoFileIngestDetails"
9816
+ ingest_api_VideoFileIngestDetails.__qualname__ = "VideoFileIngestDetails"
9817
+ ingest_api_VideoFileIngestDetails.__module__ = "nominal_api.ingest_api"
9818
+
9819
+
9820
+ class ingest_api_VideoIngestTarget(ConjureUnionType):
9821
+ _new: Optional["ingest_api_NewVideoIngestDestination"] = None
9822
+ _existing: Optional["ingest_api_ExistingVideoIngestDestination"] = None
9823
+
9824
+ @builtins.classmethod
9825
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
9826
+ return {
9827
+ 'new': ConjureFieldDefinition('new', ingest_api_NewVideoIngestDestination),
9828
+ 'existing': ConjureFieldDefinition('existing', ingest_api_ExistingVideoIngestDestination)
9829
+ }
9830
+
9831
+ def __init__(
9832
+ self,
9833
+ new: Optional["ingest_api_NewVideoIngestDestination"] = None,
9834
+ existing: Optional["ingest_api_ExistingVideoIngestDestination"] = None,
9835
+ type_of_union: Optional[str] = None
9836
+ ) -> None:
9837
+ if type_of_union is None:
9838
+ if (new is not None) + (existing is not None) != 1:
9839
+ raise ValueError('a union must contain a single member')
9840
+
9841
+ if new is not None:
9842
+ self._new = new
9843
+ self._type = 'new'
9844
+ if existing is not None:
9845
+ self._existing = existing
9846
+ self._type = 'existing'
9847
+
9848
+ elif type_of_union == 'new':
9849
+ if new is None:
9850
+ raise ValueError('a union value must not be None')
9851
+ self._new = new
9852
+ self._type = 'new'
9853
+ elif type_of_union == 'existing':
9854
+ if existing is None:
9855
+ raise ValueError('a union value must not be None')
9856
+ self._existing = existing
9857
+ self._type = 'existing'
9858
+
9859
+ @builtins.property
9860
+ def new(self) -> Optional["ingest_api_NewVideoIngestDestination"]:
9861
+ return self._new
9862
+
9863
+ @builtins.property
9864
+ def existing(self) -> Optional["ingest_api_ExistingVideoIngestDestination"]:
9865
+ return self._existing
9866
+
9867
+ def accept(self, visitor) -> Any:
9868
+ if not isinstance(visitor, ingest_api_VideoIngestTargetVisitor):
9869
+ raise ValueError('{} is not an instance of ingest_api_VideoIngestTargetVisitor'.format(visitor.__class__.__name__))
9870
+ if self._type == 'new' and self.new is not None:
9871
+ return visitor._new(self.new)
9872
+ if self._type == 'existing' and self.existing is not None:
9873
+ return visitor._existing(self.existing)
9874
+
9875
+
9876
+ ingest_api_VideoIngestTarget.__name__ = "VideoIngestTarget"
9877
+ ingest_api_VideoIngestTarget.__qualname__ = "VideoIngestTarget"
9878
+ ingest_api_VideoIngestTarget.__module__ = "nominal_api.ingest_api"
9879
+
9880
+
9881
+ class ingest_api_VideoIngestTargetVisitor:
9882
+
9883
+ @abstractmethod
9884
+ def _new(self, new: "ingest_api_NewVideoIngestDestination") -> Any:
9885
+ pass
9886
+
9887
+ @abstractmethod
9888
+ def _existing(self, existing: "ingest_api_ExistingVideoIngestDestination") -> Any:
9889
+ pass
9890
+
9891
+
9892
+ ingest_api_VideoIngestTargetVisitor.__name__ = "VideoIngestTargetVisitor"
9893
+ ingest_api_VideoIngestTargetVisitor.__qualname__ = "VideoIngestTargetVisitor"
9894
+ ingest_api_VideoIngestTargetVisitor.__module__ = "nominal_api.ingest_api"
9895
+
9896
+
9897
+ class ingest_api_VideoOpts(ConjureBeanType):
9898
+
9899
+ @builtins.classmethod
9900
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
9901
+ return {
9902
+ 'source': ConjureFieldDefinition('source', ingest_api_IngestSource),
9903
+ 'target': ConjureFieldDefinition('target', ingest_api_VideoIngestTarget),
9904
+ 'timestamp_manifest': ConjureFieldDefinition('timestampManifest', scout_video_api_VideoFileTimestampManifest)
9905
+ }
9906
+
9907
+ __slots__: List[str] = ['_source', '_target', '_timestamp_manifest']
9908
+
9909
+ def __init__(self, source: "ingest_api_IngestSource", target: "ingest_api_VideoIngestTarget", timestamp_manifest: "scout_video_api_VideoFileTimestampManifest") -> None:
9910
+ self._source = source
9911
+ self._target = target
9912
+ self._timestamp_manifest = timestamp_manifest
9913
+
9914
+ @builtins.property
9915
+ def source(self) -> "ingest_api_IngestSource":
9916
+ return self._source
9917
+
9918
+ @builtins.property
9919
+ def target(self) -> "ingest_api_VideoIngestTarget":
9920
+ return self._target
9921
+
9922
+ @builtins.property
9923
+ def timestamp_manifest(self) -> "scout_video_api_VideoFileTimestampManifest":
9924
+ return self._timestamp_manifest
9925
+
9926
+
9927
+ ingest_api_VideoOpts.__name__ = "VideoOpts"
9928
+ ingest_api_VideoOpts.__qualname__ = "VideoOpts"
9929
+ ingest_api_VideoOpts.__module__ = "nominal_api.ingest_api"
9930
+
9931
+
9675
9932
  class ingest_api_VideoTimestampManifest(ConjureUnionType):
9676
9933
  _no_manifest: Optional["ingest_api_NoTimestampManifest"] = None
9677
9934
  _timestamp_manifests: Optional["ingest_api_TimestampManifest"] = None
@@ -61811,7 +62068,7 @@ class scout_video_VideoSegmentService(Service):
61811
62068
  at the segment-level.
61812
62069
  """
61813
62070
 
61814
- def create_segments(self, auth_header: str, request: "scout_video_api_CreateSegmentsRequest", video_rid: str) -> "scout_video_api_CreateSegmentsResponse":
62071
+ def create_segments(self, auth_header: str, request: "scout_video_api_CreateSegmentsRequest", video_rid: str) -> None:
61815
62072
 
61816
62073
  _headers: Dict[str, Any] = {
61817
62074
  'Accept': 'application/json',
@@ -61831,6 +62088,36 @@ at the segment-level.
61831
62088
  _path = '/video/v1/videos/{videoRid}/create-segments'
61832
62089
  _path = _path.format(**_path_params)
61833
62090
 
62091
+ _response: Response = self._request(
62092
+ 'POST',
62093
+ self._uri + _path,
62094
+ params=_params,
62095
+ headers=_headers,
62096
+ json=_json)
62097
+
62098
+ return
62099
+
62100
+ def create_video_file_segments(self, auth_header: str, request: "scout_video_api_CreateSegmentsRequest", video_file_rid: str, video_rid: str) -> "scout_video_api_CreateSegmentsResponse":
62101
+
62102
+ _headers: Dict[str, Any] = {
62103
+ 'Accept': 'application/json',
62104
+ 'Content-Type': 'application/json',
62105
+ 'Authorization': auth_header,
62106
+ }
62107
+
62108
+ _params: Dict[str, Any] = {
62109
+ }
62110
+
62111
+ _path_params: Dict[str, Any] = {
62112
+ 'videoRid': video_rid,
62113
+ 'videoFileRid': video_file_rid,
62114
+ }
62115
+
62116
+ _json: Any = ConjureEncoder().default(request)
62117
+
62118
+ _path = '/video/v1/videos/{videoRid}/{videoFileRid}/create-segments'
62119
+ _path = _path.format(**_path_params)
62120
+
61834
62121
  _response: Response = self._request(
61835
62122
  'POST',
61836
62123
  self._uri + _path,
@@ -20,6 +20,7 @@ from .._impl import (
20
20
  ingest_api_DeprecatedTriggerIngest as DeprecatedTriggerIngest,
21
21
  ingest_api_EpochTimestamp as EpochTimestamp,
22
22
  ingest_api_ExistingDatasetIngestDestination as ExistingDatasetIngestDestination,
23
+ ingest_api_ExistingVideoIngestDestination as ExistingVideoIngestDestination,
23
24
  ingest_api_GcsIngestSource as GcsIngestSource,
24
25
  ingest_api_IngestDataSource as IngestDataSource,
25
26
  ingest_api_IngestDataSourceVisitor as IngestDataSourceVisitor,
@@ -43,8 +44,7 @@ from .._impl import (
43
44
  ingest_api_IngestSourceMetadata as IngestSourceMetadata,
44
45
  ingest_api_IngestSourceVisitor as IngestSourceVisitor,
45
46
  ingest_api_IngestStatus as IngestStatus,
46
- ingest_api_IngestVideoDestination as IngestVideoDestination,
47
- ingest_api_IngestVideoDestinationVisitor as IngestVideoDestinationVisitor,
47
+ ingest_api_IngestVideoFileDetails as IngestVideoFileDetails,
48
48
  ingest_api_IngestVideoRequest as IngestVideoRequest,
49
49
  ingest_api_IngestVideoResponse as IngestVideoResponse,
50
50
  ingest_api_InitiateMultipartUploadRequest as InitiateMultipartUploadRequest,
@@ -90,6 +90,10 @@ from .._impl import (
90
90
  ingest_api_TriggerIngest as TriggerIngest,
91
91
  ingest_api_TriggeredIngest as TriggeredIngest,
92
92
  ingest_api_UtcTimestamp as UtcTimestamp,
93
+ ingest_api_VideoFileIngestDetails as VideoFileIngestDetails,
94
+ ingest_api_VideoIngestTarget as VideoIngestTarget,
95
+ ingest_api_VideoIngestTargetVisitor as VideoIngestTargetVisitor,
96
+ ingest_api_VideoOpts as VideoOpts,
93
97
  ingest_api_VideoTimestampManifest as VideoTimestampManifest,
94
98
  ingest_api_VideoTimestampManifestVisitor as VideoTimestampManifestVisitor,
95
99
  )
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: nominal-api
3
- Version: 0.565.1
3
+ Version: 0.567.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.565.1',
9
+ version='0.567.0',
10
10
  python_requires='>=3.8',
11
11
  package_data={"": ["py.typed"]},
12
12
  packages=find_packages(),
File without changes