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(
725 method = POST,
726 path = "/video/v2/videos/channel-dataset-files/batch-update",
727 name = "batchUpdateVideoChannelDatasetFiles",
728 produces = conjure_http::server::StdResponseSerializer
729 )]
730 fn batch_update_video_channel_dataset_files(
731 &self,
732 #[auth]
733 auth_: conjure_object::BearerToken,
734 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
735 request: super::super::super::super::objects::scout::video::api::BatchUpdateVideoChannelDatasetFilesRequest,
736 ) -> Result<
737 super::super::super::super::objects::scout::video::api::BatchUpdateVideoChannelDatasetFilesResponse,
738 conjure_http::private::Error,
739 >;
740 #[endpoint(
744 method = POST,
745 path = "/video/v1/videos/{videoRid}/streaming/end",
746 name = "endStream",
747 produces = conjure_http::server::StdResponseSerializer
748 )]
749 fn end_stream(
750 &self,
751 #[auth]
752 auth_: conjure_object::BearerToken,
753 #[path(
754 name = "videoRid",
755 decoder = conjure_http::server::conjure::FromPlainDecoder,
756 log_as = "videoRid",
757 safe
758 )]
759 video_rid: super::super::super::super::objects::api::rids::VideoRid,
760 ) -> Result<
761 super::super::super::super::objects::scout::video::api::EndStreamResponse,
762 conjure_http::private::Error,
763 >;
764 #[endpoint(
767 method = POST,
768 path = "/video/v1/segment/upload",
769 name = "uploadSegmentFromMediaMtx"
770 )]
771 fn upload_segment_from_media_mtx(
772 &self,
773 #[auth]
774 auth_: conjure_object::BearerToken,
775 #[query(
776 name = "streamPath",
777 decoder = conjure_http::server::conjure::FromPlainDecoder,
778 log_as = "streamPath"
779 )]
780 stream_path: String,
781 #[query(
782 name = "filePath",
783 decoder = conjure_http::server::conjure::FromPlainDecoder,
784 log_as = "filePath"
785 )]
786 file_path: String,
787 #[query(
788 name = "duration",
789 decoder = conjure_http::server::conjure::FromPlainDecoder
790 )]
791 duration: String,
792 #[query(
793 name = "minTimestampSeconds",
794 decoder = conjure_http::server::conjure::FromPlainDecoder,
795 log_as = "minTimestampSeconds"
796 )]
797 min_timestamp_seconds: conjure_object::SafeLong,
798 #[query(
799 name = "minTimestampNanos",
800 decoder = conjure_http::server::conjure::FromPlainDecoder,
801 log_as = "minTimestampNanos"
802 )]
803 min_timestamp_nanos: conjure_object::SafeLong,
804 #[header(
805 name = "Content-Length",
806 decoder = conjure_http::server::conjure::FromPlainDecoder,
807 log_as = "contentLength"
808 )]
809 content_length: conjure_object::SafeLong,
810 #[body(deserializer = conjure_http::server::conjure::BinaryRequestDeserializer)]
811 body: I,
812 ) -> Result<(), conjure_http::private::Error>;
813}
814#[conjure_http::conjure_endpoints(name = "VideoService", use_legacy_error_serialization)]
816pub trait AsyncVideoService<#[request_body] I, #[response_writer] O> {
817 type GetPlaylistBody: conjure_http::server::AsyncWriteBody<O> + 'static + Send;
819 type GetPlaylistInBoundsBody: conjure_http::server::AsyncWriteBody<O>
821 + 'static
822 + Send;
823 type GetPlaylistInBoundsV2Body: conjure_http::server::AsyncWriteBody<O>
825 + 'static
826 + Send;
827 type GetPlaylistV2Body: conjure_http::server::AsyncWriteBody<O> + 'static + Send;
829 #[endpoint(
831 method = GET,
832 path = "/video/v1/videos/{videoRid}",
833 name = "get",
834 produces = conjure_http::server::StdResponseSerializer
835 )]
836 async fn get(
837 &self,
838 #[auth]
839 auth_: conjure_object::BearerToken,
840 #[path(
841 name = "videoRid",
842 decoder = conjure_http::server::conjure::FromPlainDecoder,
843 log_as = "videoRid",
844 safe
845 )]
846 video_rid: super::super::super::super::objects::api::rids::VideoRid,
847 ) -> Result<
848 super::super::super::super::objects::scout::video::api::Video,
849 conjure_http::private::Error,
850 >;
851 #[endpoint(
853 method = POST,
854 path = "/video/v1/videos/batchGet",
855 name = "batchGet",
856 produces = conjure_http::server::StdResponseSerializer
857 )]
858 async fn batch_get(
859 &self,
860 #[auth]
861 auth_: conjure_object::BearerToken,
862 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
863 request: super::super::super::super::objects::scout::video::api::GetVideosRequest,
864 ) -> Result<
865 super::super::super::super::objects::scout::video::api::GetVideosResponse,
866 conjure_http::private::Error,
867 >;
868 #[endpoint(
870 method = POST,
871 path = "/video/v1/videos/search",
872 name = "search",
873 produces = conjure_http::server::StdResponseSerializer
874 )]
875 async fn search(
876 &self,
877 #[auth]
878 auth_: conjure_object::BearerToken,
879 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
880 request: super::super::super::super::objects::scout::video::api::SearchVideosRequest,
881 ) -> Result<
882 super::super::super::super::objects::scout::video::api::SearchVideosResponse,
883 conjure_http::private::Error,
884 >;
885 #[endpoint(
887 method = POST,
888 path = "/video/v1/videos",
889 name = "create",
890 produces = conjure_http::server::StdResponseSerializer
891 )]
892 async fn create(
893 &self,
894 #[auth]
895 auth_: conjure_object::BearerToken,
896 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
897 request: super::super::super::super::objects::scout::video::api::CreateVideoRequest,
898 ) -> Result<
899 super::super::super::super::objects::scout::video::api::Video,
900 conjure_http::private::Error,
901 >;
902 #[endpoint(
904 method = PUT,
905 path = "/video/v1/videos/{videoRid}",
906 name = "updateMetadata",
907 produces = conjure_http::server::StdResponseSerializer
908 )]
909 async fn update_metadata(
910 &self,
911 #[auth]
912 auth_: conjure_object::BearerToken,
913 #[path(
914 name = "videoRid",
915 decoder = conjure_http::server::conjure::FromPlainDecoder,
916 log_as = "videoRid",
917 safe
918 )]
919 video_rid: super::super::super::super::objects::api::rids::VideoRid,
920 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
921 request: super::super::super::super::objects::scout::video::api::UpdateVideoMetadataRequest,
922 ) -> Result<
923 super::super::super::super::objects::scout::video::api::Video,
924 conjure_http::private::Error,
925 >;
926 #[endpoint(
927 method = PUT,
928 path = "/video/v1/videos/{videoRid}/ingest-status",
929 name = "updateIngestStatus"
930 )]
931 async fn update_ingest_status(
932 &self,
933 #[auth]
934 auth_: conjure_object::BearerToken,
935 #[path(
936 name = "videoRid",
937 decoder = conjure_http::server::conjure::FromPlainDecoder,
938 log_as = "videoRid",
939 safe
940 )]
941 video_rid: super::super::super::super::objects::api::rids::VideoRid,
942 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
943 request: super::super::super::super::objects::scout::video::api::UpdateIngestStatus,
944 ) -> Result<(), conjure_http::private::Error>;
945 #[endpoint(
946 method = GET,
947 path = "/video/v1/videos/{videoRid}/ingest-status",
948 name = "getIngestStatus",
949 produces = conjure_http::server::StdResponseSerializer
950 )]
951 async fn get_ingest_status(
952 &self,
953 #[auth]
954 auth_: conjure_object::BearerToken,
955 #[path(
956 name = "videoRid",
957 decoder = conjure_http::server::conjure::FromPlainDecoder,
958 log_as = "videoRid",
959 safe
960 )]
961 video_rid: super::super::super::super::objects::api::rids::VideoRid,
962 ) -> Result<
963 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
964 conjure_http::private::Error,
965 >;
966 #[endpoint(
967 method = POST,
968 path = "/video/v1/videos/batch-get-ingest-status",
969 name = "batchGetIngestStatus",
970 produces = conjure_http::server::conjure::CollectionResponseSerializer
971 )]
972 async fn batch_get_ingest_status(
973 &self,
974 #[auth]
975 auth_: conjure_object::BearerToken,
976 #[body(
977 deserializer = conjure_http::server::StdRequestDeserializer,
978 log_as = "videoRids",
979 safe
980 )]
981 video_rids: std::collections::BTreeSet<
982 super::super::super::super::objects::api::rids::VideoRid,
983 >,
984 ) -> Result<
985 std::collections::BTreeMap<
986 super::super::super::super::objects::api::rids::VideoRid,
987 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
988 >,
989 conjure_http::private::Error,
990 >;
991 #[endpoint(
992 method = POST,
993 path = "/video/v1/videos/enriched-ingest-status",
994 name = "getEnrichedIngestStatus",
995 produces = conjure_http::server::conjure::CollectionResponseSerializer
996 )]
997 async fn get_enriched_ingest_status(
998 &self,
999 #[auth]
1000 auth_: conjure_object::BearerToken,
1001 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1002 request: super::super::super::super::objects::scout::video::api::GetEnrichedVideoIngestStatusRequest,
1003 ) -> Result<
1004 Option<
1005 super::super::super::super::objects::scout::video::api::EnrichedVideoIngestStatus,
1006 >,
1007 conjure_http::private::Error,
1008 >;
1009 #[endpoint(
1012 method = PUT,
1013 path = "/video/v1/videos/{videoRid}/archive",
1014 name = "archive"
1015 )]
1016 async fn archive(
1017 &self,
1018 #[auth]
1019 auth_: conjure_object::BearerToken,
1020 #[path(
1021 name = "videoRid",
1022 decoder = conjure_http::server::conjure::FromPlainDecoder,
1023 log_as = "videoRid",
1024 safe
1025 )]
1026 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1027 ) -> Result<(), conjure_http::private::Error>;
1028 #[endpoint(
1030 method = PUT,
1031 path = "/video/v1/videos/{videoRid}/unarchive",
1032 name = "unarchive"
1033 )]
1034 async fn unarchive(
1035 &self,
1036 #[auth]
1037 auth_: conjure_object::BearerToken,
1038 #[path(
1039 name = "videoRid",
1040 decoder = conjure_http::server::conjure::FromPlainDecoder,
1041 log_as = "videoRid",
1042 safe
1043 )]
1044 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1045 ) -> Result<(), conjure_http::private::Error>;
1046 #[endpoint(
1054 method = GET,
1055 path = "/video/v1/videos/{videoRid}/playlist",
1056 name = "getPlaylist",
1057 produces = conjure_http::server::conjure::BinaryResponseSerializer
1058 )]
1059 async fn get_playlist(
1060 &self,
1061 #[auth]
1062 auth_: conjure_object::BearerToken,
1063 #[path(
1064 name = "videoRid",
1065 decoder = conjure_http::server::conjure::FromPlainDecoder,
1066 log_as = "videoRid",
1067 safe
1068 )]
1069 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1070 #[query(
1071 name = "start",
1072 decoder = conjure_http::server::conjure::FromPlainOptionDecoder
1073 )]
1074 start: Option<String>,
1075 #[query(
1076 name = "end",
1077 decoder = conjure_http::server::conjure::FromPlainOptionDecoder
1078 )]
1079 end: Option<String>,
1080 ) -> Result<Self::GetPlaylistBody, conjure_http::private::Error>;
1081 #[endpoint(
1084 method = GET,
1085 path = "/video/v1/videos/{videoRid}/segment-summaries",
1086 name = "getSegmentSummaries",
1087 produces = conjure_http::server::conjure::CollectionResponseSerializer
1088 )]
1089 async fn get_segment_summaries(
1090 &self,
1091 #[auth]
1092 auth_: conjure_object::BearerToken,
1093 #[path(
1094 name = "videoRid",
1095 decoder = conjure_http::server::conjure::FromPlainDecoder,
1096 log_as = "videoRid",
1097 safe
1098 )]
1099 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1100 ) -> Result<
1101 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
1102 conjure_http::private::Error,
1103 >;
1104 #[endpoint(
1109 method = POST,
1110 path = "/video/v1/videos/{videoRid}/playlist-in-bounds",
1111 name = "getPlaylistInBounds",
1112 produces = conjure_http::server::conjure::BinaryResponseSerializer
1113 )]
1114 async fn get_playlist_in_bounds(
1115 &self,
1116 #[auth]
1117 auth_: conjure_object::BearerToken,
1118 #[path(
1119 name = "videoRid",
1120 decoder = conjure_http::server::conjure::FromPlainDecoder,
1121 log_as = "videoRid",
1122 safe
1123 )]
1124 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1125 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
1126 request: super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsRequest,
1127 ) -> Result<Self::GetPlaylistInBoundsBody, conjure_http::private::Error>;
1128 #[endpoint(
1130 method = POST,
1131 path = "/video/v2/videos/playlist-in-bounds",
1132 name = "getPlaylistInBoundsV2",
1133 produces = conjure_http::server::conjure::BinaryResponseSerializer
1134 )]
1135 async fn get_playlist_in_bounds_v2(
1136 &self,
1137 #[auth]
1138 auth_: conjure_object::BearerToken,
1139 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1140 request: super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsForChannelRequest,
1141 ) -> Result<Self::GetPlaylistInBoundsV2Body, conjure_http::private::Error>;
1142 #[endpoint(
1147 method = GET,
1148 path = "/video/v2/videos/playlist",
1149 name = "getPlaylistV2",
1150 produces = conjure_http::server::conjure::BinaryResponseSerializer
1151 )]
1152 async fn get_playlist_v2(
1153 &self,
1154 #[auth]
1155 auth_: conjure_object::BearerToken,
1156 #[query(
1157 name = "dataSourceRid",
1158 decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
1159 log_as = "dataSourceRid",
1160 safe
1161 )]
1162 data_source_rid: Option<
1163 super::super::super::super::objects::api::rids::DataSourceRid,
1164 >,
1165 #[query(
1166 name = "assetRid",
1167 decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
1168 log_as = "assetRid",
1169 safe
1170 )]
1171 asset_rid: Option<
1172 super::super::super::super::objects::scout::rids::api::AssetRid,
1173 >,
1174 #[query(
1175 name = "dataScopeName",
1176 decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
1177 log_as = "dataScopeName"
1178 )]
1179 data_scope_name: Option<String>,
1180 #[query(
1181 name = "channel",
1182 decoder = conjure_http::server::conjure::FromPlainDecoder
1183 )]
1184 channel: String,
1185 #[query(
1186 name = "tags",
1187 decoder = conjure_http::server::conjure::FromPlainOptionDecoder
1188 )]
1189 tags: Option<String>,
1190 #[query(
1191 name = "start",
1192 decoder = conjure_http::server::conjure::FromPlainDecoder
1193 )]
1194 start: String,
1195 #[query(name = "end", decoder = conjure_http::server::conjure::FromPlainDecoder)]
1196 end: String,
1197 ) -> Result<Self::GetPlaylistV2Body, conjure_http::private::Error>;
1198 #[endpoint(
1201 method = POST,
1202 path = "/video/v1/videos/{videoRid}/segment-summaries-in-bounds",
1203 name = "getSegmentSummariesInBounds",
1204 produces = conjure_http::server::conjure::CollectionResponseSerializer
1205 )]
1206 async fn get_segment_summaries_in_bounds(
1207 &self,
1208 #[auth]
1209 auth_: conjure_object::BearerToken,
1210 #[path(
1211 name = "videoRid",
1212 decoder = conjure_http::server::conjure::FromPlainDecoder,
1213 log_as = "videoRid",
1214 safe
1215 )]
1216 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1217 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
1218 request: super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsRequest,
1219 ) -> Result<
1220 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
1221 conjure_http::private::Error,
1222 >;
1223 #[endpoint(
1226 method = POST,
1227 path = "/video/v2/videos/segment-summaries-in-bounds",
1228 name = "getSegmentSummariesInBoundsV2",
1229 produces = conjure_http::server::conjure::CollectionResponseSerializer
1230 )]
1231 async fn get_segment_summaries_in_bounds_v2(
1232 &self,
1233 #[auth]
1234 auth_: conjure_object::BearerToken,
1235 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1236 request: super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsForChannelRequest,
1237 ) -> Result<
1238 Vec<super::super::super::super::objects::scout::video::api::SegmentSummaryV2>,
1239 conjure_http::private::Error,
1240 >;
1241 #[endpoint(
1244 method = POST,
1245 path = "/video/v2/videos/segment-metadata",
1246 name = "getSegmentMetadataV2",
1247 produces = conjure_http::server::conjure::CollectionResponseSerializer
1248 )]
1249 async fn get_segment_metadata_v2(
1250 &self,
1251 #[auth]
1252 auth_: conjure_object::BearerToken,
1253 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1254 request: super::super::super::super::objects::scout::video::api::GetSegmentMetadataForChannelRequest,
1255 ) -> Result<
1256 Option<
1257 super::super::super::super::objects::scout::video::api::VideoChannelSegmentsMetadata,
1258 >,
1259 conjure_http::private::Error,
1260 >;
1261 #[endpoint(
1263 method = POST,
1264 path = "/video/v2/videos/get-segment-by-timestamp",
1265 name = "getSegmentByTimestampV2",
1266 produces = conjure_http::server::conjure::CollectionResponseSerializer
1267 )]
1268 async fn get_segment_by_timestamp_v2(
1269 &self,
1270 #[auth]
1271 auth_: conjure_object::BearerToken,
1272 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1273 request: super::super::super::super::objects::scout::video::api::GetSegmentByTimestampV2Request,
1274 ) -> Result<
1275 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
1276 conjure_http::private::Error,
1277 >;
1278 #[endpoint(
1282 method = POST,
1283 path = "/video/v1/videos/{videoRid}/get-segment-at-or-after-timestamp",
1284 name = "getSegmentAtOrAfterTimestamp",
1285 produces = conjure_http::server::conjure::CollectionResponseSerializer
1286 )]
1287 async fn get_segment_at_or_after_timestamp(
1288 &self,
1289 #[auth]
1290 auth_: conjure_object::BearerToken,
1291 #[path(
1292 name = "videoRid",
1293 decoder = conjure_http::server::conjure::FromPlainDecoder,
1294 log_as = "videoRid",
1295 safe
1296 )]
1297 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1298 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
1299 request: super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampRequest,
1300 ) -> Result<
1301 Option<super::super::super::super::objects::scout::video::api::Segment>,
1302 conjure_http::private::Error,
1303 >;
1304 #[endpoint(
1308 method = POST,
1309 path = "/video/v2/videos/get-segment-at-or-after-timestamp",
1310 name = "getSegmentAtOrAfterTimestampV2",
1311 produces = conjure_http::server::conjure::CollectionResponseSerializer
1312 )]
1313 async fn get_segment_at_or_after_timestamp_v2(
1314 &self,
1315 #[auth]
1316 auth_: conjure_object::BearerToken,
1317 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1318 request: super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampV2Request,
1319 ) -> Result<
1320 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
1321 conjure_http::private::Error,
1322 >;
1323 #[endpoint(
1327 method = POST,
1328 path = "/video/v1/videos/{videoRid}/get-ranges-with-existing-segment-data",
1329 name = "getFileSummaries",
1330 produces = conjure_http::server::StdResponseSerializer
1331 )]
1332 async fn get_file_summaries(
1333 &self,
1334 #[auth]
1335 auth_: conjure_object::BearerToken,
1336 #[path(
1337 name = "videoRid",
1338 decoder = conjure_http::server::conjure::FromPlainDecoder,
1339 log_as = "videoRid",
1340 safe
1341 )]
1342 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1343 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
1344 request: super::super::super::super::objects::scout::video::api::GetFileSummariesRequest,
1345 ) -> Result<
1346 super::super::super::super::objects::scout::video::api::GetFileSummariesResponse,
1347 conjure_http::private::Error,
1348 >;
1349 #[endpoint(
1352 method = POST,
1353 path = "/video/v1/videos/{videoRid}/streaming/whip",
1354 name = "generateWhipStream",
1355 produces = conjure_http::server::StdResponseSerializer
1356 )]
1357 async fn generate_whip_stream(
1358 &self,
1359 #[auth]
1360 auth_: conjure_object::BearerToken,
1361 #[path(
1362 name = "videoRid",
1363 decoder = conjure_http::server::conjure::FromPlainDecoder,
1364 log_as = "videoRid",
1365 safe
1366 )]
1367 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1368 ) -> Result<
1369 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
1370 conjure_http::private::Error,
1371 >;
1372 #[endpoint(
1376 method = POST,
1377 path = "/video/v2/videos/streaming/whip",
1378 name = "generateWhipStreamV2",
1379 produces = conjure_http::server::StdResponseSerializer
1380 )]
1381 async fn generate_whip_stream_v2(
1382 &self,
1383 #[auth]
1384 auth_: conjure_object::BearerToken,
1385 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1386 request: super::super::super::super::objects::scout::video::api::GenerateWhipStreamV2Request,
1387 ) -> Result<
1388 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
1389 conjure_http::private::Error,
1390 >;
1391 #[endpoint(
1395 method = POST,
1396 path = "/video/v1/videos/{videoRid}/streaming/whep",
1397 name = "generateWhepStream",
1398 produces = conjure_http::server::conjure::CollectionResponseSerializer
1399 )]
1400 async fn generate_whep_stream(
1401 &self,
1402 #[auth]
1403 auth_: conjure_object::BearerToken,
1404 #[path(
1405 name = "videoRid",
1406 decoder = conjure_http::server::conjure::FromPlainDecoder,
1407 log_as = "videoRid",
1408 safe
1409 )]
1410 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1411 ) -> Result<
1412 Option<
1413 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
1414 >,
1415 conjure_http::private::Error,
1416 >;
1417 #[endpoint(
1421 method = POST,
1422 path = "/video/v2/videos/streaming/whep",
1423 name = "generateWhepStreamV2",
1424 produces = conjure_http::server::conjure::CollectionResponseSerializer
1425 )]
1426 async fn generate_whep_stream_v2(
1427 &self,
1428 #[auth]
1429 auth_: conjure_object::BearerToken,
1430 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1431 request: super::super::super::super::objects::scout::video::api::GenerateWhepStreamV2Request,
1432 ) -> Result<
1433 Option<
1434 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
1435 >,
1436 conjure_http::private::Error,
1437 >;
1438 #[endpoint(
1441 method = GET,
1442 path = "/video/v1/videos/{videoRid}/streaming/streams/{streamId}",
1443 name = "getStream",
1444 produces = conjure_http::server::conjure::CollectionResponseSerializer
1445 )]
1446 async fn get_stream(
1447 &self,
1448 #[auth]
1449 auth_: conjure_object::BearerToken,
1450 #[path(
1451 name = "videoRid",
1452 decoder = conjure_http::server::conjure::FromPlainDecoder,
1453 log_as = "videoRid",
1454 safe
1455 )]
1456 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1457 #[path(
1458 name = "streamId",
1459 decoder = conjure_http::server::conjure::FromPlainDecoder,
1460 log_as = "streamId"
1461 )]
1462 stream_id: String,
1463 ) -> Result<
1464 Option<super::super::super::super::objects::scout::video::api::VideoStream>,
1465 conjure_http::private::Error,
1466 >;
1467 #[endpoint(
1471 method = POST,
1472 path = "/video/v1/videos/{videoRid}/streaming/streams-in-bounds",
1473 name = "getStreamsInBounds",
1474 produces = conjure_http::server::StdResponseSerializer
1475 )]
1476 async fn get_streams_in_bounds(
1477 &self,
1478 #[auth]
1479 auth_: conjure_object::BearerToken,
1480 #[path(
1481 name = "videoRid",
1482 decoder = conjure_http::server::conjure::FromPlainDecoder,
1483 log_as = "videoRid",
1484 safe
1485 )]
1486 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1487 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1488 request: super::super::super::super::objects::scout::video::api::GetStreamsInBoundsRequest,
1489 ) -> Result<
1490 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsResponse,
1491 conjure_http::private::Error,
1492 >;
1493 #[endpoint(
1497 method = POST,
1498 path = "/video/v2/videos/streaming/streams-in-bounds",
1499 name = "getStreamsInBoundsV2",
1500 produces = conjure_http::server::StdResponseSerializer
1501 )]
1502 async fn get_streams_in_bounds_v2(
1503 &self,
1504 #[auth]
1505 auth_: conjure_object::BearerToken,
1506 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1507 request: super::super::super::super::objects::scout::video::api::GetStreamsInBoundsForChannelRequest,
1508 ) -> Result<
1509 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsV2Response,
1510 conjure_http::private::Error,
1511 >;
1512 #[endpoint(
1518 method = POST,
1519 path = "/video/v2/videos/channel-dataset-files",
1520 name = "listVideoChannelDatasetFiles",
1521 produces = conjure_http::server::StdResponseSerializer
1522 )]
1523 async fn list_video_channel_dataset_files(
1524 &self,
1525 #[auth]
1526 auth_: conjure_object::BearerToken,
1527 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1528 request: super::super::super::super::objects::scout::video::api::ListVideoChannelDatasetFilesRequest,
1529 ) -> Result<
1530 super::super::super::super::objects::scout::video::api::ListVideoChannelDatasetFilesResponse,
1531 conjure_http::private::Error,
1532 >;
1533 #[endpoint(
1541 method = POST,
1542 path = "/video/v2/videos/channel-dataset-files/batch-update",
1543 name = "batchUpdateVideoChannelDatasetFiles",
1544 produces = conjure_http::server::StdResponseSerializer
1545 )]
1546 async fn batch_update_video_channel_dataset_files(
1547 &self,
1548 #[auth]
1549 auth_: conjure_object::BearerToken,
1550 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1551 request: super::super::super::super::objects::scout::video::api::BatchUpdateVideoChannelDatasetFilesRequest,
1552 ) -> Result<
1553 super::super::super::super::objects::scout::video::api::BatchUpdateVideoChannelDatasetFilesResponse,
1554 conjure_http::private::Error,
1555 >;
1556 #[endpoint(
1560 method = POST,
1561 path = "/video/v1/videos/{videoRid}/streaming/end",
1562 name = "endStream",
1563 produces = conjure_http::server::StdResponseSerializer
1564 )]
1565 async fn end_stream(
1566 &self,
1567 #[auth]
1568 auth_: conjure_object::BearerToken,
1569 #[path(
1570 name = "videoRid",
1571 decoder = conjure_http::server::conjure::FromPlainDecoder,
1572 log_as = "videoRid",
1573 safe
1574 )]
1575 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1576 ) -> Result<
1577 super::super::super::super::objects::scout::video::api::EndStreamResponse,
1578 conjure_http::private::Error,
1579 >;
1580 #[endpoint(
1583 method = POST,
1584 path = "/video/v1/segment/upload",
1585 name = "uploadSegmentFromMediaMtx"
1586 )]
1587 async fn upload_segment_from_media_mtx(
1588 &self,
1589 #[auth]
1590 auth_: conjure_object::BearerToken,
1591 #[query(
1592 name = "streamPath",
1593 decoder = conjure_http::server::conjure::FromPlainDecoder,
1594 log_as = "streamPath"
1595 )]
1596 stream_path: String,
1597 #[query(
1598 name = "filePath",
1599 decoder = conjure_http::server::conjure::FromPlainDecoder,
1600 log_as = "filePath"
1601 )]
1602 file_path: String,
1603 #[query(
1604 name = "duration",
1605 decoder = conjure_http::server::conjure::FromPlainDecoder
1606 )]
1607 duration: String,
1608 #[query(
1609 name = "minTimestampSeconds",
1610 decoder = conjure_http::server::conjure::FromPlainDecoder,
1611 log_as = "minTimestampSeconds"
1612 )]
1613 min_timestamp_seconds: conjure_object::SafeLong,
1614 #[query(
1615 name = "minTimestampNanos",
1616 decoder = conjure_http::server::conjure::FromPlainDecoder,
1617 log_as = "minTimestampNanos"
1618 )]
1619 min_timestamp_nanos: conjure_object::SafeLong,
1620 #[header(
1621 name = "Content-Length",
1622 decoder = conjure_http::server::conjure::FromPlainDecoder,
1623 log_as = "contentLength"
1624 )]
1625 content_length: conjure_object::SafeLong,
1626 #[body(deserializer = conjure_http::server::conjure::BinaryRequestDeserializer)]
1627 body: I,
1628 ) -> Result<(), conjure_http::private::Error>;
1629}
1630#[conjure_http::conjure_endpoints(
1632 name = "VideoService",
1633 use_legacy_error_serialization,
1634 local
1635)]
1636pub trait LocalAsyncVideoService<#[request_body] I, #[response_writer] O> {
1637 type GetPlaylistBody: conjure_http::server::LocalAsyncWriteBody<O> + 'static;
1639 type GetPlaylistInBoundsBody: conjure_http::server::LocalAsyncWriteBody<O> + 'static;
1641 type GetPlaylistInBoundsV2Body: conjure_http::server::LocalAsyncWriteBody<O>
1643 + 'static;
1644 type GetPlaylistV2Body: conjure_http::server::LocalAsyncWriteBody<O> + 'static;
1646 #[endpoint(
1648 method = GET,
1649 path = "/video/v1/videos/{videoRid}",
1650 name = "get",
1651 produces = conjure_http::server::StdResponseSerializer
1652 )]
1653 async fn get(
1654 &self,
1655 #[auth]
1656 auth_: conjure_object::BearerToken,
1657 #[path(
1658 name = "videoRid",
1659 decoder = conjure_http::server::conjure::FromPlainDecoder,
1660 log_as = "videoRid",
1661 safe
1662 )]
1663 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1664 ) -> Result<
1665 super::super::super::super::objects::scout::video::api::Video,
1666 conjure_http::private::Error,
1667 >;
1668 #[endpoint(
1670 method = POST,
1671 path = "/video/v1/videos/batchGet",
1672 name = "batchGet",
1673 produces = conjure_http::server::StdResponseSerializer
1674 )]
1675 async fn batch_get(
1676 &self,
1677 #[auth]
1678 auth_: conjure_object::BearerToken,
1679 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
1680 request: super::super::super::super::objects::scout::video::api::GetVideosRequest,
1681 ) -> Result<
1682 super::super::super::super::objects::scout::video::api::GetVideosResponse,
1683 conjure_http::private::Error,
1684 >;
1685 #[endpoint(
1687 method = POST,
1688 path = "/video/v1/videos/search",
1689 name = "search",
1690 produces = conjure_http::server::StdResponseSerializer
1691 )]
1692 async fn search(
1693 &self,
1694 #[auth]
1695 auth_: conjure_object::BearerToken,
1696 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1697 request: super::super::super::super::objects::scout::video::api::SearchVideosRequest,
1698 ) -> Result<
1699 super::super::super::super::objects::scout::video::api::SearchVideosResponse,
1700 conjure_http::private::Error,
1701 >;
1702 #[endpoint(
1704 method = POST,
1705 path = "/video/v1/videos",
1706 name = "create",
1707 produces = conjure_http::server::StdResponseSerializer
1708 )]
1709 async fn create(
1710 &self,
1711 #[auth]
1712 auth_: conjure_object::BearerToken,
1713 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1714 request: super::super::super::super::objects::scout::video::api::CreateVideoRequest,
1715 ) -> Result<
1716 super::super::super::super::objects::scout::video::api::Video,
1717 conjure_http::private::Error,
1718 >;
1719 #[endpoint(
1721 method = PUT,
1722 path = "/video/v1/videos/{videoRid}",
1723 name = "updateMetadata",
1724 produces = conjure_http::server::StdResponseSerializer
1725 )]
1726 async fn update_metadata(
1727 &self,
1728 #[auth]
1729 auth_: conjure_object::BearerToken,
1730 #[path(
1731 name = "videoRid",
1732 decoder = conjure_http::server::conjure::FromPlainDecoder,
1733 log_as = "videoRid",
1734 safe
1735 )]
1736 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1737 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1738 request: super::super::super::super::objects::scout::video::api::UpdateVideoMetadataRequest,
1739 ) -> Result<
1740 super::super::super::super::objects::scout::video::api::Video,
1741 conjure_http::private::Error,
1742 >;
1743 #[endpoint(
1744 method = PUT,
1745 path = "/video/v1/videos/{videoRid}/ingest-status",
1746 name = "updateIngestStatus"
1747 )]
1748 async fn update_ingest_status(
1749 &self,
1750 #[auth]
1751 auth_: conjure_object::BearerToken,
1752 #[path(
1753 name = "videoRid",
1754 decoder = conjure_http::server::conjure::FromPlainDecoder,
1755 log_as = "videoRid",
1756 safe
1757 )]
1758 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1759 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1760 request: super::super::super::super::objects::scout::video::api::UpdateIngestStatus,
1761 ) -> Result<(), conjure_http::private::Error>;
1762 #[endpoint(
1763 method = GET,
1764 path = "/video/v1/videos/{videoRid}/ingest-status",
1765 name = "getIngestStatus",
1766 produces = conjure_http::server::StdResponseSerializer
1767 )]
1768 async fn get_ingest_status(
1769 &self,
1770 #[auth]
1771 auth_: conjure_object::BearerToken,
1772 #[path(
1773 name = "videoRid",
1774 decoder = conjure_http::server::conjure::FromPlainDecoder,
1775 log_as = "videoRid",
1776 safe
1777 )]
1778 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1779 ) -> Result<
1780 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
1781 conjure_http::private::Error,
1782 >;
1783 #[endpoint(
1784 method = POST,
1785 path = "/video/v1/videos/batch-get-ingest-status",
1786 name = "batchGetIngestStatus",
1787 produces = conjure_http::server::conjure::CollectionResponseSerializer
1788 )]
1789 async fn batch_get_ingest_status(
1790 &self,
1791 #[auth]
1792 auth_: conjure_object::BearerToken,
1793 #[body(
1794 deserializer = conjure_http::server::StdRequestDeserializer,
1795 log_as = "videoRids",
1796 safe
1797 )]
1798 video_rids: std::collections::BTreeSet<
1799 super::super::super::super::objects::api::rids::VideoRid,
1800 >,
1801 ) -> Result<
1802 std::collections::BTreeMap<
1803 super::super::super::super::objects::api::rids::VideoRid,
1804 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
1805 >,
1806 conjure_http::private::Error,
1807 >;
1808 #[endpoint(
1809 method = POST,
1810 path = "/video/v1/videos/enriched-ingest-status",
1811 name = "getEnrichedIngestStatus",
1812 produces = conjure_http::server::conjure::CollectionResponseSerializer
1813 )]
1814 async fn get_enriched_ingest_status(
1815 &self,
1816 #[auth]
1817 auth_: conjure_object::BearerToken,
1818 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1819 request: super::super::super::super::objects::scout::video::api::GetEnrichedVideoIngestStatusRequest,
1820 ) -> Result<
1821 Option<
1822 super::super::super::super::objects::scout::video::api::EnrichedVideoIngestStatus,
1823 >,
1824 conjure_http::private::Error,
1825 >;
1826 #[endpoint(
1829 method = PUT,
1830 path = "/video/v1/videos/{videoRid}/archive",
1831 name = "archive"
1832 )]
1833 async fn archive(
1834 &self,
1835 #[auth]
1836 auth_: conjure_object::BearerToken,
1837 #[path(
1838 name = "videoRid",
1839 decoder = conjure_http::server::conjure::FromPlainDecoder,
1840 log_as = "videoRid",
1841 safe
1842 )]
1843 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1844 ) -> Result<(), conjure_http::private::Error>;
1845 #[endpoint(
1847 method = PUT,
1848 path = "/video/v1/videos/{videoRid}/unarchive",
1849 name = "unarchive"
1850 )]
1851 async fn unarchive(
1852 &self,
1853 #[auth]
1854 auth_: conjure_object::BearerToken,
1855 #[path(
1856 name = "videoRid",
1857 decoder = conjure_http::server::conjure::FromPlainDecoder,
1858 log_as = "videoRid",
1859 safe
1860 )]
1861 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1862 ) -> Result<(), conjure_http::private::Error>;
1863 #[endpoint(
1871 method = GET,
1872 path = "/video/v1/videos/{videoRid}/playlist",
1873 name = "getPlaylist",
1874 produces = conjure_http::server::conjure::BinaryResponseSerializer
1875 )]
1876 async fn get_playlist(
1877 &self,
1878 #[auth]
1879 auth_: conjure_object::BearerToken,
1880 #[path(
1881 name = "videoRid",
1882 decoder = conjure_http::server::conjure::FromPlainDecoder,
1883 log_as = "videoRid",
1884 safe
1885 )]
1886 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1887 #[query(
1888 name = "start",
1889 decoder = conjure_http::server::conjure::FromPlainOptionDecoder
1890 )]
1891 start: Option<String>,
1892 #[query(
1893 name = "end",
1894 decoder = conjure_http::server::conjure::FromPlainOptionDecoder
1895 )]
1896 end: Option<String>,
1897 ) -> Result<Self::GetPlaylistBody, conjure_http::private::Error>;
1898 #[endpoint(
1901 method = GET,
1902 path = "/video/v1/videos/{videoRid}/segment-summaries",
1903 name = "getSegmentSummaries",
1904 produces = conjure_http::server::conjure::CollectionResponseSerializer
1905 )]
1906 async fn get_segment_summaries(
1907 &self,
1908 #[auth]
1909 auth_: conjure_object::BearerToken,
1910 #[path(
1911 name = "videoRid",
1912 decoder = conjure_http::server::conjure::FromPlainDecoder,
1913 log_as = "videoRid",
1914 safe
1915 )]
1916 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1917 ) -> Result<
1918 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
1919 conjure_http::private::Error,
1920 >;
1921 #[endpoint(
1926 method = POST,
1927 path = "/video/v1/videos/{videoRid}/playlist-in-bounds",
1928 name = "getPlaylistInBounds",
1929 produces = conjure_http::server::conjure::BinaryResponseSerializer
1930 )]
1931 async fn get_playlist_in_bounds(
1932 &self,
1933 #[auth]
1934 auth_: conjure_object::BearerToken,
1935 #[path(
1936 name = "videoRid",
1937 decoder = conjure_http::server::conjure::FromPlainDecoder,
1938 log_as = "videoRid",
1939 safe
1940 )]
1941 video_rid: super::super::super::super::objects::api::rids::VideoRid,
1942 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
1943 request: super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsRequest,
1944 ) -> Result<Self::GetPlaylistInBoundsBody, conjure_http::private::Error>;
1945 #[endpoint(
1947 method = POST,
1948 path = "/video/v2/videos/playlist-in-bounds",
1949 name = "getPlaylistInBoundsV2",
1950 produces = conjure_http::server::conjure::BinaryResponseSerializer
1951 )]
1952 async fn get_playlist_in_bounds_v2(
1953 &self,
1954 #[auth]
1955 auth_: conjure_object::BearerToken,
1956 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
1957 request: super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsForChannelRequest,
1958 ) -> Result<Self::GetPlaylistInBoundsV2Body, conjure_http::private::Error>;
1959 #[endpoint(
1964 method = GET,
1965 path = "/video/v2/videos/playlist",
1966 name = "getPlaylistV2",
1967 produces = conjure_http::server::conjure::BinaryResponseSerializer
1968 )]
1969 async fn get_playlist_v2(
1970 &self,
1971 #[auth]
1972 auth_: conjure_object::BearerToken,
1973 #[query(
1974 name = "dataSourceRid",
1975 decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
1976 log_as = "dataSourceRid",
1977 safe
1978 )]
1979 data_source_rid: Option<
1980 super::super::super::super::objects::api::rids::DataSourceRid,
1981 >,
1982 #[query(
1983 name = "assetRid",
1984 decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
1985 log_as = "assetRid",
1986 safe
1987 )]
1988 asset_rid: Option<
1989 super::super::super::super::objects::scout::rids::api::AssetRid,
1990 >,
1991 #[query(
1992 name = "dataScopeName",
1993 decoder = conjure_http::server::conjure::FromPlainOptionDecoder,
1994 log_as = "dataScopeName"
1995 )]
1996 data_scope_name: Option<String>,
1997 #[query(
1998 name = "channel",
1999 decoder = conjure_http::server::conjure::FromPlainDecoder
2000 )]
2001 channel: String,
2002 #[query(
2003 name = "tags",
2004 decoder = conjure_http::server::conjure::FromPlainOptionDecoder
2005 )]
2006 tags: Option<String>,
2007 #[query(
2008 name = "start",
2009 decoder = conjure_http::server::conjure::FromPlainDecoder
2010 )]
2011 start: String,
2012 #[query(name = "end", decoder = conjure_http::server::conjure::FromPlainDecoder)]
2013 end: String,
2014 ) -> Result<Self::GetPlaylistV2Body, conjure_http::private::Error>;
2015 #[endpoint(
2018 method = POST,
2019 path = "/video/v1/videos/{videoRid}/segment-summaries-in-bounds",
2020 name = "getSegmentSummariesInBounds",
2021 produces = conjure_http::server::conjure::CollectionResponseSerializer
2022 )]
2023 async fn get_segment_summaries_in_bounds(
2024 &self,
2025 #[auth]
2026 auth_: conjure_object::BearerToken,
2027 #[path(
2028 name = "videoRid",
2029 decoder = conjure_http::server::conjure::FromPlainDecoder,
2030 log_as = "videoRid",
2031 safe
2032 )]
2033 video_rid: super::super::super::super::objects::api::rids::VideoRid,
2034 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
2035 request: super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsRequest,
2036 ) -> Result<
2037 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
2038 conjure_http::private::Error,
2039 >;
2040 #[endpoint(
2043 method = POST,
2044 path = "/video/v2/videos/segment-summaries-in-bounds",
2045 name = "getSegmentSummariesInBoundsV2",
2046 produces = conjure_http::server::conjure::CollectionResponseSerializer
2047 )]
2048 async fn get_segment_summaries_in_bounds_v2(
2049 &self,
2050 #[auth]
2051 auth_: conjure_object::BearerToken,
2052 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2053 request: super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsForChannelRequest,
2054 ) -> Result<
2055 Vec<super::super::super::super::objects::scout::video::api::SegmentSummaryV2>,
2056 conjure_http::private::Error,
2057 >;
2058 #[endpoint(
2061 method = POST,
2062 path = "/video/v2/videos/segment-metadata",
2063 name = "getSegmentMetadataV2",
2064 produces = conjure_http::server::conjure::CollectionResponseSerializer
2065 )]
2066 async fn get_segment_metadata_v2(
2067 &self,
2068 #[auth]
2069 auth_: conjure_object::BearerToken,
2070 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2071 request: super::super::super::super::objects::scout::video::api::GetSegmentMetadataForChannelRequest,
2072 ) -> Result<
2073 Option<
2074 super::super::super::super::objects::scout::video::api::VideoChannelSegmentsMetadata,
2075 >,
2076 conjure_http::private::Error,
2077 >;
2078 #[endpoint(
2080 method = POST,
2081 path = "/video/v2/videos/get-segment-by-timestamp",
2082 name = "getSegmentByTimestampV2",
2083 produces = conjure_http::server::conjure::CollectionResponseSerializer
2084 )]
2085 async fn get_segment_by_timestamp_v2(
2086 &self,
2087 #[auth]
2088 auth_: conjure_object::BearerToken,
2089 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2090 request: super::super::super::super::objects::scout::video::api::GetSegmentByTimestampV2Request,
2091 ) -> Result<
2092 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
2093 conjure_http::private::Error,
2094 >;
2095 #[endpoint(
2099 method = POST,
2100 path = "/video/v1/videos/{videoRid}/get-segment-at-or-after-timestamp",
2101 name = "getSegmentAtOrAfterTimestamp",
2102 produces = conjure_http::server::conjure::CollectionResponseSerializer
2103 )]
2104 async fn get_segment_at_or_after_timestamp(
2105 &self,
2106 #[auth]
2107 auth_: conjure_object::BearerToken,
2108 #[path(
2109 name = "videoRid",
2110 decoder = conjure_http::server::conjure::FromPlainDecoder,
2111 log_as = "videoRid",
2112 safe
2113 )]
2114 video_rid: super::super::super::super::objects::api::rids::VideoRid,
2115 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
2116 request: super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampRequest,
2117 ) -> Result<
2118 Option<super::super::super::super::objects::scout::video::api::Segment>,
2119 conjure_http::private::Error,
2120 >;
2121 #[endpoint(
2125 method = POST,
2126 path = "/video/v2/videos/get-segment-at-or-after-timestamp",
2127 name = "getSegmentAtOrAfterTimestampV2",
2128 produces = conjure_http::server::conjure::CollectionResponseSerializer
2129 )]
2130 async fn get_segment_at_or_after_timestamp_v2(
2131 &self,
2132 #[auth]
2133 auth_: conjure_object::BearerToken,
2134 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2135 request: super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampV2Request,
2136 ) -> Result<
2137 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
2138 conjure_http::private::Error,
2139 >;
2140 #[endpoint(
2144 method = POST,
2145 path = "/video/v1/videos/{videoRid}/get-ranges-with-existing-segment-data",
2146 name = "getFileSummaries",
2147 produces = conjure_http::server::StdResponseSerializer
2148 )]
2149 async fn get_file_summaries(
2150 &self,
2151 #[auth]
2152 auth_: conjure_object::BearerToken,
2153 #[path(
2154 name = "videoRid",
2155 decoder = conjure_http::server::conjure::FromPlainDecoder,
2156 log_as = "videoRid",
2157 safe
2158 )]
2159 video_rid: super::super::super::super::objects::api::rids::VideoRid,
2160 #[body(deserializer = conjure_http::server::StdRequestDeserializer, safe)]
2161 request: super::super::super::super::objects::scout::video::api::GetFileSummariesRequest,
2162 ) -> Result<
2163 super::super::super::super::objects::scout::video::api::GetFileSummariesResponse,
2164 conjure_http::private::Error,
2165 >;
2166 #[endpoint(
2169 method = POST,
2170 path = "/video/v1/videos/{videoRid}/streaming/whip",
2171 name = "generateWhipStream",
2172 produces = conjure_http::server::StdResponseSerializer
2173 )]
2174 async fn generate_whip_stream(
2175 &self,
2176 #[auth]
2177 auth_: conjure_object::BearerToken,
2178 #[path(
2179 name = "videoRid",
2180 decoder = conjure_http::server::conjure::FromPlainDecoder,
2181 log_as = "videoRid",
2182 safe
2183 )]
2184 video_rid: super::super::super::super::objects::api::rids::VideoRid,
2185 ) -> Result<
2186 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
2187 conjure_http::private::Error,
2188 >;
2189 #[endpoint(
2193 method = POST,
2194 path = "/video/v2/videos/streaming/whip",
2195 name = "generateWhipStreamV2",
2196 produces = conjure_http::server::StdResponseSerializer
2197 )]
2198 async fn generate_whip_stream_v2(
2199 &self,
2200 #[auth]
2201 auth_: conjure_object::BearerToken,
2202 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2203 request: super::super::super::super::objects::scout::video::api::GenerateWhipStreamV2Request,
2204 ) -> Result<
2205 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
2206 conjure_http::private::Error,
2207 >;
2208 #[endpoint(
2212 method = POST,
2213 path = "/video/v1/videos/{videoRid}/streaming/whep",
2214 name = "generateWhepStream",
2215 produces = conjure_http::server::conjure::CollectionResponseSerializer
2216 )]
2217 async fn generate_whep_stream(
2218 &self,
2219 #[auth]
2220 auth_: conjure_object::BearerToken,
2221 #[path(
2222 name = "videoRid",
2223 decoder = conjure_http::server::conjure::FromPlainDecoder,
2224 log_as = "videoRid",
2225 safe
2226 )]
2227 video_rid: super::super::super::super::objects::api::rids::VideoRid,
2228 ) -> Result<
2229 Option<
2230 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
2231 >,
2232 conjure_http::private::Error,
2233 >;
2234 #[endpoint(
2238 method = POST,
2239 path = "/video/v2/videos/streaming/whep",
2240 name = "generateWhepStreamV2",
2241 produces = conjure_http::server::conjure::CollectionResponseSerializer
2242 )]
2243 async fn generate_whep_stream_v2(
2244 &self,
2245 #[auth]
2246 auth_: conjure_object::BearerToken,
2247 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2248 request: super::super::super::super::objects::scout::video::api::GenerateWhepStreamV2Request,
2249 ) -> Result<
2250 Option<
2251 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
2252 >,
2253 conjure_http::private::Error,
2254 >;
2255 #[endpoint(
2258 method = GET,
2259 path = "/video/v1/videos/{videoRid}/streaming/streams/{streamId}",
2260 name = "getStream",
2261 produces = conjure_http::server::conjure::CollectionResponseSerializer
2262 )]
2263 async fn get_stream(
2264 &self,
2265 #[auth]
2266 auth_: conjure_object::BearerToken,
2267 #[path(
2268 name = "videoRid",
2269 decoder = conjure_http::server::conjure::FromPlainDecoder,
2270 log_as = "videoRid",
2271 safe
2272 )]
2273 video_rid: super::super::super::super::objects::api::rids::VideoRid,
2274 #[path(
2275 name = "streamId",
2276 decoder = conjure_http::server::conjure::FromPlainDecoder,
2277 log_as = "streamId"
2278 )]
2279 stream_id: String,
2280 ) -> Result<
2281 Option<super::super::super::super::objects::scout::video::api::VideoStream>,
2282 conjure_http::private::Error,
2283 >;
2284 #[endpoint(
2288 method = POST,
2289 path = "/video/v1/videos/{videoRid}/streaming/streams-in-bounds",
2290 name = "getStreamsInBounds",
2291 produces = conjure_http::server::StdResponseSerializer
2292 )]
2293 async fn get_streams_in_bounds(
2294 &self,
2295 #[auth]
2296 auth_: conjure_object::BearerToken,
2297 #[path(
2298 name = "videoRid",
2299 decoder = conjure_http::server::conjure::FromPlainDecoder,
2300 log_as = "videoRid",
2301 safe
2302 )]
2303 video_rid: super::super::super::super::objects::api::rids::VideoRid,
2304 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2305 request: super::super::super::super::objects::scout::video::api::GetStreamsInBoundsRequest,
2306 ) -> Result<
2307 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsResponse,
2308 conjure_http::private::Error,
2309 >;
2310 #[endpoint(
2314 method = POST,
2315 path = "/video/v2/videos/streaming/streams-in-bounds",
2316 name = "getStreamsInBoundsV2",
2317 produces = conjure_http::server::StdResponseSerializer
2318 )]
2319 async fn get_streams_in_bounds_v2(
2320 &self,
2321 #[auth]
2322 auth_: conjure_object::BearerToken,
2323 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2324 request: super::super::super::super::objects::scout::video::api::GetStreamsInBoundsForChannelRequest,
2325 ) -> Result<
2326 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsV2Response,
2327 conjure_http::private::Error,
2328 >;
2329 #[endpoint(
2335 method = POST,
2336 path = "/video/v2/videos/channel-dataset-files",
2337 name = "listVideoChannelDatasetFiles",
2338 produces = conjure_http::server::StdResponseSerializer
2339 )]
2340 async fn list_video_channel_dataset_files(
2341 &self,
2342 #[auth]
2343 auth_: conjure_object::BearerToken,
2344 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2345 request: super::super::super::super::objects::scout::video::api::ListVideoChannelDatasetFilesRequest,
2346 ) -> Result<
2347 super::super::super::super::objects::scout::video::api::ListVideoChannelDatasetFilesResponse,
2348 conjure_http::private::Error,
2349 >;
2350 #[endpoint(
2358 method = POST,
2359 path = "/video/v2/videos/channel-dataset-files/batch-update",
2360 name = "batchUpdateVideoChannelDatasetFiles",
2361 produces = conjure_http::server::StdResponseSerializer
2362 )]
2363 async fn batch_update_video_channel_dataset_files(
2364 &self,
2365 #[auth]
2366 auth_: conjure_object::BearerToken,
2367 #[body(deserializer = conjure_http::server::StdRequestDeserializer)]
2368 request: super::super::super::super::objects::scout::video::api::BatchUpdateVideoChannelDatasetFilesRequest,
2369 ) -> Result<
2370 super::super::super::super::objects::scout::video::api::BatchUpdateVideoChannelDatasetFilesResponse,
2371 conjure_http::private::Error,
2372 >;
2373 #[endpoint(
2377 method = POST,
2378 path = "/video/v1/videos/{videoRid}/streaming/end",
2379 name = "endStream",
2380 produces = conjure_http::server::StdResponseSerializer
2381 )]
2382 async fn end_stream(
2383 &self,
2384 #[auth]
2385 auth_: conjure_object::BearerToken,
2386 #[path(
2387 name = "videoRid",
2388 decoder = conjure_http::server::conjure::FromPlainDecoder,
2389 log_as = "videoRid",
2390 safe
2391 )]
2392 video_rid: super::super::super::super::objects::api::rids::VideoRid,
2393 ) -> Result<
2394 super::super::super::super::objects::scout::video::api::EndStreamResponse,
2395 conjure_http::private::Error,
2396 >;
2397 #[endpoint(
2400 method = POST,
2401 path = "/video/v1/segment/upload",
2402 name = "uploadSegmentFromMediaMtx"
2403 )]
2404 async fn upload_segment_from_media_mtx(
2405 &self,
2406 #[auth]
2407 auth_: conjure_object::BearerToken,
2408 #[query(
2409 name = "streamPath",
2410 decoder = conjure_http::server::conjure::FromPlainDecoder,
2411 log_as = "streamPath"
2412 )]
2413 stream_path: String,
2414 #[query(
2415 name = "filePath",
2416 decoder = conjure_http::server::conjure::FromPlainDecoder,
2417 log_as = "filePath"
2418 )]
2419 file_path: String,
2420 #[query(
2421 name = "duration",
2422 decoder = conjure_http::server::conjure::FromPlainDecoder
2423 )]
2424 duration: String,
2425 #[query(
2426 name = "minTimestampSeconds",
2427 decoder = conjure_http::server::conjure::FromPlainDecoder,
2428 log_as = "minTimestampSeconds"
2429 )]
2430 min_timestamp_seconds: conjure_object::SafeLong,
2431 #[query(
2432 name = "minTimestampNanos",
2433 decoder = conjure_http::server::conjure::FromPlainDecoder,
2434 log_as = "minTimestampNanos"
2435 )]
2436 min_timestamp_nanos: conjure_object::SafeLong,
2437 #[header(
2438 name = "Content-Length",
2439 decoder = conjure_http::server::conjure::FromPlainDecoder,
2440 log_as = "contentLength"
2441 )]
2442 content_length: conjure_object::SafeLong,
2443 #[body(deserializer = conjure_http::server::conjure::BinaryRequestDeserializer)]
2444 body: I,
2445 ) -> Result<(), conjure_http::private::Error>;
2446}