1use conjure_http::endpoint;
2#[conjure_http::conjure_client(name = "VideoService")]
4pub trait VideoService<
5 #[request_writer]
6 O,
7 #[response_body]
8 I: Iterator<
9 Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
10 >,
11> {
12 #[endpoint(
14 method = GET,
15 path = "/video/v1/videos/{videoRid}",
16 name = "get",
17 accept = conjure_http::client::StdResponseDeserializer
18 )]
19 fn get(
20 &self,
21 #[auth]
22 auth_: &conjure_object::BearerToken,
23 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
24 video_rid: &conjure_object::ResourceIdentifier,
25 ) -> Result<
26 super::super::super::super::objects::scout::video::api::Video,
27 conjure_http::private::Error,
28 >;
29 #[endpoint(
31 method = POST,
32 path = "/video/v1/videos/batchGet",
33 name = "batchGet",
34 accept = conjure_http::client::StdResponseDeserializer
35 )]
36 fn batch_get(
37 &self,
38 #[auth]
39 auth_: &conjure_object::BearerToken,
40 #[body(serializer = conjure_http::client::StdRequestSerializer)]
41 request: &super::super::super::super::objects::scout::video::api::GetVideosRequest,
42 ) -> Result<
43 super::super::super::super::objects::scout::video::api::GetVideosResponse,
44 conjure_http::private::Error,
45 >;
46 #[endpoint(
48 method = POST,
49 path = "/video/v1/videos/search",
50 name = "search",
51 accept = conjure_http::client::StdResponseDeserializer
52 )]
53 fn search(
54 &self,
55 #[auth]
56 auth_: &conjure_object::BearerToken,
57 #[body(serializer = conjure_http::client::StdRequestSerializer)]
58 request: &super::super::super::super::objects::scout::video::api::SearchVideosRequest,
59 ) -> Result<
60 super::super::super::super::objects::scout::video::api::SearchVideosResponse,
61 conjure_http::private::Error,
62 >;
63 #[endpoint(
65 method = POST,
66 path = "/video/v1/videos",
67 name = "create",
68 accept = conjure_http::client::StdResponseDeserializer
69 )]
70 fn create(
71 &self,
72 #[auth]
73 auth_: &conjure_object::BearerToken,
74 #[body(serializer = conjure_http::client::StdRequestSerializer)]
75 request: &super::super::super::super::objects::scout::video::api::CreateVideoRequest,
76 ) -> Result<
77 super::super::super::super::objects::scout::video::api::Video,
78 conjure_http::private::Error,
79 >;
80 #[endpoint(
82 method = PUT,
83 path = "/video/v1/videos/{videoRid}",
84 name = "updateMetadata",
85 accept = conjure_http::client::StdResponseDeserializer
86 )]
87 fn update_metadata(
88 &self,
89 #[auth]
90 auth_: &conjure_object::BearerToken,
91 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
92 video_rid: &conjure_object::ResourceIdentifier,
93 #[body(serializer = conjure_http::client::StdRequestSerializer)]
94 request: &super::super::super::super::objects::scout::video::api::UpdateVideoMetadataRequest,
95 ) -> Result<
96 super::super::super::super::objects::scout::video::api::Video,
97 conjure_http::private::Error,
98 >;
99 #[endpoint(
100 method = PUT,
101 path = "/video/v1/videos/{videoRid}/ingest-status",
102 name = "updateIngestStatus",
103 accept = conjure_http::client::conjure::EmptyResponseDeserializer
104 )]
105 fn update_ingest_status(
106 &self,
107 #[auth]
108 auth_: &conjure_object::BearerToken,
109 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
110 video_rid: &conjure_object::ResourceIdentifier,
111 #[body(serializer = conjure_http::client::StdRequestSerializer)]
112 request: &super::super::super::super::objects::scout::video::api::UpdateIngestStatus,
113 ) -> Result<(), conjure_http::private::Error>;
114 #[endpoint(
115 method = GET,
116 path = "/video/v1/videos/{videoRid}/ingest-status",
117 name = "getIngestStatus",
118 accept = conjure_http::client::StdResponseDeserializer
119 )]
120 fn get_ingest_status(
121 &self,
122 #[auth]
123 auth_: &conjure_object::BearerToken,
124 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
125 video_rid: &conjure_object::ResourceIdentifier,
126 ) -> Result<
127 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
128 conjure_http::private::Error,
129 >;
130 #[endpoint(
131 method = POST,
132 path = "/video/v1/videos/batch-get-ingest-status",
133 name = "batchGetIngestStatus",
134 accept = conjure_http::client::conjure::CollectionResponseDeserializer
135 )]
136 fn batch_get_ingest_status(
137 &self,
138 #[auth]
139 auth_: &conjure_object::BearerToken,
140 #[body(serializer = conjure_http::client::StdRequestSerializer)]
141 video_rids: &std::collections::BTreeSet<conjure_object::ResourceIdentifier>,
142 ) -> Result<
143 std::collections::BTreeMap<
144 conjure_object::ResourceIdentifier,
145 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
146 >,
147 conjure_http::private::Error,
148 >;
149 #[endpoint(
150 method = POST,
151 path = "/video/v1/videos/enriched-ingest-status",
152 name = "getEnrichedIngestStatus",
153 accept = conjure_http::client::conjure::CollectionResponseDeserializer
154 )]
155 fn get_enriched_ingest_status(
156 &self,
157 #[auth]
158 auth_: &conjure_object::BearerToken,
159 #[body(serializer = conjure_http::client::StdRequestSerializer)]
160 request: &super::super::super::super::objects::scout::video::api::GetEnrichedVideoIngestStatusRequest,
161 ) -> Result<
162 Option<
163 super::super::super::super::objects::scout::video::api::EnrichedVideoIngestStatus,
164 >,
165 conjure_http::private::Error,
166 >;
167 #[endpoint(
170 method = PUT,
171 path = "/video/v1/videos/{videoRid}/archive",
172 name = "archive",
173 accept = conjure_http::client::conjure::EmptyResponseDeserializer
174 )]
175 fn archive(
176 &self,
177 #[auth]
178 auth_: &conjure_object::BearerToken,
179 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
180 video_rid: &conjure_object::ResourceIdentifier,
181 ) -> Result<(), conjure_http::private::Error>;
182 #[endpoint(
184 method = PUT,
185 path = "/video/v1/videos/{videoRid}/unarchive",
186 name = "unarchive",
187 accept = conjure_http::client::conjure::EmptyResponseDeserializer
188 )]
189 fn unarchive(
190 &self,
191 #[auth]
192 auth_: &conjure_object::BearerToken,
193 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
194 video_rid: &conjure_object::ResourceIdentifier,
195 ) -> Result<(), conjure_http::private::Error>;
196 #[endpoint(
204 method = GET,
205 path = "/video/v1/videos/{videoRid}/playlist",
206 name = "getPlaylist",
207 accept = conjure_http::client::conjure::BinaryResponseDeserializer
208 )]
209 fn get_playlist(
210 &self,
211 #[auth]
212 auth_: &conjure_object::BearerToken,
213 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
214 video_rid: &conjure_object::ResourceIdentifier,
215 #[query(
216 name = "start",
217 encoder = conjure_http::client::conjure::PlainSeqEncoder
218 )]
219 start: Option<&str>,
220 #[query(name = "end", encoder = conjure_http::client::conjure::PlainSeqEncoder)]
221 end: Option<&str>,
222 ) -> Result<I, conjure_http::private::Error>;
223 #[endpoint(
226 method = GET,
227 path = "/video/v1/videos/{videoRid}/segment-summaries",
228 name = "getSegmentSummaries",
229 accept = conjure_http::client::conjure::CollectionResponseDeserializer
230 )]
231 fn get_segment_summaries(
232 &self,
233 #[auth]
234 auth_: &conjure_object::BearerToken,
235 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
236 video_rid: &conjure_object::ResourceIdentifier,
237 ) -> Result<
238 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
239 conjure_http::private::Error,
240 >;
241 #[endpoint(
246 method = POST,
247 path = "/video/v1/videos/{videoRid}/playlist-in-bounds",
248 name = "getPlaylistInBounds",
249 accept = conjure_http::client::conjure::BinaryResponseDeserializer
250 )]
251 fn get_playlist_in_bounds(
252 &self,
253 #[auth]
254 auth_: &conjure_object::BearerToken,
255 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
256 video_rid: &conjure_object::ResourceIdentifier,
257 #[body(serializer = conjure_http::client::StdRequestSerializer)]
258 request: &super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsRequest,
259 ) -> Result<I, conjure_http::private::Error>;
260 #[endpoint(
262 method = POST,
263 path = "/video/v2/videos/playlist-in-bounds",
264 name = "getPlaylistInBoundsV2",
265 accept = conjure_http::client::conjure::BinaryResponseDeserializer
266 )]
267 fn get_playlist_in_bounds_v2(
268 &self,
269 #[auth]
270 auth_: &conjure_object::BearerToken,
271 #[body(serializer = conjure_http::client::StdRequestSerializer)]
272 request: &super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsForChannelRequest,
273 ) -> Result<I, conjure_http::private::Error>;
274 #[endpoint(
279 method = GET,
280 path = "/video/v2/videos/playlist",
281 name = "getPlaylistV2",
282 accept = conjure_http::client::conjure::BinaryResponseDeserializer
283 )]
284 fn get_playlist_v2(
285 &self,
286 #[auth]
287 auth_: &conjure_object::BearerToken,
288 #[query(
289 name = "dataSourceRid",
290 encoder = conjure_http::client::conjure::PlainSeqEncoder
291 )]
292 data_source_rid: Option<&conjure_object::ResourceIdentifier>,
293 #[query(
294 name = "assetRid",
295 encoder = conjure_http::client::conjure::PlainSeqEncoder
296 )]
297 asset_rid: Option<
298 &super::super::super::super::objects::scout::rids::api::AssetRid,
299 >,
300 #[query(
301 name = "dataScopeName",
302 encoder = conjure_http::client::conjure::PlainSeqEncoder
303 )]
304 data_scope_name: Option<&str>,
305 #[query(name = "channel", encoder = conjure_http::client::conjure::PlainEncoder)]
306 channel: &str,
307 #[query(name = "tags", encoder = conjure_http::client::conjure::PlainSeqEncoder)]
308 tags: Option<&str>,
309 #[query(name = "start", encoder = conjure_http::client::conjure::PlainEncoder)]
310 start: &str,
311 #[query(name = "end", encoder = conjure_http::client::conjure::PlainEncoder)]
312 end: &str,
313 ) -> Result<I, conjure_http::private::Error>;
314 #[endpoint(
317 method = POST,
318 path = "/video/v1/videos/{videoRid}/segment-summaries-in-bounds",
319 name = "getSegmentSummariesInBounds",
320 accept = conjure_http::client::conjure::CollectionResponseDeserializer
321 )]
322 fn get_segment_summaries_in_bounds(
323 &self,
324 #[auth]
325 auth_: &conjure_object::BearerToken,
326 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
327 video_rid: &conjure_object::ResourceIdentifier,
328 #[body(serializer = conjure_http::client::StdRequestSerializer)]
329 request: &super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsRequest,
330 ) -> Result<
331 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
332 conjure_http::private::Error,
333 >;
334 #[endpoint(
337 method = POST,
338 path = "/video/v2/videos/segment-summaries-in-bounds",
339 name = "getSegmentSummariesInBoundsV2",
340 accept = conjure_http::client::conjure::CollectionResponseDeserializer
341 )]
342 fn get_segment_summaries_in_bounds_v2(
343 &self,
344 #[auth]
345 auth_: &conjure_object::BearerToken,
346 #[body(serializer = conjure_http::client::StdRequestSerializer)]
347 request: &super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsForChannelRequest,
348 ) -> Result<
349 Vec<super::super::super::super::objects::scout::video::api::SegmentSummaryV2>,
350 conjure_http::private::Error,
351 >;
352 #[endpoint(
355 method = POST,
356 path = "/video/v2/videos/segment-metadata",
357 name = "getSegmentMetadataV2",
358 accept = conjure_http::client::conjure::CollectionResponseDeserializer
359 )]
360 fn get_segment_metadata_v2(
361 &self,
362 #[auth]
363 auth_: &conjure_object::BearerToken,
364 #[body(serializer = conjure_http::client::StdRequestSerializer)]
365 request: &super::super::super::super::objects::scout::video::api::GetSegmentMetadataForChannelRequest,
366 ) -> Result<
367 Option<
368 super::super::super::super::objects::scout::video::api::VideoChannelSegmentsMetadata,
369 >,
370 conjure_http::private::Error,
371 >;
372 #[endpoint(
374 method = POST,
375 path = "/video/v2/videos/get-segment-by-timestamp",
376 name = "getSegmentByTimestampV2",
377 accept = conjure_http::client::conjure::CollectionResponseDeserializer
378 )]
379 fn get_segment_by_timestamp_v2(
380 &self,
381 #[auth]
382 auth_: &conjure_object::BearerToken,
383 #[body(serializer = conjure_http::client::StdRequestSerializer)]
384 request: &super::super::super::super::objects::scout::video::api::GetSegmentByTimestampV2Request,
385 ) -> Result<
386 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
387 conjure_http::private::Error,
388 >;
389 #[endpoint(
393 method = POST,
394 path = "/video/v1/videos/{videoRid}/get-segment-at-or-after-timestamp",
395 name = "getSegmentAtOrAfterTimestamp",
396 accept = conjure_http::client::conjure::CollectionResponseDeserializer
397 )]
398 fn get_segment_at_or_after_timestamp(
399 &self,
400 #[auth]
401 auth_: &conjure_object::BearerToken,
402 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
403 video_rid: &conjure_object::ResourceIdentifier,
404 #[body(serializer = conjure_http::client::StdRequestSerializer)]
405 request: &super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampRequest,
406 ) -> Result<
407 Option<super::super::super::super::objects::scout::video::api::Segment>,
408 conjure_http::private::Error,
409 >;
410 #[endpoint(
414 method = POST,
415 path = "/video/v2/videos/get-segment-at-or-after-timestamp",
416 name = "getSegmentAtOrAfterTimestampV2",
417 accept = conjure_http::client::conjure::CollectionResponseDeserializer
418 )]
419 fn get_segment_at_or_after_timestamp_v2(
420 &self,
421 #[auth]
422 auth_: &conjure_object::BearerToken,
423 #[body(serializer = conjure_http::client::StdRequestSerializer)]
424 request: &super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampV2Request,
425 ) -> Result<
426 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
427 conjure_http::private::Error,
428 >;
429 #[endpoint(
433 method = POST,
434 path = "/video/v1/videos/{videoRid}/get-ranges-with-existing-segment-data",
435 name = "getFileSummaries",
436 accept = conjure_http::client::StdResponseDeserializer
437 )]
438 fn get_file_summaries(
439 &self,
440 #[auth]
441 auth_: &conjure_object::BearerToken,
442 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
443 video_rid: &conjure_object::ResourceIdentifier,
444 #[body(serializer = conjure_http::client::StdRequestSerializer)]
445 request: &super::super::super::super::objects::scout::video::api::GetFileSummariesRequest,
446 ) -> Result<
447 super::super::super::super::objects::scout::video::api::GetFileSummariesResponse,
448 conjure_http::private::Error,
449 >;
450 #[endpoint(
453 method = POST,
454 path = "/video/v1/videos/{videoRid}/streaming/whip",
455 name = "generateWhipStream",
456 accept = conjure_http::client::StdResponseDeserializer
457 )]
458 fn generate_whip_stream(
459 &self,
460 #[auth]
461 auth_: &conjure_object::BearerToken,
462 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
463 video_rid: &conjure_object::ResourceIdentifier,
464 ) -> Result<
465 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
466 conjure_http::private::Error,
467 >;
468 #[endpoint(
472 method = POST,
473 path = "/video/v2/videos/streaming/whip",
474 name = "generateWhipStreamV2",
475 accept = conjure_http::client::StdResponseDeserializer
476 )]
477 fn generate_whip_stream_v2(
478 &self,
479 #[auth]
480 auth_: &conjure_object::BearerToken,
481 #[body(serializer = conjure_http::client::StdRequestSerializer)]
482 request: &super::super::super::super::objects::scout::video::api::GenerateWhipStreamV2Request,
483 ) -> Result<
484 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
485 conjure_http::private::Error,
486 >;
487 #[endpoint(
491 method = POST,
492 path = "/video/v1/videos/{videoRid}/streaming/whep",
493 name = "generateWhepStream",
494 accept = conjure_http::client::conjure::CollectionResponseDeserializer
495 )]
496 fn generate_whep_stream(
497 &self,
498 #[auth]
499 auth_: &conjure_object::BearerToken,
500 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
501 video_rid: &conjure_object::ResourceIdentifier,
502 ) -> Result<
503 Option<
504 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
505 >,
506 conjure_http::private::Error,
507 >;
508 #[endpoint(
512 method = POST,
513 path = "/video/v2/videos/streaming/whep",
514 name = "generateWhepStreamV2",
515 accept = conjure_http::client::conjure::CollectionResponseDeserializer
516 )]
517 fn generate_whep_stream_v2(
518 &self,
519 #[auth]
520 auth_: &conjure_object::BearerToken,
521 #[body(serializer = conjure_http::client::StdRequestSerializer)]
522 request: &super::super::super::super::objects::scout::video::api::GenerateWhepStreamV2Request,
523 ) -> Result<
524 Option<
525 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
526 >,
527 conjure_http::private::Error,
528 >;
529 #[endpoint(
532 method = GET,
533 path = "/video/v1/videos/{videoRid}/streaming/streams/{streamId}",
534 name = "getStream",
535 accept = conjure_http::client::conjure::CollectionResponseDeserializer
536 )]
537 fn get_stream(
538 &self,
539 #[auth]
540 auth_: &conjure_object::BearerToken,
541 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
542 video_rid: &conjure_object::ResourceIdentifier,
543 #[path(name = "streamId", encoder = conjure_http::client::conjure::PlainEncoder)]
544 stream_id: &str,
545 ) -> Result<
546 Option<super::super::super::super::objects::scout::video::api::VideoStream>,
547 conjure_http::private::Error,
548 >;
549 #[endpoint(
553 method = POST,
554 path = "/video/v1/videos/{videoRid}/streaming/streams-in-bounds",
555 name = "getStreamsInBounds",
556 accept = conjure_http::client::StdResponseDeserializer
557 )]
558 fn get_streams_in_bounds(
559 &self,
560 #[auth]
561 auth_: &conjure_object::BearerToken,
562 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
563 video_rid: &conjure_object::ResourceIdentifier,
564 #[body(serializer = conjure_http::client::StdRequestSerializer)]
565 request: &super::super::super::super::objects::scout::video::api::GetStreamsInBoundsRequest,
566 ) -> Result<
567 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsResponse,
568 conjure_http::private::Error,
569 >;
570 #[endpoint(
574 method = POST,
575 path = "/video/v2/videos/streaming/streams-in-bounds",
576 name = "getStreamsInBoundsV2",
577 accept = conjure_http::client::StdResponseDeserializer
578 )]
579 fn get_streams_in_bounds_v2(
580 &self,
581 #[auth]
582 auth_: &conjure_object::BearerToken,
583 #[body(serializer = conjure_http::client::StdRequestSerializer)]
584 request: &super::super::super::super::objects::scout::video::api::GetStreamsInBoundsForChannelRequest,
585 ) -> Result<
586 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsV2Response,
587 conjure_http::private::Error,
588 >;
589 #[endpoint(
593 method = POST,
594 path = "/video/v1/videos/{videoRid}/streaming/end",
595 name = "endStream",
596 accept = conjure_http::client::StdResponseDeserializer
597 )]
598 fn end_stream(
599 &self,
600 #[auth]
601 auth_: &conjure_object::BearerToken,
602 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
603 video_rid: &conjure_object::ResourceIdentifier,
604 ) -> Result<
605 super::super::super::super::objects::scout::video::api::EndStreamResponse,
606 conjure_http::private::Error,
607 >;
608 #[endpoint(
611 method = POST,
612 path = "/video/v1/segment/upload",
613 name = "uploadSegmentFromMediaMtx",
614 accept = conjure_http::client::conjure::EmptyResponseDeserializer
615 )]
616 fn upload_segment_from_media_mtx(
617 &self,
618 #[auth]
619 auth_: &conjure_object::BearerToken,
620 #[query(
621 name = "streamPath",
622 encoder = conjure_http::client::conjure::PlainEncoder
623 )]
624 stream_path: &str,
625 #[query(
626 name = "filePath",
627 encoder = conjure_http::client::conjure::PlainEncoder
628 )]
629 file_path: &str,
630 #[query(
631 name = "duration",
632 encoder = conjure_http::client::conjure::PlainEncoder
633 )]
634 duration: &str,
635 #[query(
636 name = "minTimestampSeconds",
637 encoder = conjure_http::client::conjure::PlainEncoder
638 )]
639 min_timestamp_seconds: conjure_object::SafeLong,
640 #[query(
641 name = "minTimestampNanos",
642 encoder = conjure_http::client::conjure::PlainEncoder
643 )]
644 min_timestamp_nanos: conjure_object::SafeLong,
645 #[header(
646 name = "Content-Length",
647 encoder = conjure_http::client::conjure::PlainEncoder
648 )]
649 content_length: conjure_object::SafeLong,
650 #[body(serializer = conjure_http::client::conjure::BinaryRequestSerializer)]
651 body: impl conjure_http::client::WriteBody<O>,
652 ) -> Result<(), conjure_http::private::Error>;
653}
654#[conjure_http::conjure_client(name = "VideoService")]
656pub trait AsyncVideoService<
657 #[request_writer]
658 O,
659 #[response_body]
660 I: conjure_http::private::Stream<
661 Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
662 >,
663> {
664 #[endpoint(
666 method = GET,
667 path = "/video/v1/videos/{videoRid}",
668 name = "get",
669 accept = conjure_http::client::StdResponseDeserializer
670 )]
671 async fn get(
672 &self,
673 #[auth]
674 auth_: &conjure_object::BearerToken,
675 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
676 video_rid: &conjure_object::ResourceIdentifier,
677 ) -> Result<
678 super::super::super::super::objects::scout::video::api::Video,
679 conjure_http::private::Error,
680 >;
681 #[endpoint(
683 method = POST,
684 path = "/video/v1/videos/batchGet",
685 name = "batchGet",
686 accept = conjure_http::client::StdResponseDeserializer
687 )]
688 async fn batch_get(
689 &self,
690 #[auth]
691 auth_: &conjure_object::BearerToken,
692 #[body(serializer = conjure_http::client::StdRequestSerializer)]
693 request: &super::super::super::super::objects::scout::video::api::GetVideosRequest,
694 ) -> Result<
695 super::super::super::super::objects::scout::video::api::GetVideosResponse,
696 conjure_http::private::Error,
697 >;
698 #[endpoint(
700 method = POST,
701 path = "/video/v1/videos/search",
702 name = "search",
703 accept = conjure_http::client::StdResponseDeserializer
704 )]
705 async fn search(
706 &self,
707 #[auth]
708 auth_: &conjure_object::BearerToken,
709 #[body(serializer = conjure_http::client::StdRequestSerializer)]
710 request: &super::super::super::super::objects::scout::video::api::SearchVideosRequest,
711 ) -> Result<
712 super::super::super::super::objects::scout::video::api::SearchVideosResponse,
713 conjure_http::private::Error,
714 >;
715 #[endpoint(
717 method = POST,
718 path = "/video/v1/videos",
719 name = "create",
720 accept = conjure_http::client::StdResponseDeserializer
721 )]
722 async fn create(
723 &self,
724 #[auth]
725 auth_: &conjure_object::BearerToken,
726 #[body(serializer = conjure_http::client::StdRequestSerializer)]
727 request: &super::super::super::super::objects::scout::video::api::CreateVideoRequest,
728 ) -> Result<
729 super::super::super::super::objects::scout::video::api::Video,
730 conjure_http::private::Error,
731 >;
732 #[endpoint(
734 method = PUT,
735 path = "/video/v1/videos/{videoRid}",
736 name = "updateMetadata",
737 accept = conjure_http::client::StdResponseDeserializer
738 )]
739 async fn update_metadata(
740 &self,
741 #[auth]
742 auth_: &conjure_object::BearerToken,
743 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
744 video_rid: &conjure_object::ResourceIdentifier,
745 #[body(serializer = conjure_http::client::StdRequestSerializer)]
746 request: &super::super::super::super::objects::scout::video::api::UpdateVideoMetadataRequest,
747 ) -> Result<
748 super::super::super::super::objects::scout::video::api::Video,
749 conjure_http::private::Error,
750 >;
751 #[endpoint(
752 method = PUT,
753 path = "/video/v1/videos/{videoRid}/ingest-status",
754 name = "updateIngestStatus",
755 accept = conjure_http::client::conjure::EmptyResponseDeserializer
756 )]
757 async fn update_ingest_status(
758 &self,
759 #[auth]
760 auth_: &conjure_object::BearerToken,
761 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
762 video_rid: &conjure_object::ResourceIdentifier,
763 #[body(serializer = conjure_http::client::StdRequestSerializer)]
764 request: &super::super::super::super::objects::scout::video::api::UpdateIngestStatus,
765 ) -> Result<(), conjure_http::private::Error>;
766 #[endpoint(
767 method = GET,
768 path = "/video/v1/videos/{videoRid}/ingest-status",
769 name = "getIngestStatus",
770 accept = conjure_http::client::StdResponseDeserializer
771 )]
772 async fn get_ingest_status(
773 &self,
774 #[auth]
775 auth_: &conjure_object::BearerToken,
776 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
777 video_rid: &conjure_object::ResourceIdentifier,
778 ) -> Result<
779 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
780 conjure_http::private::Error,
781 >;
782 #[endpoint(
783 method = POST,
784 path = "/video/v1/videos/batch-get-ingest-status",
785 name = "batchGetIngestStatus",
786 accept = conjure_http::client::conjure::CollectionResponseDeserializer
787 )]
788 async fn batch_get_ingest_status(
789 &self,
790 #[auth]
791 auth_: &conjure_object::BearerToken,
792 #[body(serializer = conjure_http::client::StdRequestSerializer)]
793 video_rids: &std::collections::BTreeSet<conjure_object::ResourceIdentifier>,
794 ) -> Result<
795 std::collections::BTreeMap<
796 conjure_object::ResourceIdentifier,
797 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
798 >,
799 conjure_http::private::Error,
800 >;
801 #[endpoint(
802 method = POST,
803 path = "/video/v1/videos/enriched-ingest-status",
804 name = "getEnrichedIngestStatus",
805 accept = conjure_http::client::conjure::CollectionResponseDeserializer
806 )]
807 async fn get_enriched_ingest_status(
808 &self,
809 #[auth]
810 auth_: &conjure_object::BearerToken,
811 #[body(serializer = conjure_http::client::StdRequestSerializer)]
812 request: &super::super::super::super::objects::scout::video::api::GetEnrichedVideoIngestStatusRequest,
813 ) -> Result<
814 Option<
815 super::super::super::super::objects::scout::video::api::EnrichedVideoIngestStatus,
816 >,
817 conjure_http::private::Error,
818 >;
819 #[endpoint(
822 method = PUT,
823 path = "/video/v1/videos/{videoRid}/archive",
824 name = "archive",
825 accept = conjure_http::client::conjure::EmptyResponseDeserializer
826 )]
827 async fn archive(
828 &self,
829 #[auth]
830 auth_: &conjure_object::BearerToken,
831 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
832 video_rid: &conjure_object::ResourceIdentifier,
833 ) -> Result<(), conjure_http::private::Error>;
834 #[endpoint(
836 method = PUT,
837 path = "/video/v1/videos/{videoRid}/unarchive",
838 name = "unarchive",
839 accept = conjure_http::client::conjure::EmptyResponseDeserializer
840 )]
841 async fn unarchive(
842 &self,
843 #[auth]
844 auth_: &conjure_object::BearerToken,
845 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
846 video_rid: &conjure_object::ResourceIdentifier,
847 ) -> Result<(), conjure_http::private::Error>;
848 #[endpoint(
856 method = GET,
857 path = "/video/v1/videos/{videoRid}/playlist",
858 name = "getPlaylist",
859 accept = conjure_http::client::conjure::BinaryResponseDeserializer
860 )]
861 async fn get_playlist(
862 &self,
863 #[auth]
864 auth_: &conjure_object::BearerToken,
865 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
866 video_rid: &conjure_object::ResourceIdentifier,
867 #[query(
868 name = "start",
869 encoder = conjure_http::client::conjure::PlainSeqEncoder
870 )]
871 start: Option<&str>,
872 #[query(name = "end", encoder = conjure_http::client::conjure::PlainSeqEncoder)]
873 end: Option<&str>,
874 ) -> Result<I, conjure_http::private::Error>;
875 #[endpoint(
878 method = GET,
879 path = "/video/v1/videos/{videoRid}/segment-summaries",
880 name = "getSegmentSummaries",
881 accept = conjure_http::client::conjure::CollectionResponseDeserializer
882 )]
883 async fn get_segment_summaries(
884 &self,
885 #[auth]
886 auth_: &conjure_object::BearerToken,
887 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
888 video_rid: &conjure_object::ResourceIdentifier,
889 ) -> Result<
890 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
891 conjure_http::private::Error,
892 >;
893 #[endpoint(
898 method = POST,
899 path = "/video/v1/videos/{videoRid}/playlist-in-bounds",
900 name = "getPlaylistInBounds",
901 accept = conjure_http::client::conjure::BinaryResponseDeserializer
902 )]
903 async fn get_playlist_in_bounds(
904 &self,
905 #[auth]
906 auth_: &conjure_object::BearerToken,
907 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
908 video_rid: &conjure_object::ResourceIdentifier,
909 #[body(serializer = conjure_http::client::StdRequestSerializer)]
910 request: &super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsRequest,
911 ) -> Result<I, conjure_http::private::Error>;
912 #[endpoint(
914 method = POST,
915 path = "/video/v2/videos/playlist-in-bounds",
916 name = "getPlaylistInBoundsV2",
917 accept = conjure_http::client::conjure::BinaryResponseDeserializer
918 )]
919 async fn get_playlist_in_bounds_v2(
920 &self,
921 #[auth]
922 auth_: &conjure_object::BearerToken,
923 #[body(serializer = conjure_http::client::StdRequestSerializer)]
924 request: &super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsForChannelRequest,
925 ) -> Result<I, conjure_http::private::Error>;
926 #[endpoint(
931 method = GET,
932 path = "/video/v2/videos/playlist",
933 name = "getPlaylistV2",
934 accept = conjure_http::client::conjure::BinaryResponseDeserializer
935 )]
936 async fn get_playlist_v2(
937 &self,
938 #[auth]
939 auth_: &conjure_object::BearerToken,
940 #[query(
941 name = "dataSourceRid",
942 encoder = conjure_http::client::conjure::PlainSeqEncoder
943 )]
944 data_source_rid: Option<&conjure_object::ResourceIdentifier>,
945 #[query(
946 name = "assetRid",
947 encoder = conjure_http::client::conjure::PlainSeqEncoder
948 )]
949 asset_rid: Option<
950 &super::super::super::super::objects::scout::rids::api::AssetRid,
951 >,
952 #[query(
953 name = "dataScopeName",
954 encoder = conjure_http::client::conjure::PlainSeqEncoder
955 )]
956 data_scope_name: Option<&str>,
957 #[query(name = "channel", encoder = conjure_http::client::conjure::PlainEncoder)]
958 channel: &str,
959 #[query(name = "tags", encoder = conjure_http::client::conjure::PlainSeqEncoder)]
960 tags: Option<&str>,
961 #[query(name = "start", encoder = conjure_http::client::conjure::PlainEncoder)]
962 start: &str,
963 #[query(name = "end", encoder = conjure_http::client::conjure::PlainEncoder)]
964 end: &str,
965 ) -> Result<I, conjure_http::private::Error>;
966 #[endpoint(
969 method = POST,
970 path = "/video/v1/videos/{videoRid}/segment-summaries-in-bounds",
971 name = "getSegmentSummariesInBounds",
972 accept = conjure_http::client::conjure::CollectionResponseDeserializer
973 )]
974 async fn get_segment_summaries_in_bounds(
975 &self,
976 #[auth]
977 auth_: &conjure_object::BearerToken,
978 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
979 video_rid: &conjure_object::ResourceIdentifier,
980 #[body(serializer = conjure_http::client::StdRequestSerializer)]
981 request: &super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsRequest,
982 ) -> Result<
983 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
984 conjure_http::private::Error,
985 >;
986 #[endpoint(
989 method = POST,
990 path = "/video/v2/videos/segment-summaries-in-bounds",
991 name = "getSegmentSummariesInBoundsV2",
992 accept = conjure_http::client::conjure::CollectionResponseDeserializer
993 )]
994 async fn get_segment_summaries_in_bounds_v2(
995 &self,
996 #[auth]
997 auth_: &conjure_object::BearerToken,
998 #[body(serializer = conjure_http::client::StdRequestSerializer)]
999 request: &super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsForChannelRequest,
1000 ) -> Result<
1001 Vec<super::super::super::super::objects::scout::video::api::SegmentSummaryV2>,
1002 conjure_http::private::Error,
1003 >;
1004 #[endpoint(
1007 method = POST,
1008 path = "/video/v2/videos/segment-metadata",
1009 name = "getSegmentMetadataV2",
1010 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1011 )]
1012 async fn get_segment_metadata_v2(
1013 &self,
1014 #[auth]
1015 auth_: &conjure_object::BearerToken,
1016 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1017 request: &super::super::super::super::objects::scout::video::api::GetSegmentMetadataForChannelRequest,
1018 ) -> Result<
1019 Option<
1020 super::super::super::super::objects::scout::video::api::VideoChannelSegmentsMetadata,
1021 >,
1022 conjure_http::private::Error,
1023 >;
1024 #[endpoint(
1026 method = POST,
1027 path = "/video/v2/videos/get-segment-by-timestamp",
1028 name = "getSegmentByTimestampV2",
1029 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1030 )]
1031 async fn get_segment_by_timestamp_v2(
1032 &self,
1033 #[auth]
1034 auth_: &conjure_object::BearerToken,
1035 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1036 request: &super::super::super::super::objects::scout::video::api::GetSegmentByTimestampV2Request,
1037 ) -> Result<
1038 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
1039 conjure_http::private::Error,
1040 >;
1041 #[endpoint(
1045 method = POST,
1046 path = "/video/v1/videos/{videoRid}/get-segment-at-or-after-timestamp",
1047 name = "getSegmentAtOrAfterTimestamp",
1048 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1049 )]
1050 async fn get_segment_at_or_after_timestamp(
1051 &self,
1052 #[auth]
1053 auth_: &conjure_object::BearerToken,
1054 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1055 video_rid: &conjure_object::ResourceIdentifier,
1056 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1057 request: &super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampRequest,
1058 ) -> Result<
1059 Option<super::super::super::super::objects::scout::video::api::Segment>,
1060 conjure_http::private::Error,
1061 >;
1062 #[endpoint(
1066 method = POST,
1067 path = "/video/v2/videos/get-segment-at-or-after-timestamp",
1068 name = "getSegmentAtOrAfterTimestampV2",
1069 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1070 )]
1071 async fn get_segment_at_or_after_timestamp_v2(
1072 &self,
1073 #[auth]
1074 auth_: &conjure_object::BearerToken,
1075 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1076 request: &super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampV2Request,
1077 ) -> Result<
1078 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
1079 conjure_http::private::Error,
1080 >;
1081 #[endpoint(
1085 method = POST,
1086 path = "/video/v1/videos/{videoRid}/get-ranges-with-existing-segment-data",
1087 name = "getFileSummaries",
1088 accept = conjure_http::client::StdResponseDeserializer
1089 )]
1090 async fn get_file_summaries(
1091 &self,
1092 #[auth]
1093 auth_: &conjure_object::BearerToken,
1094 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1095 video_rid: &conjure_object::ResourceIdentifier,
1096 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1097 request: &super::super::super::super::objects::scout::video::api::GetFileSummariesRequest,
1098 ) -> Result<
1099 super::super::super::super::objects::scout::video::api::GetFileSummariesResponse,
1100 conjure_http::private::Error,
1101 >;
1102 #[endpoint(
1105 method = POST,
1106 path = "/video/v1/videos/{videoRid}/streaming/whip",
1107 name = "generateWhipStream",
1108 accept = conjure_http::client::StdResponseDeserializer
1109 )]
1110 async fn generate_whip_stream(
1111 &self,
1112 #[auth]
1113 auth_: &conjure_object::BearerToken,
1114 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1115 video_rid: &conjure_object::ResourceIdentifier,
1116 ) -> Result<
1117 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
1118 conjure_http::private::Error,
1119 >;
1120 #[endpoint(
1124 method = POST,
1125 path = "/video/v2/videos/streaming/whip",
1126 name = "generateWhipStreamV2",
1127 accept = conjure_http::client::StdResponseDeserializer
1128 )]
1129 async fn generate_whip_stream_v2(
1130 &self,
1131 #[auth]
1132 auth_: &conjure_object::BearerToken,
1133 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1134 request: &super::super::super::super::objects::scout::video::api::GenerateWhipStreamV2Request,
1135 ) -> Result<
1136 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
1137 conjure_http::private::Error,
1138 >;
1139 #[endpoint(
1143 method = POST,
1144 path = "/video/v1/videos/{videoRid}/streaming/whep",
1145 name = "generateWhepStream",
1146 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1147 )]
1148 async fn generate_whep_stream(
1149 &self,
1150 #[auth]
1151 auth_: &conjure_object::BearerToken,
1152 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1153 video_rid: &conjure_object::ResourceIdentifier,
1154 ) -> Result<
1155 Option<
1156 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
1157 >,
1158 conjure_http::private::Error,
1159 >;
1160 #[endpoint(
1164 method = POST,
1165 path = "/video/v2/videos/streaming/whep",
1166 name = "generateWhepStreamV2",
1167 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1168 )]
1169 async fn generate_whep_stream_v2(
1170 &self,
1171 #[auth]
1172 auth_: &conjure_object::BearerToken,
1173 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1174 request: &super::super::super::super::objects::scout::video::api::GenerateWhepStreamV2Request,
1175 ) -> Result<
1176 Option<
1177 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
1178 >,
1179 conjure_http::private::Error,
1180 >;
1181 #[endpoint(
1184 method = GET,
1185 path = "/video/v1/videos/{videoRid}/streaming/streams/{streamId}",
1186 name = "getStream",
1187 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1188 )]
1189 async fn get_stream(
1190 &self,
1191 #[auth]
1192 auth_: &conjure_object::BearerToken,
1193 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1194 video_rid: &conjure_object::ResourceIdentifier,
1195 #[path(name = "streamId", encoder = conjure_http::client::conjure::PlainEncoder)]
1196 stream_id: &str,
1197 ) -> Result<
1198 Option<super::super::super::super::objects::scout::video::api::VideoStream>,
1199 conjure_http::private::Error,
1200 >;
1201 #[endpoint(
1205 method = POST,
1206 path = "/video/v1/videos/{videoRid}/streaming/streams-in-bounds",
1207 name = "getStreamsInBounds",
1208 accept = conjure_http::client::StdResponseDeserializer
1209 )]
1210 async fn get_streams_in_bounds(
1211 &self,
1212 #[auth]
1213 auth_: &conjure_object::BearerToken,
1214 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1215 video_rid: &conjure_object::ResourceIdentifier,
1216 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1217 request: &super::super::super::super::objects::scout::video::api::GetStreamsInBoundsRequest,
1218 ) -> Result<
1219 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsResponse,
1220 conjure_http::private::Error,
1221 >;
1222 #[endpoint(
1226 method = POST,
1227 path = "/video/v2/videos/streaming/streams-in-bounds",
1228 name = "getStreamsInBoundsV2",
1229 accept = conjure_http::client::StdResponseDeserializer
1230 )]
1231 async fn get_streams_in_bounds_v2(
1232 &self,
1233 #[auth]
1234 auth_: &conjure_object::BearerToken,
1235 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1236 request: &super::super::super::super::objects::scout::video::api::GetStreamsInBoundsForChannelRequest,
1237 ) -> Result<
1238 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsV2Response,
1239 conjure_http::private::Error,
1240 >;
1241 #[endpoint(
1245 method = POST,
1246 path = "/video/v1/videos/{videoRid}/streaming/end",
1247 name = "endStream",
1248 accept = conjure_http::client::StdResponseDeserializer
1249 )]
1250 async fn end_stream(
1251 &self,
1252 #[auth]
1253 auth_: &conjure_object::BearerToken,
1254 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1255 video_rid: &conjure_object::ResourceIdentifier,
1256 ) -> Result<
1257 super::super::super::super::objects::scout::video::api::EndStreamResponse,
1258 conjure_http::private::Error,
1259 >;
1260 #[endpoint(
1263 method = POST,
1264 path = "/video/v1/segment/upload",
1265 name = "uploadSegmentFromMediaMtx",
1266 accept = conjure_http::client::conjure::EmptyResponseDeserializer
1267 )]
1268 async fn upload_segment_from_media_mtx(
1269 &self,
1270 #[auth]
1271 auth_: &conjure_object::BearerToken,
1272 #[query(
1273 name = "streamPath",
1274 encoder = conjure_http::client::conjure::PlainEncoder
1275 )]
1276 stream_path: &str,
1277 #[query(
1278 name = "filePath",
1279 encoder = conjure_http::client::conjure::PlainEncoder
1280 )]
1281 file_path: &str,
1282 #[query(
1283 name = "duration",
1284 encoder = conjure_http::client::conjure::PlainEncoder
1285 )]
1286 duration: &str,
1287 #[query(
1288 name = "minTimestampSeconds",
1289 encoder = conjure_http::client::conjure::PlainEncoder
1290 )]
1291 min_timestamp_seconds: conjure_object::SafeLong,
1292 #[query(
1293 name = "minTimestampNanos",
1294 encoder = conjure_http::client::conjure::PlainEncoder
1295 )]
1296 min_timestamp_nanos: conjure_object::SafeLong,
1297 #[header(
1298 name = "Content-Length",
1299 encoder = conjure_http::client::conjure::PlainEncoder
1300 )]
1301 content_length: conjure_object::SafeLong,
1302 #[body(serializer = conjure_http::client::conjure::BinaryRequestSerializer)]
1303 body: impl conjure_http::client::AsyncWriteBody<O> + Sync + Send,
1304 ) -> Result<(), conjure_http::private::Error>;
1305}
1306#[conjure_http::conjure_client(name = "VideoService", local)]
1308pub trait LocalAsyncVideoService<
1309 #[request_writer]
1310 O,
1311 #[response_body]
1312 I: conjure_http::private::Stream<
1313 Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
1314 >,
1315> {
1316 #[endpoint(
1318 method = GET,
1319 path = "/video/v1/videos/{videoRid}",
1320 name = "get",
1321 accept = conjure_http::client::StdResponseDeserializer
1322 )]
1323 async fn get(
1324 &self,
1325 #[auth]
1326 auth_: &conjure_object::BearerToken,
1327 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1328 video_rid: &conjure_object::ResourceIdentifier,
1329 ) -> Result<
1330 super::super::super::super::objects::scout::video::api::Video,
1331 conjure_http::private::Error,
1332 >;
1333 #[endpoint(
1335 method = POST,
1336 path = "/video/v1/videos/batchGet",
1337 name = "batchGet",
1338 accept = conjure_http::client::StdResponseDeserializer
1339 )]
1340 async fn batch_get(
1341 &self,
1342 #[auth]
1343 auth_: &conjure_object::BearerToken,
1344 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1345 request: &super::super::super::super::objects::scout::video::api::GetVideosRequest,
1346 ) -> Result<
1347 super::super::super::super::objects::scout::video::api::GetVideosResponse,
1348 conjure_http::private::Error,
1349 >;
1350 #[endpoint(
1352 method = POST,
1353 path = "/video/v1/videos/search",
1354 name = "search",
1355 accept = conjure_http::client::StdResponseDeserializer
1356 )]
1357 async fn search(
1358 &self,
1359 #[auth]
1360 auth_: &conjure_object::BearerToken,
1361 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1362 request: &super::super::super::super::objects::scout::video::api::SearchVideosRequest,
1363 ) -> Result<
1364 super::super::super::super::objects::scout::video::api::SearchVideosResponse,
1365 conjure_http::private::Error,
1366 >;
1367 #[endpoint(
1369 method = POST,
1370 path = "/video/v1/videos",
1371 name = "create",
1372 accept = conjure_http::client::StdResponseDeserializer
1373 )]
1374 async fn create(
1375 &self,
1376 #[auth]
1377 auth_: &conjure_object::BearerToken,
1378 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1379 request: &super::super::super::super::objects::scout::video::api::CreateVideoRequest,
1380 ) -> Result<
1381 super::super::super::super::objects::scout::video::api::Video,
1382 conjure_http::private::Error,
1383 >;
1384 #[endpoint(
1386 method = PUT,
1387 path = "/video/v1/videos/{videoRid}",
1388 name = "updateMetadata",
1389 accept = conjure_http::client::StdResponseDeserializer
1390 )]
1391 async fn update_metadata(
1392 &self,
1393 #[auth]
1394 auth_: &conjure_object::BearerToken,
1395 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1396 video_rid: &conjure_object::ResourceIdentifier,
1397 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1398 request: &super::super::super::super::objects::scout::video::api::UpdateVideoMetadataRequest,
1399 ) -> Result<
1400 super::super::super::super::objects::scout::video::api::Video,
1401 conjure_http::private::Error,
1402 >;
1403 #[endpoint(
1404 method = PUT,
1405 path = "/video/v1/videos/{videoRid}/ingest-status",
1406 name = "updateIngestStatus",
1407 accept = conjure_http::client::conjure::EmptyResponseDeserializer
1408 )]
1409 async fn update_ingest_status(
1410 &self,
1411 #[auth]
1412 auth_: &conjure_object::BearerToken,
1413 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1414 video_rid: &conjure_object::ResourceIdentifier,
1415 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1416 request: &super::super::super::super::objects::scout::video::api::UpdateIngestStatus,
1417 ) -> Result<(), conjure_http::private::Error>;
1418 #[endpoint(
1419 method = GET,
1420 path = "/video/v1/videos/{videoRid}/ingest-status",
1421 name = "getIngestStatus",
1422 accept = conjure_http::client::StdResponseDeserializer
1423 )]
1424 async fn get_ingest_status(
1425 &self,
1426 #[auth]
1427 auth_: &conjure_object::BearerToken,
1428 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1429 video_rid: &conjure_object::ResourceIdentifier,
1430 ) -> Result<
1431 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
1432 conjure_http::private::Error,
1433 >;
1434 #[endpoint(
1435 method = POST,
1436 path = "/video/v1/videos/batch-get-ingest-status",
1437 name = "batchGetIngestStatus",
1438 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1439 )]
1440 async fn batch_get_ingest_status(
1441 &self,
1442 #[auth]
1443 auth_: &conjure_object::BearerToken,
1444 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1445 video_rids: &std::collections::BTreeSet<conjure_object::ResourceIdentifier>,
1446 ) -> Result<
1447 std::collections::BTreeMap<
1448 conjure_object::ResourceIdentifier,
1449 super::super::super::super::objects::scout::video::api::DetailedIngestStatus,
1450 >,
1451 conjure_http::private::Error,
1452 >;
1453 #[endpoint(
1454 method = POST,
1455 path = "/video/v1/videos/enriched-ingest-status",
1456 name = "getEnrichedIngestStatus",
1457 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1458 )]
1459 async fn get_enriched_ingest_status(
1460 &self,
1461 #[auth]
1462 auth_: &conjure_object::BearerToken,
1463 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1464 request: &super::super::super::super::objects::scout::video::api::GetEnrichedVideoIngestStatusRequest,
1465 ) -> Result<
1466 Option<
1467 super::super::super::super::objects::scout::video::api::EnrichedVideoIngestStatus,
1468 >,
1469 conjure_http::private::Error,
1470 >;
1471 #[endpoint(
1474 method = PUT,
1475 path = "/video/v1/videos/{videoRid}/archive",
1476 name = "archive",
1477 accept = conjure_http::client::conjure::EmptyResponseDeserializer
1478 )]
1479 async fn archive(
1480 &self,
1481 #[auth]
1482 auth_: &conjure_object::BearerToken,
1483 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1484 video_rid: &conjure_object::ResourceIdentifier,
1485 ) -> Result<(), conjure_http::private::Error>;
1486 #[endpoint(
1488 method = PUT,
1489 path = "/video/v1/videos/{videoRid}/unarchive",
1490 name = "unarchive",
1491 accept = conjure_http::client::conjure::EmptyResponseDeserializer
1492 )]
1493 async fn unarchive(
1494 &self,
1495 #[auth]
1496 auth_: &conjure_object::BearerToken,
1497 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1498 video_rid: &conjure_object::ResourceIdentifier,
1499 ) -> Result<(), conjure_http::private::Error>;
1500 #[endpoint(
1508 method = GET,
1509 path = "/video/v1/videos/{videoRid}/playlist",
1510 name = "getPlaylist",
1511 accept = conjure_http::client::conjure::BinaryResponseDeserializer
1512 )]
1513 async fn get_playlist(
1514 &self,
1515 #[auth]
1516 auth_: &conjure_object::BearerToken,
1517 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1518 video_rid: &conjure_object::ResourceIdentifier,
1519 #[query(
1520 name = "start",
1521 encoder = conjure_http::client::conjure::PlainSeqEncoder
1522 )]
1523 start: Option<&str>,
1524 #[query(name = "end", encoder = conjure_http::client::conjure::PlainSeqEncoder)]
1525 end: Option<&str>,
1526 ) -> Result<I, conjure_http::private::Error>;
1527 #[endpoint(
1530 method = GET,
1531 path = "/video/v1/videos/{videoRid}/segment-summaries",
1532 name = "getSegmentSummaries",
1533 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1534 )]
1535 async fn get_segment_summaries(
1536 &self,
1537 #[auth]
1538 auth_: &conjure_object::BearerToken,
1539 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1540 video_rid: &conjure_object::ResourceIdentifier,
1541 ) -> Result<
1542 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
1543 conjure_http::private::Error,
1544 >;
1545 #[endpoint(
1550 method = POST,
1551 path = "/video/v1/videos/{videoRid}/playlist-in-bounds",
1552 name = "getPlaylistInBounds",
1553 accept = conjure_http::client::conjure::BinaryResponseDeserializer
1554 )]
1555 async fn get_playlist_in_bounds(
1556 &self,
1557 #[auth]
1558 auth_: &conjure_object::BearerToken,
1559 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1560 video_rid: &conjure_object::ResourceIdentifier,
1561 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1562 request: &super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsRequest,
1563 ) -> Result<I, conjure_http::private::Error>;
1564 #[endpoint(
1566 method = POST,
1567 path = "/video/v2/videos/playlist-in-bounds",
1568 name = "getPlaylistInBoundsV2",
1569 accept = conjure_http::client::conjure::BinaryResponseDeserializer
1570 )]
1571 async fn get_playlist_in_bounds_v2(
1572 &self,
1573 #[auth]
1574 auth_: &conjure_object::BearerToken,
1575 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1576 request: &super::super::super::super::objects::scout::video::api::GetPlaylistInBoundsForChannelRequest,
1577 ) -> Result<I, conjure_http::private::Error>;
1578 #[endpoint(
1583 method = GET,
1584 path = "/video/v2/videos/playlist",
1585 name = "getPlaylistV2",
1586 accept = conjure_http::client::conjure::BinaryResponseDeserializer
1587 )]
1588 async fn get_playlist_v2(
1589 &self,
1590 #[auth]
1591 auth_: &conjure_object::BearerToken,
1592 #[query(
1593 name = "dataSourceRid",
1594 encoder = conjure_http::client::conjure::PlainSeqEncoder
1595 )]
1596 data_source_rid: Option<&conjure_object::ResourceIdentifier>,
1597 #[query(
1598 name = "assetRid",
1599 encoder = conjure_http::client::conjure::PlainSeqEncoder
1600 )]
1601 asset_rid: Option<
1602 &super::super::super::super::objects::scout::rids::api::AssetRid,
1603 >,
1604 #[query(
1605 name = "dataScopeName",
1606 encoder = conjure_http::client::conjure::PlainSeqEncoder
1607 )]
1608 data_scope_name: Option<&str>,
1609 #[query(name = "channel", encoder = conjure_http::client::conjure::PlainEncoder)]
1610 channel: &str,
1611 #[query(name = "tags", encoder = conjure_http::client::conjure::PlainSeqEncoder)]
1612 tags: Option<&str>,
1613 #[query(name = "start", encoder = conjure_http::client::conjure::PlainEncoder)]
1614 start: &str,
1615 #[query(name = "end", encoder = conjure_http::client::conjure::PlainEncoder)]
1616 end: &str,
1617 ) -> Result<I, conjure_http::private::Error>;
1618 #[endpoint(
1621 method = POST,
1622 path = "/video/v1/videos/{videoRid}/segment-summaries-in-bounds",
1623 name = "getSegmentSummariesInBounds",
1624 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1625 )]
1626 async fn get_segment_summaries_in_bounds(
1627 &self,
1628 #[auth]
1629 auth_: &conjure_object::BearerToken,
1630 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1631 video_rid: &conjure_object::ResourceIdentifier,
1632 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1633 request: &super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsRequest,
1634 ) -> Result<
1635 Vec<super::super::super::super::objects::scout::video::api::SegmentSummary>,
1636 conjure_http::private::Error,
1637 >;
1638 #[endpoint(
1641 method = POST,
1642 path = "/video/v2/videos/segment-summaries-in-bounds",
1643 name = "getSegmentSummariesInBoundsV2",
1644 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1645 )]
1646 async fn get_segment_summaries_in_bounds_v2(
1647 &self,
1648 #[auth]
1649 auth_: &conjure_object::BearerToken,
1650 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1651 request: &super::super::super::super::objects::scout::video::api::GetSegmentSummariesInBoundsForChannelRequest,
1652 ) -> Result<
1653 Vec<super::super::super::super::objects::scout::video::api::SegmentSummaryV2>,
1654 conjure_http::private::Error,
1655 >;
1656 #[endpoint(
1659 method = POST,
1660 path = "/video/v2/videos/segment-metadata",
1661 name = "getSegmentMetadataV2",
1662 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1663 )]
1664 async fn get_segment_metadata_v2(
1665 &self,
1666 #[auth]
1667 auth_: &conjure_object::BearerToken,
1668 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1669 request: &super::super::super::super::objects::scout::video::api::GetSegmentMetadataForChannelRequest,
1670 ) -> Result<
1671 Option<
1672 super::super::super::super::objects::scout::video::api::VideoChannelSegmentsMetadata,
1673 >,
1674 conjure_http::private::Error,
1675 >;
1676 #[endpoint(
1678 method = POST,
1679 path = "/video/v2/videos/get-segment-by-timestamp",
1680 name = "getSegmentByTimestampV2",
1681 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1682 )]
1683 async fn get_segment_by_timestamp_v2(
1684 &self,
1685 #[auth]
1686 auth_: &conjure_object::BearerToken,
1687 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1688 request: &super::super::super::super::objects::scout::video::api::GetSegmentByTimestampV2Request,
1689 ) -> Result<
1690 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
1691 conjure_http::private::Error,
1692 >;
1693 #[endpoint(
1697 method = POST,
1698 path = "/video/v1/videos/{videoRid}/get-segment-at-or-after-timestamp",
1699 name = "getSegmentAtOrAfterTimestamp",
1700 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1701 )]
1702 async fn get_segment_at_or_after_timestamp(
1703 &self,
1704 #[auth]
1705 auth_: &conjure_object::BearerToken,
1706 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1707 video_rid: &conjure_object::ResourceIdentifier,
1708 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1709 request: &super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampRequest,
1710 ) -> Result<
1711 Option<super::super::super::super::objects::scout::video::api::Segment>,
1712 conjure_http::private::Error,
1713 >;
1714 #[endpoint(
1718 method = POST,
1719 path = "/video/v2/videos/get-segment-at-or-after-timestamp",
1720 name = "getSegmentAtOrAfterTimestampV2",
1721 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1722 )]
1723 async fn get_segment_at_or_after_timestamp_v2(
1724 &self,
1725 #[auth]
1726 auth_: &conjure_object::BearerToken,
1727 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1728 request: &super::super::super::super::objects::scout::video::api::GetSegmentAtOrAfterTimestampV2Request,
1729 ) -> Result<
1730 Option<super::super::super::super::objects::scout::video::api::SegmentV2>,
1731 conjure_http::private::Error,
1732 >;
1733 #[endpoint(
1737 method = POST,
1738 path = "/video/v1/videos/{videoRid}/get-ranges-with-existing-segment-data",
1739 name = "getFileSummaries",
1740 accept = conjure_http::client::StdResponseDeserializer
1741 )]
1742 async fn get_file_summaries(
1743 &self,
1744 #[auth]
1745 auth_: &conjure_object::BearerToken,
1746 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1747 video_rid: &conjure_object::ResourceIdentifier,
1748 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1749 request: &super::super::super::super::objects::scout::video::api::GetFileSummariesRequest,
1750 ) -> Result<
1751 super::super::super::super::objects::scout::video::api::GetFileSummariesResponse,
1752 conjure_http::private::Error,
1753 >;
1754 #[endpoint(
1757 method = POST,
1758 path = "/video/v1/videos/{videoRid}/streaming/whip",
1759 name = "generateWhipStream",
1760 accept = conjure_http::client::StdResponseDeserializer
1761 )]
1762 async fn generate_whip_stream(
1763 &self,
1764 #[auth]
1765 auth_: &conjure_object::BearerToken,
1766 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1767 video_rid: &conjure_object::ResourceIdentifier,
1768 ) -> Result<
1769 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
1770 conjure_http::private::Error,
1771 >;
1772 #[endpoint(
1776 method = POST,
1777 path = "/video/v2/videos/streaming/whip",
1778 name = "generateWhipStreamV2",
1779 accept = conjure_http::client::StdResponseDeserializer
1780 )]
1781 async fn generate_whip_stream_v2(
1782 &self,
1783 #[auth]
1784 auth_: &conjure_object::BearerToken,
1785 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1786 request: &super::super::super::super::objects::scout::video::api::GenerateWhipStreamV2Request,
1787 ) -> Result<
1788 super::super::super::super::objects::scout::video::api::GenerateWhipStreamResponse,
1789 conjure_http::private::Error,
1790 >;
1791 #[endpoint(
1795 method = POST,
1796 path = "/video/v1/videos/{videoRid}/streaming/whep",
1797 name = "generateWhepStream",
1798 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1799 )]
1800 async fn generate_whep_stream(
1801 &self,
1802 #[auth]
1803 auth_: &conjure_object::BearerToken,
1804 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1805 video_rid: &conjure_object::ResourceIdentifier,
1806 ) -> Result<
1807 Option<
1808 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
1809 >,
1810 conjure_http::private::Error,
1811 >;
1812 #[endpoint(
1816 method = POST,
1817 path = "/video/v2/videos/streaming/whep",
1818 name = "generateWhepStreamV2",
1819 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1820 )]
1821 async fn generate_whep_stream_v2(
1822 &self,
1823 #[auth]
1824 auth_: &conjure_object::BearerToken,
1825 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1826 request: &super::super::super::super::objects::scout::video::api::GenerateWhepStreamV2Request,
1827 ) -> Result<
1828 Option<
1829 super::super::super::super::objects::scout::video::api::GenerateWhepStreamResponse,
1830 >,
1831 conjure_http::private::Error,
1832 >;
1833 #[endpoint(
1836 method = GET,
1837 path = "/video/v1/videos/{videoRid}/streaming/streams/{streamId}",
1838 name = "getStream",
1839 accept = conjure_http::client::conjure::CollectionResponseDeserializer
1840 )]
1841 async fn get_stream(
1842 &self,
1843 #[auth]
1844 auth_: &conjure_object::BearerToken,
1845 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1846 video_rid: &conjure_object::ResourceIdentifier,
1847 #[path(name = "streamId", encoder = conjure_http::client::conjure::PlainEncoder)]
1848 stream_id: &str,
1849 ) -> Result<
1850 Option<super::super::super::super::objects::scout::video::api::VideoStream>,
1851 conjure_http::private::Error,
1852 >;
1853 #[endpoint(
1857 method = POST,
1858 path = "/video/v1/videos/{videoRid}/streaming/streams-in-bounds",
1859 name = "getStreamsInBounds",
1860 accept = conjure_http::client::StdResponseDeserializer
1861 )]
1862 async fn get_streams_in_bounds(
1863 &self,
1864 #[auth]
1865 auth_: &conjure_object::BearerToken,
1866 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1867 video_rid: &conjure_object::ResourceIdentifier,
1868 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1869 request: &super::super::super::super::objects::scout::video::api::GetStreamsInBoundsRequest,
1870 ) -> Result<
1871 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsResponse,
1872 conjure_http::private::Error,
1873 >;
1874 #[endpoint(
1878 method = POST,
1879 path = "/video/v2/videos/streaming/streams-in-bounds",
1880 name = "getStreamsInBoundsV2",
1881 accept = conjure_http::client::StdResponseDeserializer
1882 )]
1883 async fn get_streams_in_bounds_v2(
1884 &self,
1885 #[auth]
1886 auth_: &conjure_object::BearerToken,
1887 #[body(serializer = conjure_http::client::StdRequestSerializer)]
1888 request: &super::super::super::super::objects::scout::video::api::GetStreamsInBoundsForChannelRequest,
1889 ) -> Result<
1890 super::super::super::super::objects::scout::video::api::GetStreamsInBoundsV2Response,
1891 conjure_http::private::Error,
1892 >;
1893 #[endpoint(
1897 method = POST,
1898 path = "/video/v1/videos/{videoRid}/streaming/end",
1899 name = "endStream",
1900 accept = conjure_http::client::StdResponseDeserializer
1901 )]
1902 async fn end_stream(
1903 &self,
1904 #[auth]
1905 auth_: &conjure_object::BearerToken,
1906 #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
1907 video_rid: &conjure_object::ResourceIdentifier,
1908 ) -> Result<
1909 super::super::super::super::objects::scout::video::api::EndStreamResponse,
1910 conjure_http::private::Error,
1911 >;
1912 #[endpoint(
1915 method = POST,
1916 path = "/video/v1/segment/upload",
1917 name = "uploadSegmentFromMediaMtx",
1918 accept = conjure_http::client::conjure::EmptyResponseDeserializer
1919 )]
1920 async fn upload_segment_from_media_mtx(
1921 &self,
1922 #[auth]
1923 auth_: &conjure_object::BearerToken,
1924 #[query(
1925 name = "streamPath",
1926 encoder = conjure_http::client::conjure::PlainEncoder
1927 )]
1928 stream_path: &str,
1929 #[query(
1930 name = "filePath",
1931 encoder = conjure_http::client::conjure::PlainEncoder
1932 )]
1933 file_path: &str,
1934 #[query(
1935 name = "duration",
1936 encoder = conjure_http::client::conjure::PlainEncoder
1937 )]
1938 duration: &str,
1939 #[query(
1940 name = "minTimestampSeconds",
1941 encoder = conjure_http::client::conjure::PlainEncoder
1942 )]
1943 min_timestamp_seconds: conjure_object::SafeLong,
1944 #[query(
1945 name = "minTimestampNanos",
1946 encoder = conjure_http::client::conjure::PlainEncoder
1947 )]
1948 min_timestamp_nanos: conjure_object::SafeLong,
1949 #[header(
1950 name = "Content-Length",
1951 encoder = conjure_http::client::conjure::PlainEncoder
1952 )]
1953 content_length: conjure_object::SafeLong,
1954 #[body(serializer = conjure_http::client::conjure::BinaryRequestSerializer)]
1955 body: impl conjure_http::client::LocalAsyncWriteBody<O>,
1956 ) -> Result<(), conjure_http::private::Error>;
1957}