Skip to main content

nominal_api/conjure/endpoints/scout/video/
video_file_service.rs

1use conjure_http::endpoint;
2/// The video service manages individual video files and their metadata.
3#[conjure_http::conjure_endpoints(
4    name = "VideoFileService",
5    use_legacy_error_serialization
6)]
7pub trait VideoFileService<#[response_writer] O> {
8    ///The body type returned by the `get_playlist` method.
9    type GetPlaylistBody: conjure_http::server::WriteBody<O> + 'static;
10    /// Create and persist a video file entity with the given metadata
11    #[endpoint(
12        method = POST,
13        path = "/video-files/v1/video-files",
14        name = "create",
15        produces = conjure_http::server::StdResponseSerializer
16    )]
17    fn create(
18        &self,
19        #[auth]
20        auth_: conjure_object::BearerToken,
21        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
22        request: super::super::super::super::objects::scout::video::api::CreateVideoFileRequest,
23    ) -> Result<
24        super::super::super::super::objects::scout::video::api::VideoFile,
25        conjure_http::private::Error,
26    >;
27    /// Returns video file metadata associated with a video file RID.
28    #[endpoint(
29        method = GET,
30        path = "/video-files/v1/video-files/{videoFileRid}",
31        name = "get",
32        produces = conjure_http::server::StdResponseSerializer
33    )]
34    fn get(
35        &self,
36        #[auth]
37        auth_: conjure_object::BearerToken,
38        #[path(
39            name = "videoFileRid",
40            decoder = conjure_http::server::conjure::FromPlainDecoder,
41            log_as = "videoFileRid",
42            safe
43        )]
44        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
45    ) -> Result<
46        super::super::super::super::objects::scout::video::api::VideoFile,
47        conjure_http::private::Error,
48    >;
49    /// Returns all video files and their metadata associated with the given RIDs
50    #[endpoint(
51        method = POST,
52        path = "/video-files/v1/video-files/batchGet",
53        name = "batchGet",
54        produces = conjure_http::server::conjure::CollectionResponseSerializer
55    )]
56    fn batch_get(
57        &self,
58        #[auth]
59        auth_: conjure_object::BearerToken,
60        #[body(
61            deserializer = conjure_http::server::StdRequestDeserializer,
62            log_as = "videoFileRids",
63            safe
64        )]
65        video_file_rids: std::collections::BTreeSet<
66            super::super::super::super::objects::api::rids::VideoFileRid,
67        >,
68    ) -> Result<
69        std::collections::BTreeSet<
70            super::super::super::super::objects::scout::video::api::VideoFile,
71        >,
72        conjure_http::private::Error,
73    >;
74    #[endpoint(
75        method = POST,
76        path = "/video-files/v1/video-files/list-files-in-video",
77        name = "listFilesInVideo",
78        produces = conjure_http::server::conjure::CollectionResponseSerializer
79    )]
80    fn list_files_in_video(
81        &self,
82        #[auth]
83        auth_: conjure_object::BearerToken,
84        #[body(
85            deserializer = conjure_http::server::StdRequestDeserializer,
86            log_as = "videoRid",
87            safe
88        )]
89        video_rid: super::super::super::super::objects::api::rids::VideoRid,
90    ) -> Result<
91        std::collections::BTreeSet<
92            super::super::super::super::objects::scout::video::api::VideoFile,
93        >,
94        conjure_http::private::Error,
95    >;
96    /// Returns a paginated list of all video files and their metadata associated with the given video RID.
97    #[endpoint(
98        method = POST,
99        path = "/video-files/v1/video-files/list-files-in-video-paginated",
100        name = "listFilesInVideoPaginated",
101        produces = conjure_http::server::StdResponseSerializer
102    )]
103    fn list_files_in_video_paginated(
104        &self,
105        #[auth]
106        auth_: conjure_object::BearerToken,
107        #[body(
108            deserializer = conjure_http::server::StdRequestDeserializer,
109            log_as = "videoRid"
110        )]
111        video_rid: super::super::super::super::objects::scout::video::api::ListFilesInVideoRequest,
112    ) -> Result<
113        super::super::super::super::objects::scout::video::api::ListFilesInVideoResponse,
114        conjure_http::private::Error,
115    >;
116    /// Updates the metadata for a video file associated with the given RID.
117    #[endpoint(
118        method = PUT,
119        path = "/video-files/v1/video-files/{videoFileRid}",
120        name = "update",
121        produces = conjure_http::server::StdResponseSerializer
122    )]
123    fn update(
124        &self,
125        #[auth]
126        auth_: conjure_object::BearerToken,
127        #[path(
128            name = "videoFileRid",
129            decoder = conjure_http::server::conjure::FromPlainDecoder,
130            log_as = "videoFileRid",
131            safe
132        )]
133        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
134        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
135        request: super::super::super::super::objects::scout::video::api::UpdateVideoFileRequest,
136    ) -> Result<
137        super::super::super::super::objects::scout::video::api::VideoFile,
138        conjure_http::private::Error,
139    >;
140    /// Permanently deletes a video file and all associated segments from the database.
141    /// This operation cannot be undone.
142    #[endpoint(
143        method = DELETE,
144        path = "/video-files/v1/video-files/{videoFileRid}",
145        name = "delete"
146    )]
147    fn delete(
148        &self,
149        #[auth]
150        auth_: conjure_object::BearerToken,
151        #[path(
152            name = "videoFileRid",
153            decoder = conjure_http::server::conjure::FromPlainDecoder,
154            log_as = "videoFileRid",
155            safe
156        )]
157        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
158    ) -> Result<(), conjure_http::private::Error>;
159    #[endpoint(
160        method = PUT,
161        path = "/video-files/v1/video-files/{videoFileRid}/archive",
162        name = "archive"
163    )]
164    fn archive(
165        &self,
166        #[auth]
167        auth_: conjure_object::BearerToken,
168        #[path(
169            name = "videoFileRid",
170            decoder = conjure_http::server::conjure::FromPlainDecoder,
171            log_as = "videoFileRid",
172            safe
173        )]
174        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
175    ) -> Result<(), conjure_http::private::Error>;
176    #[endpoint(
177        method = PUT,
178        path = "/video-files/v1/video-files/{videoFileRid}/unarchive",
179        name = "unarchive"
180    )]
181    fn unarchive(
182        &self,
183        #[auth]
184        auth_: conjure_object::BearerToken,
185        #[path(
186            name = "videoFileRid",
187            decoder = conjure_http::server::conjure::FromPlainDecoder,
188            log_as = "videoFileRid",
189            safe
190        )]
191        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
192    ) -> Result<(), conjure_http::private::Error>;
193    /// Get the latest ingest status for a given video file by RID.
194    #[endpoint(
195        method = GET,
196        path = "/video-files/v1/video-files/{videoFileRid}/ingest-status",
197        name = "getIngestStatus",
198        produces = conjure_http::server::StdResponseSerializer
199    )]
200    fn get_ingest_status(
201        &self,
202        #[auth]
203        auth_: conjure_object::BearerToken,
204        #[path(
205            name = "videoFileRid",
206            decoder = conjure_http::server::conjure::FromPlainDecoder,
207            log_as = "videoFileRid",
208            safe
209        )]
210        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
211    ) -> Result<
212        super::super::super::super::objects::scout::video::api::GetIngestStatusResponse,
213        conjure_http::private::Error,
214    >;
215    /// Get the latest ingest status for a set of given video files by RID.
216    #[endpoint(
217        method = POST,
218        path = "/video-files/v1/videos/batch-get-ingest-status",
219        name = "batchGetIngestStatus",
220        produces = conjure_http::server::conjure::CollectionResponseSerializer
221    )]
222    fn batch_get_ingest_status(
223        &self,
224        #[auth]
225        auth_: conjure_object::BearerToken,
226        #[body(
227            deserializer = conjure_http::server::StdRequestDeserializer,
228            log_as = "videoFileRids",
229            safe
230        )]
231        video_file_rids: std::collections::BTreeSet<
232            super::super::super::super::objects::api::rids::VideoFileRid,
233        >,
234    ) -> Result<
235        std::collections::BTreeMap<
236            super::super::super::super::objects::api::rids::VideoFileRid,
237            super::super::super::super::objects::scout::video::api::VideoFileIngestStatus,
238        >,
239        conjure_http::private::Error,
240    >;
241    /// Update the latest ingest status for a given video file by RID.
242    #[endpoint(
243        method = PUT,
244        path = "/video-files/v1/videos/{videoFileRid}/ingest-status",
245        name = "updateIngestStatus"
246    )]
247    fn update_ingest_status(
248        &self,
249        #[auth]
250        auth_: conjure_object::BearerToken,
251        #[path(
252            name = "videoFileRid",
253            decoder = conjure_http::server::conjure::FromPlainDecoder,
254            log_as = "videoFileRid",
255            safe
256        )]
257        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
258        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
259        request: super::super::super::super::objects::scout::video::api::UpdateIngestStatusRequest,
260    ) -> Result<(), conjure_http::private::Error>;
261    /// Returns the min and max absolute and media timestamps for each segment in a video file.
262    /// To be used during frame-timestamp mapping when playing back videos.
263    #[endpoint(
264        method = GET,
265        path = "/video-files/v1/video-files/{videoFileRid}/segment-summaries",
266        name = "getSegmentSummaries",
267        produces = conjure_http::server::conjure::CollectionResponseSerializer
268    )]
269    fn get_segment_summaries(
270        &self,
271        #[auth]
272        auth_: conjure_object::BearerToken,
273        #[path(
274            name = "videoFileRid",
275            decoder = conjure_http::server::conjure::FromPlainDecoder,
276            log_as = "videoFileRid",
277            safe
278        )]
279        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
280    ) -> Result<
281        Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
282        conjure_http::private::Error,
283    >;
284    /// Generate an HLS playlist for a video file with the given RID to enable playback.
285    /// The HLS playlist will contain links to all of the video segments in the video in sequential order.
286    #[endpoint(
287        method = GET,
288        path = "/video-files/v1/video-files/{videoFileRid}/playlist",
289        name = "getPlaylist",
290        produces = conjure_http::server::conjure::BinaryResponseSerializer
291    )]
292    fn get_playlist(
293        &self,
294        #[auth]
295        auth_: conjure_object::BearerToken,
296        #[path(
297            name = "videoFileRid",
298            decoder = conjure_http::server::conjure::FromPlainDecoder,
299            log_as = "videoFileRid",
300            safe
301        )]
302        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
303    ) -> Result<Self::GetPlaylistBody, conjure_http::private::Error>;
304}
305/// The video service manages individual video files and their metadata.
306#[conjure_http::conjure_endpoints(
307    name = "VideoFileService",
308    use_legacy_error_serialization
309)]
310pub trait AsyncVideoFileService<#[response_writer] O> {
311    ///The body type returned by the `get_playlist` method.
312    type GetPlaylistBody: conjure_http::server::AsyncWriteBody<O> + 'static + Send;
313    /// Create and persist a video file entity with the given metadata
314    #[endpoint(
315        method = POST,
316        path = "/video-files/v1/video-files",
317        name = "create",
318        produces = conjure_http::server::StdResponseSerializer
319    )]
320    async fn create(
321        &self,
322        #[auth]
323        auth_: conjure_object::BearerToken,
324        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
325        request: super::super::super::super::objects::scout::video::api::CreateVideoFileRequest,
326    ) -> Result<
327        super::super::super::super::objects::scout::video::api::VideoFile,
328        conjure_http::private::Error,
329    >;
330    /// Returns video file metadata associated with a video file RID.
331    #[endpoint(
332        method = GET,
333        path = "/video-files/v1/video-files/{videoFileRid}",
334        name = "get",
335        produces = conjure_http::server::StdResponseSerializer
336    )]
337    async fn get(
338        &self,
339        #[auth]
340        auth_: conjure_object::BearerToken,
341        #[path(
342            name = "videoFileRid",
343            decoder = conjure_http::server::conjure::FromPlainDecoder,
344            log_as = "videoFileRid",
345            safe
346        )]
347        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
348    ) -> Result<
349        super::super::super::super::objects::scout::video::api::VideoFile,
350        conjure_http::private::Error,
351    >;
352    /// Returns all video files and their metadata associated with the given RIDs
353    #[endpoint(
354        method = POST,
355        path = "/video-files/v1/video-files/batchGet",
356        name = "batchGet",
357        produces = conjure_http::server::conjure::CollectionResponseSerializer
358    )]
359    async fn batch_get(
360        &self,
361        #[auth]
362        auth_: conjure_object::BearerToken,
363        #[body(
364            deserializer = conjure_http::server::StdRequestDeserializer,
365            log_as = "videoFileRids",
366            safe
367        )]
368        video_file_rids: std::collections::BTreeSet<
369            super::super::super::super::objects::api::rids::VideoFileRid,
370        >,
371    ) -> Result<
372        std::collections::BTreeSet<
373            super::super::super::super::objects::scout::video::api::VideoFile,
374        >,
375        conjure_http::private::Error,
376    >;
377    #[endpoint(
378        method = POST,
379        path = "/video-files/v1/video-files/list-files-in-video",
380        name = "listFilesInVideo",
381        produces = conjure_http::server::conjure::CollectionResponseSerializer
382    )]
383    async fn list_files_in_video(
384        &self,
385        #[auth]
386        auth_: conjure_object::BearerToken,
387        #[body(
388            deserializer = conjure_http::server::StdRequestDeserializer,
389            log_as = "videoRid",
390            safe
391        )]
392        video_rid: super::super::super::super::objects::api::rids::VideoRid,
393    ) -> Result<
394        std::collections::BTreeSet<
395            super::super::super::super::objects::scout::video::api::VideoFile,
396        >,
397        conjure_http::private::Error,
398    >;
399    /// Returns a paginated list of all video files and their metadata associated with the given video RID.
400    #[endpoint(
401        method = POST,
402        path = "/video-files/v1/video-files/list-files-in-video-paginated",
403        name = "listFilesInVideoPaginated",
404        produces = conjure_http::server::StdResponseSerializer
405    )]
406    async fn list_files_in_video_paginated(
407        &self,
408        #[auth]
409        auth_: conjure_object::BearerToken,
410        #[body(
411            deserializer = conjure_http::server::StdRequestDeserializer,
412            log_as = "videoRid"
413        )]
414        video_rid: super::super::super::super::objects::scout::video::api::ListFilesInVideoRequest,
415    ) -> Result<
416        super::super::super::super::objects::scout::video::api::ListFilesInVideoResponse,
417        conjure_http::private::Error,
418    >;
419    /// Updates the metadata for a video file associated with the given RID.
420    #[endpoint(
421        method = PUT,
422        path = "/video-files/v1/video-files/{videoFileRid}",
423        name = "update",
424        produces = conjure_http::server::StdResponseSerializer
425    )]
426    async fn update(
427        &self,
428        #[auth]
429        auth_: conjure_object::BearerToken,
430        #[path(
431            name = "videoFileRid",
432            decoder = conjure_http::server::conjure::FromPlainDecoder,
433            log_as = "videoFileRid",
434            safe
435        )]
436        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
437        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
438        request: super::super::super::super::objects::scout::video::api::UpdateVideoFileRequest,
439    ) -> Result<
440        super::super::super::super::objects::scout::video::api::VideoFile,
441        conjure_http::private::Error,
442    >;
443    /// Permanently deletes a video file and all associated segments from the database.
444    /// This operation cannot be undone.
445    #[endpoint(
446        method = DELETE,
447        path = "/video-files/v1/video-files/{videoFileRid}",
448        name = "delete"
449    )]
450    async fn delete(
451        &self,
452        #[auth]
453        auth_: conjure_object::BearerToken,
454        #[path(
455            name = "videoFileRid",
456            decoder = conjure_http::server::conjure::FromPlainDecoder,
457            log_as = "videoFileRid",
458            safe
459        )]
460        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
461    ) -> Result<(), conjure_http::private::Error>;
462    #[endpoint(
463        method = PUT,
464        path = "/video-files/v1/video-files/{videoFileRid}/archive",
465        name = "archive"
466    )]
467    async fn archive(
468        &self,
469        #[auth]
470        auth_: conjure_object::BearerToken,
471        #[path(
472            name = "videoFileRid",
473            decoder = conjure_http::server::conjure::FromPlainDecoder,
474            log_as = "videoFileRid",
475            safe
476        )]
477        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
478    ) -> Result<(), conjure_http::private::Error>;
479    #[endpoint(
480        method = PUT,
481        path = "/video-files/v1/video-files/{videoFileRid}/unarchive",
482        name = "unarchive"
483    )]
484    async fn unarchive(
485        &self,
486        #[auth]
487        auth_: conjure_object::BearerToken,
488        #[path(
489            name = "videoFileRid",
490            decoder = conjure_http::server::conjure::FromPlainDecoder,
491            log_as = "videoFileRid",
492            safe
493        )]
494        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
495    ) -> Result<(), conjure_http::private::Error>;
496    /// Get the latest ingest status for a given video file by RID.
497    #[endpoint(
498        method = GET,
499        path = "/video-files/v1/video-files/{videoFileRid}/ingest-status",
500        name = "getIngestStatus",
501        produces = conjure_http::server::StdResponseSerializer
502    )]
503    async fn get_ingest_status(
504        &self,
505        #[auth]
506        auth_: conjure_object::BearerToken,
507        #[path(
508            name = "videoFileRid",
509            decoder = conjure_http::server::conjure::FromPlainDecoder,
510            log_as = "videoFileRid",
511            safe
512        )]
513        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
514    ) -> Result<
515        super::super::super::super::objects::scout::video::api::GetIngestStatusResponse,
516        conjure_http::private::Error,
517    >;
518    /// Get the latest ingest status for a set of given video files by RID.
519    #[endpoint(
520        method = POST,
521        path = "/video-files/v1/videos/batch-get-ingest-status",
522        name = "batchGetIngestStatus",
523        produces = conjure_http::server::conjure::CollectionResponseSerializer
524    )]
525    async fn batch_get_ingest_status(
526        &self,
527        #[auth]
528        auth_: conjure_object::BearerToken,
529        #[body(
530            deserializer = conjure_http::server::StdRequestDeserializer,
531            log_as = "videoFileRids",
532            safe
533        )]
534        video_file_rids: std::collections::BTreeSet<
535            super::super::super::super::objects::api::rids::VideoFileRid,
536        >,
537    ) -> Result<
538        std::collections::BTreeMap<
539            super::super::super::super::objects::api::rids::VideoFileRid,
540            super::super::super::super::objects::scout::video::api::VideoFileIngestStatus,
541        >,
542        conjure_http::private::Error,
543    >;
544    /// Update the latest ingest status for a given video file by RID.
545    #[endpoint(
546        method = PUT,
547        path = "/video-files/v1/videos/{videoFileRid}/ingest-status",
548        name = "updateIngestStatus"
549    )]
550    async fn update_ingest_status(
551        &self,
552        #[auth]
553        auth_: conjure_object::BearerToken,
554        #[path(
555            name = "videoFileRid",
556            decoder = conjure_http::server::conjure::FromPlainDecoder,
557            log_as = "videoFileRid",
558            safe
559        )]
560        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
561        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
562        request: super::super::super::super::objects::scout::video::api::UpdateIngestStatusRequest,
563    ) -> Result<(), conjure_http::private::Error>;
564    /// Returns the min and max absolute and media timestamps for each segment in a video file.
565    /// To be used during frame-timestamp mapping when playing back videos.
566    #[endpoint(
567        method = GET,
568        path = "/video-files/v1/video-files/{videoFileRid}/segment-summaries",
569        name = "getSegmentSummaries",
570        produces = conjure_http::server::conjure::CollectionResponseSerializer
571    )]
572    async fn get_segment_summaries(
573        &self,
574        #[auth]
575        auth_: conjure_object::BearerToken,
576        #[path(
577            name = "videoFileRid",
578            decoder = conjure_http::server::conjure::FromPlainDecoder,
579            log_as = "videoFileRid",
580            safe
581        )]
582        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
583    ) -> Result<
584        Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
585        conjure_http::private::Error,
586    >;
587    /// Generate an HLS playlist for a video file with the given RID to enable playback.
588    /// The HLS playlist will contain links to all of the video segments in the video in sequential order.
589    #[endpoint(
590        method = GET,
591        path = "/video-files/v1/video-files/{videoFileRid}/playlist",
592        name = "getPlaylist",
593        produces = conjure_http::server::conjure::BinaryResponseSerializer
594    )]
595    async fn get_playlist(
596        &self,
597        #[auth]
598        auth_: conjure_object::BearerToken,
599        #[path(
600            name = "videoFileRid",
601            decoder = conjure_http::server::conjure::FromPlainDecoder,
602            log_as = "videoFileRid",
603            safe
604        )]
605        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
606    ) -> Result<Self::GetPlaylistBody, conjure_http::private::Error>;
607}
608/// The video service manages individual video files and their metadata.
609#[conjure_http::conjure_endpoints(
610    name = "VideoFileService",
611    use_legacy_error_serialization,
612    local
613)]
614pub trait LocalAsyncVideoFileService<#[response_writer] O> {
615    ///The body type returned by the `get_playlist` method.
616    type GetPlaylistBody: conjure_http::server::LocalAsyncWriteBody<O> + 'static;
617    /// Create and persist a video file entity with the given metadata
618    #[endpoint(
619        method = POST,
620        path = "/video-files/v1/video-files",
621        name = "create",
622        produces = conjure_http::server::StdResponseSerializer
623    )]
624    async fn create(
625        &self,
626        #[auth]
627        auth_: conjure_object::BearerToken,
628        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
629        request: super::super::super::super::objects::scout::video::api::CreateVideoFileRequest,
630    ) -> Result<
631        super::super::super::super::objects::scout::video::api::VideoFile,
632        conjure_http::private::Error,
633    >;
634    /// Returns video file metadata associated with a video file RID.
635    #[endpoint(
636        method = GET,
637        path = "/video-files/v1/video-files/{videoFileRid}",
638        name = "get",
639        produces = conjure_http::server::StdResponseSerializer
640    )]
641    async fn get(
642        &self,
643        #[auth]
644        auth_: conjure_object::BearerToken,
645        #[path(
646            name = "videoFileRid",
647            decoder = conjure_http::server::conjure::FromPlainDecoder,
648            log_as = "videoFileRid",
649            safe
650        )]
651        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
652    ) -> Result<
653        super::super::super::super::objects::scout::video::api::VideoFile,
654        conjure_http::private::Error,
655    >;
656    /// Returns all video files and their metadata associated with the given RIDs
657    #[endpoint(
658        method = POST,
659        path = "/video-files/v1/video-files/batchGet",
660        name = "batchGet",
661        produces = conjure_http::server::conjure::CollectionResponseSerializer
662    )]
663    async fn batch_get(
664        &self,
665        #[auth]
666        auth_: conjure_object::BearerToken,
667        #[body(
668            deserializer = conjure_http::server::StdRequestDeserializer,
669            log_as = "videoFileRids",
670            safe
671        )]
672        video_file_rids: std::collections::BTreeSet<
673            super::super::super::super::objects::api::rids::VideoFileRid,
674        >,
675    ) -> Result<
676        std::collections::BTreeSet<
677            super::super::super::super::objects::scout::video::api::VideoFile,
678        >,
679        conjure_http::private::Error,
680    >;
681    #[endpoint(
682        method = POST,
683        path = "/video-files/v1/video-files/list-files-in-video",
684        name = "listFilesInVideo",
685        produces = conjure_http::server::conjure::CollectionResponseSerializer
686    )]
687    async fn list_files_in_video(
688        &self,
689        #[auth]
690        auth_: conjure_object::BearerToken,
691        #[body(
692            deserializer = conjure_http::server::StdRequestDeserializer,
693            log_as = "videoRid",
694            safe
695        )]
696        video_rid: super::super::super::super::objects::api::rids::VideoRid,
697    ) -> Result<
698        std::collections::BTreeSet<
699            super::super::super::super::objects::scout::video::api::VideoFile,
700        >,
701        conjure_http::private::Error,
702    >;
703    /// Returns a paginated list of all video files and their metadata associated with the given video RID.
704    #[endpoint(
705        method = POST,
706        path = "/video-files/v1/video-files/list-files-in-video-paginated",
707        name = "listFilesInVideoPaginated",
708        produces = conjure_http::server::StdResponseSerializer
709    )]
710    async fn list_files_in_video_paginated(
711        &self,
712        #[auth]
713        auth_: conjure_object::BearerToken,
714        #[body(
715            deserializer = conjure_http::server::StdRequestDeserializer,
716            log_as = "videoRid"
717        )]
718        video_rid: super::super::super::super::objects::scout::video::api::ListFilesInVideoRequest,
719    ) -> Result<
720        super::super::super::super::objects::scout::video::api::ListFilesInVideoResponse,
721        conjure_http::private::Error,
722    >;
723    /// Updates the metadata for a video file associated with the given RID.
724    #[endpoint(
725        method = PUT,
726        path = "/video-files/v1/video-files/{videoFileRid}",
727        name = "update",
728        produces = conjure_http::server::StdResponseSerializer
729    )]
730    async fn update(
731        &self,
732        #[auth]
733        auth_: conjure_object::BearerToken,
734        #[path(
735            name = "videoFileRid",
736            decoder = conjure_http::server::conjure::FromPlainDecoder,
737            log_as = "videoFileRid",
738            safe
739        )]
740        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
741        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
742        request: super::super::super::super::objects::scout::video::api::UpdateVideoFileRequest,
743    ) -> Result<
744        super::super::super::super::objects::scout::video::api::VideoFile,
745        conjure_http::private::Error,
746    >;
747    /// Permanently deletes a video file and all associated segments from the database.
748    /// This operation cannot be undone.
749    #[endpoint(
750        method = DELETE,
751        path = "/video-files/v1/video-files/{videoFileRid}",
752        name = "delete"
753    )]
754    async fn delete(
755        &self,
756        #[auth]
757        auth_: conjure_object::BearerToken,
758        #[path(
759            name = "videoFileRid",
760            decoder = conjure_http::server::conjure::FromPlainDecoder,
761            log_as = "videoFileRid",
762            safe
763        )]
764        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
765    ) -> Result<(), conjure_http::private::Error>;
766    #[endpoint(
767        method = PUT,
768        path = "/video-files/v1/video-files/{videoFileRid}/archive",
769        name = "archive"
770    )]
771    async fn archive(
772        &self,
773        #[auth]
774        auth_: conjure_object::BearerToken,
775        #[path(
776            name = "videoFileRid",
777            decoder = conjure_http::server::conjure::FromPlainDecoder,
778            log_as = "videoFileRid",
779            safe
780        )]
781        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
782    ) -> Result<(), conjure_http::private::Error>;
783    #[endpoint(
784        method = PUT,
785        path = "/video-files/v1/video-files/{videoFileRid}/unarchive",
786        name = "unarchive"
787    )]
788    async fn unarchive(
789        &self,
790        #[auth]
791        auth_: conjure_object::BearerToken,
792        #[path(
793            name = "videoFileRid",
794            decoder = conjure_http::server::conjure::FromPlainDecoder,
795            log_as = "videoFileRid",
796            safe
797        )]
798        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
799    ) -> Result<(), conjure_http::private::Error>;
800    /// Get the latest ingest status for a given video file by RID.
801    #[endpoint(
802        method = GET,
803        path = "/video-files/v1/video-files/{videoFileRid}/ingest-status",
804        name = "getIngestStatus",
805        produces = conjure_http::server::StdResponseSerializer
806    )]
807    async fn get_ingest_status(
808        &self,
809        #[auth]
810        auth_: conjure_object::BearerToken,
811        #[path(
812            name = "videoFileRid",
813            decoder = conjure_http::server::conjure::FromPlainDecoder,
814            log_as = "videoFileRid",
815            safe
816        )]
817        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
818    ) -> Result<
819        super::super::super::super::objects::scout::video::api::GetIngestStatusResponse,
820        conjure_http::private::Error,
821    >;
822    /// Get the latest ingest status for a set of given video files by RID.
823    #[endpoint(
824        method = POST,
825        path = "/video-files/v1/videos/batch-get-ingest-status",
826        name = "batchGetIngestStatus",
827        produces = conjure_http::server::conjure::CollectionResponseSerializer
828    )]
829    async fn batch_get_ingest_status(
830        &self,
831        #[auth]
832        auth_: conjure_object::BearerToken,
833        #[body(
834            deserializer = conjure_http::server::StdRequestDeserializer,
835            log_as = "videoFileRids",
836            safe
837        )]
838        video_file_rids: std::collections::BTreeSet<
839            super::super::super::super::objects::api::rids::VideoFileRid,
840        >,
841    ) -> Result<
842        std::collections::BTreeMap<
843            super::super::super::super::objects::api::rids::VideoFileRid,
844            super::super::super::super::objects::scout::video::api::VideoFileIngestStatus,
845        >,
846        conjure_http::private::Error,
847    >;
848    /// Update the latest ingest status for a given video file by RID.
849    #[endpoint(
850        method = PUT,
851        path = "/video-files/v1/videos/{videoFileRid}/ingest-status",
852        name = "updateIngestStatus"
853    )]
854    async fn update_ingest_status(
855        &self,
856        #[auth]
857        auth_: conjure_object::BearerToken,
858        #[path(
859            name = "videoFileRid",
860            decoder = conjure_http::server::conjure::FromPlainDecoder,
861            log_as = "videoFileRid",
862            safe
863        )]
864        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
865        #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
866        request: super::super::super::super::objects::scout::video::api::UpdateIngestStatusRequest,
867    ) -> Result<(), conjure_http::private::Error>;
868    /// Returns the min and max absolute and media timestamps for each segment in a video file.
869    /// To be used during frame-timestamp mapping when playing back videos.
870    #[endpoint(
871        method = GET,
872        path = "/video-files/v1/video-files/{videoFileRid}/segment-summaries",
873        name = "getSegmentSummaries",
874        produces = conjure_http::server::conjure::CollectionResponseSerializer
875    )]
876    async fn get_segment_summaries(
877        &self,
878        #[auth]
879        auth_: conjure_object::BearerToken,
880        #[path(
881            name = "videoFileRid",
882            decoder = conjure_http::server::conjure::FromPlainDecoder,
883            log_as = "videoFileRid",
884            safe
885        )]
886        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
887    ) -> Result<
888        Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
889        conjure_http::private::Error,
890    >;
891    /// Generate an HLS playlist for a video file with the given RID to enable playback.
892    /// The HLS playlist will contain links to all of the video segments in the video in sequential order.
893    #[endpoint(
894        method = GET,
895        path = "/video-files/v1/video-files/{videoFileRid}/playlist",
896        name = "getPlaylist",
897        produces = conjure_http::server::conjure::BinaryResponseSerializer
898    )]
899    async fn get_playlist(
900        &self,
901        #[auth]
902        auth_: conjure_object::BearerToken,
903        #[path(
904            name = "videoFileRid",
905            decoder = conjure_http::server::conjure::FromPlainDecoder,
906            log_as = "videoFileRid",
907            safe
908        )]
909        video_file_rid: super::super::super::super::objects::api::rids::VideoFileRid,
910    ) -> Result<Self::GetPlaylistBody, conjure_http::private::Error>;
911}