nominal-api 0.1048.1__py3-none-any.whl → 0.1056.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 +1 -1
- nominal_api/_impl.py +541 -11
- nominal_api/api/__init__.py +4 -0
- nominal_api/authentication_api/__init__.py +8 -0
- nominal_api/nominal-api.conjure.json +694 -5
- nominal_api/persistent_compute_api/__init__.py +8 -0
- {nominal_api-0.1048.1.dist-info → nominal_api-0.1056.0.dist-info}/METADATA +1 -1
- {nominal_api-0.1048.1.dist-info → nominal_api-0.1056.0.dist-info}/RECORD +10 -10
- {nominal_api-0.1048.1.dist-info → nominal_api-0.1056.0.dist-info}/WHEEL +0 -0
- {nominal_api-0.1048.1.dist-info → nominal_api-0.1056.0.dist-info}/top_level.txt +0 -0
nominal_api/_impl.py
CHANGED
|
@@ -66,6 +66,38 @@ api_DataSourceType.__qualname__ = "DataSourceType"
|
|
|
66
66
|
api_DataSourceType.__module__ = "nominal_api.api"
|
|
67
67
|
|
|
68
68
|
|
|
69
|
+
class api_Deleted(ConjureBeanType):
|
|
70
|
+
|
|
71
|
+
@builtins.classmethod
|
|
72
|
+
def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
|
|
73
|
+
return {
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
__slots__: List[str] = []
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
api_Deleted.__name__ = "Deleted"
|
|
81
|
+
api_Deleted.__qualname__ = "Deleted"
|
|
82
|
+
api_Deleted.__module__ = "nominal_api.api"
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
class api_DeletionInProgress(ConjureBeanType):
|
|
86
|
+
|
|
87
|
+
@builtins.classmethod
|
|
88
|
+
def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
|
|
89
|
+
return {
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
__slots__: List[str] = []
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
api_DeletionInProgress.__name__ = "DeletionInProgress"
|
|
97
|
+
api_DeletionInProgress.__qualname__ = "DeletionInProgress"
|
|
98
|
+
api_DeletionInProgress.__module__ = "nominal_api.api"
|
|
99
|
+
|
|
100
|
+
|
|
69
101
|
class api_Empty(ConjureBeanType):
|
|
70
102
|
|
|
71
103
|
@builtins.classmethod
|
|
@@ -225,13 +257,17 @@ class api_IngestStatusV2(ConjureUnionType):
|
|
|
225
257
|
_success: Optional["api_SuccessResult"] = None
|
|
226
258
|
_error: Optional["api_ErrorResult"] = None
|
|
227
259
|
_in_progress: Optional["api_InProgressResult"] = None
|
|
260
|
+
_deletion_in_progress: Optional["api_DeletionInProgress"] = None
|
|
261
|
+
_deleted: Optional["api_Deleted"] = None
|
|
228
262
|
|
|
229
263
|
@builtins.classmethod
|
|
230
264
|
def _options(cls) -> Dict[str, ConjureFieldDefinition]:
|
|
231
265
|
return {
|
|
232
266
|
'success': ConjureFieldDefinition('success', api_SuccessResult),
|
|
233
267
|
'error': ConjureFieldDefinition('error', api_ErrorResult),
|
|
234
|
-
'in_progress': ConjureFieldDefinition('inProgress', api_InProgressResult)
|
|
268
|
+
'in_progress': ConjureFieldDefinition('inProgress', api_InProgressResult),
|
|
269
|
+
'deletion_in_progress': ConjureFieldDefinition('deletionInProgress', api_DeletionInProgress),
|
|
270
|
+
'deleted': ConjureFieldDefinition('deleted', api_Deleted)
|
|
235
271
|
}
|
|
236
272
|
|
|
237
273
|
def __init__(
|
|
@@ -239,10 +275,12 @@ class api_IngestStatusV2(ConjureUnionType):
|
|
|
239
275
|
success: Optional["api_SuccessResult"] = None,
|
|
240
276
|
error: Optional["api_ErrorResult"] = None,
|
|
241
277
|
in_progress: Optional["api_InProgressResult"] = None,
|
|
278
|
+
deletion_in_progress: Optional["api_DeletionInProgress"] = None,
|
|
279
|
+
deleted: Optional["api_Deleted"] = None,
|
|
242
280
|
type_of_union: Optional[str] = None
|
|
243
281
|
) -> None:
|
|
244
282
|
if type_of_union is None:
|
|
245
|
-
if (success is not None) + (error is not None) + (in_progress is not None) != 1:
|
|
283
|
+
if (success is not None) + (error is not None) + (in_progress is not None) + (deletion_in_progress is not None) + (deleted is not None) != 1:
|
|
246
284
|
raise ValueError('a union must contain a single member')
|
|
247
285
|
|
|
248
286
|
if success is not None:
|
|
@@ -254,6 +292,12 @@ class api_IngestStatusV2(ConjureUnionType):
|
|
|
254
292
|
if in_progress is not None:
|
|
255
293
|
self._in_progress = in_progress
|
|
256
294
|
self._type = 'inProgress'
|
|
295
|
+
if deletion_in_progress is not None:
|
|
296
|
+
self._deletion_in_progress = deletion_in_progress
|
|
297
|
+
self._type = 'deletionInProgress'
|
|
298
|
+
if deleted is not None:
|
|
299
|
+
self._deleted = deleted
|
|
300
|
+
self._type = 'deleted'
|
|
257
301
|
|
|
258
302
|
elif type_of_union == 'success':
|
|
259
303
|
if success is None:
|
|
@@ -270,6 +314,16 @@ class api_IngestStatusV2(ConjureUnionType):
|
|
|
270
314
|
raise ValueError('a union value must not be None')
|
|
271
315
|
self._in_progress = in_progress
|
|
272
316
|
self._type = 'inProgress'
|
|
317
|
+
elif type_of_union == 'deletionInProgress':
|
|
318
|
+
if deletion_in_progress is None:
|
|
319
|
+
raise ValueError('a union value must not be None')
|
|
320
|
+
self._deletion_in_progress = deletion_in_progress
|
|
321
|
+
self._type = 'deletionInProgress'
|
|
322
|
+
elif type_of_union == 'deleted':
|
|
323
|
+
if deleted is None:
|
|
324
|
+
raise ValueError('a union value must not be None')
|
|
325
|
+
self._deleted = deleted
|
|
326
|
+
self._type = 'deleted'
|
|
273
327
|
|
|
274
328
|
@builtins.property
|
|
275
329
|
def success(self) -> Optional["api_SuccessResult"]:
|
|
@@ -283,6 +337,14 @@ class api_IngestStatusV2(ConjureUnionType):
|
|
|
283
337
|
def in_progress(self) -> Optional["api_InProgressResult"]:
|
|
284
338
|
return self._in_progress
|
|
285
339
|
|
|
340
|
+
@builtins.property
|
|
341
|
+
def deletion_in_progress(self) -> Optional["api_DeletionInProgress"]:
|
|
342
|
+
return self._deletion_in_progress
|
|
343
|
+
|
|
344
|
+
@builtins.property
|
|
345
|
+
def deleted(self) -> Optional["api_Deleted"]:
|
|
346
|
+
return self._deleted
|
|
347
|
+
|
|
286
348
|
def accept(self, visitor) -> Any:
|
|
287
349
|
if not isinstance(visitor, api_IngestStatusV2Visitor):
|
|
288
350
|
raise ValueError('{} is not an instance of api_IngestStatusV2Visitor'.format(visitor.__class__.__name__))
|
|
@@ -292,6 +354,10 @@ class api_IngestStatusV2(ConjureUnionType):
|
|
|
292
354
|
return visitor._error(self.error)
|
|
293
355
|
if self._type == 'inProgress' and self.in_progress is not None:
|
|
294
356
|
return visitor._in_progress(self.in_progress)
|
|
357
|
+
if self._type == 'deletionInProgress' and self.deletion_in_progress is not None:
|
|
358
|
+
return visitor._deletion_in_progress(self.deletion_in_progress)
|
|
359
|
+
if self._type == 'deleted' and self.deleted is not None:
|
|
360
|
+
return visitor._deleted(self.deleted)
|
|
295
361
|
|
|
296
362
|
|
|
297
363
|
api_IngestStatusV2.__name__ = "IngestStatusV2"
|
|
@@ -313,6 +379,14 @@ class api_IngestStatusV2Visitor:
|
|
|
313
379
|
def _in_progress(self, in_progress: "api_InProgressResult") -> Any:
|
|
314
380
|
pass
|
|
315
381
|
|
|
382
|
+
@abstractmethod
|
|
383
|
+
def _deletion_in_progress(self, deletion_in_progress: "api_DeletionInProgress") -> Any:
|
|
384
|
+
pass
|
|
385
|
+
|
|
386
|
+
@abstractmethod
|
|
387
|
+
def _deleted(self, deleted: "api_Deleted") -> Any:
|
|
388
|
+
pass
|
|
389
|
+
|
|
316
390
|
|
|
317
391
|
api_IngestStatusV2Visitor.__name__ = "IngestStatusV2Visitor"
|
|
318
392
|
api_IngestStatusV2Visitor.__qualname__ = "IngestStatusV2Visitor"
|
|
@@ -1726,6 +1800,137 @@ Requires authentication with Nominal. This endpoint is intended for internal use
|
|
|
1726
1800
|
_decoder = ConjureDecoder()
|
|
1727
1801
|
return _decoder.decode(_response.json(), authentication_api_GenerateMediaMtxTokenResponse, self._return_none_for_unknown_union_types)
|
|
1728
1802
|
|
|
1803
|
+
def get_my_coachmark_dismissals(self, auth_header: str, request: "authentication_api_GetCoachmarkDismissalsRequest") -> "authentication_api_GetCoachmarkDismissalsResponse":
|
|
1804
|
+
"""Gets coachmark dismissals for the authenticated user.
|
|
1805
|
+
Optionally filter by specific coachmark IDs.
|
|
1806
|
+
"""
|
|
1807
|
+
_conjure_encoder = ConjureEncoder()
|
|
1808
|
+
|
|
1809
|
+
_headers: Dict[str, Any] = {
|
|
1810
|
+
'Accept': 'application/json',
|
|
1811
|
+
'Content-Type': 'application/json',
|
|
1812
|
+
'Authorization': auth_header,
|
|
1813
|
+
}
|
|
1814
|
+
|
|
1815
|
+
_params: Dict[str, Any] = {
|
|
1816
|
+
}
|
|
1817
|
+
|
|
1818
|
+
_path_params: Dict[str, str] = {
|
|
1819
|
+
}
|
|
1820
|
+
|
|
1821
|
+
_json: Any = _conjure_encoder.default(request)
|
|
1822
|
+
|
|
1823
|
+
_path = '/authentication/v2/my/coachmarks/dismissals'
|
|
1824
|
+
_path = _path.format(**_path_params)
|
|
1825
|
+
|
|
1826
|
+
_response: Response = self._request(
|
|
1827
|
+
'POST',
|
|
1828
|
+
self._uri + _path,
|
|
1829
|
+
params=_params,
|
|
1830
|
+
headers=_headers,
|
|
1831
|
+
json=_json)
|
|
1832
|
+
|
|
1833
|
+
_decoder = ConjureDecoder()
|
|
1834
|
+
return _decoder.decode(_response.json(), authentication_api_GetCoachmarkDismissalsResponse, self._return_none_for_unknown_union_types)
|
|
1835
|
+
|
|
1836
|
+
def dismiss_my_coachmark(self, auth_header: str, request: "authentication_api_DismissCoachmarkRequest") -> "authentication_api_CoachmarkDismissal":
|
|
1837
|
+
"""Dismisses a coachmark for the authenticated user.
|
|
1838
|
+
Records the dismissal timestamp and app version.
|
|
1839
|
+
"""
|
|
1840
|
+
_conjure_encoder = ConjureEncoder()
|
|
1841
|
+
|
|
1842
|
+
_headers: Dict[str, Any] = {
|
|
1843
|
+
'Accept': 'application/json',
|
|
1844
|
+
'Content-Type': 'application/json',
|
|
1845
|
+
'Authorization': auth_header,
|
|
1846
|
+
}
|
|
1847
|
+
|
|
1848
|
+
_params: Dict[str, Any] = {
|
|
1849
|
+
}
|
|
1850
|
+
|
|
1851
|
+
_path_params: Dict[str, str] = {
|
|
1852
|
+
}
|
|
1853
|
+
|
|
1854
|
+
_json: Any = _conjure_encoder.default(request)
|
|
1855
|
+
|
|
1856
|
+
_path = '/authentication/v2/my/coachmarks/dismiss'
|
|
1857
|
+
_path = _path.format(**_path_params)
|
|
1858
|
+
|
|
1859
|
+
_response: Response = self._request(
|
|
1860
|
+
'POST',
|
|
1861
|
+
self._uri + _path,
|
|
1862
|
+
params=_params,
|
|
1863
|
+
headers=_headers,
|
|
1864
|
+
json=_json)
|
|
1865
|
+
|
|
1866
|
+
_decoder = ConjureDecoder()
|
|
1867
|
+
return _decoder.decode(_response.json(), authentication_api_CoachmarkDismissal, self._return_none_for_unknown_union_types)
|
|
1868
|
+
|
|
1869
|
+
def is_my_coachmark_dismissed(self, auth_header: str, coachmark_id: str) -> bool:
|
|
1870
|
+
"""Checks if a specific coachmark has been dismissed by the authenticated user.
|
|
1871
|
+
"""
|
|
1872
|
+
_conjure_encoder = ConjureEncoder()
|
|
1873
|
+
|
|
1874
|
+
_headers: Dict[str, Any] = {
|
|
1875
|
+
'Accept': 'application/json',
|
|
1876
|
+
'Authorization': auth_header,
|
|
1877
|
+
}
|
|
1878
|
+
|
|
1879
|
+
_params: Dict[str, Any] = {
|
|
1880
|
+
}
|
|
1881
|
+
|
|
1882
|
+
_path_params: Dict[str, str] = {
|
|
1883
|
+
'coachmarkId': quote(str(_conjure_encoder.default(coachmark_id)), safe=''),
|
|
1884
|
+
}
|
|
1885
|
+
|
|
1886
|
+
_json: Any = None
|
|
1887
|
+
|
|
1888
|
+
_path = '/authentication/v2/my/coachmarks/dismissed/{coachmarkId}'
|
|
1889
|
+
_path = _path.format(**_path_params)
|
|
1890
|
+
|
|
1891
|
+
_response: Response = self._request(
|
|
1892
|
+
'GET',
|
|
1893
|
+
self._uri + _path,
|
|
1894
|
+
params=_params,
|
|
1895
|
+
headers=_headers,
|
|
1896
|
+
json=_json)
|
|
1897
|
+
|
|
1898
|
+
_decoder = ConjureDecoder()
|
|
1899
|
+
return _decoder.decode(_response.json(), bool, self._return_none_for_unknown_union_types)
|
|
1900
|
+
|
|
1901
|
+
def reset_my_coachmark_dismissal(self, auth_header: str, coachmark_id: str) -> None:
|
|
1902
|
+
"""Resets a coachmark dismissal for the authenticated user.
|
|
1903
|
+
This allows the coachmark to be shown again.
|
|
1904
|
+
Primarily intended for testing and debugging.
|
|
1905
|
+
"""
|
|
1906
|
+
_conjure_encoder = ConjureEncoder()
|
|
1907
|
+
|
|
1908
|
+
_headers: Dict[str, Any] = {
|
|
1909
|
+
'Accept': 'application/json',
|
|
1910
|
+
'Authorization': auth_header,
|
|
1911
|
+
}
|
|
1912
|
+
|
|
1913
|
+
_params: Dict[str, Any] = {
|
|
1914
|
+
}
|
|
1915
|
+
|
|
1916
|
+
_path_params: Dict[str, str] = {
|
|
1917
|
+
'coachmarkId': quote(str(_conjure_encoder.default(coachmark_id)), safe=''),
|
|
1918
|
+
}
|
|
1919
|
+
|
|
1920
|
+
_json: Any = None
|
|
1921
|
+
|
|
1922
|
+
_path = '/authentication/v2/my/coachmarks/dismissals/{coachmarkId}'
|
|
1923
|
+
_path = _path.format(**_path_params)
|
|
1924
|
+
|
|
1925
|
+
_response: Response = self._request(
|
|
1926
|
+
'DELETE',
|
|
1927
|
+
self._uri + _path,
|
|
1928
|
+
params=_params,
|
|
1929
|
+
headers=_headers,
|
|
1930
|
+
json=_json)
|
|
1931
|
+
|
|
1932
|
+
return
|
|
1933
|
+
|
|
1729
1934
|
|
|
1730
1935
|
authentication_api_AuthenticationServiceV2.__name__ = "AuthenticationServiceV2"
|
|
1731
1936
|
authentication_api_AuthenticationServiceV2.__qualname__ = "AuthenticationServiceV2"
|
|
@@ -1754,6 +1959,59 @@ authentication_api_ChartTooltipModeSetting.__qualname__ = "ChartTooltipModeSetti
|
|
|
1754
1959
|
authentication_api_ChartTooltipModeSetting.__module__ = "nominal_api.authentication_api"
|
|
1755
1960
|
|
|
1756
1961
|
|
|
1962
|
+
class authentication_api_CoachmarkDismissal(ConjureBeanType):
|
|
1963
|
+
"""A record of a coachmark dismissal, including when it was dismissed
|
|
1964
|
+
and on which app version.
|
|
1965
|
+
"""
|
|
1966
|
+
|
|
1967
|
+
@builtins.classmethod
|
|
1968
|
+
def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
|
|
1969
|
+
return {
|
|
1970
|
+
'coachmark_id': ConjureFieldDefinition('coachmarkId', str),
|
|
1971
|
+
'dismissed_at': ConjureFieldDefinition('dismissedAt', str),
|
|
1972
|
+
'app_version': ConjureFieldDefinition('appVersion', str),
|
|
1973
|
+
'step_index': ConjureFieldDefinition('stepIndex', OptionalTypeWrapper[int])
|
|
1974
|
+
}
|
|
1975
|
+
|
|
1976
|
+
__slots__: List[str] = ['_coachmark_id', '_dismissed_at', '_app_version', '_step_index']
|
|
1977
|
+
|
|
1978
|
+
def __init__(self, app_version: str, coachmark_id: str, dismissed_at: str, step_index: Optional[int] = None) -> None:
|
|
1979
|
+
self._coachmark_id = coachmark_id
|
|
1980
|
+
self._dismissed_at = dismissed_at
|
|
1981
|
+
self._app_version = app_version
|
|
1982
|
+
self._step_index = step_index
|
|
1983
|
+
|
|
1984
|
+
@builtins.property
|
|
1985
|
+
def coachmark_id(self) -> str:
|
|
1986
|
+
"""The coachmark identifier (typically the feature flag name)
|
|
1987
|
+
"""
|
|
1988
|
+
return self._coachmark_id
|
|
1989
|
+
|
|
1990
|
+
@builtins.property
|
|
1991
|
+
def dismissed_at(self) -> str:
|
|
1992
|
+
"""ISO 8601 timestamp of when the coachmark was dismissed
|
|
1993
|
+
"""
|
|
1994
|
+
return self._dismissed_at
|
|
1995
|
+
|
|
1996
|
+
@builtins.property
|
|
1997
|
+
def app_version(self) -> str:
|
|
1998
|
+
"""The apps-scout version (semver) when the coachmark was dismissed
|
|
1999
|
+
"""
|
|
2000
|
+
return self._app_version
|
|
2001
|
+
|
|
2002
|
+
@builtins.property
|
|
2003
|
+
def step_index(self) -> Optional[int]:
|
|
2004
|
+
"""The step index when dismissed (for multi-step coachmarks).
|
|
2005
|
+
If not present, the coachmark was dismissed via the X button.
|
|
2006
|
+
"""
|
|
2007
|
+
return self._step_index
|
|
2008
|
+
|
|
2009
|
+
|
|
2010
|
+
authentication_api_CoachmarkDismissal.__name__ = "CoachmarkDismissal"
|
|
2011
|
+
authentication_api_CoachmarkDismissal.__qualname__ = "CoachmarkDismissal"
|
|
2012
|
+
authentication_api_CoachmarkDismissal.__module__ = "nominal_api.authentication_api"
|
|
2013
|
+
|
|
2014
|
+
|
|
1757
2015
|
class authentication_api_DefaultTimeRangeTypeSetting(ConjureEnumType):
|
|
1758
2016
|
|
|
1759
2017
|
DEFAULT = 'DEFAULT'
|
|
@@ -1774,6 +2032,49 @@ authentication_api_DefaultTimeRangeTypeSetting.__qualname__ = "DefaultTimeRangeT
|
|
|
1774
2032
|
authentication_api_DefaultTimeRangeTypeSetting.__module__ = "nominal_api.authentication_api"
|
|
1775
2033
|
|
|
1776
2034
|
|
|
2035
|
+
class authentication_api_DismissCoachmarkRequest(ConjureBeanType):
|
|
2036
|
+
"""Request to dismiss a coachmark
|
|
2037
|
+
"""
|
|
2038
|
+
|
|
2039
|
+
@builtins.classmethod
|
|
2040
|
+
def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
|
|
2041
|
+
return {
|
|
2042
|
+
'coachmark_id': ConjureFieldDefinition('coachmarkId', str),
|
|
2043
|
+
'app_version': ConjureFieldDefinition('appVersion', str),
|
|
2044
|
+
'step_index': ConjureFieldDefinition('stepIndex', OptionalTypeWrapper[int])
|
|
2045
|
+
}
|
|
2046
|
+
|
|
2047
|
+
__slots__: List[str] = ['_coachmark_id', '_app_version', '_step_index']
|
|
2048
|
+
|
|
2049
|
+
def __init__(self, app_version: str, coachmark_id: str, step_index: Optional[int] = None) -> None:
|
|
2050
|
+
self._coachmark_id = coachmark_id
|
|
2051
|
+
self._app_version = app_version
|
|
2052
|
+
self._step_index = step_index
|
|
2053
|
+
|
|
2054
|
+
@builtins.property
|
|
2055
|
+
def coachmark_id(self) -> str:
|
|
2056
|
+
"""The coachmark identifier to dismiss
|
|
2057
|
+
"""
|
|
2058
|
+
return self._coachmark_id
|
|
2059
|
+
|
|
2060
|
+
@builtins.property
|
|
2061
|
+
def app_version(self) -> str:
|
|
2062
|
+
"""The apps-scout version (semver) when dismissing
|
|
2063
|
+
"""
|
|
2064
|
+
return self._app_version
|
|
2065
|
+
|
|
2066
|
+
@builtins.property
|
|
2067
|
+
def step_index(self) -> Optional[int]:
|
|
2068
|
+
"""The step index when dismissed (for multi-step coachmarks)
|
|
2069
|
+
"""
|
|
2070
|
+
return self._step_index
|
|
2071
|
+
|
|
2072
|
+
|
|
2073
|
+
authentication_api_DismissCoachmarkRequest.__name__ = "DismissCoachmarkRequest"
|
|
2074
|
+
authentication_api_DismissCoachmarkRequest.__qualname__ = "DismissCoachmarkRequest"
|
|
2075
|
+
authentication_api_DismissCoachmarkRequest.__module__ = "nominal_api.authentication_api"
|
|
2076
|
+
|
|
2077
|
+
|
|
1777
2078
|
class authentication_api_GenerateMediaMtxTokenRequest(ConjureBeanType):
|
|
1778
2079
|
"""Request to generate a MediaMTX authentication token
|
|
1779
2080
|
"""
|
|
@@ -1828,6 +2129,61 @@ authentication_api_GenerateMediaMtxTokenResponse.__qualname__ = "GenerateMediaMt
|
|
|
1828
2129
|
authentication_api_GenerateMediaMtxTokenResponse.__module__ = "nominal_api.authentication_api"
|
|
1829
2130
|
|
|
1830
2131
|
|
|
2132
|
+
class authentication_api_GetCoachmarkDismissalsRequest(ConjureBeanType):
|
|
2133
|
+
"""Request to get coachmark dismissals
|
|
2134
|
+
"""
|
|
2135
|
+
|
|
2136
|
+
@builtins.classmethod
|
|
2137
|
+
def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
|
|
2138
|
+
return {
|
|
2139
|
+
'coachmark_ids': ConjureFieldDefinition('coachmarkIds', OptionalTypeWrapper[List[str]])
|
|
2140
|
+
}
|
|
2141
|
+
|
|
2142
|
+
__slots__: List[str] = ['_coachmark_ids']
|
|
2143
|
+
|
|
2144
|
+
def __init__(self, coachmark_ids: Optional[List[str]] = None) -> None:
|
|
2145
|
+
self._coachmark_ids = coachmark_ids
|
|
2146
|
+
|
|
2147
|
+
@builtins.property
|
|
2148
|
+
def coachmark_ids(self) -> Optional[List[str]]:
|
|
2149
|
+
"""Optional list of coachmark IDs to filter by.
|
|
2150
|
+
If empty, returns all dismissals for the user.
|
|
2151
|
+
"""
|
|
2152
|
+
return self._coachmark_ids
|
|
2153
|
+
|
|
2154
|
+
|
|
2155
|
+
authentication_api_GetCoachmarkDismissalsRequest.__name__ = "GetCoachmarkDismissalsRequest"
|
|
2156
|
+
authentication_api_GetCoachmarkDismissalsRequest.__qualname__ = "GetCoachmarkDismissalsRequest"
|
|
2157
|
+
authentication_api_GetCoachmarkDismissalsRequest.__module__ = "nominal_api.authentication_api"
|
|
2158
|
+
|
|
2159
|
+
|
|
2160
|
+
class authentication_api_GetCoachmarkDismissalsResponse(ConjureBeanType):
|
|
2161
|
+
"""Response containing coachmark dismissals
|
|
2162
|
+
"""
|
|
2163
|
+
|
|
2164
|
+
@builtins.classmethod
|
|
2165
|
+
def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
|
|
2166
|
+
return {
|
|
2167
|
+
'dismissals': ConjureFieldDefinition('dismissals', Dict[str, authentication_api_CoachmarkDismissal])
|
|
2168
|
+
}
|
|
2169
|
+
|
|
2170
|
+
__slots__: List[str] = ['_dismissals']
|
|
2171
|
+
|
|
2172
|
+
def __init__(self, dismissals: Dict[str, "authentication_api_CoachmarkDismissal"]) -> None:
|
|
2173
|
+
self._dismissals = dismissals
|
|
2174
|
+
|
|
2175
|
+
@builtins.property
|
|
2176
|
+
def dismissals(self) -> Dict[str, "authentication_api_CoachmarkDismissal"]:
|
|
2177
|
+
"""Map of coachmark ID to dismissal record
|
|
2178
|
+
"""
|
|
2179
|
+
return self._dismissals
|
|
2180
|
+
|
|
2181
|
+
|
|
2182
|
+
authentication_api_GetCoachmarkDismissalsResponse.__name__ = "GetCoachmarkDismissalsResponse"
|
|
2183
|
+
authentication_api_GetCoachmarkDismissalsResponse.__qualname__ = "GetCoachmarkDismissalsResponse"
|
|
2184
|
+
authentication_api_GetCoachmarkDismissalsResponse.__module__ = "nominal_api.authentication_api"
|
|
2185
|
+
|
|
2186
|
+
|
|
1831
2187
|
class authentication_api_Jwk(ConjureBeanType):
|
|
1832
2188
|
"""A JSON Web Key (JWK) representation for RSA public keys
|
|
1833
2189
|
"""
|
|
@@ -17871,6 +18227,35 @@ module_internal_ModuleComputeDefinition.__qualname__ = "ModuleComputeDefinition"
|
|
|
17871
18227
|
module_internal_ModuleComputeDefinition.__module__ = "nominal_api.module_internal"
|
|
17872
18228
|
|
|
17873
18229
|
|
|
18230
|
+
class persistent_compute_api_AppendOnlyConfig(ConjureBeanType):
|
|
18231
|
+
"""Defines the append results from the websocket.
|
|
18232
|
+
"""
|
|
18233
|
+
|
|
18234
|
+
@builtins.classmethod
|
|
18235
|
+
def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
|
|
18236
|
+
return {
|
|
18237
|
+
'decimate_results': ConjureFieldDefinition('decimateResults', bool)
|
|
18238
|
+
}
|
|
18239
|
+
|
|
18240
|
+
__slots__: List[str] = ['_decimate_results']
|
|
18241
|
+
|
|
18242
|
+
def __init__(self, decimate_results: bool) -> None:
|
|
18243
|
+
self._decimate_results = decimate_results
|
|
18244
|
+
|
|
18245
|
+
@builtins.property
|
|
18246
|
+
def decimate_results(self) -> bool:
|
|
18247
|
+
"""Specifies whether the returned results should be decimated.
|
|
18248
|
+
If this is false, the client may receive a `SubscriptionCreationError` if the data rate is too high
|
|
18249
|
+
and responses must be decimated.
|
|
18250
|
+
"""
|
|
18251
|
+
return self._decimate_results
|
|
18252
|
+
|
|
18253
|
+
|
|
18254
|
+
persistent_compute_api_AppendOnlyConfig.__name__ = "AppendOnlyConfig"
|
|
18255
|
+
persistent_compute_api_AppendOnlyConfig.__qualname__ = "AppendOnlyConfig"
|
|
18256
|
+
persistent_compute_api_AppendOnlyConfig.__module__ = "nominal_api.persistent_compute_api"
|
|
18257
|
+
|
|
18258
|
+
|
|
17874
18259
|
class persistent_compute_api_AppendResult(ConjureBeanType):
|
|
17875
18260
|
"""An append result won't cover the full `StreamingComputeNodeRequest#windowWidth` but rather just a smaller
|
|
17876
18261
|
window. The end of the window that the append covers is guaranteed to be later than previously sent results.
|
|
@@ -18817,6 +19202,62 @@ persistent_compute_api_Pong.__qualname__ = "Pong"
|
|
|
18817
19202
|
persistent_compute_api_Pong.__module__ = "nominal_api.persistent_compute_api"
|
|
18818
19203
|
|
|
18819
19204
|
|
|
19205
|
+
class persistent_compute_api_ResultConfiguration(ConjureUnionType):
|
|
19206
|
+
_append_only: Optional["persistent_compute_api_AppendOnlyConfig"] = None
|
|
19207
|
+
|
|
19208
|
+
@builtins.classmethod
|
|
19209
|
+
def _options(cls) -> Dict[str, ConjureFieldDefinition]:
|
|
19210
|
+
return {
|
|
19211
|
+
'append_only': ConjureFieldDefinition('appendOnly', persistent_compute_api_AppendOnlyConfig)
|
|
19212
|
+
}
|
|
19213
|
+
|
|
19214
|
+
def __init__(
|
|
19215
|
+
self,
|
|
19216
|
+
append_only: Optional["persistent_compute_api_AppendOnlyConfig"] = None,
|
|
19217
|
+
type_of_union: Optional[str] = None
|
|
19218
|
+
) -> None:
|
|
19219
|
+
if type_of_union is None:
|
|
19220
|
+
if (append_only is not None) != 1:
|
|
19221
|
+
raise ValueError('a union must contain a single member')
|
|
19222
|
+
|
|
19223
|
+
if append_only is not None:
|
|
19224
|
+
self._append_only = append_only
|
|
19225
|
+
self._type = 'appendOnly'
|
|
19226
|
+
|
|
19227
|
+
elif type_of_union == 'appendOnly':
|
|
19228
|
+
if append_only is None:
|
|
19229
|
+
raise ValueError('a union value must not be None')
|
|
19230
|
+
self._append_only = append_only
|
|
19231
|
+
self._type = 'appendOnly'
|
|
19232
|
+
|
|
19233
|
+
@builtins.property
|
|
19234
|
+
def append_only(self) -> Optional["persistent_compute_api_AppendOnlyConfig"]:
|
|
19235
|
+
return self._append_only
|
|
19236
|
+
|
|
19237
|
+
def accept(self, visitor) -> Any:
|
|
19238
|
+
if not isinstance(visitor, persistent_compute_api_ResultConfigurationVisitor):
|
|
19239
|
+
raise ValueError('{} is not an instance of persistent_compute_api_ResultConfigurationVisitor'.format(visitor.__class__.__name__))
|
|
19240
|
+
if self._type == 'appendOnly' and self.append_only is not None:
|
|
19241
|
+
return visitor._append_only(self.append_only)
|
|
19242
|
+
|
|
19243
|
+
|
|
19244
|
+
persistent_compute_api_ResultConfiguration.__name__ = "ResultConfiguration"
|
|
19245
|
+
persistent_compute_api_ResultConfiguration.__qualname__ = "ResultConfiguration"
|
|
19246
|
+
persistent_compute_api_ResultConfiguration.__module__ = "nominal_api.persistent_compute_api"
|
|
19247
|
+
|
|
19248
|
+
|
|
19249
|
+
class persistent_compute_api_ResultConfigurationVisitor:
|
|
19250
|
+
|
|
19251
|
+
@abstractmethod
|
|
19252
|
+
def _append_only(self, append_only: "persistent_compute_api_AppendOnlyConfig") -> Any:
|
|
19253
|
+
pass
|
|
19254
|
+
|
|
19255
|
+
|
|
19256
|
+
persistent_compute_api_ResultConfigurationVisitor.__name__ = "ResultConfigurationVisitor"
|
|
19257
|
+
persistent_compute_api_ResultConfigurationVisitor.__qualname__ = "ResultConfigurationVisitor"
|
|
19258
|
+
persistent_compute_api_ResultConfigurationVisitor.__module__ = "nominal_api.persistent_compute_api"
|
|
19259
|
+
|
|
19260
|
+
|
|
18820
19261
|
class persistent_compute_api_ServerMessage(ConjureUnionType):
|
|
18821
19262
|
_subscription_update: Optional["persistent_compute_api_SubscriptionUpdateMessage"] = None
|
|
18822
19263
|
_subscription_creation: Optional["persistent_compute_api_SubscriptionCreationMessage"] = None
|
|
@@ -19173,14 +19614,16 @@ class persistent_compute_api_SubscriptionOptions(ConjureBeanType):
|
|
|
19173
19614
|
def _fields(cls) -> Dict[str, ConjureFieldDefinition]:
|
|
19174
19615
|
return {
|
|
19175
19616
|
'min_delay': ConjureFieldDefinition('minDelay', persistent_compute_api_Milliseconds),
|
|
19176
|
-
'allow_appends': ConjureFieldDefinition('allowAppends', OptionalTypeWrapper[bool])
|
|
19617
|
+
'allow_appends': ConjureFieldDefinition('allowAppends', OptionalTypeWrapper[bool]),
|
|
19618
|
+
'result_configuration': ConjureFieldDefinition('resultConfiguration', OptionalTypeWrapper[persistent_compute_api_ResultConfiguration])
|
|
19177
19619
|
}
|
|
19178
19620
|
|
|
19179
|
-
__slots__: List[str] = ['_min_delay', '_allow_appends']
|
|
19621
|
+
__slots__: List[str] = ['_min_delay', '_allow_appends', '_result_configuration']
|
|
19180
19622
|
|
|
19181
|
-
def __init__(self, min_delay: int, allow_appends: Optional[bool] = None) -> None:
|
|
19623
|
+
def __init__(self, min_delay: int, allow_appends: Optional[bool] = None, result_configuration: Optional["persistent_compute_api_ResultConfiguration"] = None) -> None:
|
|
19182
19624
|
self._min_delay = min_delay
|
|
19183
19625
|
self._allow_appends = allow_appends
|
|
19626
|
+
self._result_configuration = result_configuration
|
|
19184
19627
|
|
|
19185
19628
|
@builtins.property
|
|
19186
19629
|
def min_delay(self) -> int:
|
|
@@ -19200,6 +19643,13 @@ implement support.
|
|
|
19200
19643
|
"""
|
|
19201
19644
|
return self._allow_appends
|
|
19202
19645
|
|
|
19646
|
+
@builtins.property
|
|
19647
|
+
def result_configuration(self) -> Optional["persistent_compute_api_ResultConfiguration"]:
|
|
19648
|
+
"""Defines the results that are sent for this subscription. If not set, falls back to the behavior
|
|
19649
|
+
defined by `allowAppends`.
|
|
19650
|
+
"""
|
|
19651
|
+
return self._result_configuration
|
|
19652
|
+
|
|
19203
19653
|
|
|
19204
19654
|
persistent_compute_api_SubscriptionOptions.__name__ = "SubscriptionOptions"
|
|
19205
19655
|
persistent_compute_api_SubscriptionOptions.__qualname__ = "SubscriptionOptions"
|
|
@@ -19361,6 +19811,24 @@ persistent_compute_api_SubscriptionUpdateMessage.__qualname__ = "SubscriptionUpd
|
|
|
19361
19811
|
persistent_compute_api_SubscriptionUpdateMessage.__module__ = "nominal_api.persistent_compute_api"
|
|
19362
19812
|
|
|
19363
19813
|
|
|
19814
|
+
class persistent_compute_api_UnavailableResultConfigurationReason(ConjureEnumType):
|
|
19815
|
+
|
|
19816
|
+
APPENDS_NOT_SUPPORTED_FOR_COMPUTE = 'APPENDS_NOT_SUPPORTED_FOR_COMPUTE'
|
|
19817
|
+
'''APPENDS_NOT_SUPPORTED_FOR_COMPUTE'''
|
|
19818
|
+
TOO_MANY_POINTS_FOR_UNDECIMATED_APPENDS = 'TOO_MANY_POINTS_FOR_UNDECIMATED_APPENDS'
|
|
19819
|
+
'''TOO_MANY_POINTS_FOR_UNDECIMATED_APPENDS'''
|
|
19820
|
+
UNKNOWN = 'UNKNOWN'
|
|
19821
|
+
'''UNKNOWN'''
|
|
19822
|
+
|
|
19823
|
+
def __reduce_ex__(self, proto):
|
|
19824
|
+
return self.__class__, (self.name,)
|
|
19825
|
+
|
|
19826
|
+
|
|
19827
|
+
persistent_compute_api_UnavailableResultConfigurationReason.__name__ = "UnavailableResultConfigurationReason"
|
|
19828
|
+
persistent_compute_api_UnavailableResultConfigurationReason.__qualname__ = "UnavailableResultConfigurationReason"
|
|
19829
|
+
persistent_compute_api_UnavailableResultConfigurationReason.__module__ = "nominal_api.persistent_compute_api"
|
|
19830
|
+
|
|
19831
|
+
|
|
19364
19832
|
class scout_InternalVersioningService(Service):
|
|
19365
19833
|
"""These endpoints are not intended to be used directly by clients, since
|
|
19366
19834
|
they require saving resource-specific state associated with new commits.
|
|
@@ -24758,18 +25226,20 @@ class scout_catalog_AddFileToDataset(ConjureBeanType):
|
|
|
24758
25226
|
'timestamp_metadata': ConjureFieldDefinition('timestampMetadata', OptionalTypeWrapper[scout_catalog_TimestampMetadata]),
|
|
24759
25227
|
'ingest_tag_metadata': ConjureFieldDefinition('ingestTagMetadata', OptionalTypeWrapper[scout_catalog_IngestTagMetadata]),
|
|
24760
25228
|
'origin_file_handles': ConjureFieldDefinition('originFileHandles', OptionalTypeWrapper[List[scout_catalog_S3Handle]]),
|
|
24761
|
-
'ingest_job_rid': ConjureFieldDefinition('ingestJobRid', OptionalTypeWrapper[ingest_api_IngestJobRid])
|
|
25229
|
+
'ingest_job_rid': ConjureFieldDefinition('ingestJobRid', OptionalTypeWrapper[ingest_api_IngestJobRid]),
|
|
25230
|
+
'metadata': ConjureFieldDefinition('metadata', OptionalTypeWrapper[scout_catalog_DatasetFileMetadata])
|
|
24762
25231
|
}
|
|
24763
25232
|
|
|
24764
|
-
__slots__: List[str] = ['_handle', '_file_size', '_timestamp_metadata', '_ingest_tag_metadata', '_origin_file_handles', '_ingest_job_rid']
|
|
25233
|
+
__slots__: List[str] = ['_handle', '_file_size', '_timestamp_metadata', '_ingest_tag_metadata', '_origin_file_handles', '_ingest_job_rid', '_metadata']
|
|
24765
25234
|
|
|
24766
|
-
def __init__(self, file_size: int, handle: "scout_catalog_Handle", ingest_job_rid: Optional[str] = None, ingest_tag_metadata: Optional["scout_catalog_IngestTagMetadata"] = None, origin_file_handles: Optional[List["scout_catalog_S3Handle"]] = None, timestamp_metadata: Optional["scout_catalog_TimestampMetadata"] = None) -> None:
|
|
25235
|
+
def __init__(self, file_size: int, handle: "scout_catalog_Handle", ingest_job_rid: Optional[str] = None, ingest_tag_metadata: Optional["scout_catalog_IngestTagMetadata"] = None, metadata: Optional["scout_catalog_DatasetFileMetadata"] = None, origin_file_handles: Optional[List["scout_catalog_S3Handle"]] = None, timestamp_metadata: Optional["scout_catalog_TimestampMetadata"] = None) -> None:
|
|
24767
25236
|
self._handle = handle
|
|
24768
25237
|
self._file_size = file_size
|
|
24769
25238
|
self._timestamp_metadata = timestamp_metadata
|
|
24770
25239
|
self._ingest_tag_metadata = ingest_tag_metadata
|
|
24771
25240
|
self._origin_file_handles = origin_file_handles
|
|
24772
25241
|
self._ingest_job_rid = ingest_job_rid
|
|
25242
|
+
self._metadata = metadata
|
|
24773
25243
|
|
|
24774
25244
|
@builtins.property
|
|
24775
25245
|
def handle(self) -> "scout_catalog_Handle":
|
|
@@ -24797,6 +25267,12 @@ class scout_catalog_AddFileToDataset(ConjureBeanType):
|
|
|
24797
25267
|
def ingest_job_rid(self) -> Optional[str]:
|
|
24798
25268
|
return self._ingest_job_rid
|
|
24799
25269
|
|
|
25270
|
+
@builtins.property
|
|
25271
|
+
def metadata(self) -> Optional["scout_catalog_DatasetFileMetadata"]:
|
|
25272
|
+
"""File-type-specific metadata. For video files, contains timestamp manifest.
|
|
25273
|
+
"""
|
|
25274
|
+
return self._metadata
|
|
25275
|
+
|
|
24800
25276
|
|
|
24801
25277
|
scout_catalog_AddFileToDataset.__name__ = "AddFileToDataset"
|
|
24802
25278
|
scout_catalog_AddFileToDataset.__qualname__ = "AddFileToDataset"
|
|
@@ -26714,6 +27190,10 @@ class scout_catalog_IngestStatus(ConjureEnumType):
|
|
|
26714
27190
|
'''COMPLETED'''
|
|
26715
27191
|
FAILED = 'FAILED'
|
|
26716
27192
|
'''FAILED'''
|
|
27193
|
+
DELETION_IN_PROGRESS = 'DELETION_IN_PROGRESS'
|
|
27194
|
+
'''DELETION_IN_PROGRESS'''
|
|
27195
|
+
DELETED = 'DELETED'
|
|
27196
|
+
'''DELETED'''
|
|
26717
27197
|
UNKNOWN = 'UNKNOWN'
|
|
26718
27198
|
'''UNKNOWN'''
|
|
26719
27199
|
|
|
@@ -90739,9 +91219,14 @@ permanently delete it. Archived videos can be unarchived.
|
|
|
90739
91219
|
|
|
90740
91220
|
return
|
|
90741
91221
|
|
|
90742
|
-
def get_playlist(self, auth_header: str, video_rid: str) -> Any:
|
|
90743
|
-
"""Generates an HLS playlist for a video
|
|
90744
|
-
|
|
91222
|
+
def get_playlist(self, auth_header: str, video_rid: str, end: Optional[str] = None, start: Optional[str] = None) -> Any:
|
|
91223
|
+
"""Generates an HLS playlist for a video within optional time bounds.
|
|
91224
|
+
Uses GET with query parameters for HLS.js compatibility.
|
|
91225
|
+
The HLS playlist will contain links to all of the segments in the video that overlap with the given bounds,
|
|
91226
|
+
or all segments if no bounds are provided.
|
|
91227
|
+
|
|
91228
|
+
Note: The start and end parameters must either both be provided or both be omitted.
|
|
91229
|
+
Providing only one will result in a MissingTimestampBoundPair error.
|
|
90745
91230
|
"""
|
|
90746
91231
|
_conjure_encoder = ConjureEncoder()
|
|
90747
91232
|
|
|
@@ -90751,6 +91236,8 @@ links to all of the segments in the video in sequential order.
|
|
|
90751
91236
|
}
|
|
90752
91237
|
|
|
90753
91238
|
_params: Dict[str, Any] = {
|
|
91239
|
+
'start': _conjure_encoder.default(start),
|
|
91240
|
+
'end': _conjure_encoder.default(end),
|
|
90754
91241
|
}
|
|
90755
91242
|
|
|
90756
91243
|
_path_params: Dict[str, str] = {
|
|
@@ -90880,6 +91367,49 @@ bounds then generates a playlist for all matching video segments.
|
|
|
90880
91367
|
_raw.decode_content = True
|
|
90881
91368
|
return _raw
|
|
90882
91369
|
|
|
91370
|
+
def get_playlist_for_channel(self, auth_header: str, channel: str, end: str, start: str, asset_rid: Optional[str] = None, data_scope_name: Optional[str] = None, data_source_rid: Optional[str] = None, tags: Optional[str] = None) -> Any:
|
|
91371
|
+
"""Generates an HLS playlist for a video channel series within time bounds.
|
|
91372
|
+
Specify either dataSourceRid OR (assetRid + dataScopeName) to identify the channel source.
|
|
91373
|
+
|
|
91374
|
+
Note: Both start and end parameters are required and must be provided together.
|
|
91375
|
+
"""
|
|
91376
|
+
_conjure_encoder = ConjureEncoder()
|
|
91377
|
+
|
|
91378
|
+
_headers: Dict[str, Any] = {
|
|
91379
|
+
'Accept': 'application/octet-stream',
|
|
91380
|
+
'Authorization': auth_header,
|
|
91381
|
+
}
|
|
91382
|
+
|
|
91383
|
+
_params: Dict[str, Any] = {
|
|
91384
|
+
'dataSourceRid': _conjure_encoder.default(data_source_rid),
|
|
91385
|
+
'assetRid': _conjure_encoder.default(asset_rid),
|
|
91386
|
+
'dataScopeName': _conjure_encoder.default(data_scope_name),
|
|
91387
|
+
'channel': _conjure_encoder.default(channel),
|
|
91388
|
+
'tags': _conjure_encoder.default(tags),
|
|
91389
|
+
'start': _conjure_encoder.default(start),
|
|
91390
|
+
'end': _conjure_encoder.default(end),
|
|
91391
|
+
}
|
|
91392
|
+
|
|
91393
|
+
_path_params: Dict[str, str] = {
|
|
91394
|
+
}
|
|
91395
|
+
|
|
91396
|
+
_json: Any = None
|
|
91397
|
+
|
|
91398
|
+
_path = '/video/v1/videos/channel/playlist'
|
|
91399
|
+
_path = _path.format(**_path_params)
|
|
91400
|
+
|
|
91401
|
+
_response: Response = self._request(
|
|
91402
|
+
'GET',
|
|
91403
|
+
self._uri + _path,
|
|
91404
|
+
params=_params,
|
|
91405
|
+
headers=_headers,
|
|
91406
|
+
stream=True,
|
|
91407
|
+
json=_json)
|
|
91408
|
+
|
|
91409
|
+
_raw = _response.raw
|
|
91410
|
+
_raw.decode_content = True
|
|
91411
|
+
return _raw
|
|
91412
|
+
|
|
90883
91413
|
def get_segment_summaries_in_bounds(self, auth_header: str, request: "scout_video_api_GetSegmentSummariesInBoundsRequest", video_rid: str) -> List["scout_video_api_SegmentSummary"]:
|
|
90884
91414
|
"""Returns the min and max absolute and media timestamps for each segment in a video that overlap with an
|
|
90885
91415
|
optional set of bounds.
|