Skip to main content

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