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