1212if TYPE_CHECKING :
1313 from ..models .composition_source import CompositionSource
1414 from ..models .recording_file import RecordingFile
15+ from ..models .recording_hls_type_0 import RecordingHlsType0
1516 from ..models .recording_metadata_type_0 import RecordingMetadataType0
1617 from ..models .template_source import TemplateSource
1718
@@ -26,6 +27,8 @@ class Recording:
2627 Attributes:
2728 files (list[RecordingFile]): Media files of the recording, in playback order. Empty until the recording is
2829 `available`.
30+ hls (None | RecordingHlsType0): HLS playlist of the recording, playable while it is still `active`. Null until
31+ the playlist reaches the delivery bucket.
2932 id (str): Assigned recording id
3033 source (CompositionSource | TemplateSource): The source for the recording
3134 status (RecordingStatus): Lifecycle status of a recording
@@ -34,6 +37,7 @@ class Recording:
3437 """
3538
3639 files : list [RecordingFile ]
40+ hls : None | RecordingHlsType0
3741 id : str
3842 source : CompositionSource | TemplateSource
3943 status : RecordingStatus
@@ -42,13 +46,20 @@ class Recording:
4246
4347 def to_dict (self ) -> dict [str , Any ]:
4448 from ..models .composition_source import CompositionSource
49+ from ..models .recording_hls_type_0 import RecordingHlsType0
4550 from ..models .recording_metadata_type_0 import RecordingMetadataType0
4651
4752 files = []
4853 for files_item_data in self .files :
4954 files_item = files_item_data .to_dict ()
5055 files .append (files_item )
5156
57+ hls : dict [str , Any ] | None
58+ if isinstance (self .hls , RecordingHlsType0 ):
59+ hls = self .hls .to_dict ()
60+ else :
61+ hls = self .hls
62+
5263 id = self .id
5364
5465 source : dict [str , Any ]
@@ -71,6 +82,7 @@ def to_dict(self) -> dict[str, Any]:
7182 field_dict .update (self .additional_properties )
7283 field_dict .update ({
7384 "files" : files ,
85+ "hls" : hls ,
7486 "id" : id ,
7587 "source" : source ,
7688 "status" : status ,
@@ -84,6 +96,7 @@ def to_dict(self) -> dict[str, Any]:
8496 def from_dict (cls : type [T ], src_dict : Mapping [str , Any ]) -> T :
8597 from ..models .composition_source import CompositionSource
8698 from ..models .recording_file import RecordingFile
99+ from ..models .recording_hls_type_0 import RecordingHlsType0
87100 from ..models .recording_metadata_type_0 import RecordingMetadataType0
88101 from ..models .template_source import TemplateSource
89102
@@ -95,6 +108,21 @@ def from_dict(cls: type[T], src_dict: Mapping[str, Any]) -> T:
95108
96109 files .append (files_item )
97110
111+ def _parse_hls (data : object ) -> None | RecordingHlsType0 :
112+ if data is None :
113+ return data
114+ try :
115+ if not isinstance (data , dict ):
116+ raise TypeError ()
117+ hls_type_0 = RecordingHlsType0 .from_dict (data )
118+
119+ return hls_type_0
120+ except (TypeError , ValueError , AttributeError , KeyError ):
121+ pass
122+ return cast (None | RecordingHlsType0 , data )
123+
124+ hls = _parse_hls (d .pop ("hls" ))
125+
98126 id = d .pop ("id" )
99127
100128 def _parse_source (data : object ) -> CompositionSource | TemplateSource :
@@ -137,6 +165,7 @@ def _parse_metadata(data: object) -> None | RecordingMetadataType0 | Unset:
137165
138166 recording = cls (
139167 files = files ,
168+ hls = hls ,
140169 id = id ,
141170 source = source ,
142171 status = status ,
0 commit comments