nominal-api 0.653.0__tar.gz → 0.655.0__tar.gz

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

Potentially problematic release.


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

Files changed (82) hide show
  1. {nominal_api-0.653.0 → nominal_api-0.655.0}/PKG-INFO +1 -1
  2. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/__init__.py +1 -1
  3. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/_impl.py +565 -30
  4. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/event/__init__.py +1 -0
  5. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/ingest_api/__init__.py +7 -0
  6. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/ingest_workflow_api/__init__.py +3 -0
  7. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api.egg-info/PKG-INFO +1 -1
  8. {nominal_api-0.653.0 → nominal_api-0.655.0}/setup.py +1 -1
  9. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/api/__init__.py +0 -0
  10. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/api_ids/__init__.py +0 -0
  11. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/api_rids/__init__.py +0 -0
  12. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/attachments_api/__init__.py +0 -0
  13. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/authentication_api/__init__.py +0 -0
  14. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/authorization/__init__.py +0 -0
  15. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/comments_api/__init__.py +0 -0
  16. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/connect_download/__init__.py +0 -0
  17. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/datasource/__init__.py +0 -0
  18. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/datasource_api/__init__.py +0 -0
  19. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/datasource_logset/__init__.py +0 -0
  20. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/datasource_logset_api/__init__.py +0 -0
  21. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/datasource_pagination_api/__init__.py +0 -0
  22. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/persistent_compute_api/__init__.py +0 -0
  23. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/py.typed +0 -0
  24. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout/__init__.py +0 -0
  25. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_api/__init__.py +0 -0
  26. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_asset_api/__init__.py +0 -0
  27. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_assets/__init__.py +0 -0
  28. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_catalog/__init__.py +0 -0
  29. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_channelvariables_api/__init__.py +0 -0
  30. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_chart_api/__init__.py +0 -0
  31. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_chartdefinition_api/__init__.py +0 -0
  32. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_checklistexecution_api/__init__.py +0 -0
  33. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_checks_api/__init__.py +0 -0
  34. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_comparisonnotebook_api/__init__.py +0 -0
  35. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_comparisonrun_api/__init__.py +0 -0
  36. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_compute_api/__init__.py +0 -0
  37. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_compute_api_deprecated/__init__.py +0 -0
  38. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_compute_resolved_api/__init__.py +0 -0
  39. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_dataexport_api/__init__.py +0 -0
  40. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_datareview_api/__init__.py +0 -0
  41. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_datasource/__init__.py +0 -0
  42. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_datasource_connection/__init__.py +0 -0
  43. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_datasource_connection_api/__init__.py +0 -0
  44. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_datasource_connection_api_influx/__init__.py +0 -0
  45. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_favorites/__init__.py +0 -0
  46. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_favorites_api/__init__.py +0 -0
  47. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_integrations_api/__init__.py +0 -0
  48. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_internal_search_api/__init__.py +0 -0
  49. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_jobs_api/__init__.py +0 -0
  50. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_layout_api/__init__.py +0 -0
  51. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_metadata/__init__.py +0 -0
  52. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_notebook_api/__init__.py +0 -0
  53. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_plotting/__init__.py +0 -0
  54. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_rids_api/__init__.py +0 -0
  55. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_run_api/__init__.py +0 -0
  56. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_template_api/__init__.py +0 -0
  57. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_units_api/__init__.py +0 -0
  58. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_versioning_api/__init__.py +0 -0
  59. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_video/__init__.py +0 -0
  60. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_video_api/__init__.py +0 -0
  61. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/scout_workbookcommon_api/__init__.py +0 -0
  62. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/secrets_api/__init__.py +0 -0
  63. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/security_api_workspace/__init__.py +0 -0
  64. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/storage_datasource_api/__init__.py +0 -0
  65. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/storage_deletion_api/__init__.py +0 -0
  66. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/storage_series_api/__init__.py +0 -0
  67. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/storage_writer_api/__init__.py +0 -0
  68. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/themes_api/__init__.py +0 -0
  69. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/timeseries_archetype/__init__.py +0 -0
  70. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/timeseries_archetype_api/__init__.py +0 -0
  71. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/timeseries_channelmetadata/__init__.py +0 -0
  72. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/timeseries_channelmetadata_api/__init__.py +0 -0
  73. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/timeseries_logicalseries/__init__.py +0 -0
  74. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/timeseries_logicalseries_api/__init__.py +0 -0
  75. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/timeseries_seriescache/__init__.py +0 -0
  76. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/timeseries_seriescache_api/__init__.py +0 -0
  77. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api/upload_api/__init__.py +0 -0
  78. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api.egg-info/SOURCES.txt +0 -0
  79. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api.egg-info/dependency_links.txt +0 -0
  80. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api.egg-info/requires.txt +0 -0
  81. {nominal_api-0.653.0 → nominal_api-0.655.0}/nominal_api.egg-info/top_level.txt +0 -0
  82. {nominal_api-0.653.0 → nominal_api-0.655.0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal-api
3
- Version: 0.653.0
3
+ Version: 0.655.0
4
4
  Requires-Python: >=3.8
5
5
  Requires-Dist: requests
6
6
  Requires-Dist: conjure-python-client<3,>=2.8.0
@@ -75,5 +75,5 @@ __all__ = [
75
75
 
76
76
  __conjure_generator_version__ = "4.9.0"
77
77
 
78
- __version__ = "0.653.0"
78
+ __version__ = "0.655.0"
79
79
 
@@ -6313,6 +6313,28 @@ event_GetEvents.__qualname__ = "GetEvents"
6313
6313
  event_GetEvents.__module__ = "nominal_api.event"
6314
6314
 
6315
6315
 
6316
+ class event_SearchEventOriginType(ConjureEnumType):
6317
+
6318
+ WORKBOOK = 'WORKBOOK'
6319
+ '''WORKBOOK'''
6320
+ TEMPLATE = 'TEMPLATE'
6321
+ '''TEMPLATE'''
6322
+ API = 'API'
6323
+ '''API'''
6324
+ DATA_REVIEW = 'DATA_REVIEW'
6325
+ '''DATA_REVIEW'''
6326
+ UNKNOWN = 'UNKNOWN'
6327
+ '''UNKNOWN'''
6328
+
6329
+ def __reduce_ex__(self, proto):
6330
+ return self.__class__, (self.name,)
6331
+
6332
+
6333
+ event_SearchEventOriginType.__name__ = "SearchEventOriginType"
6334
+ event_SearchEventOriginType.__qualname__ = "SearchEventOriginType"
6335
+ event_SearchEventOriginType.__module__ = "nominal_api.event"
6336
+
6337
+
6316
6338
  class event_SearchEventsRequest(ConjureBeanType):
6317
6339
 
6318
6340
  @builtins.classmethod
@@ -6400,6 +6422,15 @@ class event_SearchQuery(ConjureUnionType):
6400
6422
  _after: Optional["api_Timestamp"] = None
6401
6423
  _before: Optional["api_Timestamp"] = None
6402
6424
  _asset: Optional[str] = None
6425
+ _template: Optional[str] = None
6426
+ _workbook: Optional[str] = None
6427
+ _data_review: Optional[str] = None
6428
+ _origin_type: Optional["event_SearchEventOriginType"] = None
6429
+ _data_review_check: Optional[str] = None
6430
+ _disposition_status: Optional["event_EventDispositionStatus"] = None
6431
+ _priority: Optional["scout_api_Priority"] = None
6432
+ _assignee: Optional[str] = None
6433
+ _event_type: Optional["event_EventType"] = None
6403
6434
  _label: Optional[str] = None
6404
6435
  _property: Optional["api_Property"] = None
6405
6436
  _and_: Optional[List["event_SearchQuery"]] = None
@@ -6413,6 +6444,15 @@ class event_SearchQuery(ConjureUnionType):
6413
6444
  'after': ConjureFieldDefinition('after', api_Timestamp),
6414
6445
  'before': ConjureFieldDefinition('before', api_Timestamp),
6415
6446
  'asset': ConjureFieldDefinition('asset', scout_rids_api_AssetRid),
6447
+ 'template': ConjureFieldDefinition('template', scout_rids_api_TemplateRid),
6448
+ 'workbook': ConjureFieldDefinition('workbook', scout_rids_api_NotebookRid),
6449
+ 'data_review': ConjureFieldDefinition('dataReview', scout_rids_api_DataReviewRid),
6450
+ 'origin_type': ConjureFieldDefinition('originType', event_SearchEventOriginType),
6451
+ 'data_review_check': ConjureFieldDefinition('dataReviewCheck', scout_rids_api_CheckRid),
6452
+ 'disposition_status': ConjureFieldDefinition('dispositionStatus', event_EventDispositionStatus),
6453
+ 'priority': ConjureFieldDefinition('priority', scout_api_Priority),
6454
+ 'assignee': ConjureFieldDefinition('assignee', scout_rids_api_UserRid),
6455
+ 'event_type': ConjureFieldDefinition('eventType', event_EventType),
6416
6456
  'label': ConjureFieldDefinition('label', api_Label),
6417
6457
  'property': ConjureFieldDefinition('property', api_Property),
6418
6458
  'and_': ConjureFieldDefinition('and', List[event_SearchQuery]),
@@ -6426,6 +6466,15 @@ class event_SearchQuery(ConjureUnionType):
6426
6466
  after: Optional["api_Timestamp"] = None,
6427
6467
  before: Optional["api_Timestamp"] = None,
6428
6468
  asset: Optional[str] = None,
6469
+ template: Optional[str] = None,
6470
+ workbook: Optional[str] = None,
6471
+ data_review: Optional[str] = None,
6472
+ origin_type: Optional["event_SearchEventOriginType"] = None,
6473
+ data_review_check: Optional[str] = None,
6474
+ disposition_status: Optional["event_EventDispositionStatus"] = None,
6475
+ priority: Optional["scout_api_Priority"] = None,
6476
+ assignee: Optional[str] = None,
6477
+ event_type: Optional["event_EventType"] = None,
6429
6478
  label: Optional[str] = None,
6430
6479
  property: Optional["api_Property"] = None,
6431
6480
  and_: Optional[List["event_SearchQuery"]] = None,
@@ -6434,7 +6483,7 @@ class event_SearchQuery(ConjureUnionType):
6434
6483
  type_of_union: Optional[str] = None
6435
6484
  ) -> None:
6436
6485
  if type_of_union is None:
6437
- if (search_text is not None) + (after is not None) + (before is not None) + (asset is not None) + (label is not None) + (property is not None) + (and_ is not None) + (or_ is not None) + (workspace is not None) != 1:
6486
+ if (search_text is not None) + (after is not None) + (before is not None) + (asset is not None) + (template is not None) + (workbook is not None) + (data_review is not None) + (origin_type is not None) + (data_review_check is not None) + (disposition_status is not None) + (priority is not None) + (assignee is not None) + (event_type is not None) + (label is not None) + (property is not None) + (and_ is not None) + (or_ is not None) + (workspace is not None) != 1:
6438
6487
  raise ValueError('a union must contain a single member')
6439
6488
 
6440
6489
  if search_text is not None:
@@ -6449,6 +6498,33 @@ class event_SearchQuery(ConjureUnionType):
6449
6498
  if asset is not None:
6450
6499
  self._asset = asset
6451
6500
  self._type = 'asset'
6501
+ if template is not None:
6502
+ self._template = template
6503
+ self._type = 'template'
6504
+ if workbook is not None:
6505
+ self._workbook = workbook
6506
+ self._type = 'workbook'
6507
+ if data_review is not None:
6508
+ self._data_review = data_review
6509
+ self._type = 'dataReview'
6510
+ if origin_type is not None:
6511
+ self._origin_type = origin_type
6512
+ self._type = 'originType'
6513
+ if data_review_check is not None:
6514
+ self._data_review_check = data_review_check
6515
+ self._type = 'dataReviewCheck'
6516
+ if disposition_status is not None:
6517
+ self._disposition_status = disposition_status
6518
+ self._type = 'dispositionStatus'
6519
+ if priority is not None:
6520
+ self._priority = priority
6521
+ self._type = 'priority'
6522
+ if assignee is not None:
6523
+ self._assignee = assignee
6524
+ self._type = 'assignee'
6525
+ if event_type is not None:
6526
+ self._event_type = event_type
6527
+ self._type = 'eventType'
6452
6528
  if label is not None:
6453
6529
  self._label = label
6454
6530
  self._type = 'label'
@@ -6485,6 +6561,51 @@ class event_SearchQuery(ConjureUnionType):
6485
6561
  raise ValueError('a union value must not be None')
6486
6562
  self._asset = asset
6487
6563
  self._type = 'asset'
6564
+ elif type_of_union == 'template':
6565
+ if template is None:
6566
+ raise ValueError('a union value must not be None')
6567
+ self._template = template
6568
+ self._type = 'template'
6569
+ elif type_of_union == 'workbook':
6570
+ if workbook is None:
6571
+ raise ValueError('a union value must not be None')
6572
+ self._workbook = workbook
6573
+ self._type = 'workbook'
6574
+ elif type_of_union == 'dataReview':
6575
+ if data_review is None:
6576
+ raise ValueError('a union value must not be None')
6577
+ self._data_review = data_review
6578
+ self._type = 'dataReview'
6579
+ elif type_of_union == 'originType':
6580
+ if origin_type is None:
6581
+ raise ValueError('a union value must not be None')
6582
+ self._origin_type = origin_type
6583
+ self._type = 'originType'
6584
+ elif type_of_union == 'dataReviewCheck':
6585
+ if data_review_check is None:
6586
+ raise ValueError('a union value must not be None')
6587
+ self._data_review_check = data_review_check
6588
+ self._type = 'dataReviewCheck'
6589
+ elif type_of_union == 'dispositionStatus':
6590
+ if disposition_status is None:
6591
+ raise ValueError('a union value must not be None')
6592
+ self._disposition_status = disposition_status
6593
+ self._type = 'dispositionStatus'
6594
+ elif type_of_union == 'priority':
6595
+ if priority is None:
6596
+ raise ValueError('a union value must not be None')
6597
+ self._priority = priority
6598
+ self._type = 'priority'
6599
+ elif type_of_union == 'assignee':
6600
+ if assignee is None:
6601
+ raise ValueError('a union value must not be None')
6602
+ self._assignee = assignee
6603
+ self._type = 'assignee'
6604
+ elif type_of_union == 'eventType':
6605
+ if event_type is None:
6606
+ raise ValueError('a union value must not be None')
6607
+ self._event_type = event_type
6608
+ self._type = 'eventType'
6488
6609
  elif type_of_union == 'label':
6489
6610
  if label is None:
6490
6611
  raise ValueError('a union value must not be None')
@@ -6533,6 +6654,42 @@ class event_SearchQuery(ConjureUnionType):
6533
6654
  def asset(self) -> Optional[str]:
6534
6655
  return self._asset
6535
6656
 
6657
+ @builtins.property
6658
+ def template(self) -> Optional[str]:
6659
+ return self._template
6660
+
6661
+ @builtins.property
6662
+ def workbook(self) -> Optional[str]:
6663
+ return self._workbook
6664
+
6665
+ @builtins.property
6666
+ def data_review(self) -> Optional[str]:
6667
+ return self._data_review
6668
+
6669
+ @builtins.property
6670
+ def origin_type(self) -> Optional["event_SearchEventOriginType"]:
6671
+ return self._origin_type
6672
+
6673
+ @builtins.property
6674
+ def data_review_check(self) -> Optional[str]:
6675
+ return self._data_review_check
6676
+
6677
+ @builtins.property
6678
+ def disposition_status(self) -> Optional["event_EventDispositionStatus"]:
6679
+ return self._disposition_status
6680
+
6681
+ @builtins.property
6682
+ def priority(self) -> Optional["scout_api_Priority"]:
6683
+ return self._priority
6684
+
6685
+ @builtins.property
6686
+ def assignee(self) -> Optional[str]:
6687
+ return self._assignee
6688
+
6689
+ @builtins.property
6690
+ def event_type(self) -> Optional["event_EventType"]:
6691
+ return self._event_type
6692
+
6536
6693
  @builtins.property
6537
6694
  def label(self) -> Optional[str]:
6538
6695
  return self._label
@@ -6564,6 +6721,24 @@ class event_SearchQuery(ConjureUnionType):
6564
6721
  return visitor._before(self.before)
6565
6722
  if self._type == 'asset' and self.asset is not None:
6566
6723
  return visitor._asset(self.asset)
6724
+ if self._type == 'template' and self.template is not None:
6725
+ return visitor._template(self.template)
6726
+ if self._type == 'workbook' and self.workbook is not None:
6727
+ return visitor._workbook(self.workbook)
6728
+ if self._type == 'dataReview' and self.data_review is not None:
6729
+ return visitor._data_review(self.data_review)
6730
+ if self._type == 'originType' and self.origin_type is not None:
6731
+ return visitor._origin_type(self.origin_type)
6732
+ if self._type == 'dataReviewCheck' and self.data_review_check is not None:
6733
+ return visitor._data_review_check(self.data_review_check)
6734
+ if self._type == 'dispositionStatus' and self.disposition_status is not None:
6735
+ return visitor._disposition_status(self.disposition_status)
6736
+ if self._type == 'priority' and self.priority is not None:
6737
+ return visitor._priority(self.priority)
6738
+ if self._type == 'assignee' and self.assignee is not None:
6739
+ return visitor._assignee(self.assignee)
6740
+ if self._type == 'eventType' and self.event_type is not None:
6741
+ return visitor._event_type(self.event_type)
6567
6742
  if self._type == 'label' and self.label is not None:
6568
6743
  return visitor._label(self.label)
6569
6744
  if self._type == 'property' and self.property is not None:
@@ -6599,6 +6774,42 @@ class event_SearchQueryVisitor:
6599
6774
  def _asset(self, asset: str) -> Any:
6600
6775
  pass
6601
6776
 
6777
+ @abstractmethod
6778
+ def _template(self, template: str) -> Any:
6779
+ pass
6780
+
6781
+ @abstractmethod
6782
+ def _workbook(self, workbook: str) -> Any:
6783
+ pass
6784
+
6785
+ @abstractmethod
6786
+ def _data_review(self, data_review: str) -> Any:
6787
+ pass
6788
+
6789
+ @abstractmethod
6790
+ def _origin_type(self, origin_type: "event_SearchEventOriginType") -> Any:
6791
+ pass
6792
+
6793
+ @abstractmethod
6794
+ def _data_review_check(self, data_review_check: str) -> Any:
6795
+ pass
6796
+
6797
+ @abstractmethod
6798
+ def _disposition_status(self, disposition_status: "event_EventDispositionStatus") -> Any:
6799
+ pass
6800
+
6801
+ @abstractmethod
6802
+ def _priority(self, priority: "scout_api_Priority") -> Any:
6803
+ pass
6804
+
6805
+ @abstractmethod
6806
+ def _assignee(self, assignee: str) -> Any:
6807
+ pass
6808
+
6809
+ @abstractmethod
6810
+ def _event_type(self, event_type: "event_EventType") -> Any:
6811
+ pass
6812
+
6602
6813
  @abstractmethod
6603
6814
  def _label(self, label: str) -> Any:
6604
6815
  pass
@@ -6629,6 +6840,16 @@ class event_SortField(ConjureEnumType):
6629
6840
 
6630
6841
  START_TIME = 'START_TIME'
6631
6842
  '''START_TIME'''
6843
+ END_TIME = 'END_TIME'
6844
+ '''END_TIME'''
6845
+ DURATION = 'DURATION'
6846
+ '''DURATION'''
6847
+ DISPOSITION_STATUS = 'DISPOSITION_STATUS'
6848
+ '''DISPOSITION_STATUS'''
6849
+ PRIORITY = 'PRIORITY'
6850
+ '''PRIORITY'''
6851
+ EVENT_NAME = 'EVENT_NAME'
6852
+ '''EVENT_NAME'''
6632
6853
  UNKNOWN = 'UNKNOWN'
6633
6854
  '''UNKNOWN'''
6634
6855
 
@@ -7400,16 +7621,16 @@ class ingest_api_ContainerizedOpts(ConjureBeanType):
7400
7621
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
7401
7622
  return {
7402
7623
  'sources': ConjureFieldDefinition('sources', Dict[ingest_api_EnvironmentVariable, ingest_api_IngestSource]),
7403
- 'extractor': ConjureFieldDefinition('extractor', ingest_api_ContainerizedExtractorRid),
7624
+ 'extractor_rid': ConjureFieldDefinition('extractorRid', ingest_api_ContainerizedExtractorRid),
7404
7625
  'tag': ConjureFieldDefinition('tag', OptionalTypeWrapper[str]),
7405
7626
  'target': ConjureFieldDefinition('target', ingest_api_DatasetIngestTarget)
7406
7627
  }
7407
7628
 
7408
- __slots__: List[str] = ['_sources', '_extractor', '_tag', '_target']
7629
+ __slots__: List[str] = ['_sources', '_extractor_rid', '_tag', '_target']
7409
7630
 
7410
- def __init__(self, extractor: str, sources: Dict[str, "ingest_api_IngestSource"], target: "ingest_api_DatasetIngestTarget", tag: Optional[str] = None) -> None:
7631
+ def __init__(self, extractor_rid: str, sources: Dict[str, "ingest_api_IngestSource"], target: "ingest_api_DatasetIngestTarget", tag: Optional[str] = None) -> None:
7411
7632
  self._sources = sources
7412
- self._extractor = extractor
7633
+ self._extractor_rid = extractor_rid
7413
7634
  self._tag = tag
7414
7635
  self._target = target
7415
7636
 
@@ -7418,8 +7639,8 @@ class ingest_api_ContainerizedOpts(ConjureBeanType):
7418
7639
  return self._sources
7419
7640
 
7420
7641
  @builtins.property
7421
- def extractor(self) -> str:
7422
- return self._extractor
7642
+ def extractor_rid(self) -> str:
7643
+ return self._extractor_rid
7423
7644
 
7424
7645
  @builtins.property
7425
7646
  def tag(self) -> Optional[str]:
@@ -8007,16 +8228,18 @@ class ingest_api_FileExtractionInput(ConjureBeanType):
8007
8228
  'environment_variable': ConjureFieldDefinition('environmentVariable', ingest_api_EnvironmentVariable),
8008
8229
  'name': ConjureFieldDefinition('name', str),
8009
8230
  'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
8010
- 'regex': ConjureFieldDefinition('regex', OptionalTypeWrapper[str])
8231
+ 'file_filters': ConjureFieldDefinition('fileFilters', List[ingest_api_FileFilter]),
8232
+ 'required': ConjureFieldDefinition('required', OptionalTypeWrapper[bool])
8011
8233
  }
8012
8234
 
8013
- __slots__: List[str] = ['_environment_variable', '_name', '_description', '_regex']
8235
+ __slots__: List[str] = ['_environment_variable', '_name', '_description', '_file_filters', '_required']
8014
8236
 
8015
- def __init__(self, environment_variable: str, name: str, description: Optional[str] = None, regex: Optional[str] = None) -> None:
8237
+ def __init__(self, environment_variable: str, file_filters: List["ingest_api_FileFilter"], name: str, description: Optional[str] = None, required: Optional[bool] = None) -> None:
8016
8238
  self._environment_variable = environment_variable
8017
8239
  self._name = name
8018
8240
  self._description = description
8019
- self._regex = regex
8241
+ self._file_filters = file_filters
8242
+ self._required = required
8020
8243
 
8021
8244
  @builtins.property
8022
8245
  def environment_variable(self) -> str:
@@ -8040,11 +8263,18 @@ class ingest_api_FileExtractionInput(ConjureBeanType):
8040
8263
  return self._description
8041
8264
 
8042
8265
  @builtins.property
8043
- def regex(self) -> Optional[str]:
8266
+ def file_filters(self) -> List["ingest_api_FileFilter"]:
8044
8267
  """
8045
- Optionally filter files by regex for file selection. Will not be enforced at runtime, so containers need to handle their own validation.
8268
+ Optionally filter files for file selection
8046
8269
  """
8047
- return self._regex
8270
+ return self._file_filters
8271
+
8272
+ @builtins.property
8273
+ def required(self) -> Optional[bool]:
8274
+ """
8275
+ Whether the input file is required for the extractor to run.
8276
+ """
8277
+ return self._required
8048
8278
 
8049
8279
 
8050
8280
  ingest_api_FileExtractionInput.__name__ = "FileExtractionInput"
@@ -8052,6 +8282,62 @@ ingest_api_FileExtractionInput.__qualname__ = "FileExtractionInput"
8052
8282
  ingest_api_FileExtractionInput.__module__ = "nominal_api.ingest_api"
8053
8283
 
8054
8284
 
8285
+ class ingest_api_FileFilter(ConjureUnionType):
8286
+ _suffix: Optional[str] = None
8287
+
8288
+ @builtins.classmethod
8289
+ def _options(cls) -> Dict[str, ConjureFieldDefinition]:
8290
+ return {
8291
+ 'suffix': ConjureFieldDefinition('suffix', ingest_api_FileSuffix)
8292
+ }
8293
+
8294
+ def __init__(
8295
+ self,
8296
+ suffix: Optional[str] = None,
8297
+ type_of_union: Optional[str] = None
8298
+ ) -> None:
8299
+ if type_of_union is None:
8300
+ if (suffix is not None) != 1:
8301
+ raise ValueError('a union must contain a single member')
8302
+
8303
+ if suffix is not None:
8304
+ self._suffix = suffix
8305
+ self._type = 'suffix'
8306
+
8307
+ elif type_of_union == 'suffix':
8308
+ if suffix is None:
8309
+ raise ValueError('a union value must not be None')
8310
+ self._suffix = suffix
8311
+ self._type = 'suffix'
8312
+
8313
+ @builtins.property
8314
+ def suffix(self) -> Optional[str]:
8315
+ return self._suffix
8316
+
8317
+ def accept(self, visitor) -> Any:
8318
+ if not isinstance(visitor, ingest_api_FileFilterVisitor):
8319
+ raise ValueError('{} is not an instance of ingest_api_FileFilterVisitor'.format(visitor.__class__.__name__))
8320
+ if self._type == 'suffix' and self.suffix is not None:
8321
+ return visitor._suffix(self.suffix)
8322
+
8323
+
8324
+ ingest_api_FileFilter.__name__ = "FileFilter"
8325
+ ingest_api_FileFilter.__qualname__ = "FileFilter"
8326
+ ingest_api_FileFilter.__module__ = "nominal_api.ingest_api"
8327
+
8328
+
8329
+ class ingest_api_FileFilterVisitor:
8330
+
8331
+ @abstractmethod
8332
+ def _suffix(self, suffix: str) -> Any:
8333
+ pass
8334
+
8335
+
8336
+ ingest_api_FileFilterVisitor.__name__ = "FileFilterVisitor"
8337
+ ingest_api_FileFilterVisitor.__qualname__ = "FileFilterVisitor"
8338
+ ingest_api_FileFilterVisitor.__module__ = "nominal_api.ingest_api"
8339
+
8340
+
8055
8341
  class ingest_api_GcsIngestSource(ConjureBeanType):
8056
8342
 
8057
8343
  @builtins.classmethod
@@ -8513,6 +8799,43 @@ ingest_api_IngestMcapResponse.__qualname__ = "IngestMcapResponse"
8513
8799
  ingest_api_IngestMcapResponse.__module__ = "nominal_api.ingest_api"
8514
8800
 
8515
8801
 
8802
+ class ingest_api_IngestMetadata(ConjureBeanType):
8803
+
8804
+ @builtins.classmethod
8805
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
8806
+ return {
8807
+ 'timestamp_metadata': ConjureFieldDefinition('timestampMetadata', OptionalTypeWrapper[ingest_api_TimestampMetadata]),
8808
+ 'channel_prefix': ConjureFieldDefinition('channelPrefix', OptionalTypeWrapper[str])
8809
+ }
8810
+
8811
+ __slots__: List[str] = ['_timestamp_metadata', '_channel_prefix']
8812
+
8813
+ def __init__(self, channel_prefix: Optional[str] = None, timestamp_metadata: Optional["ingest_api_TimestampMetadata"] = None) -> None:
8814
+ self._timestamp_metadata = timestamp_metadata
8815
+ self._channel_prefix = channel_prefix
8816
+
8817
+ @builtins.property
8818
+ def timestamp_metadata(self) -> Optional["ingest_api_TimestampMetadata"]:
8819
+ """
8820
+ The timestamp metadata will be recovered from the DatasetFiles table if possible.
8821
+ If not found, this field must be populated to successfully reingest.
8822
+ """
8823
+ return self._timestamp_metadata
8824
+
8825
+ @builtins.property
8826
+ def channel_prefix(self) -> Optional[str]:
8827
+ """
8828
+ Channel prefix to use when reingesting the dataset.
8829
+ Defaults to empty string.
8830
+ """
8831
+ return self._channel_prefix
8832
+
8833
+
8834
+ ingest_api_IngestMetadata.__name__ = "IngestMetadata"
8835
+ ingest_api_IngestMetadata.__qualname__ = "IngestMetadata"
8836
+ ingest_api_IngestMetadata.__module__ = "nominal_api.ingest_api"
8837
+
8838
+
8516
8839
  class ingest_api_IngestOptions(ConjureUnionType):
8517
8840
  _dataflash: Optional["ingest_api_DataflashOpts"] = None
8518
8841
  _mcap_protobuf_timeseries: Optional["ingest_api_McapProtobufTimeseriesOpts"] = None
@@ -9163,6 +9486,40 @@ existing one.
9163
9486
  _decoder = ConjureDecoder()
9164
9487
  return _decoder.decode(_response.json(), ingest_api_IngestMcapResponse, self._return_none_for_unknown_union_types)
9165
9488
 
9489
+ def reingest_from_datasets(self, auth_header: str, request: "ingest_api_ReingestDatasetsRequest") -> "ingest_api_ReingestDatasetsResponse":
9490
+ """
9491
+ Re-ingests data from provided source datasets into either an existing target dataset, or a new one.
9492
+ Only supported for CSV and Parquet dataset files.
9493
+ Cannot ingest from streaming (V2) datasets due to data loss for tags and streaming data.
9494
+ """
9495
+
9496
+ _headers: Dict[str, Any] = {
9497
+ 'Accept': 'application/json',
9498
+ 'Content-Type': 'application/json',
9499
+ 'Authorization': auth_header,
9500
+ }
9501
+
9502
+ _params: Dict[str, Any] = {
9503
+ }
9504
+
9505
+ _path_params: Dict[str, Any] = {
9506
+ }
9507
+
9508
+ _json: Any = ConjureEncoder().default(request)
9509
+
9510
+ _path = '/ingest/v1/reingest-dataset'
9511
+ _path = _path.format(**_path_params)
9512
+
9513
+ _response: Response = self._request(
9514
+ 'POST',
9515
+ self._uri + _path,
9516
+ params=_params,
9517
+ headers=_headers,
9518
+ json=_json)
9519
+
9520
+ _decoder = ConjureDecoder()
9521
+ return _decoder.decode(_response.json(), ingest_api_ReingestDatasetsResponse, self._return_none_for_unknown_union_types)
9522
+
9166
9523
 
9167
9524
  ingest_api_IngestService.__name__ = "IngestService"
9168
9525
  ingest_api_IngestService.__qualname__ = "IngestService"
@@ -10571,6 +10928,107 @@ ingest_api_RegisterContainerizedExtractorResponse.__qualname__ = "RegisterContai
10571
10928
  ingest_api_RegisterContainerizedExtractorResponse.__module__ = "nominal_api.ingest_api"
10572
10929
 
10573
10930
 
10931
+ class ingest_api_ReingestDatasetsRequest(ConjureBeanType):
10932
+
10933
+ @builtins.classmethod
10934
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
10935
+ return {
10936
+ 'source_datasets': ConjureFieldDefinition('sourceDatasets', List[api_rids_DatasetRid]),
10937
+ 'target_dataset': ConjureFieldDefinition('targetDataset', ingest_api_DatasetIngestTarget),
10938
+ 'ingest_metadata': ConjureFieldDefinition('ingestMetadata', Dict[api_rids_DatasetRid, ingest_api_IngestMetadata])
10939
+ }
10940
+
10941
+ __slots__: List[str] = ['_source_datasets', '_target_dataset', '_ingest_metadata']
10942
+
10943
+ def __init__(self, ingest_metadata: Dict[str, "ingest_api_IngestMetadata"], source_datasets: List[str], target_dataset: "ingest_api_DatasetIngestTarget") -> None:
10944
+ self._source_datasets = source_datasets
10945
+ self._target_dataset = target_dataset
10946
+ self._ingest_metadata = ingest_metadata
10947
+
10948
+ @builtins.property
10949
+ def source_datasets(self) -> List[str]:
10950
+ """
10951
+ The datasets to reingest data from. Can only include tagless, non-streaming datasets (V1).
10952
+ The datasets must be of the same granularity and must only include CSV or Parquet files.
10953
+ Will attempt to reingest from datasets in list order.
10954
+ """
10955
+ return self._source_datasets
10956
+
10957
+ @builtins.property
10958
+ def target_dataset(self) -> "ingest_api_DatasetIngestTarget":
10959
+ """
10960
+ The dataset to ingest data into. Can either be a new dataset or an existing dataset RID.
10961
+ """
10962
+ return self._target_dataset
10963
+
10964
+ @builtins.property
10965
+ def ingest_metadata(self) -> Dict[str, "ingest_api_IngestMetadata"]:
10966
+ """
10967
+ Mapping of dataset to ingest metadata.
10968
+ Ingest metadata will be recovered from existing files if possible.
10969
+ If unrecoverable, will fall back to ingest metadata provided in this field.
10970
+ """
10971
+ return self._ingest_metadata
10972
+
10973
+
10974
+ ingest_api_ReingestDatasetsRequest.__name__ = "ReingestDatasetsRequest"
10975
+ ingest_api_ReingestDatasetsRequest.__qualname__ = "ReingestDatasetsRequest"
10976
+ ingest_api_ReingestDatasetsRequest.__module__ = "nominal_api.ingest_api"
10977
+
10978
+
10979
+ class ingest_api_ReingestDatasetsResponse(ConjureBeanType):
10980
+ """
10981
+ The response to a reingest request.
10982
+ Maps the source dataset RID and file ID to the destination dataset RID and file ID.
10983
+ """
10984
+
10985
+ @builtins.classmethod
10986
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
10987
+ return {
10988
+ 'datasets': ConjureFieldDefinition('datasets', Dict[api_rids_DatasetRid, ingest_api_ReingestFilesMapping])
10989
+ }
10990
+
10991
+ __slots__: List[str] = ['_datasets']
10992
+
10993
+ def __init__(self, datasets: Dict[str, "ingest_api_ReingestFilesMapping"]) -> None:
10994
+ self._datasets = datasets
10995
+
10996
+ @builtins.property
10997
+ def datasets(self) -> Dict[str, "ingest_api_ReingestFilesMapping"]:
10998
+ return self._datasets
10999
+
11000
+
11001
+ ingest_api_ReingestDatasetsResponse.__name__ = "ReingestDatasetsResponse"
11002
+ ingest_api_ReingestDatasetsResponse.__qualname__ = "ReingestDatasetsResponse"
11003
+ ingest_api_ReingestDatasetsResponse.__module__ = "nominal_api.ingest_api"
11004
+
11005
+
11006
+ class ingest_api_ReingestFilesMapping(ConjureBeanType):
11007
+ """
11008
+ Maps the source dataset file ID to the destination dataset and file ID.
11009
+ """
11010
+
11011
+ @builtins.classmethod
11012
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
11013
+ return {
11014
+ 'file_map': ConjureFieldDefinition('fileMap', Dict[datasource_DatasetFileId, ingest_api_IngestDetails])
11015
+ }
11016
+
11017
+ __slots__: List[str] = ['_file_map']
11018
+
11019
+ def __init__(self, file_map: Dict[str, "ingest_api_IngestDetails"]) -> None:
11020
+ self._file_map = file_map
11021
+
11022
+ @builtins.property
11023
+ def file_map(self) -> Dict[str, "ingest_api_IngestDetails"]:
11024
+ return self._file_map
11025
+
11026
+
11027
+ ingest_api_ReingestFilesMapping.__name__ = "ReingestFilesMapping"
11028
+ ingest_api_ReingestFilesMapping.__qualname__ = "ReingestFilesMapping"
11029
+ ingest_api_ReingestFilesMapping.__module__ = "nominal_api.ingest_api"
11030
+
11031
+
10574
11032
  class ingest_api_RelativeTimestamp(ConjureBeanType):
10575
11033
 
10576
11034
  @builtins.classmethod
@@ -11733,20 +12191,20 @@ class ingest_workflow_api_EnsureExtractorJobCreatedRequest(ConjureBeanType):
11733
12191
  'ingest_job_uuid': ConjureFieldDefinition('ingestJobUuid', str),
11734
12192
  'containerized_extractor': ConjureFieldDefinition('containerizedExtractor', ingest_api_ContainerizedExtractor),
11735
12193
  'tag': ConjureFieldDefinition('tag', str),
11736
- 'source_handles': ConjureFieldDefinition('sourceHandles', Dict[str, scout_catalog_S3Handle]),
12194
+ 'validated_file_inputs': ConjureFieldDefinition('validatedFileInputs', List[ingest_workflow_api_ValidatedFileInput]),
11737
12195
  'multipart_upload_details': ConjureFieldDefinition('multipartUploadDetails', ingest_workflow_api_MultipartUploadDetails),
11738
12196
  'image_pull_secret_name': ConjureFieldDefinition('imagePullSecretName', OptionalTypeWrapper[str])
11739
12197
  }
11740
12198
 
11741
- __slots__: List[str] = ['_bearer_token', '_workspace_rid', '_ingest_job_uuid', '_containerized_extractor', '_tag', '_source_handles', '_multipart_upload_details', '_image_pull_secret_name']
12199
+ __slots__: List[str] = ['_bearer_token', '_workspace_rid', '_ingest_job_uuid', '_containerized_extractor', '_tag', '_validated_file_inputs', '_multipart_upload_details', '_image_pull_secret_name']
11742
12200
 
11743
- def __init__(self, bearer_token: str, containerized_extractor: "ingest_api_ContainerizedExtractor", ingest_job_uuid: str, multipart_upload_details: "ingest_workflow_api_MultipartUploadDetails", source_handles: Dict[str, "scout_catalog_S3Handle"], tag: str, workspace_rid: str, image_pull_secret_name: Optional[str] = None) -> None:
12201
+ def __init__(self, bearer_token: str, containerized_extractor: "ingest_api_ContainerizedExtractor", ingest_job_uuid: str, multipart_upload_details: "ingest_workflow_api_MultipartUploadDetails", tag: str, validated_file_inputs: List["ingest_workflow_api_ValidatedFileInput"], workspace_rid: str, image_pull_secret_name: Optional[str] = None) -> None:
11744
12202
  self._bearer_token = bearer_token
11745
12203
  self._workspace_rid = workspace_rid
11746
12204
  self._ingest_job_uuid = ingest_job_uuid
11747
12205
  self._containerized_extractor = containerized_extractor
11748
12206
  self._tag = tag
11749
- self._source_handles = source_handles
12207
+ self._validated_file_inputs = validated_file_inputs
11750
12208
  self._multipart_upload_details = multipart_upload_details
11751
12209
  self._image_pull_secret_name = image_pull_secret_name
11752
12210
 
@@ -11771,8 +12229,8 @@ class ingest_workflow_api_EnsureExtractorJobCreatedRequest(ConjureBeanType):
11771
12229
  return self._tag
11772
12230
 
11773
12231
  @builtins.property
11774
- def source_handles(self) -> Dict[str, "scout_catalog_S3Handle"]:
11775
- return self._source_handles
12232
+ def validated_file_inputs(self) -> List["ingest_workflow_api_ValidatedFileInput"]:
12233
+ return self._validated_file_inputs
11776
12234
 
11777
12235
  @builtins.property
11778
12236
  def multipart_upload_details(self) -> "ingest_workflow_api_MultipartUploadDetails":
@@ -12329,6 +12787,35 @@ ingest_workflow_api_ObjectLocator.__qualname__ = "ObjectLocator"
12329
12787
  ingest_workflow_api_ObjectLocator.__module__ = "nominal_api.ingest_workflow_api"
12330
12788
 
12331
12789
 
12790
+ class ingest_workflow_api_PresignedFileInput(ConjureBeanType):
12791
+
12792
+ @builtins.classmethod
12793
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
12794
+ return {
12795
+ 'url': ConjureFieldDefinition('url', ingest_workflow_api_PresignedUrl),
12796
+ 'input': ConjureFieldDefinition('input', ingest_workflow_api_ValidatedFileInput)
12797
+ }
12798
+
12799
+ __slots__: List[str] = ['_url', '_input']
12800
+
12801
+ def __init__(self, input: "ingest_workflow_api_ValidatedFileInput", url: str) -> None:
12802
+ self._url = url
12803
+ self._input = input
12804
+
12805
+ @builtins.property
12806
+ def url(self) -> str:
12807
+ return self._url
12808
+
12809
+ @builtins.property
12810
+ def input(self) -> "ingest_workflow_api_ValidatedFileInput":
12811
+ return self._input
12812
+
12813
+
12814
+ ingest_workflow_api_PresignedFileInput.__name__ = "PresignedFileInput"
12815
+ ingest_workflow_api_PresignedFileInput.__qualname__ = "PresignedFileInput"
12816
+ ingest_workflow_api_PresignedFileInput.__module__ = "nominal_api.ingest_workflow_api"
12817
+
12818
+
12332
12819
  class ingest_workflow_api_TimeUnitSeconds(ConjureEnumType):
12333
12820
 
12334
12821
  SECONDS = 'SECONDS'
@@ -12345,6 +12832,50 @@ ingest_workflow_api_TimeUnitSeconds.__qualname__ = "TimeUnitSeconds"
12345
12832
  ingest_workflow_api_TimeUnitSeconds.__module__ = "nominal_api.ingest_workflow_api"
12346
12833
 
12347
12834
 
12835
+ class ingest_workflow_api_ValidatedFileInput(ConjureBeanType):
12836
+
12837
+ @builtins.classmethod
12838
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
12839
+ return {
12840
+ 'handle': ConjureFieldDefinition('handle', scout_catalog_S3Handle),
12841
+ 'file_name': ConjureFieldDefinition('fileName', str),
12842
+ 'env_var': ConjureFieldDefinition('envVar', str)
12843
+ }
12844
+
12845
+ __slots__: List[str] = ['_handle', '_file_name', '_env_var']
12846
+
12847
+ def __init__(self, env_var: str, file_name: str, handle: "scout_catalog_S3Handle") -> None:
12848
+ self._handle = handle
12849
+ self._file_name = file_name
12850
+ self._env_var = env_var
12851
+
12852
+ @builtins.property
12853
+ def handle(self) -> "scout_catalog_S3Handle":
12854
+ """
12855
+ Path to the input file in S3.
12856
+ """
12857
+ return self._handle
12858
+
12859
+ @builtins.property
12860
+ def file_name(self) -> str:
12861
+ """
12862
+ Name of the file that will be placed on disk.
12863
+ """
12864
+ return self._file_name
12865
+
12866
+ @builtins.property
12867
+ def env_var(self) -> str:
12868
+ """
12869
+ Environment variable that will store the path to the file.
12870
+ """
12871
+ return self._env_var
12872
+
12873
+
12874
+ ingest_workflow_api_ValidatedFileInput.__name__ = "ValidatedFileInput"
12875
+ ingest_workflow_api_ValidatedFileInput.__qualname__ = "ValidatedFileInput"
12876
+ ingest_workflow_api_ValidatedFileInput.__module__ = "nominal_api.ingest_workflow_api"
12877
+
12878
+
12348
12879
  class persistent_compute_api_AppendResult(ConjureBeanType):
12349
12880
  """
12350
12881
  An append result won't cover the full `StreamingComputeNodeRequest#windowWidth` but rather just a smaller
@@ -35824,22 +36355,22 @@ class scout_compute_api_CurveFitOptions(ConjureBeanType):
35824
36355
  @builtins.classmethod
35825
36356
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
35826
36357
  return {
35827
- 'start_time': ConjureFieldDefinition('startTime', OptionalTypeWrapper[scout_compute_api_TimestampConstant]),
35828
- 'end_time': ConjureFieldDefinition('endTime', OptionalTypeWrapper[scout_compute_api_TimestampConstant])
36358
+ 'start_time': ConjureFieldDefinition('startTime', scout_compute_api_TimestampConstant),
36359
+ 'end_time': ConjureFieldDefinition('endTime', scout_compute_api_TimestampConstant)
35829
36360
  }
35830
36361
 
35831
36362
  __slots__: List[str] = ['_start_time', '_end_time']
35832
36363
 
35833
- def __init__(self, end_time: Optional["scout_compute_api_TimestampConstant"] = None, start_time: Optional["scout_compute_api_TimestampConstant"] = None) -> None:
36364
+ def __init__(self, end_time: "scout_compute_api_TimestampConstant", start_time: "scout_compute_api_TimestampConstant") -> None:
35834
36365
  self._start_time = start_time
35835
36366
  self._end_time = end_time
35836
36367
 
35837
36368
  @builtins.property
35838
- def start_time(self) -> Optional["scout_compute_api_TimestampConstant"]:
36369
+ def start_time(self) -> "scout_compute_api_TimestampConstant":
35839
36370
  return self._start_time
35840
36371
 
35841
36372
  @builtins.property
35842
- def end_time(self) -> Optional["scout_compute_api_TimestampConstant"]:
36373
+ def end_time(self) -> "scout_compute_api_TimestampConstant":
35843
36374
  return self._end_time
35844
36375
 
35845
36376
 
@@ -48110,22 +48641,22 @@ class scout_compute_resolved_api_CurveFitOptions(ConjureBeanType):
48110
48641
  @builtins.classmethod
48111
48642
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
48112
48643
  return {
48113
- 'start_time': ConjureFieldDefinition('startTime', OptionalTypeWrapper[api_Timestamp]),
48114
- 'end_time': ConjureFieldDefinition('endTime', OptionalTypeWrapper[api_Timestamp])
48644
+ 'start_time': ConjureFieldDefinition('startTime', api_Timestamp),
48645
+ 'end_time': ConjureFieldDefinition('endTime', api_Timestamp)
48115
48646
  }
48116
48647
 
48117
48648
  __slots__: List[str] = ['_start_time', '_end_time']
48118
48649
 
48119
- def __init__(self, end_time: Optional["api_Timestamp"] = None, start_time: Optional["api_Timestamp"] = None) -> None:
48650
+ def __init__(self, end_time: "api_Timestamp", start_time: "api_Timestamp") -> None:
48120
48651
  self._start_time = start_time
48121
48652
  self._end_time = end_time
48122
48653
 
48123
48654
  @builtins.property
48124
- def start_time(self) -> Optional["api_Timestamp"]:
48655
+ def start_time(self) -> "api_Timestamp":
48125
48656
  return self._start_time
48126
48657
 
48127
48658
  @builtins.property
48128
- def end_time(self) -> Optional["api_Timestamp"]:
48659
+ def end_time(self) -> "api_Timestamp":
48129
48660
  return self._end_time
48130
48661
 
48131
48662
 
@@ -79399,6 +79930,8 @@ scout_rids_api_SnapshotRid = str
79399
79930
 
79400
79931
  scout_units_api_UnitName = str
79401
79932
 
79933
+ ingest_api_FileSuffix = str
79934
+
79402
79935
  scout_datasource_connection_api_TableName = str
79403
79936
 
79404
79937
  timeseries_seriescache_api_Resolution = int
@@ -79545,6 +80078,8 @@ scout_video_api_ErrorType = str
79545
80078
 
79546
80079
  scout_comparisonnotebook_api_ComparisonChannelVariableMap = Dict[scout_comparisonnotebook_api_VariableName, scout_comparisonnotebook_api_ChannelVariable]
79547
80080
 
80081
+ ingest_workflow_api_PresignedUrl = str
80082
+
79548
80083
  timeseries_logicalseries_api_FieldName = str
79549
80084
 
79550
80085
  scout_channelvariables_api_WorkbookChannelVariableMap = Dict[scout_channelvariables_api_ChannelVariableName, scout_channelvariables_api_ChannelVariable]
@@ -15,6 +15,7 @@ from .._impl import (
15
15
  event_EventService as EventService,
16
16
  event_EventType as EventType,
17
17
  event_GetEvents as GetEvents,
18
+ event_SearchEventOriginType as SearchEventOriginType,
18
19
  event_SearchEventsRequest as SearchEventsRequest,
19
20
  event_SearchEventsResponse as SearchEventsResponse,
20
21
  event_SearchQuery as SearchQuery,
@@ -30,6 +30,9 @@ from .._impl import (
30
30
  ingest_api_ExistingDatasetIngestDestination as ExistingDatasetIngestDestination,
31
31
  ingest_api_ExistingVideoIngestDestination as ExistingVideoIngestDestination,
32
32
  ingest_api_FileExtractionInput as FileExtractionInput,
33
+ ingest_api_FileFilter as FileFilter,
34
+ ingest_api_FileFilterVisitor as FileFilterVisitor,
35
+ ingest_api_FileSuffix as FileSuffix,
33
36
  ingest_api_GcsIngestSource as GcsIngestSource,
34
37
  ingest_api_GetContainerizedExtractorsRequest as GetContainerizedExtractorsRequest,
35
38
  ingest_api_GetContainerizedExtractorsResponse as GetContainerizedExtractorsResponse,
@@ -42,6 +45,7 @@ from .._impl import (
42
45
  ingest_api_IngestDetailsVisitor as IngestDetailsVisitor,
43
46
  ingest_api_IngestMcapRequest as IngestMcapRequest,
44
47
  ingest_api_IngestMcapResponse as IngestMcapResponse,
48
+ ingest_api_IngestMetadata as IngestMetadata,
45
49
  ingest_api_IngestOptions as IngestOptions,
46
50
  ingest_api_IngestOptionsVisitor as IngestOptionsVisitor,
47
51
  ingest_api_IngestProgressV2 as IngestProgressV2,
@@ -88,6 +92,9 @@ from .._impl import (
88
92
  ingest_api_PublicAuthentication as PublicAuthentication,
89
93
  ingest_api_RegisterContainerizedExtractorRequest as RegisterContainerizedExtractorRequest,
90
94
  ingest_api_RegisterContainerizedExtractorResponse as RegisterContainerizedExtractorResponse,
95
+ ingest_api_ReingestDatasetsRequest as ReingestDatasetsRequest,
96
+ ingest_api_ReingestDatasetsResponse as ReingestDatasetsResponse,
97
+ ingest_api_ReingestFilesMapping as ReingestFilesMapping,
91
98
  ingest_api_RelativeTimestamp as RelativeTimestamp,
92
99
  ingest_api_RunRid as RunRid,
93
100
  ingest_api_S3IngestSource as S3IngestSource,
@@ -20,6 +20,9 @@ from .._impl import (
20
20
  ingest_workflow_api_McapTopicName as McapTopicName,
21
21
  ingest_workflow_api_MultipartUploadDetails as MultipartUploadDetails,
22
22
  ingest_workflow_api_ObjectLocator as ObjectLocator,
23
+ ingest_workflow_api_PresignedFileInput as PresignedFileInput,
24
+ ingest_workflow_api_PresignedUrl as PresignedUrl,
23
25
  ingest_workflow_api_TimeUnitSeconds as TimeUnitSeconds,
26
+ ingest_workflow_api_ValidatedFileInput as ValidatedFileInput,
24
27
  )
25
28
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: nominal-api
3
- Version: 0.653.0
3
+ Version: 0.655.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.653.0',
9
+ version='0.655.0',
10
10
  python_requires='>=3.8',
11
11
  package_data={"": ["py.typed"]},
12
12
  packages=find_packages(),
File without changes