nominal-api 0.581.0__py3-none-any.whl → 0.583.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
@@ -62,6 +62,8 @@ __all__ = [
62
62
  'themes_api',
63
63
  'timeseries_archetype',
64
64
  'timeseries_archetype_api',
65
+ 'timeseries_channelmetadata',
66
+ 'timeseries_channelmetadata_api',
65
67
  'timeseries_logicalseries',
66
68
  'timeseries_logicalseries_api',
67
69
  'timeseries_seriescache',
@@ -71,5 +73,5 @@ __all__ = [
71
73
 
72
74
  __conjure_generator_version__ = "4.9.0"
73
75
 
74
- __version__ = "0.581.0"
76
+ __version__ = "0.583.0"
75
77
 
nominal_api/_impl.py CHANGED
@@ -12086,6 +12086,83 @@ scout_api_ChannelLocator.__qualname__ = "ChannelLocator"
12086
12086
  scout_api_ChannelLocator.__module__ = "nominal_api.scout_api"
12087
12087
 
12088
12088
 
12089
+ class scout_api_DataScope(ConjureBeanType):
12090
+
12091
+ @builtins.classmethod
12092
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
12093
+ return {
12094
+ 'data_source': ConjureFieldDefinition('dataSource', scout_run_api_DataSource),
12095
+ 'offset': ConjureFieldDefinition('offset', scout_run_api_Duration),
12096
+ 'ref_name': ConjureFieldDefinition('refName', scout_api_DataSourceRefName),
12097
+ 'timestamp_type': ConjureFieldDefinition('timestampType', scout_api_WeakTimestampType),
12098
+ 'series_tags': ConjureFieldDefinition('seriesTags', Dict[api_TagName, api_TagValue])
12099
+ }
12100
+
12101
+ __slots__: List[str] = ['_data_source', '_offset', '_ref_name', '_timestamp_type', '_series_tags']
12102
+
12103
+ def __init__(self, data_source: "scout_run_api_DataSource", offset: "scout_run_api_Duration", ref_name: str, series_tags: Dict[str, str], timestamp_type: "scout_api_WeakTimestampType") -> None:
12104
+ self._data_source = data_source
12105
+ self._offset = offset
12106
+ self._ref_name = ref_name
12107
+ self._timestamp_type = timestamp_type
12108
+ self._series_tags = series_tags
12109
+
12110
+ @builtins.property
12111
+ def data_source(self) -> "scout_run_api_DataSource":
12112
+ return self._data_source
12113
+
12114
+ @builtins.property
12115
+ def offset(self) -> "scout_run_api_Duration":
12116
+ """
12117
+ This offset is used for small time-sync corrections. Notably, it is
12118
+ not the offset to move a relative data source to the start of the run.
12119
+ """
12120
+ return self._offset
12121
+
12122
+ @builtins.property
12123
+ def ref_name(self) -> str:
12124
+ return self._ref_name
12125
+
12126
+ @builtins.property
12127
+ def timestamp_type(self) -> "scout_api_WeakTimestampType":
12128
+ return self._timestamp_type
12129
+
12130
+ @builtins.property
12131
+ def series_tags(self) -> Dict[str, str]:
12132
+ """
12133
+ Used to resolve logical series for this data source.
12134
+ """
12135
+ return self._series_tags
12136
+
12137
+
12138
+ scout_api_DataScope.__name__ = "DataScope"
12139
+ scout_api_DataScope.__qualname__ = "DataScope"
12140
+ scout_api_DataScope.__module__ = "nominal_api.scout_api"
12141
+
12142
+
12143
+ class scout_api_WeakTimestampType(ConjureEnumType):
12144
+ """
12145
+ If a CSV data source is still being split, the timestamp type is not known.
12146
+ """
12147
+
12148
+ ABSOLUTE = 'ABSOLUTE'
12149
+ '''ABSOLUTE'''
12150
+ RELATIVE = 'RELATIVE'
12151
+ '''RELATIVE'''
12152
+ PENDING = 'PENDING'
12153
+ '''PENDING'''
12154
+ UNKNOWN = 'UNKNOWN'
12155
+ '''UNKNOWN'''
12156
+
12157
+ def __reduce_ex__(self, proto):
12158
+ return self.__class__, (self.name,)
12159
+
12160
+
12161
+ scout_api_WeakTimestampType.__name__ = "WeakTimestampType"
12162
+ scout_api_WeakTimestampType.__qualname__ = "WeakTimestampType"
12163
+ scout_api_WeakTimestampType.__module__ = "nominal_api.scout_api"
12164
+
12165
+
12089
12166
  class scout_asset_api_AddDataScopesToAssetRequest(ConjureBeanType):
12090
12167
 
12091
12168
  @builtins.classmethod
@@ -12225,6 +12302,10 @@ scout_asset_api_Asset.__module__ = "nominal_api.scout_asset_api"
12225
12302
 
12226
12303
 
12227
12304
  class scout_asset_api_AssetDataScope(ConjureBeanType):
12305
+ """
12306
+ This type is equivalent to the DataScope type, except it uses a dataScopeName instead of refName. It will
12307
+ eventually be deprecated in favor of DataScope.
12308
+ """
12228
12309
 
12229
12310
  @builtins.classmethod
12230
12311
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
@@ -12232,13 +12313,13 @@ class scout_asset_api_AssetDataScope(ConjureBeanType):
12232
12313
  'data_scope_name': ConjureFieldDefinition('dataScopeName', scout_asset_api_DataScopeName),
12233
12314
  'data_source': ConjureFieldDefinition('dataSource', scout_run_api_DataSource),
12234
12315
  'offset': ConjureFieldDefinition('offset', OptionalTypeWrapper[scout_run_api_Duration]),
12235
- 'timestamp_type': ConjureFieldDefinition('timestampType', scout_run_api_WeakTimestampType),
12316
+ 'timestamp_type': ConjureFieldDefinition('timestampType', scout_api_WeakTimestampType),
12236
12317
  'series_tags': ConjureFieldDefinition('seriesTags', Dict[scout_asset_api_SeriesTagName, scout_asset_api_SeriesTagValue])
12237
12318
  }
12238
12319
 
12239
12320
  __slots__: List[str] = ['_data_scope_name', '_data_source', '_offset', '_timestamp_type', '_series_tags']
12240
12321
 
12241
- def __init__(self, data_scope_name: str, data_source: "scout_run_api_DataSource", series_tags: Dict[str, str], timestamp_type: "scout_run_api_WeakTimestampType", offset: Optional["scout_run_api_Duration"] = None) -> None:
12322
+ def __init__(self, data_scope_name: str, data_source: "scout_run_api_DataSource", series_tags: Dict[str, str], timestamp_type: "scout_api_WeakTimestampType", offset: Optional["scout_run_api_Duration"] = None) -> None:
12242
12323
  self._data_scope_name = data_scope_name
12243
12324
  self._data_source = data_source
12244
12325
  self._offset = offset
@@ -12261,7 +12342,7 @@ class scout_asset_api_AssetDataScope(ConjureBeanType):
12261
12342
  return self._offset
12262
12343
 
12263
12344
  @builtins.property
12264
- def timestamp_type(self) -> "scout_run_api_WeakTimestampType":
12345
+ def timestamp_type(self) -> "scout_api_WeakTimestampType":
12265
12346
  return self._timestamp_type
12266
12347
 
12267
12348
  @builtins.property
@@ -60277,16 +60358,17 @@ class scout_run_api_Run(ConjureBeanType):
60277
60358
  'links': ConjureFieldDefinition('links', List[scout_run_api_Link]),
60278
60359
  'created_at': ConjureFieldDefinition('createdAt', str),
60279
60360
  'updated_at': ConjureFieldDefinition('updatedAt', str),
60280
- 'asset_data_scopes': ConjureFieldDefinition('assetDataScopes', List[scout_asset_api_AssetDataScope]),
60281
- 'data_sources': ConjureFieldDefinition('dataSources', Dict[scout_api_DataSourceRefName, scout_run_api_RunDataSource]),
60361
+ 'asset_data_scopes': ConjureFieldDefinition('assetDataScopes', List[scout_api_DataScope]),
60362
+ 'additional_data_scopes': ConjureFieldDefinition('additionalDataScopes', List[scout_api_DataScope]),
60363
+ 'data_sources': ConjureFieldDefinition('dataSources', Dict[scout_api_DataSourceRefName, scout_api_DataScope]),
60282
60364
  'attachments': ConjureFieldDefinition('attachments', List[api_rids_AttachmentRid]),
60283
60365
  'asset': ConjureFieldDefinition('asset', OptionalTypeWrapper[scout_rids_api_AssetRid]),
60284
60366
  'assets': ConjureFieldDefinition('assets', List[scout_rids_api_AssetRid])
60285
60367
  }
60286
60368
 
60287
- __slots__: List[str] = ['_rid', '_run_number', '_run_prefix', '_title', '_description', '_author_rid', '_start_time', '_end_time', '_properties', '_labels', '_links', '_created_at', '_updated_at', '_asset_data_scopes', '_data_sources', '_attachments', '_asset', '_assets']
60369
+ __slots__: List[str] = ['_rid', '_run_number', '_run_prefix', '_title', '_description', '_author_rid', '_start_time', '_end_time', '_properties', '_labels', '_links', '_created_at', '_updated_at', '_asset_data_scopes', '_additional_data_scopes', '_data_sources', '_attachments', '_asset', '_assets']
60288
60370
 
60289
- def __init__(self, asset_data_scopes: List["scout_asset_api_AssetDataScope"], assets: List[str], attachments: List[str], created_at: str, data_sources: Dict[str, "scout_run_api_RunDataSource"], description: str, labels: List[str], links: List["scout_run_api_Link"], properties: Dict[str, str], rid: str, run_number: int, start_time: "scout_run_api_UtcTimestamp", title: str, updated_at: str, asset: Optional[str] = None, author_rid: Optional[str] = None, end_time: Optional["scout_run_api_UtcTimestamp"] = None, run_prefix: Optional[str] = None) -> None:
60371
+ def __init__(self, additional_data_scopes: List["scout_api_DataScope"], asset_data_scopes: List["scout_api_DataScope"], assets: List[str], attachments: List[str], created_at: str, data_sources: Dict[str, "scout_api_DataScope"], description: str, labels: List[str], links: List["scout_run_api_Link"], properties: Dict[str, str], rid: str, run_number: int, start_time: "scout_run_api_UtcTimestamp", title: str, updated_at: str, asset: Optional[str] = None, author_rid: Optional[str] = None, end_time: Optional["scout_run_api_UtcTimestamp"] = None, run_prefix: Optional[str] = None) -> None:
60290
60372
  self._rid = rid
60291
60373
  self._run_number = run_number
60292
60374
  self._run_prefix = run_prefix
@@ -60301,6 +60383,7 @@ class scout_run_api_Run(ConjureBeanType):
60301
60383
  self._created_at = created_at
60302
60384
  self._updated_at = updated_at
60303
60385
  self._asset_data_scopes = asset_data_scopes
60386
+ self._additional_data_scopes = additional_data_scopes
60304
60387
  self._data_sources = data_sources
60305
60388
  self._attachments = attachments
60306
60389
  self._asset = asset
@@ -60359,14 +60442,24 @@ class scout_run_api_Run(ConjureBeanType):
60359
60442
  return self._updated_at
60360
60443
 
60361
60444
  @builtins.property
60362
- def asset_data_scopes(self) -> List["scout_asset_api_AssetDataScope"]:
60445
+ def asset_data_scopes(self) -> List["scout_api_DataScope"]:
60363
60446
  """
60364
60447
  returns the data scopes for the assets associated with the run.
60365
60448
  """
60366
60449
  return self._asset_data_scopes
60367
60450
 
60368
60451
  @builtins.property
60369
- def data_sources(self) -> Dict[str, "scout_run_api_RunDataSource"]:
60452
+ def additional_data_scopes(self) -> List["scout_api_DataScope"]:
60453
+ """
60454
+ returns any data scopes added directly to the run.
60455
+ """
60456
+ return self._additional_data_scopes
60457
+
60458
+ @builtins.property
60459
+ def data_sources(self) -> Dict[str, "scout_api_DataScope"]:
60460
+ """
60461
+ returns all of the data scopes under the run. This includes data scopes of any associated assets. If there are data scopes attached directly to the run that have the same ref name as data scopes from the asset, they will override them.
60462
+ """
60370
60463
  return self._data_sources
60371
60464
 
60372
60465
  @builtins.property
@@ -60464,66 +60557,6 @@ scout_run_api_RunDataReviewSummary.__qualname__ = "RunDataReviewSummary"
60464
60557
  scout_run_api_RunDataReviewSummary.__module__ = "nominal_api.scout_run_api"
60465
60558
 
60466
60559
 
60467
- class scout_run_api_RunDataSource(ConjureBeanType):
60468
- """
60469
- For read requests, we want to require all fields
60470
- """
60471
-
60472
- @builtins.classmethod
60473
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
60474
- return {
60475
- 'data_source': ConjureFieldDefinition('dataSource', scout_run_api_DataSource),
60476
- 'offset': ConjureFieldDefinition('offset', scout_run_api_Duration),
60477
- 'ref_name': ConjureFieldDefinition('refName', scout_api_DataSourceRefName),
60478
- 'timestamp_type': ConjureFieldDefinition('timestampType', scout_run_api_WeakTimestampType),
60479
- 'series_tags': ConjureFieldDefinition('seriesTags', Dict[api_TagName, api_TagValue])
60480
- }
60481
-
60482
- __slots__: List[str] = ['_data_source', '_offset', '_ref_name', '_timestamp_type', '_series_tags']
60483
-
60484
- def __init__(self, data_source: "scout_run_api_DataSource", offset: "scout_run_api_Duration", ref_name: str, series_tags: Dict[str, str], timestamp_type: "scout_run_api_WeakTimestampType") -> None:
60485
- self._data_source = data_source
60486
- self._offset = offset
60487
- self._ref_name = ref_name
60488
- self._timestamp_type = timestamp_type
60489
- self._series_tags = series_tags
60490
-
60491
- @builtins.property
60492
- def data_source(self) -> "scout_run_api_DataSource":
60493
- return self._data_source
60494
-
60495
- @builtins.property
60496
- def offset(self) -> "scout_run_api_Duration":
60497
- """
60498
- This offset is used for small time-sync corrections. Notably, it is
60499
- not the offset to move a relative data source to the start of the run.
60500
- """
60501
- return self._offset
60502
-
60503
- @builtins.property
60504
- def ref_name(self) -> str:
60505
- """
60506
- Included for convenience, duplicated from the key of the map
60507
- """
60508
- return self._ref_name
60509
-
60510
- @builtins.property
60511
- def timestamp_type(self) -> "scout_run_api_WeakTimestampType":
60512
- return self._timestamp_type
60513
-
60514
- @builtins.property
60515
- def series_tags(self) -> Dict[str, str]:
60516
- """
60517
- Used to resolve logical series for this data source.
60518
- """
60519
- return self._series_tags
60520
-
60521
-
60522
- scout_run_api_RunDataSource.__name__ = "RunDataSource"
60523
- scout_run_api_RunDataSource.__qualname__ = "RunDataSource"
60524
- scout_run_api_RunDataSource.__module__ = "nominal_api.scout_run_api"
60525
-
60526
-
60527
60560
  class scout_run_api_RunWithDataReviewMetrics(ConjureBeanType):
60528
60561
 
60529
60562
  @builtins.classmethod
@@ -61378,29 +61411,6 @@ scout_run_api_UtcTimestamp.__qualname__ = "UtcTimestamp"
61378
61411
  scout_run_api_UtcTimestamp.__module__ = "nominal_api.scout_run_api"
61379
61412
 
61380
61413
 
61381
- class scout_run_api_WeakTimestampType(ConjureEnumType):
61382
- """
61383
- If a CSV data source is still being split, the timestamp type is not known.
61384
- """
61385
-
61386
- ABSOLUTE = 'ABSOLUTE'
61387
- '''ABSOLUTE'''
61388
- RELATIVE = 'RELATIVE'
61389
- '''RELATIVE'''
61390
- PENDING = 'PENDING'
61391
- '''PENDING'''
61392
- UNKNOWN = 'UNKNOWN'
61393
- '''UNKNOWN'''
61394
-
61395
- def __reduce_ex__(self, proto):
61396
- return self.__class__, (self.name,)
61397
-
61398
-
61399
- scout_run_api_WeakTimestampType.__name__ = "WeakTimestampType"
61400
- scout_run_api_WeakTimestampType.__qualname__ = "WeakTimestampType"
61401
- scout_run_api_WeakTimestampType.__module__ = "nominal_api.scout_run_api"
61402
-
61403
-
61404
61414
  class scout_template_api_CommitTemplateRequest(ConjureBeanType):
61405
61415
 
61406
61416
  @builtins.classmethod
@@ -62960,7 +62970,7 @@ class scout_video_VideoFileService(Service):
62960
62970
 
62961
62971
  def batch_get(self, auth_header: str, video_file_rids: List[str] = None) -> List["scout_video_api_VideoFile"]:
62962
62972
  """
62963
- Returns video file metadata associated with the given video file RIDs.
62973
+ Returns all video files and their metadata associated with the given RIDs
62964
62974
  """
62965
62975
  video_file_rids = video_file_rids if video_file_rids is not None else []
62966
62976
 
@@ -62991,9 +63001,9 @@ class scout_video_VideoFileService(Service):
62991
63001
  _decoder = ConjureDecoder()
62992
63002
  return _decoder.decode(_response.json(), List[scout_video_api_VideoFile], self._return_none_for_unknown_union_types)
62993
63003
 
62994
- def search(self, auth_header: str, request: "scout_video_api_SearchVideoFilesRequest") -> "scout_video_api_SearchVideoFilesResponse":
63004
+ def list_files_in_video(self, auth_header: str, video_rid: str) -> List["scout_video_api_VideoFile"]:
62995
63005
  """
62996
- Returns metadata about video files that match a given query.
63006
+ Returns all video files and their metadata associated with the given video RID.
62997
63007
  """
62998
63008
 
62999
63009
  _headers: Dict[str, Any] = {
@@ -63008,9 +63018,9 @@ class scout_video_VideoFileService(Service):
63008
63018
  _path_params: Dict[str, Any] = {
63009
63019
  }
63010
63020
 
63011
- _json: Any = ConjureEncoder().default(request)
63021
+ _json: Any = ConjureEncoder().default(video_rid)
63012
63022
 
63013
- _path = '/video-files/v1/video-files/search'
63023
+ _path = '/video-files/v1/video-files/list-files-in-video'
63014
63024
  _path = _path.format(**_path_params)
63015
63025
 
63016
63026
  _response: Response = self._request(
@@ -63021,7 +63031,7 @@ class scout_video_VideoFileService(Service):
63021
63031
  json=_json)
63022
63032
 
63023
63033
  _decoder = ConjureDecoder()
63024
- return _decoder.decode(_response.json(), scout_video_api_SearchVideoFilesResponse, self._return_none_for_unknown_union_types)
63034
+ return _decoder.decode(_response.json(), List[scout_video_api_VideoFile], self._return_none_for_unknown_union_types)
63025
63035
 
63026
63036
  def update(self, auth_header: str, request: "scout_video_api_UpdateVideoFileRequest", video_file_rid: str) -> "scout_video_api_VideoFile":
63027
63037
  """
@@ -63358,8 +63368,7 @@ at the segment-level.
63358
63368
 
63359
63369
  def get_segment_by_timestamp(self, auth_header: str, request: "scout_video_api_GetSegmentByTimestampRequest", video_rid: str) -> Optional["scout_video_api_Segment"]:
63360
63370
  """
63361
- Returns metadata for the segment containing the requested absolute timestamp. This endpoint should only be
63362
- used for videos that were ingested with frame-level timestamps.
63371
+ Returns metadata for the segment within a video containing the requested absolute timestamp.
63363
63372
  """
63364
63373
 
63365
63374
  _headers: Dict[str, Any] = {
@@ -63787,6 +63796,35 @@ scout_video_VideoService.__qualname__ = "VideoService"
63787
63796
  scout_video_VideoService.__module__ = "nominal_api.scout_video"
63788
63797
 
63789
63798
 
63799
+ class scout_video_api_Bounds(ConjureBeanType):
63800
+
63801
+ @builtins.classmethod
63802
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
63803
+ return {
63804
+ 'start': ConjureFieldDefinition('start', api_Timestamp),
63805
+ 'end': ConjureFieldDefinition('end', api_Timestamp)
63806
+ }
63807
+
63808
+ __slots__: List[str] = ['_start', '_end']
63809
+
63810
+ def __init__(self, end: "api_Timestamp", start: "api_Timestamp") -> None:
63811
+ self._start = start
63812
+ self._end = end
63813
+
63814
+ @builtins.property
63815
+ def start(self) -> "api_Timestamp":
63816
+ return self._start
63817
+
63818
+ @builtins.property
63819
+ def end(self) -> "api_Timestamp":
63820
+ return self._end
63821
+
63822
+
63823
+ scout_video_api_Bounds.__name__ = "Bounds"
63824
+ scout_video_api_Bounds.__qualname__ = "Bounds"
63825
+ scout_video_api_Bounds.__module__ = "nominal_api.scout_video_api"
63826
+
63827
+
63790
63828
  class scout_video_api_CreateSegment(ConjureBeanType):
63791
63829
 
63792
63830
  @builtins.classmethod
@@ -63893,19 +63931,15 @@ class scout_video_api_CreateVideoFileRequest(ConjureBeanType):
63893
63931
  return {
63894
63932
  'title': ConjureFieldDefinition('title', str),
63895
63933
  'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
63896
- 'labels': ConjureFieldDefinition('labels', List[api_Label]),
63897
- 'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue]),
63898
63934
  'origin_metadata': ConjureFieldDefinition('originMetadata', scout_video_api_VideoFileOriginMetadata),
63899
63935
  'video_rid': ConjureFieldDefinition('videoRid', api_rids_VideoRid)
63900
63936
  }
63901
63937
 
63902
- __slots__: List[str] = ['_title', '_description', '_labels', '_properties', '_origin_metadata', '_video_rid']
63938
+ __slots__: List[str] = ['_title', '_description', '_origin_metadata', '_video_rid']
63903
63939
 
63904
- def __init__(self, labels: List[str], origin_metadata: "scout_video_api_VideoFileOriginMetadata", properties: Dict[str, str], title: str, video_rid: str, description: Optional[str] = None) -> None:
63940
+ def __init__(self, origin_metadata: "scout_video_api_VideoFileOriginMetadata", title: str, video_rid: str, description: Optional[str] = None) -> None:
63905
63941
  self._title = title
63906
63942
  self._description = description
63907
- self._labels = labels
63908
- self._properties = properties
63909
63943
  self._origin_metadata = origin_metadata
63910
63944
  self._video_rid = video_rid
63911
63945
 
@@ -63917,14 +63951,6 @@ class scout_video_api_CreateVideoFileRequest(ConjureBeanType):
63917
63951
  def description(self) -> Optional[str]:
63918
63952
  return self._description
63919
63953
 
63920
- @builtins.property
63921
- def labels(self) -> List[str]:
63922
- return self._labels
63923
-
63924
- @builtins.property
63925
- def properties(self) -> Dict[str, str]:
63926
- return self._properties
63927
-
63928
63954
  @builtins.property
63929
63955
  def origin_metadata(self) -> "scout_video_api_VideoFileOriginMetadata":
63930
63956
  return self._origin_metadata
@@ -64138,18 +64164,31 @@ class scout_video_api_GetSegmentByTimestampRequest(ConjureBeanType):
64138
64164
  @builtins.classmethod
64139
64165
  def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
64140
64166
  return {
64141
- 'timestamp': ConjureFieldDefinition('timestamp', api_Timestamp)
64167
+ 'timestamp': ConjureFieldDefinition('timestamp', api_Timestamp),
64168
+ 'view_range_start': ConjureFieldDefinition('viewRangeStart', OptionalTypeWrapper[api_Timestamp])
64142
64169
  }
64143
64170
 
64144
- __slots__: List[str] = ['_timestamp']
64171
+ __slots__: List[str] = ['_timestamp', '_view_range_start']
64145
64172
 
64146
- def __init__(self, timestamp: "api_Timestamp") -> None:
64173
+ def __init__(self, timestamp: "api_Timestamp", view_range_start: Optional["api_Timestamp"] = None) -> None:
64147
64174
  self._timestamp = timestamp
64175
+ self._view_range_start = view_range_start
64148
64176
 
64149
64177
  @builtins.property
64150
64178
  def timestamp(self) -> "api_Timestamp":
64151
64179
  return self._timestamp
64152
64180
 
64181
+ @builtins.property
64182
+ def view_range_start(self) -> Optional["api_Timestamp"]:
64183
+ """
64184
+ The start of the view range used to dynamically calculate media timestamps. The first segment with an
64185
+ overlap with the time bounds will have its minimum media timestamp set to 0, with every subsequent
64186
+ segment building media time cumulatively from that offset. This will determine the starting media
64187
+ timestamp of the returned segment. The view range should be the same as the one requested to get the
64188
+ playlist and segment summaries.
64189
+ """
64190
+ return self._view_range_start
64191
+
64153
64192
 
64154
64193
  scout_video_api_GetSegmentByTimestampRequest.__name__ = "GetSegmentByTimestampRequest"
64155
64194
  scout_video_api_GetSegmentByTimestampRequest.__qualname__ = "GetSegmentByTimestampRequest"
@@ -64397,94 +64436,6 @@ scout_video_api_ScaleParameterVisitor.__qualname__ = "ScaleParameterVisitor"
64397
64436
  scout_video_api_ScaleParameterVisitor.__module__ = "nominal_api.scout_video_api"
64398
64437
 
64399
64438
 
64400
- class scout_video_api_SearchVideoFilesRequest(ConjureBeanType):
64401
- """
64402
- Request to get video files based on a user-provided query
64403
- """
64404
-
64405
- @builtins.classmethod
64406
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
64407
- return {
64408
- 'query': ConjureFieldDefinition('query', scout_video_api_SearchVideosQuery),
64409
- 'page_size': ConjureFieldDefinition('pageSize', OptionalTypeWrapper[int]),
64410
- 'token': ConjureFieldDefinition('token', OptionalTypeWrapper[api_Token]),
64411
- 'sort_options': ConjureFieldDefinition('sortOptions', scout_video_api_SortOptions),
64412
- 'archived_statuses': ConjureFieldDefinition('archivedStatuses', OptionalTypeWrapper[List[api_ArchivedStatus]])
64413
- }
64414
-
64415
- __slots__: List[str] = ['_query', '_page_size', '_token', '_sort_options', '_archived_statuses']
64416
-
64417
- def __init__(self, query: "scout_video_api_SearchVideosQuery", sort_options: "scout_video_api_SortOptions", archived_statuses: Optional[List["api_ArchivedStatus"]] = None, page_size: Optional[int] = None, token: Optional[str] = None) -> None:
64418
- self._query = query
64419
- self._page_size = page_size
64420
- self._token = token
64421
- self._sort_options = sort_options
64422
- self._archived_statuses = archived_statuses
64423
-
64424
- @builtins.property
64425
- def query(self) -> "scout_video_api_SearchVideosQuery":
64426
- return self._query
64427
-
64428
- @builtins.property
64429
- def page_size(self) -> Optional[int]:
64430
- """
64431
- Defaults to 100. Will throw if larger than 1_000.
64432
- """
64433
- return self._page_size
64434
-
64435
- @builtins.property
64436
- def token(self) -> Optional[str]:
64437
- return self._token
64438
-
64439
- @builtins.property
64440
- def sort_options(self) -> "scout_video_api_SortOptions":
64441
- return self._sort_options
64442
-
64443
- @builtins.property
64444
- def archived_statuses(self) -> Optional[List["api_ArchivedStatus"]]:
64445
- """
64446
- Default search status is NOT_ARCHIVED if none are provided.
64447
- """
64448
- return self._archived_statuses
64449
-
64450
-
64451
- scout_video_api_SearchVideoFilesRequest.__name__ = "SearchVideoFilesRequest"
64452
- scout_video_api_SearchVideoFilesRequest.__qualname__ = "SearchVideoFilesRequest"
64453
- scout_video_api_SearchVideoFilesRequest.__module__ = "nominal_api.scout_video_api"
64454
-
64455
-
64456
- class scout_video_api_SearchVideoFilesResponse(ConjureBeanType):
64457
- """
64458
- Paginated response containing requested video file metadata.
64459
- """
64460
-
64461
- @builtins.classmethod
64462
- def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
64463
- return {
64464
- 'results': ConjureFieldDefinition('results', List[scout_video_api_VideoFile]),
64465
- 'next_page_token': ConjureFieldDefinition('nextPageToken', OptionalTypeWrapper[api_Token])
64466
- }
64467
-
64468
- __slots__: List[str] = ['_results', '_next_page_token']
64469
-
64470
- def __init__(self, results: List["scout_video_api_VideoFile"], next_page_token: Optional[str] = None) -> None:
64471
- self._results = results
64472
- self._next_page_token = next_page_token
64473
-
64474
- @builtins.property
64475
- def results(self) -> List["scout_video_api_VideoFile"]:
64476
- return self._results
64477
-
64478
- @builtins.property
64479
- def next_page_token(self) -> Optional[str]:
64480
- return self._next_page_token
64481
-
64482
-
64483
- scout_video_api_SearchVideoFilesResponse.__name__ = "SearchVideoFilesResponse"
64484
- scout_video_api_SearchVideoFilesResponse.__qualname__ = "SearchVideoFilesResponse"
64485
- scout_video_api_SearchVideoFilesResponse.__module__ = "nominal_api.scout_video_api"
64486
-
64487
-
64488
64439
  class scout_video_api_SearchVideosQuery(ConjureUnionType):
64489
64440
  _search_text: Optional[str] = None
64490
64441
  _label: Optional[str] = None
@@ -65122,20 +65073,16 @@ class scout_video_api_UpdateVideoFileRequest(ConjureBeanType):
65122
65073
  'video_rid': ConjureFieldDefinition('videoRid', OptionalTypeWrapper[api_rids_VideoRid]),
65123
65074
  'title': ConjureFieldDefinition('title', OptionalTypeWrapper[str]),
65124
65075
  'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
65125
- 'labels': ConjureFieldDefinition('labels', OptionalTypeWrapper[List[api_Label]]),
65126
- 'properties': ConjureFieldDefinition('properties', OptionalTypeWrapper[Dict[api_PropertyName, api_PropertyValue]]),
65127
65076
  'starting_timestamp': ConjureFieldDefinition('startingTimestamp', OptionalTypeWrapper[api_Timestamp]),
65128
65077
  'scale_parameter': ConjureFieldDefinition('scaleParameter', OptionalTypeWrapper[scout_video_api_ScaleParameter])
65129
65078
  }
65130
65079
 
65131
- __slots__: List[str] = ['_video_rid', '_title', '_description', '_labels', '_properties', '_starting_timestamp', '_scale_parameter']
65080
+ __slots__: List[str] = ['_video_rid', '_title', '_description', '_starting_timestamp', '_scale_parameter']
65132
65081
 
65133
- def __init__(self, description: Optional[str] = None, labels: Optional[List[str]] = None, properties: Optional[Dict[str, 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:
65082
+ 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:
65134
65083
  self._video_rid = video_rid
65135
65084
  self._title = title
65136
65085
  self._description = description
65137
- self._labels = labels
65138
- self._properties = properties
65139
65086
  self._starting_timestamp = starting_timestamp
65140
65087
  self._scale_parameter = scale_parameter
65141
65088
 
@@ -65151,14 +65098,6 @@ class scout_video_api_UpdateVideoFileRequest(ConjureBeanType):
65151
65098
  def description(self) -> Optional[str]:
65152
65099
  return self._description
65153
65100
 
65154
- @builtins.property
65155
- def labels(self) -> Optional[List[str]]:
65156
- return self._labels
65157
-
65158
- @builtins.property
65159
- def properties(self) -> Optional[Dict[str, str]]:
65160
- return self._properties
65161
-
65162
65101
  @builtins.property
65163
65102
  def starting_timestamp(self) -> Optional["api_Timestamp"]:
65164
65103
  return self._starting_timestamp
@@ -65416,23 +65355,19 @@ class scout_video_api_VideoFile(ConjureBeanType):
65416
65355
  'video_rid': ConjureFieldDefinition('videoRid', api_rids_VideoRid),
65417
65356
  'title': ConjureFieldDefinition('title', str),
65418
65357
  'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
65419
- 'labels': ConjureFieldDefinition('labels', List[api_Label]),
65420
- 'properties': ConjureFieldDefinition('properties', Dict[api_PropertyName, api_PropertyValue]),
65421
65358
  'created_by': ConjureFieldDefinition('createdBy', str),
65422
65359
  'created_at': ConjureFieldDefinition('createdAt', str),
65423
65360
  'origin_metadata': ConjureFieldDefinition('originMetadata', scout_video_api_VideoFileOriginMetadata),
65424
65361
  'segment_metadata': ConjureFieldDefinition('segmentMetadata', OptionalTypeWrapper[scout_video_api_VideoFileSegmentsMetadata])
65425
65362
  }
65426
65363
 
65427
- __slots__: List[str] = ['_rid', '_video_rid', '_title', '_description', '_labels', '_properties', '_created_by', '_created_at', '_origin_metadata', '_segment_metadata']
65364
+ __slots__: List[str] = ['_rid', '_video_rid', '_title', '_description', '_created_by', '_created_at', '_origin_metadata', '_segment_metadata']
65428
65365
 
65429
- def __init__(self, created_at: str, created_by: str, labels: List[str], origin_metadata: "scout_video_api_VideoFileOriginMetadata", properties: Dict[str, str], rid: str, title: str, video_rid: str, description: Optional[str] = None, segment_metadata: Optional["scout_video_api_VideoFileSegmentsMetadata"] = None) -> None:
65366
+ def __init__(self, created_at: str, created_by: str, origin_metadata: "scout_video_api_VideoFileOriginMetadata", rid: str, title: str, video_rid: str, description: Optional[str] = None, segment_metadata: Optional["scout_video_api_VideoFileSegmentsMetadata"] = None) -> None:
65430
65367
  self._rid = rid
65431
65368
  self._video_rid = video_rid
65432
65369
  self._title = title
65433
65370
  self._description = description
65434
- self._labels = labels
65435
- self._properties = properties
65436
65371
  self._created_by = created_by
65437
65372
  self._created_at = created_at
65438
65373
  self._origin_metadata = origin_metadata
@@ -65454,14 +65389,6 @@ class scout_video_api_VideoFile(ConjureBeanType):
65454
65389
  def description(self) -> Optional[str]:
65455
65390
  return self._description
65456
65391
 
65457
- @builtins.property
65458
- def labels(self) -> List[str]:
65459
- return self._labels
65460
-
65461
- @builtins.property
65462
- def properties(self) -> Dict[str, str]:
65463
- return self._properties
65464
-
65465
65392
  @builtins.property
65466
65393
  def created_by(self) -> str:
65467
65394
  return self._created_by
@@ -70160,6 +70087,367 @@ timeseries_archetype_api_VisualCrossingLocatorTemplate.__qualname__ = "VisualCro
70160
70087
  timeseries_archetype_api_VisualCrossingLocatorTemplate.__module__ = "nominal_api.timeseries_archetype_api"
70161
70088
 
70162
70089
 
70090
+ class timeseries_channelmetadata_ChannelMetadataService(Service):
70091
+ """
70092
+ Endpoints for retrieving and updating channel metadata.
70093
+ """
70094
+
70095
+ def get_channel_metadata(self, auth_header: str, request: "timeseries_channelmetadata_api_GetChannelMetadataRequest") -> "timeseries_channelmetadata_api_ChannelMetadata":
70096
+ """
70097
+ Get the metadata for a channel.
70098
+ """
70099
+
70100
+ _headers: Dict[str, Any] = {
70101
+ 'Accept': 'application/json',
70102
+ 'Content-Type': 'application/json',
70103
+ 'Authorization': auth_header,
70104
+ }
70105
+
70106
+ _params: Dict[str, Any] = {
70107
+ }
70108
+
70109
+ _path_params: Dict[str, Any] = {
70110
+ }
70111
+
70112
+ _json: Any = ConjureEncoder().default(request)
70113
+
70114
+ _path = '/timeseries/channel-metadata/v1/channel-metadata/get'
70115
+ _path = _path.format(**_path_params)
70116
+
70117
+ _response: Response = self._request(
70118
+ 'POST',
70119
+ self._uri + _path,
70120
+ params=_params,
70121
+ headers=_headers,
70122
+ json=_json)
70123
+
70124
+ _decoder = ConjureDecoder()
70125
+ return _decoder.decode(_response.json(), timeseries_channelmetadata_api_ChannelMetadata, self._return_none_for_unknown_union_types)
70126
+
70127
+ def batch_get_channel_metadata(self, auth_header: str, request: "timeseries_channelmetadata_api_BatchGetChannelMetadataRequest") -> "timeseries_channelmetadata_api_BatchGetChannelMetadataResponse":
70128
+ """
70129
+ Batch get the metadata for multiple channels. If some channels cannot be found or authorized,
70130
+ they will be omitted from the response.
70131
+ """
70132
+
70133
+ _headers: Dict[str, Any] = {
70134
+ 'Accept': 'application/json',
70135
+ 'Content-Type': 'application/json',
70136
+ 'Authorization': auth_header,
70137
+ }
70138
+
70139
+ _params: Dict[str, Any] = {
70140
+ }
70141
+
70142
+ _path_params: Dict[str, Any] = {
70143
+ }
70144
+
70145
+ _json: Any = ConjureEncoder().default(request)
70146
+
70147
+ _path = '/timeseries/channel-metadata/v1/channel-metadata/batch-get'
70148
+ _path = _path.format(**_path_params)
70149
+
70150
+ _response: Response = self._request(
70151
+ 'POST',
70152
+ self._uri + _path,
70153
+ params=_params,
70154
+ headers=_headers,
70155
+ json=_json)
70156
+
70157
+ _decoder = ConjureDecoder()
70158
+ return _decoder.decode(_response.json(), timeseries_channelmetadata_api_BatchGetChannelMetadataResponse, self._return_none_for_unknown_union_types)
70159
+
70160
+ def update_channel_metadata(self, auth_header: str, request: "timeseries_channelmetadata_api_UpdateChannelMetadataRequest") -> "timeseries_channelmetadata_api_ChannelMetadata":
70161
+ """
70162
+ Update the metadata for a channel.
70163
+ """
70164
+
70165
+ _headers: Dict[str, Any] = {
70166
+ 'Accept': 'application/json',
70167
+ 'Content-Type': 'application/json',
70168
+ 'Authorization': auth_header,
70169
+ }
70170
+
70171
+ _params: Dict[str, Any] = {
70172
+ }
70173
+
70174
+ _path_params: Dict[str, Any] = {
70175
+ }
70176
+
70177
+ _json: Any = ConjureEncoder().default(request)
70178
+
70179
+ _path = '/timeseries/channel-metadata/v1/channel-metadata/update'
70180
+ _path = _path.format(**_path_params)
70181
+
70182
+ _response: Response = self._request(
70183
+ 'POST',
70184
+ self._uri + _path,
70185
+ params=_params,
70186
+ headers=_headers,
70187
+ json=_json)
70188
+
70189
+ _decoder = ConjureDecoder()
70190
+ return _decoder.decode(_response.json(), timeseries_channelmetadata_api_ChannelMetadata, self._return_none_for_unknown_union_types)
70191
+
70192
+ def batch_update_channel_metadata(self, auth_header: str, request: "timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest") -> "timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse":
70193
+ """
70194
+ Batch update the metadata for multiple channels. If some channels cannot be found or authorized,
70195
+ no metadata will be updated for any of the channels in the request.
70196
+ """
70197
+
70198
+ _headers: Dict[str, Any] = {
70199
+ 'Accept': 'application/json',
70200
+ 'Content-Type': 'application/json',
70201
+ 'Authorization': auth_header,
70202
+ }
70203
+
70204
+ _params: Dict[str, Any] = {
70205
+ }
70206
+
70207
+ _path_params: Dict[str, Any] = {
70208
+ }
70209
+
70210
+ _json: Any = ConjureEncoder().default(request)
70211
+
70212
+ _path = '/timeseries/channel-metadata/v1/channel-metadata/batch-update'
70213
+ _path = _path.format(**_path_params)
70214
+
70215
+ _response: Response = self._request(
70216
+ 'POST',
70217
+ self._uri + _path,
70218
+ params=_params,
70219
+ headers=_headers,
70220
+ json=_json)
70221
+
70222
+ _decoder = ConjureDecoder()
70223
+ return _decoder.decode(_response.json(), timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse, self._return_none_for_unknown_union_types)
70224
+
70225
+
70226
+ timeseries_channelmetadata_ChannelMetadataService.__name__ = "ChannelMetadataService"
70227
+ timeseries_channelmetadata_ChannelMetadataService.__qualname__ = "ChannelMetadataService"
70228
+ timeseries_channelmetadata_ChannelMetadataService.__module__ = "nominal_api.timeseries_channelmetadata"
70229
+
70230
+
70231
+ class timeseries_channelmetadata_api_BatchGetChannelMetadataRequest(ConjureBeanType):
70232
+
70233
+ @builtins.classmethod
70234
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
70235
+ return {
70236
+ 'requests': ConjureFieldDefinition('requests', List[timeseries_channelmetadata_api_GetChannelMetadataRequest])
70237
+ }
70238
+
70239
+ __slots__: List[str] = ['_requests']
70240
+
70241
+ def __init__(self, requests: List["timeseries_channelmetadata_api_GetChannelMetadataRequest"]) -> None:
70242
+ self._requests = requests
70243
+
70244
+ @builtins.property
70245
+ def requests(self) -> List["timeseries_channelmetadata_api_GetChannelMetadataRequest"]:
70246
+ return self._requests
70247
+
70248
+
70249
+ timeseries_channelmetadata_api_BatchGetChannelMetadataRequest.__name__ = "BatchGetChannelMetadataRequest"
70250
+ timeseries_channelmetadata_api_BatchGetChannelMetadataRequest.__qualname__ = "BatchGetChannelMetadataRequest"
70251
+ timeseries_channelmetadata_api_BatchGetChannelMetadataRequest.__module__ = "nominal_api.timeseries_channelmetadata_api"
70252
+
70253
+
70254
+ class timeseries_channelmetadata_api_BatchGetChannelMetadataResponse(ConjureBeanType):
70255
+
70256
+ @builtins.classmethod
70257
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
70258
+ return {
70259
+ 'responses': ConjureFieldDefinition('responses', List[timeseries_channelmetadata_api_ChannelMetadata])
70260
+ }
70261
+
70262
+ __slots__: List[str] = ['_responses']
70263
+
70264
+ def __init__(self, responses: List["timeseries_channelmetadata_api_ChannelMetadata"]) -> None:
70265
+ self._responses = responses
70266
+
70267
+ @builtins.property
70268
+ def responses(self) -> List["timeseries_channelmetadata_api_ChannelMetadata"]:
70269
+ return self._responses
70270
+
70271
+
70272
+ timeseries_channelmetadata_api_BatchGetChannelMetadataResponse.__name__ = "BatchGetChannelMetadataResponse"
70273
+ timeseries_channelmetadata_api_BatchGetChannelMetadataResponse.__qualname__ = "BatchGetChannelMetadataResponse"
70274
+ timeseries_channelmetadata_api_BatchGetChannelMetadataResponse.__module__ = "nominal_api.timeseries_channelmetadata_api"
70275
+
70276
+
70277
+ class timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest(ConjureBeanType):
70278
+
70279
+ @builtins.classmethod
70280
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
70281
+ return {
70282
+ 'requests': ConjureFieldDefinition('requests', List[timeseries_channelmetadata_api_UpdateChannelMetadataRequest])
70283
+ }
70284
+
70285
+ __slots__: List[str] = ['_requests']
70286
+
70287
+ def __init__(self, requests: List["timeseries_channelmetadata_api_UpdateChannelMetadataRequest"]) -> None:
70288
+ self._requests = requests
70289
+
70290
+ @builtins.property
70291
+ def requests(self) -> List["timeseries_channelmetadata_api_UpdateChannelMetadataRequest"]:
70292
+ return self._requests
70293
+
70294
+
70295
+ timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest.__name__ = "BatchUpdateChannelMetadataRequest"
70296
+ timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest.__qualname__ = "BatchUpdateChannelMetadataRequest"
70297
+ timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest.__module__ = "nominal_api.timeseries_channelmetadata_api"
70298
+
70299
+
70300
+ class timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse(ConjureBeanType):
70301
+
70302
+ @builtins.classmethod
70303
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
70304
+ return {
70305
+ 'responses': ConjureFieldDefinition('responses', List[timeseries_channelmetadata_api_ChannelMetadata])
70306
+ }
70307
+
70308
+ __slots__: List[str] = ['_responses']
70309
+
70310
+ def __init__(self, responses: List["timeseries_channelmetadata_api_ChannelMetadata"]) -> None:
70311
+ self._responses = responses
70312
+
70313
+ @builtins.property
70314
+ def responses(self) -> List["timeseries_channelmetadata_api_ChannelMetadata"]:
70315
+ return self._responses
70316
+
70317
+
70318
+ timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse.__name__ = "BatchUpdateChannelMetadataResponse"
70319
+ timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse.__qualname__ = "BatchUpdateChannelMetadataResponse"
70320
+ timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse.__module__ = "nominal_api.timeseries_channelmetadata_api"
70321
+
70322
+
70323
+ class timeseries_channelmetadata_api_ChannelIdentifier(ConjureBeanType):
70324
+
70325
+ @builtins.classmethod
70326
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
70327
+ return {
70328
+ 'channel_name': ConjureFieldDefinition('channelName', api_Channel),
70329
+ 'data_source_rid': ConjureFieldDefinition('dataSourceRid', api_rids_DataSourceRid)
70330
+ }
70331
+
70332
+ __slots__: List[str] = ['_channel_name', '_data_source_rid']
70333
+
70334
+ def __init__(self, channel_name: str, data_source_rid: str) -> None:
70335
+ self._channel_name = channel_name
70336
+ self._data_source_rid = data_source_rid
70337
+
70338
+ @builtins.property
70339
+ def channel_name(self) -> str:
70340
+ return self._channel_name
70341
+
70342
+ @builtins.property
70343
+ def data_source_rid(self) -> str:
70344
+ return self._data_source_rid
70345
+
70346
+
70347
+ timeseries_channelmetadata_api_ChannelIdentifier.__name__ = "ChannelIdentifier"
70348
+ timeseries_channelmetadata_api_ChannelIdentifier.__qualname__ = "ChannelIdentifier"
70349
+ timeseries_channelmetadata_api_ChannelIdentifier.__module__ = "nominal_api.timeseries_channelmetadata_api"
70350
+
70351
+
70352
+ class timeseries_channelmetadata_api_ChannelMetadata(ConjureBeanType):
70353
+
70354
+ @builtins.classmethod
70355
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
70356
+ return {
70357
+ 'channel_identifier': ConjureFieldDefinition('channelIdentifier', timeseries_channelmetadata_api_ChannelIdentifier),
70358
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
70359
+ 'unit': ConjureFieldDefinition('unit', OptionalTypeWrapper[api_Unit]),
70360
+ 'data_type': ConjureFieldDefinition('dataType', OptionalTypeWrapper[api_SeriesDataType])
70361
+ }
70362
+
70363
+ __slots__: List[str] = ['_channel_identifier', '_description', '_unit', '_data_type']
70364
+
70365
+ def __init__(self, channel_identifier: "timeseries_channelmetadata_api_ChannelIdentifier", data_type: Optional["api_SeriesDataType"] = None, description: Optional[str] = None, unit: Optional[str] = None) -> None:
70366
+ self._channel_identifier = channel_identifier
70367
+ self._description = description
70368
+ self._unit = unit
70369
+ self._data_type = data_type
70370
+
70371
+ @builtins.property
70372
+ def channel_identifier(self) -> "timeseries_channelmetadata_api_ChannelIdentifier":
70373
+ return self._channel_identifier
70374
+
70375
+ @builtins.property
70376
+ def description(self) -> Optional[str]:
70377
+ return self._description
70378
+
70379
+ @builtins.property
70380
+ def unit(self) -> Optional[str]:
70381
+ return self._unit
70382
+
70383
+ @builtins.property
70384
+ def data_type(self) -> Optional["api_SeriesDataType"]:
70385
+ return self._data_type
70386
+
70387
+
70388
+ timeseries_channelmetadata_api_ChannelMetadata.__name__ = "ChannelMetadata"
70389
+ timeseries_channelmetadata_api_ChannelMetadata.__qualname__ = "ChannelMetadata"
70390
+ timeseries_channelmetadata_api_ChannelMetadata.__module__ = "nominal_api.timeseries_channelmetadata_api"
70391
+
70392
+
70393
+ class timeseries_channelmetadata_api_GetChannelMetadataRequest(ConjureBeanType):
70394
+
70395
+ @builtins.classmethod
70396
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
70397
+ return {
70398
+ 'channel_identifier': ConjureFieldDefinition('channelIdentifier', timeseries_channelmetadata_api_ChannelIdentifier)
70399
+ }
70400
+
70401
+ __slots__: List[str] = ['_channel_identifier']
70402
+
70403
+ def __init__(self, channel_identifier: "timeseries_channelmetadata_api_ChannelIdentifier") -> None:
70404
+ self._channel_identifier = channel_identifier
70405
+
70406
+ @builtins.property
70407
+ def channel_identifier(self) -> "timeseries_channelmetadata_api_ChannelIdentifier":
70408
+ return self._channel_identifier
70409
+
70410
+
70411
+ timeseries_channelmetadata_api_GetChannelMetadataRequest.__name__ = "GetChannelMetadataRequest"
70412
+ timeseries_channelmetadata_api_GetChannelMetadataRequest.__qualname__ = "GetChannelMetadataRequest"
70413
+ timeseries_channelmetadata_api_GetChannelMetadataRequest.__module__ = "nominal_api.timeseries_channelmetadata_api"
70414
+
70415
+
70416
+ class timeseries_channelmetadata_api_UpdateChannelMetadataRequest(ConjureBeanType):
70417
+
70418
+ @builtins.classmethod
70419
+ def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
70420
+ return {
70421
+ 'channel_identifier': ConjureFieldDefinition('channelIdentifier', timeseries_channelmetadata_api_ChannelIdentifier),
70422
+ 'description': ConjureFieldDefinition('description', OptionalTypeWrapper[str]),
70423
+ 'unit_update': ConjureFieldDefinition('unitUpdate', OptionalTypeWrapper[timeseries_logicalseries_api_UnitUpdate])
70424
+ }
70425
+
70426
+ __slots__: List[str] = ['_channel_identifier', '_description', '_unit_update']
70427
+
70428
+ def __init__(self, channel_identifier: "timeseries_channelmetadata_api_ChannelIdentifier", description: Optional[str] = None, unit_update: Optional["timeseries_logicalseries_api_UnitUpdate"] = None) -> None:
70429
+ self._channel_identifier = channel_identifier
70430
+ self._description = description
70431
+ self._unit_update = unit_update
70432
+
70433
+ @builtins.property
70434
+ def channel_identifier(self) -> "timeseries_channelmetadata_api_ChannelIdentifier":
70435
+ return self._channel_identifier
70436
+
70437
+ @builtins.property
70438
+ def description(self) -> Optional[str]:
70439
+ return self._description
70440
+
70441
+ @builtins.property
70442
+ def unit_update(self) -> Optional["timeseries_logicalseries_api_UnitUpdate"]:
70443
+ return self._unit_update
70444
+
70445
+
70446
+ timeseries_channelmetadata_api_UpdateChannelMetadataRequest.__name__ = "UpdateChannelMetadataRequest"
70447
+ timeseries_channelmetadata_api_UpdateChannelMetadataRequest.__qualname__ = "UpdateChannelMetadataRequest"
70448
+ timeseries_channelmetadata_api_UpdateChannelMetadataRequest.__module__ = "nominal_api.timeseries_channelmetadata_api"
70449
+
70450
+
70163
70451
  class timeseries_logicalseries_LogicalSeriesService(Service):
70164
70452
  """
70165
70453
  A logical series is a timeseries, represented by a channel name and a tag set.
@@ -1,7 +1,9 @@
1
1
  # coding=utf-8
2
2
  from .._impl import (
3
3
  scout_api_ChannelLocator as ChannelLocator,
4
+ scout_api_DataScope as DataScope,
4
5
  scout_api_DataSourceRefName as DataSourceRefName,
5
6
  scout_api_HexColor as HexColor,
7
+ scout_api_WeakTimestampType as WeakTimestampType,
6
8
  )
7
9
 
@@ -24,7 +24,6 @@ from .._impl import (
24
24
  scout_run_api_Run as Run,
25
25
  scout_run_api_RunDataReviewEvaluationStatus as RunDataReviewEvaluationStatus,
26
26
  scout_run_api_RunDataReviewSummary as RunDataReviewSummary,
27
- scout_run_api_RunDataSource as RunDataSource,
28
27
  scout_run_api_RunRid as RunRid,
29
28
  scout_run_api_RunWithDataReviewMetrics as RunWithDataReviewMetrics,
30
29
  scout_run_api_RunWithDataReviewSummary as RunWithDataReviewSummary,
@@ -42,6 +41,5 @@ from .._impl import (
42
41
  scout_run_api_UpdateAttachmentsRequest as UpdateAttachmentsRequest,
43
42
  scout_run_api_UpdateRunRequest as UpdateRunRequest,
44
43
  scout_run_api_UtcTimestamp as UtcTimestamp,
45
- scout_run_api_WeakTimestampType as WeakTimestampType,
46
44
  )
47
45
 
@@ -1,5 +1,6 @@
1
1
  # coding=utf-8
2
2
  from .._impl import (
3
+ scout_video_api_Bounds as Bounds,
3
4
  scout_video_api_CreateSegment as CreateSegment,
4
5
  scout_video_api_CreateSegmentsRequest as CreateSegmentsRequest,
5
6
  scout_video_api_CreateSegmentsResponse as CreateSegmentsResponse,
@@ -18,8 +19,6 @@ from .._impl import (
18
19
  scout_video_api_NoTimestampManifest as NoTimestampManifest,
19
20
  scout_video_api_ScaleParameter as ScaleParameter,
20
21
  scout_video_api_ScaleParameterVisitor as ScaleParameterVisitor,
21
- scout_video_api_SearchVideoFilesRequest as SearchVideoFilesRequest,
22
- scout_video_api_SearchVideoFilesResponse as SearchVideoFilesResponse,
23
22
  scout_video_api_SearchVideosQuery as SearchVideosQuery,
24
23
  scout_video_api_SearchVideosQueryVisitor as SearchVideosQueryVisitor,
25
24
  scout_video_api_SearchVideosRequest as SearchVideosRequest,
@@ -0,0 +1,5 @@
1
+ # coding=utf-8
2
+ from .._impl import (
3
+ timeseries_channelmetadata_ChannelMetadataService as ChannelMetadataService,
4
+ )
5
+
@@ -0,0 +1,12 @@
1
+ # coding=utf-8
2
+ from .._impl import (
3
+ timeseries_channelmetadata_api_BatchGetChannelMetadataRequest as BatchGetChannelMetadataRequest,
4
+ timeseries_channelmetadata_api_BatchGetChannelMetadataResponse as BatchGetChannelMetadataResponse,
5
+ timeseries_channelmetadata_api_BatchUpdateChannelMetadataRequest as BatchUpdateChannelMetadataRequest,
6
+ timeseries_channelmetadata_api_BatchUpdateChannelMetadataResponse as BatchUpdateChannelMetadataResponse,
7
+ timeseries_channelmetadata_api_ChannelIdentifier as ChannelIdentifier,
8
+ timeseries_channelmetadata_api_ChannelMetadata as ChannelMetadata,
9
+ timeseries_channelmetadata_api_GetChannelMetadataRequest as GetChannelMetadataRequest,
10
+ timeseries_channelmetadata_api_UpdateChannelMetadataRequest as UpdateChannelMetadataRequest,
11
+ )
12
+
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: nominal-api
3
- Version: 0.581.0
3
+ Version: 0.583.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=6yqLNRrqju-nVKl3EjwtwKUAHgUQzn7gg9Qi3mQt4r0,1851
2
- nominal_api/_impl.py,sha256=EJPjxUD5HHHEDm3NcIcUgWZ-KCQ1HIHWewQ9ngI4gds,2816995
1
+ nominal_api/__init__.py,sha256=UEab9bYWoYZrUMrjgrx5oCy2UhH1eqILcgybDb7Suv4,1923
2
+ nominal_api/_impl.py,sha256=SmmRHxvjIfCschNcX1Ov1_Tj22zGvGyW64PZ3oLPQyA,2828599
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_rids/__init__.py,sha256=Bu-pKUh3aS9_f5m-DZf6W_BUlVo9qYE7EDvaT-rvWQ0,423
@@ -16,7 +16,7 @@ nominal_api/datasource_pagination_api/__init__.py,sha256=3GO8TAUavOe6dUEitOhje74
16
16
  nominal_api/event/__init__.py,sha256=YUhvDFXtyAn08WNd7Xwnybz3PtflvtTcIOaunRS5-1I,836
17
17
  nominal_api/ingest_api/__init__.py,sha256=U4rA8WoGLgVr8yzWcigZijvOOy13BYYzpz5ium94sp4,5532
18
18
  nominal_api/scout/__init__.py,sha256=ip3XK_9jJKAoFiCifUVMTpDMiUE4mWIdGzMDu7LASus,324
19
- nominal_api/scout_api/__init__.py,sha256=biO4DEygbGcLwM6Dg2VuvMra3A5EW6NBjukbIemXoG8,178
19
+ nominal_api/scout_api/__init__.py,sha256=zl03M5lLjNaxN9WxRgx96xKYWwked6WM6nfxSFnak4Q,270
20
20
  nominal_api/scout_asset_api/__init__.py,sha256=Ph-KlW-ki0JRejYQZDvbZ2jRzNAttVBux27lcEj7--Q,1910
21
21
  nominal_api/scout_assets/__init__.py,sha256=dT-b9HnbwVbI-fEalfskKSMGzhGRwZDZ2cdzWul1daY,87
22
22
  nominal_api/scout_catalog/__init__.py,sha256=ZGm4w1YKd4B-3CNxijTpB-1B653nctA_R0u24oPS3To,3508
@@ -47,12 +47,12 @@ nominal_api/scout_metadata/__init__.py,sha256=GIhWKJL2XSMB0iGaKfcGgmPHuvGWWmkK4l
47
47
  nominal_api/scout_notebook_api/__init__.py,sha256=QW0vg8ZrAmuctjnNLxTnqtwyQoX-H9MOkHlLWioe5AA,1230
48
48
  nominal_api/scout_plotting/__init__.py,sha256=m6u3y7R70mo3ugaCp_-fwlS8_tDwrsq1l5ElOTY0TBc,91
49
49
  nominal_api/scout_rids_api/__init__.py,sha256=zAioy5BpuLLgZQpF-11wWUEhntcHNj6sK5YzNC5z-3w,1188
50
- nominal_api/scout_run_api/__init__.py,sha256=lTAFwaHSqRs7dx316MzdQcgdBy7Y_fe_BbfbaktaZGs,2596
50
+ nominal_api/scout_run_api/__init__.py,sha256=3ITK86gMknGWi9RaHs4XmB3Xx16AHAL8GPPe1OwpVJk,2488
51
51
  nominal_api/scout_template_api/__init__.py,sha256=bsu8qPiZ4gf67G5iFvwsfkqEKJRZ7L5Wyg6qcFyogO0,1037
52
52
  nominal_api/scout_units_api/__init__.py,sha256=KxRDScfumX__0ncWJftGvgApn_LBTfnIBAvnaBrcA5A,368
53
53
  nominal_api/scout_versioning_api/__init__.py,sha256=Sf4T4t0rZXNRIZgkqLBN3yh0sAnrxiuzaTfDQVVkyO4,1323
54
54
  nominal_api/scout_video/__init__.py,sha256=zB7mM23yGAgC529rF4gjDmqcLRbsp0kJA3xef8meZko,200
55
- nominal_api/scout_video_api/__init__.py,sha256=ns_kzZuuZPmvsFgMrX7n5xDktmOKw4iBExe7QtuowMA,3242
55
+ nominal_api/scout_video_api/__init__.py,sha256=uV--adN5Su2PiKDpbeeIQj2qWghdh5YFzNT8u-6rPYY,3134
56
56
  nominal_api/scout_workbookcommon_api/__init__.py,sha256=6Ai0cYNOOw2A6JOlKzraTbpZwolspM-WTqVGLMN2HdI,413
57
57
  nominal_api/secrets_api/__init__.py,sha256=V5BpnbNzjdMP8kgvR2N6SEVcVyXi6Vyl_lh_5fKjJzw,736
58
58
  nominal_api/security_api_workspace/__init__.py,sha256=18MQr8sUGDfaXl50sMR7objE5rBJ9dZ1Sjwuyf997dA,156
@@ -63,12 +63,14 @@ nominal_api/storage_writer_api/__init__.py,sha256=kr14YqN44wGfHJIy_7hti6KFq5caA1
63
63
  nominal_api/themes_api/__init__.py,sha256=w-G93T5f6_2zSSUi-ffyUHxH8QA_2oI9jM7YBSMFpwY,924
64
64
  nominal_api/timeseries_archetype/__init__.py,sha256=eKdgdZoOcZg_9pmec6J86NlgQdhxhi1282WUAFxghJ8,115
65
65
  nominal_api/timeseries_archetype_api/__init__.py,sha256=IREibRlChT9ugCAkeMKm7RiAChsKV4KJZ-DcKkVLC_U,1396
66
+ nominal_api/timeseries_channelmetadata/__init__.py,sha256=DdcwwrIydiRIFiEvxAqcTtVmhT6Wy64kAO9e2j4z4sI,121
67
+ nominal_api/timeseries_channelmetadata_api/__init__.py,sha256=g8kC5TrYcF_jrqKec1qbYBoUrVaoTiCd8NsDO3mXGxk,794
66
68
  nominal_api/timeseries_logicalseries/__init__.py,sha256=8EkKiSUli5RbCEf6CPmkiTUOyFcdiNj292eV0WgVbrs,115
67
69
  nominal_api/timeseries_logicalseries_api/__init__.py,sha256=7NlQhIzOKOcjwMNUI89fn9BIEOdu3i9l6wUJWc_gcig,3638
68
70
  nominal_api/timeseries_seriescache/__init__.py,sha256=tFCkNuyrVMgtj-HIl1pOYPJHaL2VikI4C_x97bX_Lcs,109
69
71
  nominal_api/timeseries_seriescache_api/__init__.py,sha256=U9EhlqdF9qzD1O9al0vcvcdgS_C5lq-lN3Kmr0K3g84,1191
70
72
  nominal_api/upload_api/__init__.py,sha256=ZMudWMSqCrNozohbHaJKuxJnT9Edepe7nxxXMz_pT9k,87
71
- nominal_api-0.581.0.dist-info/METADATA,sha256=Mlplin3s8eBjh5X21n6jesHpQU_7lAiGTyrfq2EtZe0,199
72
- nominal_api-0.581.0.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
73
- nominal_api-0.581.0.dist-info/top_level.txt,sha256=gI1ZdNJbuHcJZeKtCzzBXsEtpU1GX6XJKs6ksi_gCRA,12
74
- nominal_api-0.581.0.dist-info/RECORD,,
73
+ nominal_api-0.583.0.dist-info/METADATA,sha256=GRnJvQvUaodUuBW1bg1GEepXRoRISLdRob5d_hGukn8,199
74
+ nominal_api-0.583.0.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
75
+ nominal_api-0.583.0.dist-info/top_level.txt,sha256=gI1ZdNJbuHcJZeKtCzzBXsEtpU1GX6XJKs6ksi_gCRA,12
76
+ nominal_api-0.583.0.dist-info/RECORD,,