1use conjure_http::endpoint;
2#[conjure_http::conjure_endpoints(name = "VideoService", use_legacy_error_serialization)]
4pub trait VideoService<#[request_body] I, #[response_writer] O> {
5 type GetPlaylistBody: conjure_http::server::WriteBody<O> + 'static;
7 type GetPlaylistInBoundsBody: conjure_http::server::WriteBody<O> + 'static;
9 type GetPlaylistInBoundsV2Body: conjure_http::server::WriteBody<O> + 'static;
11 type GetPlaylistV2Body: conjure_http::server::WriteBody<O> + 'static;
13 #[endpoint(
15 method = GET,
16 path = "/video/v1/videos/{videoRid}",
17 name = "get",
18 produces = conjure_http::server::StdResponseSerializer
19 )]
20 fn get(
21 &self,
22 #[auth]
23 auth_: conjure_object::BearerToken,
24 #[path(
25 name = "videoRid",
26 decoder = conjure_http::server::conjure::FromPlainDecoder,
27 log_as = "videoRid"
28 )]
29 video_rid: conjure_object::ResourceIdentifier,
30 ) -> Result<
31 super::super::super::super::objects::scout::video::api::Video,
32 conjure_http::private::Error,
33 >;
34 #[endpoint(
36 method = POST,
37 path = "/video/v1/videos/batchGet",
38 name = "batchGet",
39 produces = conjure_http::server::StdResponseSerializer
40 )]
41 fn batch_get(
42 &self,
43 #[auth]
44 auth_: conjure_object::BearerToken,
45 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
46 request: super::super::super::super::objects::scout::video::api::GetVideosRequest,
47 ) -> Result<
48 super::super::super::super::objects::scout::video::api::GetVideosResponse,
49 conjure_http::private::Error,
50 >;
51 #[endpoint(
53 method = POST,
54 path = "/video/v1/videos/search",
55 name = "search",
56 produces = conjure_http::server::StdResponseSerializer
57 )]
58 fn search(
59 &self,
60 #[auth]
61 auth_: conjure_object::BearerToken,
62 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
63 request: super::super::super::super::objects::scout::video::api::SearchVideosRequest,
64 ) -> Result<
65 super::super::super::super::objects::scout::video::api::SearchVideosResponse,
66 conjure_http::private::Error,
67 >;
68 #[endpoint(
70 method = POST,
71 path = "/video/v1/videos",
72 name = "create",
73 produces = conjure_http::server::StdResponseSerializer
74 )]
75 fn create(
76 &self,
77 #[auth]
78 auth_: conjure_object::BearerToken,
79 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
80 request: super::super::super::super::objects::scout::video::api::CreateVideoRequest,
81 ) -> Result<
82 super::super::super::super::objects::scout::video::api::Video,
83 conjure_http::private::Error,
84 >;
85 #[endpoint(
87 method = PUT,
88 path = "/video/v1/videos/{videoRid}",
89 name = "updateMetadata",
90 produces = conjure_http::server::StdResponseSerializer
91 )]
92 fn update_metadata(
93 &self,
94 #[auth]
95 auth_: conjure_object::BearerToken,
96 #[path(
97 name = "videoRid",
98 decoder = conjure_http::server::conjure::FromPlainDecoder,
99 log_as = "videoRid"
100 )]
101 video_rid: conjure_object::ResourceIdentifier,
102 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
103 request: super::super::super::super::objects::scout::video::api::UpdateVideoMetadataRequest,
104 ) -> Result<
105 super::super::super::super::objects::scout::video::api::Video,
106 conjure_http::private::Error,
107 >;
108 #[endpoint(
109 method = PUT,
110 path = "/video/v1/videos/{videoRid}/ingest-status",
111 name = "updateIngestStatus"
112 )]
113 fn update_ingest_status(
114 &self,
115 #[auth]
116 auth_: conjure_object::BearerToken,
117 #[path(
118 name = "videoRid",
119 decoder = conjure_http::server::conjure::FromPlainDecoder,
120 log_as = "videoRid"
121 )]
122 video_rid: conjure_object::ResourceIdentifier,
123 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
124 request: super::super::super::super::objects::scout::video::api::UpdateIngestStatus,
125 ) -> Result<(), conjure_http::private::Error>;
126 #[endpoint(
127 method = GET,
128 path = "/video/v1/videos/{videoRid}/ingest-status",
129 name = "getIngestStatus",
130 produces = conjure_http::server::StdResponseSerializer
131 )]
132 fn get_ingest_status(
133 &self,
134 #[auth]
135 auth_: conjure_object::BearerToken,
136 #[path(
137 name = "videoRid",
138 decoder = conjure_http::server::conjure::FromPlainDecoder,
139 log_as = "videoRid"
140 )]
141 video_rid: conjure_object::ResourceIdentifier,
142 ) -> Result<
143 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
144 conjure_http::private::Error,
145 >;
146 #[endpoint(
147 method = POST,
148 path = "/video/v1/videos/batch-get-ingest-status",
149 name = "batchGetIngestStatus",
150 produces = conjure_http::server::conjure::CollectionResponseSerializer
151 )]
152 fn batch_get_ingest_status(
153 &self,
154 #[auth]
155 auth_: conjure_object::BearerToken,
156 #[body(
157 deserializer = conjure_http::server::StdRequestDeserializer,
158 log_as = "videoRids"
159 )]
160 video_rids: std::collections::BTreeSet<conjure_object::ResourceIdentifier>,
161 ) -> Result<
162 std::collections::BTreeMap<
163 conjure_object::ResourceIdentifier,
164 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
165 >,
166 conjure_http::private::Error,
167 >;
168 #[endpoint(
169 method = POST,
170 path = "/video/v1/videos/enriched-ingest-status",
171 name = "getEnrichedIngestStatus",
172 produces = conjure_http::server::conjure::CollectionResponseSerializer
173 )]
174 fn get_enriched_ingest_status(
175 &self,
176 #[auth]
177 auth_: conjure_object::BearerToken,
178 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
179 request: super::super::super::super::objects::scout::video::api::GetEnrichedVideoIngestStatusRequest,
180 ) -> Result<
181 Option<
182 super::super::super::super::objects::scout::video::api::EnrichedVideoIngestStatus,
183 >,
184 conjure_http::private::Error,
185 >;
186 #[endpoint(
189 method = PUT,
190 path = "/video/v1/videos/{videoRid}/archive",
191 name = "archive"
192 )]
193 fn archive(
194 &self,
195 #[auth]
196 auth_: conjure_object::BearerToken,
197 #[path(
198 name = "videoRid",
199 decoder = conjure_http::server::conjure::FromPlainDecoder,
200 log_as = "videoRid"
201 )]
202 video_rid: conjure_object::ResourceIdentifier,
203 ) -> Result<(), conjure_http::private::Error>;
204 #[endpoint(
206 method = PUT,
207 path = "/video/v1/videos/{videoRid}/unarchive",
208 name = "unarchive"
209 )]
210 fn unarchive(
211 &self,
212 #[auth]
213 auth_: conjure_object::BearerToken,
214 #[path(
215 name = "videoRid",
216 decoder = conjure_http::server::conjure::FromPlainDecoder,
217 log_as = "videoRid"
218 )]
219 video_rid: conjure_object::ResourceIdentifier,
220 ) -> Result<(), conjure_http::private::Error>;
221 #[endpoint(
229 method = GET,
230 path = "/video/v1/videos/{videoRid}/playlist",
231 name = "getPlaylist",
232 produces = conjure_http::server::conjure::BinaryResponseSerializer
233 )]
234 fn get_playlist(
235 &self,
236 #[auth]
237 auth_: conjure_object::BearerToken,
238 #[path(
239 name = "videoRid",
240 decoder = conjure_http::server::conjure::FromPlainDecoder,
241 log_as = "videoRid"
242 )]
243 video_rid: conjure_object::ResourceIdentifier,
244 #[query(
245 name = "start",
246 decoder = conjure_http::server::conjure::FromPlainOptionDecoder
247 )]
248 start: Option<String>,
249 #[query(
250 name = "end",
251 decoder = conjure_http::server::conjure::FromPlainOptionDecoder
252 )]
253 end: Option<String>,
254 ) -> Result<Self::GetPlaylistBody, conjure_http::private::Error>;
255 #[endpoint(
258 method = GET,
259 path = "/video/v1/videos/{videoRid}/segment-summaries",
260 name = "getSegmentSummaries",
261 produces = conjure_http::server::conjure::CollectionResponseSerializer
262 )]
263 fn get_segment_summaries(
264 &self,
265 #[auth]
266 auth_: conjure_object::BearerToken,
267 #[path(
268 name = "videoRid",
269 decoder = conjure_http::server::conjure::FromPlainDecoder,
270 log_as = "videoRid"
271 )]
272 video_rid: conjure_object::ResourceIdentifier,
273 ) -> Result<
274 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
275 conjure_http::private::Error,
276 >;
277 #[endpoint(
282 method = POST,
283 path = "/video/v1/videos/{videoRid}/playlist-in-bounds",
284 name = "getPlaylistInBounds",
285 produces = conjure_http::server::conjure::BinaryResponseSerializer
286 )]
287 fn get_playlist_in_bounds(
288 &self,
289 #[auth]
290 auth_: conjure_object::BearerToken,
291 #[path(
292 name = "videoRid",
293 decoder = conjure_http::server::conjure::FromPlainDecoder,
294 log_as = "videoRid"
295 )]
296 video_rid: conjure_object::ResourceIdentifier,
297 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
298 request: super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsRequest,
299 ) -> Result<Self::GetPlaylistInBoundsBody, conjure_http::private::Error>;
300 #[endpoint(
302 method = POST,
303 path = "/video/v2/videos/playlist-in-bounds",
304 name = "getPlaylistInBoundsV2",
305 produces = conjure_http::server::conjure::BinaryResponseSerializer
306 )]
307 fn get_playlist_in_bounds_v2(
308 &self,
309 #[auth]
310 auth_: conjure_object::BearerToken,
311 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
312 request: super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsForChannelRequest,
313 ) -> Result<Self::GetPlaylistInBoundsV2Body, conjure_http::private::Error>;
314 #[endpoint(
319 method = GET,
320 path = "/video/v2/videos/playlist",
321 name = "getPlaylistV2",
322 produces = conjure_http::server::conjure::BinaryResponseSerializer
323 )]
324 fn get_playlist_v2(
325 &self,
326 #[auth]
327 auth_: conjure_object::BearerToken,
328 #[query(
329 name = "dataSourceRid",
330 decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
331 log_as = "dataSourceRid"
332 )]
333 data_source_rid: Option<conjure_object::ResourceIdentifier>,
334 #[query(
335 name = "assetRid",
336 decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
337 log_as = "assetRid",
338 safe
339 )]
340 asset_rid: Option<
341 super::super::super::super::objects::scout::rids::api::AssetRid,
342 >,
343 #[query(
344 name = "dataScopeName",
345 decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
346 log_as = "dataScopeName"
347 )]
348 data_scope_name: Option<String>,
349 #[query(
350 name = "channel",
351 decoder = conjure_http::server::conjure::FromPlainDecoder
352 )]
353 channel: String,
354 #[query(
355 name = "tags",
356 decoder = conjure_http::server::conjure::FromPlainOptionDecoder
357 )]
358 tags: Option<String>,
359 #[query(
360 name = "start",
361 decoder = conjure_http::server::conjure::FromPlainDecoder
362 )]
363 start: String,
364 #[query(name = "end", decoder = conjure_http::server::conjure::FromPlainDecoder)]
365 end: String,
366 ) -> Result<Self::GetPlaylistV2Body, conjure_http::private::Error>;
367 #[endpoint(
370 method = POST,
371 path = "/video/v1/videos/{videoRid}/segment-summaries-in-bounds",
372 name = "getSegmentSummariesInBounds",
373 produces = conjure_http::server::conjure::CollectionResponseSerializer
374 )]
375 fn get_segment_summaries_in_bounds(
376 &self,
377 #[auth]
378 auth_: conjure_object::BearerToken,
379 #[path(
380 name = "videoRid",
381 decoder = conjure_http::server::conjure::FromPlainDecoder,
382 log_as = "videoRid"
383 )]
384 video_rid: conjure_object::ResourceIdentifier,
385 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
386 request: super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsRequest,
387 ) -> Result<
388 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
389 conjure_http::private::Error,
390 >;
391 #[endpoint(
394 method = POST,
395 path = "/video/v2/videos/segment-summaries-in-bounds",
396 name = "getSegmentSummariesInBoundsV2",
397 produces = conjure_http::server::conjure::CollectionResponseSerializer
398 )]
399 fn get_segment_summaries_in_bounds_v2(
400 &self,
401 #[auth]
402 auth_: conjure_object::BearerToken,
403 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
404 request: super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsForChannelRequest,
405 ) -> Result<
406 Vec<super::super::super::super::objects::scout::video::api::SegmentSummaryV2>,
407 conjure_http::private::Error,
408 >;
409 #[endpoint(
412 method = POST,
413 path = "/video/v2/videos/segment-metadata",
414 name = "getSegmentMetadataV2",
415 produces = conjure_http::server::conjure::CollectionResponseSerializer
416 )]
417 fn get_segment_metadata_v2(
418 &self,
419 #[auth]
420 auth_: conjure_object::BearerToken,
421 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
422 request: super::super::super::super::objects::scout::video::api::GetSegmentMetadataForChannelRequest,
423 ) -> Result<
424 Option<
425 super::super::super::super::objects::scout::video::api::VideoChannelSegmentsMetadata,
426 >,
427 conjure_http::private::Error,
428 >;
429 #[endpoint(
431 method = POST,
432 path = "/video/v2/videos/get-segment-by-timestamp",
433 name = "getSegmentByTimestampV2",
434 produces = conjure_http::server::conjure::CollectionResponseSerializer
435 )]
436 fn get_segment_by_timestamp_v2(
437 &self,
438 #[auth]
439 auth_: conjure_object::BearerToken,
440 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
441 request: super::super::super::super::objects::scout::video::api::GetSegmentByTimestampV2Request,
442 ) -> Result<
443 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
444 conjure_http::private::Error,
445 >;
446 #[endpoint(
450 method = POST,
451 path = "/video/v1/videos/{videoRid}/get-segment-at-or-after-timestamp",
452 name = "getSegmentAtOrAfterTimestamp",
453 produces = conjure_http::server::conjure::CollectionResponseSerializer
454 )]
455 fn get_segment_at_or_after_timestamp(
456 &self,
457 #[auth]
458 auth_: conjure_object::BearerToken,
459 #[path(
460 name = "videoRid",
461 decoder = conjure_http::server::conjure::FromPlainDecoder,
462 log_as = "videoRid"
463 )]
464 video_rid: conjure_object::ResourceIdentifier,
465 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
466 request: super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampRequest,
467 ) -> Result<
468 Option<super::super::super::super::objects::scout::video::api::Segment>,
469 conjure_http::private::Error,
470 >;
471 #[endpoint(
475 method = POST,
476 path = "/video/v2/videos/get-segment-at-or-after-timestamp",
477 name = "getSegmentAtOrAfterTimestampV2",
478 produces = conjure_http::server::conjure::CollectionResponseSerializer
479 )]
480 fn get_segment_at_or_after_timestamp_v2(
481 &self,
482 #[auth]
483 auth_: conjure_object::BearerToken,
484 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
485 request: super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampV2Request,
486 ) -> Result<
487 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
488 conjure_http::private::Error,
489 >;
490 #[endpoint(
494 method = POST,
495 path = "/video/v1/videos/{videoRid}/get-ranges-with-existing-segment-data",
496 name = "getFileSummaries",
497 produces = conjure_http::server::StdResponseSerializer
498 )]
499 fn get_file_summaries(
500 &self,
501 #[auth]
502 auth_: conjure_object::BearerToken,
503 #[path(
504 name = "videoRid",
505 decoder = conjure_http::server::conjure::FromPlainDecoder,
506 log_as = "videoRid"
507 )]
508 video_rid: conjure_object::ResourceIdentifier,
509 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
510 request: super::super::super::super::objects::scout::video::api::GetFileSummariesRequest,
511 ) -> Result<
512 super::super::super::super::objects::scout::video::api::GetFileSummariesResponse,
513 conjure_http::private::Error,
514 >;
515 #[endpoint(
518 method = POST,
519 path = "/video/v1/videos/{videoRid}/streaming/whip",
520 name = "generateWhipStream",
521 produces = conjure_http::server::StdResponseSerializer
522 )]
523 fn generate_whip_stream(
524 &self,
525 #[auth]
526 auth_: conjure_object::BearerToken,
527 #[path(
528 name = "videoRid",
529 decoder = conjure_http::server::conjure::FromPlainDecoder,
530 log_as = "videoRid"
531 )]
532 video_rid: conjure_object::ResourceIdentifier,
533 ) -> Result<
534 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
535 conjure_http::private::Error,
536 >;
537 #[endpoint(
541 method = POST,
542 path = "/video/v2/videos/streaming/whip",
543 name = "generateWhipStreamV2",
544 produces = conjure_http::server::StdResponseSerializer
545 )]
546 fn generate_whip_stream_v2(
547 &self,
548 #[auth]
549 auth_: conjure_object::BearerToken,
550 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
551 request: super::super::super::super::objects::scout::video::api::GenerateWhipStreamV2Request,
552 ) -> Result<
553 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
554 conjure_http::private::Error,
555 >;
556 #[endpoint(
560 method = POST,
561 path = "/video/v1/videos/{videoRid}/streaming/whep",
562 name = "generateWhepStream",
563 produces = conjure_http::server::conjure::CollectionResponseSerializer
564 )]
565 fn generate_whep_stream(
566 &self,
567 #[auth]
568 auth_: conjure_object::BearerToken,
569 #[path(
570 name = "videoRid",
571 decoder = conjure_http::server::conjure::FromPlainDecoder,
572 log_as = "videoRid"
573 )]
574 video_rid: conjure_object::ResourceIdentifier,
575 ) -> Result<
576 Option<
577 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
578 >,
579 conjure_http::private::Error,
580 >;
581 #[endpoint(
585 method = POST,
586 path = "/video/v2/videos/streaming/whep",
587 name = "generateWhepStreamV2",
588 produces = conjure_http::server::conjure::CollectionResponseSerializer
589 )]
590 fn generate_whep_stream_v2(
591 &self,
592 #[auth]
593 auth_: conjure_object::BearerToken,
594 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
595 request: super::super::super::super::objects::scout::video::api::GenerateWhepStreamV2Request,
596 ) -> Result<
597 Option<
598 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
599 >,
600 conjure_http::private::Error,
601 >;
602 #[endpoint(
605 method = GET,
606 path = "/video/v1/videos/{videoRid}/streaming/streams/{streamId}",
607 name = "getStream",
608 produces = conjure_http::server::conjure::CollectionResponseSerializer
609 )]
610 fn get_stream(
611 &self,
612 #[auth]
613 auth_: conjure_object::BearerToken,
614 #[path(
615 name = "videoRid",
616 decoder = conjure_http::server::conjure::FromPlainDecoder,
617 log_as = "videoRid"
618 )]
619 video_rid: conjure_object::ResourceIdentifier,
620 #[path(
621 name = "streamId",
622 decoder = conjure_http::server::conjure::FromPlainDecoder,
623 log_as = "streamId"
624 )]
625 stream_id: String,
626 ) -> Result<
627 Option<super::super::super::super::objects::scout::video::api::VideoStream>,
628 conjure_http::private::Error,
629 >;
630 #[endpoint(
634 method = POST,
635 path = "/video/v1/videos/{videoRid}/streaming/streams-in-bounds",
636 name = "getStreamsInBounds",
637 produces = conjure_http::server::StdResponseSerializer
638 )]
639 fn get_streams_in_bounds(
640 &self,
641 #[auth]
642 auth_: conjure_object::BearerToken,
643 #[path(
644 name = "videoRid",
645 decoder = conjure_http::server::conjure::FromPlainDecoder,
646 log_as = "videoRid"
647 )]
648 video_rid: conjure_object::ResourceIdentifier,
649 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
650 request: super::super::super::super::objects::scout::video::api::GetStreamsInBoundsRequest,
651 ) -> Result<
652 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsResponse,
653 conjure_http::private::Error,
654 >;
655 #[endpoint(
659 method = POST,
660 path = "/video/v2/videos/streaming/streams-in-bounds",
661 name = "getStreamsInBoundsV2",
662 produces = conjure_http::server::StdResponseSerializer
663 )]
664 fn get_streams_in_bounds_v2(
665 &self,
666 #[auth]
667 auth_: conjure_object::BearerToken,
668 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
669 request: super::super::super::super::objects::scout::video::api::GetStreamsInBoundsForChannelRequest,
670 ) -> Result<
671 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsV2Response,
672 conjure_http::private::Error,
673 >;
674 #[endpoint(
680 method = POST,
681 path = "/video/v2/videos/channel-dataset-files",
682 name = "listVideoChannelDatasetFiles",
683 produces = conjure_http::server::StdResponseSerializer
684 )]
685 fn list_video_channel_dataset_files(
686 &self,
687 #[auth]
688 auth_: conjure_object::BearerToken,
689 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
690 request: super::super::super::super::objects::scout::video::api::ListVideoChannelDatasetFilesRequest,
691 ) -> Result<
692 super::super::super::super::objects::scout::video::api::ListVideoChannelDatasetFilesResponse,
693 conjure_http::private::Error,
694 >;
695 #[endpoint(
703 method = POST,
704 path = "/video/v2/videos/channel-dataset-files/batch-update",
705 name = "batchUpdateVideoChannelDatasetFiles",
706 produces = conjure_http::server::StdResponseSerializer
707 )]
708 fn batch_update_video_channel_dataset_files(
709 &self,
710 #[auth]
711 auth_: conjure_object::BearerToken,
712 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
713 request: super::super::super::super::objects::scout::video::api::BatchUpdateVideoChannelDatasetFilesRequest,
714 ) -> Result<
715 super::super::super::super::objects::scout::video::api::BatchUpdateVideoChannelDatasetFilesResponse,
716 conjure_http::private::Error,
717 >;
718 #[endpoint(
722 method = POST,
723 path = "/video/v1/videos/{videoRid}/streaming/end",
724 name = "endStream",
725 produces = conjure_http::server::StdResponseSerializer
726 )]
727 fn end_stream(
728 &self,
729 #[auth]
730 auth_: conjure_object::BearerToken,
731 #[path(
732 name = "videoRid",
733 decoder = conjure_http::server::conjure::FromPlainDecoder,
734 log_as = "videoRid"
735 )]
736 video_rid: conjure_object::ResourceIdentifier,
737 ) -> Result<
738 super::super::super::super::objects::scout::video::api::EndStreamResponse,
739 conjure_http::private::Error,
740 >;
741 #[endpoint(
744 method = POST,
745 path = "/video/v1/segment/upload",
746 name = "uploadSegmentFromMediaMtx"
747 )]
748 fn upload_segment_from_media_mtx(
749 &self,
750 #[auth]
751 auth_: conjure_object::BearerToken,
752 #[query(
753 name = "streamPath",
754 decoder = conjure_http::server::conjure::FromPlainDecoder,
755 log_as = "streamPath"
756 )]
757 stream_path: String,
758 #[query(
759 name = "filePath",
760 decoder = conjure_http::server::conjure::FromPlainDecoder,
761 log_as = "filePath"
762 )]
763 file_path: String,
764 #[query(
765 name = "duration",
766 decoder = conjure_http::server::conjure::FromPlainDecoder
767 )]
768 duration: String,
769 #[query(
770 name = "minTimestampSeconds",
771 decoder = conjure_http::server::conjure::FromPlainDecoder,
772 log_as = "minTimestampSeconds"
773 )]
774 min_timestamp_seconds: conjure_object::SafeLong,
775 #[query(
776 name = "minTimestampNanos",
777 decoder = conjure_http::server::conjure::FromPlainDecoder,
778 log_as = "minTimestampNanos"
779 )]
780 min_timestamp_nanos: conjure_object::SafeLong,
781 #[header(
782 name = "Content-Length",
783 decoder = conjure_http::server::conjure::FromPlainDecoder,
784 log_as = "contentLength"
785 )]
786 content_length: conjure_object::SafeLong,
787 #[body(deserializer = conjure_http::server::conjure::BinaryRequestDeserializer)]
788 body: I,
789 ) -> Result<(), conjure_http::private::Error>;
790}
791#[conjure_http::conjure_endpoints(name = "VideoService", use_legacy_error_serialization)]
793pub trait AsyncVideoService<#[request_body] I, #[response_writer] O> {
794 type GetPlaylistBody: conjure_http::server::AsyncWriteBody<O> + 'static + Send;
796 type GetPlaylistInBoundsBody: conjure_http::server::AsyncWriteBody<O>
798 + 'static
799 + Send;
800 type GetPlaylistInBoundsV2Body: conjure_http::server::AsyncWriteBody<O>
802 + 'static
803 + Send;
804 type GetPlaylistV2Body: conjure_http::server::AsyncWriteBody<O> + 'static + Send;
806 #[endpoint(
808 method = GET,
809 path = "/video/v1/videos/{videoRid}",
810 name = "get",
811 produces = conjure_http::server::StdResponseSerializer
812 )]
813 async fn get(
814 &self,
815 #[auth]
816 auth_: conjure_object::BearerToken,
817 #[path(
818 name = "videoRid",
819 decoder = conjure_http::server::conjure::FromPlainDecoder,
820 log_as = "videoRid"
821 )]
822 video_rid: conjure_object::ResourceIdentifier,
823 ) -> Result<
824 super::super::super::super::objects::scout::video::api::Video,
825 conjure_http::private::Error,
826 >;
827 #[endpoint(
829 method = POST,
830 path = "/video/v1/videos/batchGet",
831 name = "batchGet",
832 produces = conjure_http::server::StdResponseSerializer
833 )]
834 async fn batch_get(
835 &self,
836 #[auth]
837 auth_: conjure_object::BearerToken,
838 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
839 request: super::super::super::super::objects::scout::video::api::GetVideosRequest,
840 ) -> Result<
841 super::super::super::super::objects::scout::video::api::GetVideosResponse,
842 conjure_http::private::Error,
843 >;
844 #[endpoint(
846 method = POST,
847 path = "/video/v1/videos/search",
848 name = "search",
849 produces = conjure_http::server::StdResponseSerializer
850 )]
851 async fn search(
852 &self,
853 #[auth]
854 auth_: conjure_object::BearerToken,
855 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
856 request: super::super::super::super::objects::scout::video::api::SearchVideosRequest,
857 ) -> Result<
858 super::super::super::super::objects::scout::video::api::SearchVideosResponse,
859 conjure_http::private::Error,
860 >;
861 #[endpoint(
863 method = POST,
864 path = "/video/v1/videos",
865 name = "create",
866 produces = conjure_http::server::StdResponseSerializer
867 )]
868 async fn create(
869 &self,
870 #[auth]
871 auth_: conjure_object::BearerToken,
872 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
873 request: super::super::super::super::objects::scout::video::api::CreateVideoRequest,
874 ) -> Result<
875 super::super::super::super::objects::scout::video::api::Video,
876 conjure_http::private::Error,
877 >;
878 #[endpoint(
880 method = PUT,
881 path = "/video/v1/videos/{videoRid}",
882 name = "updateMetadata",
883 produces = conjure_http::server::StdResponseSerializer
884 )]
885 async fn update_metadata(
886 &self,
887 #[auth]
888 auth_: conjure_object::BearerToken,
889 #[path(
890 name = "videoRid",
891 decoder = conjure_http::server::conjure::FromPlainDecoder,
892 log_as = "videoRid"
893 )]
894 video_rid: conjure_object::ResourceIdentifier,
895 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
896 request: super::super::super::super::objects::scout::video::api::UpdateVideoMetadataRequest,
897 ) -> Result<
898 super::super::super::super::objects::scout::video::api::Video,
899 conjure_http::private::Error,
900 >;
901 #[endpoint(
902 method = PUT,
903 path = "/video/v1/videos/{videoRid}/ingest-status",
904 name = "updateIngestStatus"
905 )]
906 async fn update_ingest_status(
907 &self,
908 #[auth]
909 auth_: conjure_object::BearerToken,
910 #[path(
911 name = "videoRid",
912 decoder = conjure_http::server::conjure::FromPlainDecoder,
913 log_as = "videoRid"
914 )]
915 video_rid: conjure_object::ResourceIdentifier,
916 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
917 request: super::super::super::super::objects::scout::video::api::UpdateIngestStatus,
918 ) -> Result<(), conjure_http::private::Error>;
919 #[endpoint(
920 method = GET,
921 path = "/video/v1/videos/{videoRid}/ingest-status",
922 name = "getIngestStatus",
923 produces = conjure_http::server::StdResponseSerializer
924 )]
925 async fn get_ingest_status(
926 &self,
927 #[auth]
928 auth_: conjure_object::BearerToken,
929 #[path(
930 name = "videoRid",
931 decoder = conjure_http::server::conjure::FromPlainDecoder,
932 log_as = "videoRid"
933 )]
934 video_rid: conjure_object::ResourceIdentifier,
935 ) -> Result<
936 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
937 conjure_http::private::Error,
938 >;
939 #[endpoint(
940 method = POST,
941 path = "/video/v1/videos/batch-get-ingest-status",
942 name = "batchGetIngestStatus",
943 produces = conjure_http::server::conjure::CollectionResponseSerializer
944 )]
945 async fn batch_get_ingest_status(
946 &self,
947 #[auth]
948 auth_: conjure_object::BearerToken,
949 #[body(
950 deserializer = conjure_http::server::StdRequestDeserializer,
951 log_as = "videoRids"
952 )]
953 video_rids: std::collections::BTreeSet<conjure_object::ResourceIdentifier>,
954 ) -> Result<
955 std::collections::BTreeMap<
956 conjure_object::ResourceIdentifier,
957 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
958 >,
959 conjure_http::private::Error,
960 >;
961 #[endpoint(
962 method = POST,
963 path = "/video/v1/videos/enriched-ingest-status",
964 name = "getEnrichedIngestStatus",
965 produces = conjure_http::server::conjure::CollectionResponseSerializer
966 )]
967 async fn get_enriched_ingest_status(
968 &self,
969 #[auth]
970 auth_: conjure_object::BearerToken,
971 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
972 request: super::super::super::super::objects::scout::video::api::GetEnrichedVideoIngestStatusRequest,
973 ) -> Result<
974 Option<
975 super::super::super::super::objects::scout::video::api::EnrichedVideoIngestStatus,
976 >,
977 conjure_http::private::Error,
978 >;
979 #[endpoint(
982 method = PUT,
983 path = "/video/v1/videos/{videoRid}/archive",
984 name = "archive"
985 )]
986 async fn archive(
987 &self,
988 #[auth]
989 auth_: conjure_object::BearerToken,
990 #[path(
991 name = "videoRid",
992 decoder = conjure_http::server::conjure::FromPlainDecoder,
993 log_as = "videoRid"
994 )]
995 video_rid: conjure_object::ResourceIdentifier,
996 ) -> Result<(), conjure_http::private::Error>;
997 #[endpoint(
999 method = PUT,
1000 path = "/video/v1/videos/{videoRid}/unarchive",
1001 name = "unarchive"
1002 )]
1003 async fn unarchive(
1004 &self,
1005 #[auth]
1006 auth_: conjure_object::BearerToken,
1007 #[path(
1008 name = "videoRid",
1009 decoder = conjure_http::server::conjure::FromPlainDecoder,
1010 log_as = "videoRid"
1011 )]
1012 video_rid: conjure_object::ResourceIdentifier,
1013 ) -> Result<(), conjure_http::private::Error>;
1014 #[endpoint(
1022 method = GET,
1023 path = "/video/v1/videos/{videoRid}/playlist",
1024 name = "getPlaylist",
1025 produces = conjure_http::server::conjure::BinaryResponseSerializer
1026 )]
1027 async fn get_playlist(
1028 &self,
1029 #[auth]
1030 auth_: conjure_object::BearerToken,
1031 #[path(
1032 name = "videoRid",
1033 decoder = conjure_http::server::conjure::FromPlainDecoder,
1034 log_as = "videoRid"
1035 )]
1036 video_rid: conjure_object::ResourceIdentifier,
1037 #[query(
1038 name = "start",
1039 decoder = conjure_http::server::conjure::FromPlainOptionDecoder
1040 )]
1041 start: Option<String>,
1042 #[query(
1043 name = "end",
1044 decoder = conjure_http::server::conjure::FromPlainOptionDecoder
1045 )]
1046 end: Option<String>,
1047 ) -> Result<Self::GetPlaylistBody, conjure_http::private::Error>;
1048 #[endpoint(
1051 method = GET,
1052 path = "/video/v1/videos/{videoRid}/segment-summaries",
1053 name = "getSegmentSummaries",
1054 produces = conjure_http::server::conjure::CollectionResponseSerializer
1055 )]
1056 async fn get_segment_summaries(
1057 &self,
1058 #[auth]
1059 auth_: conjure_object::BearerToken,
1060 #[path(
1061 name = "videoRid",
1062 decoder = conjure_http::server::conjure::FromPlainDecoder,
1063 log_as = "videoRid"
1064 )]
1065 video_rid: conjure_object::ResourceIdentifier,
1066 ) -> Result<
1067 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
1068 conjure_http::private::Error,
1069 >;
1070 #[endpoint(
1075 method = POST,
1076 path = "/video/v1/videos/{videoRid}/playlist-in-bounds",
1077 name = "getPlaylistInBounds",
1078 produces = conjure_http::server::conjure::BinaryResponseSerializer
1079 )]
1080 async fn get_playlist_in_bounds(
1081 &self,
1082 #[auth]
1083 auth_: conjure_object::BearerToken,
1084 #[path(
1085 name = "videoRid",
1086 decoder = conjure_http::server::conjure::FromPlainDecoder,
1087 log_as = "videoRid"
1088 )]
1089 video_rid: conjure_object::ResourceIdentifier,
1090 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
1091 request: super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsRequest,
1092 ) -> Result<Self::GetPlaylistInBoundsBody, conjure_http::private::Error>;
1093 #[endpoint(
1095 method = POST,
1096 path = "/video/v2/videos/playlist-in-bounds",
1097 name = "getPlaylistInBoundsV2",
1098 produces = conjure_http::server::conjure::BinaryResponseSerializer
1099 )]
1100 async fn get_playlist_in_bounds_v2(
1101 &self,
1102 #[auth]
1103 auth_: conjure_object::BearerToken,
1104 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1105 request: super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsForChannelRequest,
1106 ) -> Result<Self::GetPlaylistInBoundsV2Body, conjure_http::private::Error>;
1107 #[endpoint(
1112 method = GET,
1113 path = "/video/v2/videos/playlist",
1114 name = "getPlaylistV2",
1115 produces = conjure_http::server::conjure::BinaryResponseSerializer
1116 )]
1117 async fn get_playlist_v2(
1118 &self,
1119 #[auth]
1120 auth_: conjure_object::BearerToken,
1121 #[query(
1122 name = "dataSourceRid",
1123 decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
1124 log_as = "dataSourceRid"
1125 )]
1126 data_source_rid: Option<conjure_object::ResourceIdentifier>,
1127 #[query(
1128 name = "assetRid",
1129 decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
1130 log_as = "assetRid",
1131 safe
1132 )]
1133 asset_rid: Option<
1134 super::super::super::super::objects::scout::rids::api::AssetRid,
1135 >,
1136 #[query(
1137 name = "dataScopeName",
1138 decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
1139 log_as = "dataScopeName"
1140 )]
1141 data_scope_name: Option<String>,
1142 #[query(
1143 name = "channel",
1144 decoder = conjure_http::server::conjure::FromPlainDecoder
1145 )]
1146 channel: String,
1147 #[query(
1148 name = "tags",
1149 decoder = conjure_http::server::conjure::FromPlainOptionDecoder
1150 )]
1151 tags: Option<String>,
1152 #[query(
1153 name = "start",
1154 decoder = conjure_http::server::conjure::FromPlainDecoder
1155 )]
1156 start: String,
1157 #[query(name = "end", decoder = conjure_http::server::conjure::FromPlainDecoder)]
1158 end: String,
1159 ) -> Result<Self::GetPlaylistV2Body, conjure_http::private::Error>;
1160 #[endpoint(
1163 method = POST,
1164 path = "/video/v1/videos/{videoRid}/segment-summaries-in-bounds",
1165 name = "getSegmentSummariesInBounds",
1166 produces = conjure_http::server::conjure::CollectionResponseSerializer
1167 )]
1168 async fn get_segment_summaries_in_bounds(
1169 &self,
1170 #[auth]
1171 auth_: conjure_object::BearerToken,
1172 #[path(
1173 name = "videoRid",
1174 decoder = conjure_http::server::conjure::FromPlainDecoder,
1175 log_as = "videoRid"
1176 )]
1177 video_rid: conjure_object::ResourceIdentifier,
1178 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
1179 request: super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsRequest,
1180 ) -> Result<
1181 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
1182 conjure_http::private::Error,
1183 >;
1184 #[endpoint(
1187 method = POST,
1188 path = "/video/v2/videos/segment-summaries-in-bounds",
1189 name = "getSegmentSummariesInBoundsV2",
1190 produces = conjure_http::server::conjure::CollectionResponseSerializer
1191 )]
1192 async fn get_segment_summaries_in_bounds_v2(
1193 &self,
1194 #[auth]
1195 auth_: conjure_object::BearerToken,
1196 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1197 request: super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsForChannelRequest,
1198 ) -> Result<
1199 Vec<super::super::super::super::objects::scout::video::api::SegmentSummaryV2>,
1200 conjure_http::private::Error,
1201 >;
1202 #[endpoint(
1205 method = POST,
1206 path = "/video/v2/videos/segment-metadata",
1207 name = "getSegmentMetadataV2",
1208 produces = conjure_http::server::conjure::CollectionResponseSerializer
1209 )]
1210 async fn get_segment_metadata_v2(
1211 &self,
1212 #[auth]
1213 auth_: conjure_object::BearerToken,
1214 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1215 request: super::super::super::super::objects::scout::video::api::GetSegmentMetadataForChannelRequest,
1216 ) -> Result<
1217 Option<
1218 super::super::super::super::objects::scout::video::api::VideoChannelSegmentsMetadata,
1219 >,
1220 conjure_http::private::Error,
1221 >;
1222 #[endpoint(
1224 method = POST,
1225 path = "/video/v2/videos/get-segment-by-timestamp",
1226 name = "getSegmentByTimestampV2",
1227 produces = conjure_http::server::conjure::CollectionResponseSerializer
1228 )]
1229 async fn get_segment_by_timestamp_v2(
1230 &self,
1231 #[auth]
1232 auth_: conjure_object::BearerToken,
1233 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1234 request: super::super::super::super::objects::scout::video::api::GetSegmentByTimestampV2Request,
1235 ) -> Result<
1236 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
1237 conjure_http::private::Error,
1238 >;
1239 #[endpoint(
1243 method = POST,
1244 path = "/video/v1/videos/{videoRid}/get-segment-at-or-after-timestamp",
1245 name = "getSegmentAtOrAfterTimestamp",
1246 produces = conjure_http::server::conjure::CollectionResponseSerializer
1247 )]
1248 async fn get_segment_at_or_after_timestamp(
1249 &self,
1250 #[auth]
1251 auth_: conjure_object::BearerToken,
1252 #[path(
1253 name = "videoRid",
1254 decoder = conjure_http::server::conjure::FromPlainDecoder,
1255 log_as = "videoRid"
1256 )]
1257 video_rid: conjure_object::ResourceIdentifier,
1258 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
1259 request: super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampRequest,
1260 ) -> Result<
1261 Option<super::super::super::super::objects::scout::video::api::Segment>,
1262 conjure_http::private::Error,
1263 >;
1264 #[endpoint(
1268 method = POST,
1269 path = "/video/v2/videos/get-segment-at-or-after-timestamp",
1270 name = "getSegmentAtOrAfterTimestampV2",
1271 produces = conjure_http::server::conjure::CollectionResponseSerializer
1272 )]
1273 async fn get_segment_at_or_after_timestamp_v2(
1274 &self,
1275 #[auth]
1276 auth_: conjure_object::BearerToken,
1277 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1278 request: super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampV2Request,
1279 ) -> Result<
1280 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
1281 conjure_http::private::Error,
1282 >;
1283 #[endpoint(
1287 method = POST,
1288 path = "/video/v1/videos/{videoRid}/get-ranges-with-existing-segment-data",
1289 name = "getFileSummaries",
1290 produces = conjure_http::server::StdResponseSerializer
1291 )]
1292 async fn get_file_summaries(
1293 &self,
1294 #[auth]
1295 auth_: conjure_object::BearerToken,
1296 #[path(
1297 name = "videoRid",
1298 decoder = conjure_http::server::conjure::FromPlainDecoder,
1299 log_as = "videoRid"
1300 )]
1301 video_rid: conjure_object::ResourceIdentifier,
1302 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
1303 request: super::super::super::super::objects::scout::video::api::GetFileSummariesRequest,
1304 ) -> Result<
1305 super::super::super::super::objects::scout::video::api::GetFileSummariesResponse,
1306 conjure_http::private::Error,
1307 >;
1308 #[endpoint(
1311 method = POST,
1312 path = "/video/v1/videos/{videoRid}/streaming/whip",
1313 name = "generateWhipStream",
1314 produces = conjure_http::server::StdResponseSerializer
1315 )]
1316 async fn generate_whip_stream(
1317 &self,
1318 #[auth]
1319 auth_: conjure_object::BearerToken,
1320 #[path(
1321 name = "videoRid",
1322 decoder = conjure_http::server::conjure::FromPlainDecoder,
1323 log_as = "videoRid"
1324 )]
1325 video_rid: conjure_object::ResourceIdentifier,
1326 ) -> Result<
1327 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
1328 conjure_http::private::Error,
1329 >;
1330 #[endpoint(
1334 method = POST,
1335 path = "/video/v2/videos/streaming/whip",
1336 name = "generateWhipStreamV2",
1337 produces = conjure_http::server::StdResponseSerializer
1338 )]
1339 async fn generate_whip_stream_v2(
1340 &self,
1341 #[auth]
1342 auth_: conjure_object::BearerToken,
1343 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1344 request: super::super::super::super::objects::scout::video::api::GenerateWhipStreamV2Request,
1345 ) -> Result<
1346 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
1347 conjure_http::private::Error,
1348 >;
1349 #[endpoint(
1353 method = POST,
1354 path = "/video/v1/videos/{videoRid}/streaming/whep",
1355 name = "generateWhepStream",
1356 produces = conjure_http::server::conjure::CollectionResponseSerializer
1357 )]
1358 async fn generate_whep_stream(
1359 &self,
1360 #[auth]
1361 auth_: conjure_object::BearerToken,
1362 #[path(
1363 name = "videoRid",
1364 decoder = conjure_http::server::conjure::FromPlainDecoder,
1365 log_as = "videoRid"
1366 )]
1367 video_rid: conjure_object::ResourceIdentifier,
1368 ) -> Result<
1369 Option<
1370 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
1371 >,
1372 conjure_http::private::Error,
1373 >;
1374 #[endpoint(
1378 method = POST,
1379 path = "/video/v2/videos/streaming/whep",
1380 name = "generateWhepStreamV2",
1381 produces = conjure_http::server::conjure::CollectionResponseSerializer
1382 )]
1383 async fn generate_whep_stream_v2(
1384 &self,
1385 #[auth]
1386 auth_: conjure_object::BearerToken,
1387 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1388 request: super::super::super::super::objects::scout::video::api::GenerateWhepStreamV2Request,
1389 ) -> Result<
1390 Option<
1391 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
1392 >,
1393 conjure_http::private::Error,
1394 >;
1395 #[endpoint(
1398 method = GET,
1399 path = "/video/v1/videos/{videoRid}/streaming/streams/{streamId}",
1400 name = "getStream",
1401 produces = conjure_http::server::conjure::CollectionResponseSerializer
1402 )]
1403 async fn get_stream(
1404 &self,
1405 #[auth]
1406 auth_: conjure_object::BearerToken,
1407 #[path(
1408 name = "videoRid",
1409 decoder = conjure_http::server::conjure::FromPlainDecoder,
1410 log_as = "videoRid"
1411 )]
1412 video_rid: conjure_object::ResourceIdentifier,
1413 #[path(
1414 name = "streamId",
1415 decoder = conjure_http::server::conjure::FromPlainDecoder,
1416 log_as = "streamId"
1417 )]
1418 stream_id: String,
1419 ) -> Result<
1420 Option<super::super::super::super::objects::scout::video::api::VideoStream>,
1421 conjure_http::private::Error,
1422 >;
1423 #[endpoint(
1427 method = POST,
1428 path = "/video/v1/videos/{videoRid}/streaming/streams-in-bounds",
1429 name = "getStreamsInBounds",
1430 produces = conjure_http::server::StdResponseSerializer
1431 )]
1432 async fn get_streams_in_bounds(
1433 &self,
1434 #[auth]
1435 auth_: conjure_object::BearerToken,
1436 #[path(
1437 name = "videoRid",
1438 decoder = conjure_http::server::conjure::FromPlainDecoder,
1439 log_as = "videoRid"
1440 )]
1441 video_rid: conjure_object::ResourceIdentifier,
1442 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1443 request: super::super::super::super::objects::scout::video::api::GetStreamsInBoundsRequest,
1444 ) -> Result<
1445 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsResponse,
1446 conjure_http::private::Error,
1447 >;
1448 #[endpoint(
1452 method = POST,
1453 path = "/video/v2/videos/streaming/streams-in-bounds",
1454 name = "getStreamsInBoundsV2",
1455 produces = conjure_http::server::StdResponseSerializer
1456 )]
1457 async fn get_streams_in_bounds_v2(
1458 &self,
1459 #[auth]
1460 auth_: conjure_object::BearerToken,
1461 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1462 request: super::super::super::super::objects::scout::video::api::GetStreamsInBoundsForChannelRequest,
1463 ) -> Result<
1464 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsV2Response,
1465 conjure_http::private::Error,
1466 >;
1467 #[endpoint(
1473 method = POST,
1474 path = "/video/v2/videos/channel-dataset-files",
1475 name = "listVideoChannelDatasetFiles",
1476 produces = conjure_http::server::StdResponseSerializer
1477 )]
1478 async fn list_video_channel_dataset_files(
1479 &self,
1480 #[auth]
1481 auth_: conjure_object::BearerToken,
1482 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1483 request: super::super::super::super::objects::scout::video::api::ListVideoChannelDatasetFilesRequest,
1484 ) -> Result<
1485 super::super::super::super::objects::scout::video::api::ListVideoChannelDatasetFilesResponse,
1486 conjure_http::private::Error,
1487 >;
1488 #[endpoint(
1496 method = POST,
1497 path = "/video/v2/videos/channel-dataset-files/batch-update",
1498 name = "batchUpdateVideoChannelDatasetFiles",
1499 produces = conjure_http::server::StdResponseSerializer
1500 )]
1501 async fn batch_update_video_channel_dataset_files(
1502 &self,
1503 #[auth]
1504 auth_: conjure_object::BearerToken,
1505 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1506 request: super::super::super::super::objects::scout::video::api::BatchUpdateVideoChannelDatasetFilesRequest,
1507 ) -> Result<
1508 super::super::super::super::objects::scout::video::api::BatchUpdateVideoChannelDatasetFilesResponse,
1509 conjure_http::private::Error,
1510 >;
1511 #[endpoint(
1515 method = POST,
1516 path = "/video/v1/videos/{videoRid}/streaming/end",
1517 name = "endStream",
1518 produces = conjure_http::server::StdResponseSerializer
1519 )]
1520 async fn end_stream(
1521 &self,
1522 #[auth]
1523 auth_: conjure_object::BearerToken,
1524 #[path(
1525 name = "videoRid",
1526 decoder = conjure_http::server::conjure::FromPlainDecoder,
1527 log_as = "videoRid"
1528 )]
1529 video_rid: conjure_object::ResourceIdentifier,
1530 ) -> Result<
1531 super::super::super::super::objects::scout::video::api::EndStreamResponse,
1532 conjure_http::private::Error,
1533 >;
1534 #[endpoint(
1537 method = POST,
1538 path = "/video/v1/segment/upload",
1539 name = "uploadSegmentFromMediaMtx"
1540 )]
1541 async fn upload_segment_from_media_mtx(
1542 &self,
1543 #[auth]
1544 auth_: conjure_object::BearerToken,
1545 #[query(
1546 name = "streamPath",
1547 decoder = conjure_http::server::conjure::FromPlainDecoder,
1548 log_as = "streamPath"
1549 )]
1550 stream_path: String,
1551 #[query(
1552 name = "filePath",
1553 decoder = conjure_http::server::conjure::FromPlainDecoder,
1554 log_as = "filePath"
1555 )]
1556 file_path: String,
1557 #[query(
1558 name = "duration",
1559 decoder = conjure_http::server::conjure::FromPlainDecoder
1560 )]
1561 duration: String,
1562 #[query(
1563 name = "minTimestampSeconds",
1564 decoder = conjure_http::server::conjure::FromPlainDecoder,
1565 log_as = "minTimestampSeconds"
1566 )]
1567 min_timestamp_seconds: conjure_object::SafeLong,
1568 #[query(
1569 name = "minTimestampNanos",
1570 decoder = conjure_http::server::conjure::FromPlainDecoder,
1571 log_as = "minTimestampNanos"
1572 )]
1573 min_timestamp_nanos: conjure_object::SafeLong,
1574 #[header(
1575 name = "Content-Length",
1576 decoder = conjure_http::server::conjure::FromPlainDecoder,
1577 log_as = "contentLength"
1578 )]
1579 content_length: conjure_object::SafeLong,
1580 #[body(deserializer = conjure_http::server::conjure::BinaryRequestDeserializer)]
1581 body: I,
1582 ) -> Result<(), conjure_http::private::Error>;
1583}
1584#[conjure_http::conjure_endpoints(
1586 name = "VideoService",
1587 use_legacy_error_serialization,
1588 local
1589)]
1590pub trait LocalAsyncVideoService<#[request_body] I, #[response_writer] O> {
1591 type GetPlaylistBody: conjure_http::server::LocalAsyncWriteBody<O> + 'static;
1593 type GetPlaylistInBoundsBody: conjure_http::server::LocalAsyncWriteBody<O> + 'static;
1595 type GetPlaylistInBoundsV2Body: conjure_http::server::LocalAsyncWriteBody<O>
1597 + 'static;
1598 type GetPlaylistV2Body: conjure_http::server::LocalAsyncWriteBody<O> + 'static;
1600 #[endpoint(
1602 method = GET,
1603 path = "/video/v1/videos/{videoRid}",
1604 name = "get",
1605 produces = conjure_http::server::StdResponseSerializer
1606 )]
1607 async fn get(
1608 &self,
1609 #[auth]
1610 auth_: conjure_object::BearerToken,
1611 #[path(
1612 name = "videoRid",
1613 decoder = conjure_http::server::conjure::FromPlainDecoder,
1614 log_as = "videoRid"
1615 )]
1616 video_rid: conjure_object::ResourceIdentifier,
1617 ) -> Result<
1618 super::super::super::super::objects::scout::video::api::Video,
1619 conjure_http::private::Error,
1620 >;
1621 #[endpoint(
1623 method = POST,
1624 path = "/video/v1/videos/batchGet",
1625 name = "batchGet",
1626 produces = conjure_http::server::StdResponseSerializer
1627 )]
1628 async fn batch_get(
1629 &self,
1630 #[auth]
1631 auth_: conjure_object::BearerToken,
1632 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1633 request: super::super::super::super::objects::scout::video::api::GetVideosRequest,
1634 ) -> Result<
1635 super::super::super::super::objects::scout::video::api::GetVideosResponse,
1636 conjure_http::private::Error,
1637 >;
1638 #[endpoint(
1640 method = POST,
1641 path = "/video/v1/videos/search",
1642 name = "search",
1643 produces = conjure_http::server::StdResponseSerializer
1644 )]
1645 async fn search(
1646 &self,
1647 #[auth]
1648 auth_: conjure_object::BearerToken,
1649 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1650 request: super::super::super::super::objects::scout::video::api::SearchVideosRequest,
1651 ) -> Result<
1652 super::super::super::super::objects::scout::video::api::SearchVideosResponse,
1653 conjure_http::private::Error,
1654 >;
1655 #[endpoint(
1657 method = POST,
1658 path = "/video/v1/videos",
1659 name = "create",
1660 produces = conjure_http::server::StdResponseSerializer
1661 )]
1662 async fn create(
1663 &self,
1664 #[auth]
1665 auth_: conjure_object::BearerToken,
1666 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1667 request: super::super::super::super::objects::scout::video::api::CreateVideoRequest,
1668 ) -> Result<
1669 super::super::super::super::objects::scout::video::api::Video,
1670 conjure_http::private::Error,
1671 >;
1672 #[endpoint(
1674 method = PUT,
1675 path = "/video/v1/videos/{videoRid}",
1676 name = "updateMetadata",
1677 produces = conjure_http::server::StdResponseSerializer
1678 )]
1679 async fn update_metadata(
1680 &self,
1681 #[auth]
1682 auth_: conjure_object::BearerToken,
1683 #[path(
1684 name = "videoRid",
1685 decoder = conjure_http::server::conjure::FromPlainDecoder,
1686 log_as = "videoRid"
1687 )]
1688 video_rid: conjure_object::ResourceIdentifier,
1689 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1690 request: super::super::super::super::objects::scout::video::api::UpdateVideoMetadataRequest,
1691 ) -> Result<
1692 super::super::super::super::objects::scout::video::api::Video,
1693 conjure_http::private::Error,
1694 >;
1695 #[endpoint(
1696 method = PUT,
1697 path = "/video/v1/videos/{videoRid}/ingest-status",
1698 name = "updateIngestStatus"
1699 )]
1700 async fn update_ingest_status(
1701 &self,
1702 #[auth]
1703 auth_: conjure_object::BearerToken,
1704 #[path(
1705 name = "videoRid",
1706 decoder = conjure_http::server::conjure::FromPlainDecoder,
1707 log_as = "videoRid"
1708 )]
1709 video_rid: conjure_object::ResourceIdentifier,
1710 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1711 request: super::super::super::super::objects::scout::video::api::UpdateIngestStatus,
1712 ) -> Result<(), conjure_http::private::Error>;
1713 #[endpoint(
1714 method = GET,
1715 path = "/video/v1/videos/{videoRid}/ingest-status",
1716 name = "getIngestStatus",
1717 produces = conjure_http::server::StdResponseSerializer
1718 )]
1719 async fn get_ingest_status(
1720 &self,
1721 #[auth]
1722 auth_: conjure_object::BearerToken,
1723 #[path(
1724 name = "videoRid",
1725 decoder = conjure_http::server::conjure::FromPlainDecoder,
1726 log_as = "videoRid"
1727 )]
1728 video_rid: conjure_object::ResourceIdentifier,
1729 ) -> Result<
1730 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
1731 conjure_http::private::Error,
1732 >;
1733 #[endpoint(
1734 method = POST,
1735 path = "/video/v1/videos/batch-get-ingest-status",
1736 name = "batchGetIngestStatus",
1737 produces = conjure_http::server::conjure::CollectionResponseSerializer
1738 )]
1739 async fn batch_get_ingest_status(
1740 &self,
1741 #[auth]
1742 auth_: conjure_object::BearerToken,
1743 #[body(
1744 deserializer = conjure_http::server::StdRequestDeserializer,
1745 log_as = "videoRids"
1746 )]
1747 video_rids: std::collections::BTreeSet<conjure_object::ResourceIdentifier>,
1748 ) -> Result<
1749 std::collections::BTreeMap<
1750 conjure_object::ResourceIdentifier,
1751 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
1752 >,
1753 conjure_http::private::Error,
1754 >;
1755 #[endpoint(
1756 method = POST,
1757 path = "/video/v1/videos/enriched-ingest-status",
1758 name = "getEnrichedIngestStatus",
1759 produces = conjure_http::server::conjure::CollectionResponseSerializer
1760 )]
1761 async fn get_enriched_ingest_status(
1762 &self,
1763 #[auth]
1764 auth_: conjure_object::BearerToken,
1765 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1766 request: super::super::super::super::objects::scout::video::api::GetEnrichedVideoIngestStatusRequest,
1767 ) -> Result<
1768 Option<
1769 super::super::super::super::objects::scout::video::api::EnrichedVideoIngestStatus,
1770 >,
1771 conjure_http::private::Error,
1772 >;
1773 #[endpoint(
1776 method = PUT,
1777 path = "/video/v1/videos/{videoRid}/archive",
1778 name = "archive"
1779 )]
1780 async fn archive(
1781 &self,
1782 #[auth]
1783 auth_: conjure_object::BearerToken,
1784 #[path(
1785 name = "videoRid",
1786 decoder = conjure_http::server::conjure::FromPlainDecoder,
1787 log_as = "videoRid"
1788 )]
1789 video_rid: conjure_object::ResourceIdentifier,
1790 ) -> Result<(), conjure_http::private::Error>;
1791 #[endpoint(
1793 method = PUT,
1794 path = "/video/v1/videos/{videoRid}/unarchive",
1795 name = "unarchive"
1796 )]
1797 async fn unarchive(
1798 &self,
1799 #[auth]
1800 auth_: conjure_object::BearerToken,
1801 #[path(
1802 name = "videoRid",
1803 decoder = conjure_http::server::conjure::FromPlainDecoder,
1804 log_as = "videoRid"
1805 )]
1806 video_rid: conjure_object::ResourceIdentifier,
1807 ) -> Result<(), conjure_http::private::Error>;
1808 #[endpoint(
1816 method = GET,
1817 path = "/video/v1/videos/{videoRid}/playlist",
1818 name = "getPlaylist",
1819 produces = conjure_http::server::conjure::BinaryResponseSerializer
1820 )]
1821 async fn get_playlist(
1822 &self,
1823 #[auth]
1824 auth_: conjure_object::BearerToken,
1825 #[path(
1826 name = "videoRid",
1827 decoder = conjure_http::server::conjure::FromPlainDecoder,
1828 log_as = "videoRid"
1829 )]
1830 video_rid: conjure_object::ResourceIdentifier,
1831 #[query(
1832 name = "start",
1833 decoder = conjure_http::server::conjure::FromPlainOptionDecoder
1834 )]
1835 start: Option<String>,
1836 #[query(
1837 name = "end",
1838 decoder = conjure_http::server::conjure::FromPlainOptionDecoder
1839 )]
1840 end: Option<String>,
1841 ) -> Result<Self::GetPlaylistBody, conjure_http::private::Error>;
1842 #[endpoint(
1845 method = GET,
1846 path = "/video/v1/videos/{videoRid}/segment-summaries",
1847 name = "getSegmentSummaries",
1848 produces = conjure_http::server::conjure::CollectionResponseSerializer
1849 )]
1850 async fn get_segment_summaries(
1851 &self,
1852 #[auth]
1853 auth_: conjure_object::BearerToken,
1854 #[path(
1855 name = "videoRid",
1856 decoder = conjure_http::server::conjure::FromPlainDecoder,
1857 log_as = "videoRid"
1858 )]
1859 video_rid: conjure_object::ResourceIdentifier,
1860 ) -> Result<
1861 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
1862 conjure_http::private::Error,
1863 >;
1864 #[endpoint(
1869 method = POST,
1870 path = "/video/v1/videos/{videoRid}/playlist-in-bounds",
1871 name = "getPlaylistInBounds",
1872 produces = conjure_http::server::conjure::BinaryResponseSerializer
1873 )]
1874 async fn get_playlist_in_bounds(
1875 &self,
1876 #[auth]
1877 auth_: conjure_object::BearerToken,
1878 #[path(
1879 name = "videoRid",
1880 decoder = conjure_http::server::conjure::FromPlainDecoder,
1881 log_as = "videoRid"
1882 )]
1883 video_rid: conjure_object::ResourceIdentifier,
1884 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
1885 request: super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsRequest,
1886 ) -> Result<Self::GetPlaylistInBoundsBody, conjure_http::private::Error>;
1887 #[endpoint(
1889 method = POST,
1890 path = "/video/v2/videos/playlist-in-bounds",
1891 name = "getPlaylistInBoundsV2",
1892 produces = conjure_http::server::conjure::BinaryResponseSerializer
1893 )]
1894 async fn get_playlist_in_bounds_v2(
1895 &self,
1896 #[auth]
1897 auth_: conjure_object::BearerToken,
1898 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1899 request: super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsForChannelRequest,
1900 ) -> Result<Self::GetPlaylistInBoundsV2Body, conjure_http::private::Error>;
1901 #[endpoint(
1906 method = GET,
1907 path = "/video/v2/videos/playlist",
1908 name = "getPlaylistV2",
1909 produces = conjure_http::server::conjure::BinaryResponseSerializer
1910 )]
1911 async fn get_playlist_v2(
1912 &self,
1913 #[auth]
1914 auth_: conjure_object::BearerToken,
1915 #[query(
1916 name = "dataSourceRid",
1917 decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
1918 log_as = "dataSourceRid"
1919 )]
1920 data_source_rid: Option<conjure_object::ResourceIdentifier>,
1921 #[query(
1922 name = "assetRid",
1923 decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
1924 log_as = "assetRid",
1925 safe
1926 )]
1927 asset_rid: Option<
1928 super::super::super::super::objects::scout::rids::api::AssetRid,
1929 >,
1930 #[query(
1931 name = "dataScopeName",
1932 decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
1933 log_as = "dataScopeName"
1934 )]
1935 data_scope_name: Option<String>,
1936 #[query(
1937 name = "channel",
1938 decoder = conjure_http::server::conjure::FromPlainDecoder
1939 )]
1940 channel: String,
1941 #[query(
1942 name = "tags",
1943 decoder = conjure_http::server::conjure::FromPlainOptionDecoder
1944 )]
1945 tags: Option<String>,
1946 #[query(
1947 name = "start",
1948 decoder = conjure_http::server::conjure::FromPlainDecoder
1949 )]
1950 start: String,
1951 #[query(name = "end", decoder = conjure_http::server::conjure::FromPlainDecoder)]
1952 end: String,
1953 ) -> Result<Self::GetPlaylistV2Body, conjure_http::private::Error>;
1954 #[endpoint(
1957 method = POST,
1958 path = "/video/v1/videos/{videoRid}/segment-summaries-in-bounds",
1959 name = "getSegmentSummariesInBounds",
1960 produces = conjure_http::server::conjure::CollectionResponseSerializer
1961 )]
1962 async fn get_segment_summaries_in_bounds(
1963 &self,
1964 #[auth]
1965 auth_: conjure_object::BearerToken,
1966 #[path(
1967 name = "videoRid",
1968 decoder = conjure_http::server::conjure::FromPlainDecoder,
1969 log_as = "videoRid"
1970 )]
1971 video_rid: conjure_object::ResourceIdentifier,
1972 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
1973 request: super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsRequest,
1974 ) -> Result<
1975 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
1976 conjure_http::private::Error,
1977 >;
1978 #[endpoint(
1981 method = POST,
1982 path = "/video/v2/videos/segment-summaries-in-bounds",
1983 name = "getSegmentSummariesInBoundsV2",
1984 produces = conjure_http::server::conjure::CollectionResponseSerializer
1985 )]
1986 async fn get_segment_summaries_in_bounds_v2(
1987 &self,
1988 #[auth]
1989 auth_: conjure_object::BearerToken,
1990 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1991 request: super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsForChannelRequest,
1992 ) -> Result<
1993 Vec<super::super::super::super::objects::scout::video::api::SegmentSummaryV2>,
1994 conjure_http::private::Error,
1995 >;
1996 #[endpoint(
1999 method = POST,
2000 path = "/video/v2/videos/segment-metadata",
2001 name = "getSegmentMetadataV2",
2002 produces = conjure_http::server::conjure::CollectionResponseSerializer
2003 )]
2004 async fn get_segment_metadata_v2(
2005 &self,
2006 #[auth]
2007 auth_: conjure_object::BearerToken,
2008 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2009 request: super::super::super::super::objects::scout::video::api::GetSegmentMetadataForChannelRequest,
2010 ) -> Result<
2011 Option<
2012 super::super::super::super::objects::scout::video::api::VideoChannelSegmentsMetadata,
2013 >,
2014 conjure_http::private::Error,
2015 >;
2016 #[endpoint(
2018 method = POST,
2019 path = "/video/v2/videos/get-segment-by-timestamp",
2020 name = "getSegmentByTimestampV2",
2021 produces = conjure_http::server::conjure::CollectionResponseSerializer
2022 )]
2023 async fn get_segment_by_timestamp_v2(
2024 &self,
2025 #[auth]
2026 auth_: conjure_object::BearerToken,
2027 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2028 request: super::super::super::super::objects::scout::video::api::GetSegmentByTimestampV2Request,
2029 ) -> Result<
2030 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
2031 conjure_http::private::Error,
2032 >;
2033 #[endpoint(
2037 method = POST,
2038 path = "/video/v1/videos/{videoRid}/get-segment-at-or-after-timestamp",
2039 name = "getSegmentAtOrAfterTimestamp",
2040 produces = conjure_http::server::conjure::CollectionResponseSerializer
2041 )]
2042 async fn get_segment_at_or_after_timestamp(
2043 &self,
2044 #[auth]
2045 auth_: conjure_object::BearerToken,
2046 #[path(
2047 name = "videoRid",
2048 decoder = conjure_http::server::conjure::FromPlainDecoder,
2049 log_as = "videoRid"
2050 )]
2051 video_rid: conjure_object::ResourceIdentifier,
2052 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
2053 request: super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampRequest,
2054 ) -> Result<
2055 Option<super::super::super::super::objects::scout::video::api::Segment>,
2056 conjure_http::private::Error,
2057 >;
2058 #[endpoint(
2062 method = POST,
2063 path = "/video/v2/videos/get-segment-at-or-after-timestamp",
2064 name = "getSegmentAtOrAfterTimestampV2",
2065 produces = conjure_http::server::conjure::CollectionResponseSerializer
2066 )]
2067 async fn get_segment_at_or_after_timestamp_v2(
2068 &self,
2069 #[auth]
2070 auth_: conjure_object::BearerToken,
2071 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2072 request: super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampV2Request,
2073 ) -> Result<
2074 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
2075 conjure_http::private::Error,
2076 >;
2077 #[endpoint(
2081 method = POST,
2082 path = "/video/v1/videos/{videoRid}/get-ranges-with-existing-segment-data",
2083 name = "getFileSummaries",
2084 produces = conjure_http::server::StdResponseSerializer
2085 )]
2086 async fn get_file_summaries(
2087 &self,
2088 #[auth]
2089 auth_: conjure_object::BearerToken,
2090 #[path(
2091 name = "videoRid",
2092 decoder = conjure_http::server::conjure::FromPlainDecoder,
2093 log_as = "videoRid"
2094 )]
2095 video_rid: conjure_object::ResourceIdentifier,
2096 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
2097 request: super::super::super::super::objects::scout::video::api::GetFileSummariesRequest,
2098 ) -> Result<
2099 super::super::super::super::objects::scout::video::api::GetFileSummariesResponse,
2100 conjure_http::private::Error,
2101 >;
2102 #[endpoint(
2105 method = POST,
2106 path = "/video/v1/videos/{videoRid}/streaming/whip",
2107 name = "generateWhipStream",
2108 produces = conjure_http::server::StdResponseSerializer
2109 )]
2110 async fn generate_whip_stream(
2111 &self,
2112 #[auth]
2113 auth_: conjure_object::BearerToken,
2114 #[path(
2115 name = "videoRid",
2116 decoder = conjure_http::server::conjure::FromPlainDecoder,
2117 log_as = "videoRid"
2118 )]
2119 video_rid: conjure_object::ResourceIdentifier,
2120 ) -> Result<
2121 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
2122 conjure_http::private::Error,
2123 >;
2124 #[endpoint(
2128 method = POST,
2129 path = "/video/v2/videos/streaming/whip",
2130 name = "generateWhipStreamV2",
2131 produces = conjure_http::server::StdResponseSerializer
2132 )]
2133 async fn generate_whip_stream_v2(
2134 &self,
2135 #[auth]
2136 auth_: conjure_object::BearerToken,
2137 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2138 request: super::super::super::super::objects::scout::video::api::GenerateWhipStreamV2Request,
2139 ) -> Result<
2140 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
2141 conjure_http::private::Error,
2142 >;
2143 #[endpoint(
2147 method = POST,
2148 path = "/video/v1/videos/{videoRid}/streaming/whep",
2149 name = "generateWhepStream",
2150 produces = conjure_http::server::conjure::CollectionResponseSerializer
2151 )]
2152 async fn generate_whep_stream(
2153 &self,
2154 #[auth]
2155 auth_: conjure_object::BearerToken,
2156 #[path(
2157 name = "videoRid",
2158 decoder = conjure_http::server::conjure::FromPlainDecoder,
2159 log_as = "videoRid"
2160 )]
2161 video_rid: conjure_object::ResourceIdentifier,
2162 ) -> Result<
2163 Option<
2164 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
2165 >,
2166 conjure_http::private::Error,
2167 >;
2168 #[endpoint(
2172 method = POST,
2173 path = "/video/v2/videos/streaming/whep",
2174 name = "generateWhepStreamV2",
2175 produces = conjure_http::server::conjure::CollectionResponseSerializer
2176 )]
2177 async fn generate_whep_stream_v2(
2178 &self,
2179 #[auth]
2180 auth_: conjure_object::BearerToken,
2181 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2182 request: super::super::super::super::objects::scout::video::api::GenerateWhepStreamV2Request,
2183 ) -> Result<
2184 Option<
2185 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
2186 >,
2187 conjure_http::private::Error,
2188 >;
2189 #[endpoint(
2192 method = GET,
2193 path = "/video/v1/videos/{videoRid}/streaming/streams/{streamId}",
2194 name = "getStream",
2195 produces = conjure_http::server::conjure::CollectionResponseSerializer
2196 )]
2197 async fn get_stream(
2198 &self,
2199 #[auth]
2200 auth_: conjure_object::BearerToken,
2201 #[path(
2202 name = "videoRid",
2203 decoder = conjure_http::server::conjure::FromPlainDecoder,
2204 log_as = "videoRid"
2205 )]
2206 video_rid: conjure_object::ResourceIdentifier,
2207 #[path(
2208 name = "streamId",
2209 decoder = conjure_http::server::conjure::FromPlainDecoder,
2210 log_as = "streamId"
2211 )]
2212 stream_id: String,
2213 ) -> Result<
2214 Option<super::super::super::super::objects::scout::video::api::VideoStream>,
2215 conjure_http::private::Error,
2216 >;
2217 #[endpoint(
2221 method = POST,
2222 path = "/video/v1/videos/{videoRid}/streaming/streams-in-bounds",
2223 name = "getStreamsInBounds",
2224 produces = conjure_http::server::StdResponseSerializer
2225 )]
2226 async fn get_streams_in_bounds(
2227 &self,
2228 #[auth]
2229 auth_: conjure_object::BearerToken,
2230 #[path(
2231 name = "videoRid",
2232 decoder = conjure_http::server::conjure::FromPlainDecoder,
2233 log_as = "videoRid"
2234 )]
2235 video_rid: conjure_object::ResourceIdentifier,
2236 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2237 request: super::super::super::super::objects::scout::video::api::GetStreamsInBoundsRequest,
2238 ) -> Result<
2239 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsResponse,
2240 conjure_http::private::Error,
2241 >;
2242 #[endpoint(
2246 method = POST,
2247 path = "/video/v2/videos/streaming/streams-in-bounds",
2248 name = "getStreamsInBoundsV2",
2249 produces = conjure_http::server::StdResponseSerializer
2250 )]
2251 async fn get_streams_in_bounds_v2(
2252 &self,
2253 #[auth]
2254 auth_: conjure_object::BearerToken,
2255 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2256 request: super::super::super::super::objects::scout::video::api::GetStreamsInBoundsForChannelRequest,
2257 ) -> Result<
2258 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsV2Response,
2259 conjure_http::private::Error,
2260 >;
2261 #[endpoint(
2267 method = POST,
2268 path = "/video/v2/videos/channel-dataset-files",
2269 name = "listVideoChannelDatasetFiles",
2270 produces = conjure_http::server::StdResponseSerializer
2271 )]
2272 async fn list_video_channel_dataset_files(
2273 &self,
2274 #[auth]
2275 auth_: conjure_object::BearerToken,
2276 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2277 request: super::super::super::super::objects::scout::video::api::ListVideoChannelDatasetFilesRequest,
2278 ) -> Result<
2279 super::super::super::super::objects::scout::video::api::ListVideoChannelDatasetFilesResponse,
2280 conjure_http::private::Error,
2281 >;
2282 #[endpoint(
2290 method = POST,
2291 path = "/video/v2/videos/channel-dataset-files/batch-update",
2292 name = "batchUpdateVideoChannelDatasetFiles",
2293 produces = conjure_http::server::StdResponseSerializer
2294 )]
2295 async fn batch_update_video_channel_dataset_files(
2296 &self,
2297 #[auth]
2298 auth_: conjure_object::BearerToken,
2299 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2300 request: super::super::super::super::objects::scout::video::api::BatchUpdateVideoChannelDatasetFilesRequest,
2301 ) -> Result<
2302 super::super::super::super::objects::scout::video::api::BatchUpdateVideoChannelDatasetFilesResponse,
2303 conjure_http::private::Error,
2304 >;
2305 #[endpoint(
2309 method = POST,
2310 path = "/video/v1/videos/{videoRid}/streaming/end",
2311 name = "endStream",
2312 produces = conjure_http::server::StdResponseSerializer
2313 )]
2314 async fn end_stream(
2315 &self,
2316 #[auth]
2317 auth_: conjure_object::BearerToken,
2318 #[path(
2319 name = "videoRid",
2320 decoder = conjure_http::server::conjure::FromPlainDecoder,
2321 log_as = "videoRid"
2322 )]
2323 video_rid: conjure_object::ResourceIdentifier,
2324 ) -> Result<
2325 super::super::super::super::objects::scout::video::api::EndStreamResponse,
2326 conjure_http::private::Error,
2327 >;
2328 #[endpoint(
2331 method = POST,
2332 path = "/video/v1/segment/upload",
2333 name = "uploadSegmentFromMediaMtx"
2334 )]
2335 async fn upload_segment_from_media_mtx(
2336 &self,
2337 #[auth]
2338 auth_: conjure_object::BearerToken,
2339 #[query(
2340 name = "streamPath",
2341 decoder = conjure_http::server::conjure::FromPlainDecoder,
2342 log_as = "streamPath"
2343 )]
2344 stream_path: String,
2345 #[query(
2346 name = "filePath",
2347 decoder = conjure_http::server::conjure::FromPlainDecoder,
2348 log_as = "filePath"
2349 )]
2350 file_path: String,
2351 #[query(
2352 name = "duration",
2353 decoder = conjure_http::server::conjure::FromPlainDecoder
2354 )]
2355 duration: String,
2356 #[query(
2357 name = "minTimestampSeconds",
2358 decoder = conjure_http::server::conjure::FromPlainDecoder,
2359 log_as = "minTimestampSeconds"
2360 )]
2361 min_timestamp_seconds: conjure_object::SafeLong,
2362 #[query(
2363 name = "minTimestampNanos",
2364 decoder = conjure_http::server::conjure::FromPlainDecoder,
2365 log_as = "minTimestampNanos"
2366 )]
2367 min_timestamp_nanos: conjure_object::SafeLong,
2368 #[header(
2369 name = "Content-Length",
2370 decoder = conjure_http::server::conjure::FromPlainDecoder,
2371 log_as = "contentLength"
2372 )]
2373 content_length: conjure_object::SafeLong,
2374 #[body(deserializer = conjure_http::server::conjure::BinaryRequestDeserializer)]
2375 body: I,
2376 ) -> Result<(), conjure_http::private::Error>;
2377}