Skip to main content

nominal_api/conjure/clients/scout/video/
video_segment_service.rs

1use conjure_http::endpoint;
2/// Upon ingestion, every video is split into smaller segments. The Video Segment Service manages operations on videos
3/// at the segment-level.
4#[conjure_http::conjure_client(name = "VideoSegmentService")]
5pub trait VideoSegmentService<
6    #[response_body]
7    I: Iterator<
8            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
9        >,
10> {
11    #[endpoint(
12        method = POST,
13        path = "/video/v1/videos/{videoRid}/create-segments",
14        name = "createSegments",
15        accept = conjure_http::client::conjure::EmptyResponseDeserializer
16    )]
17    fn create_segments(
18        &self,
19        #[auth]
20        auth_: &conjure_object::BearerToken,
21        #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
22        video_rid: &super::super::super::super::objects::api::rids::VideoRid,
23        #[body(serializer = conjure_http::client::StdRequestSerializer)]
24        request: &super::super::super::super::objects::scout::video::api::CreateSegmentsRequest,
25    ) -> Result<(), conjure_http::private::Error>;
26    #[endpoint(
27        method = POST,
28        path = "/video/v1/videos/{videoRid}/{videoFileRid}/create-segments",
29        name = "createVideoFileSegments",
30        accept = conjure_http::client::StdResponseDeserializer
31    )]
32    fn create_video_file_segments(
33        &self,
34        #[auth]
35        auth_: &conjure_object::BearerToken,
36        #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
37        video_rid: &super::super::super::super::objects::api::rids::VideoRid,
38        #[path(
39            name = "videoFileRid",
40            encoder = conjure_http::client::conjure::PlainEncoder
41        )]
42        video_file_rid: &super::super::super::super::objects::api::rids::VideoFileRid,
43        #[body(serializer = conjure_http::client::StdRequestSerializer)]
44        request: &super::super::super::super::objects::scout::video::api::CreateSegmentsRequest,
45    ) -> Result<
46        super::super::super::super::objects::scout::video::api::CreateSegmentsResponse,
47        conjure_http::private::Error,
48    >;
49    /// Creates segments for a video stream. Similar to createVideoFileSegments but for streaming video.
50    #[endpoint(
51        method = POST,
52        path = "/video/v1/videos/{videoRid}/streams/{streamUuid}/create-segments",
53        name = "createVideoStreamSegments",
54        accept = conjure_http::client::StdResponseDeserializer
55    )]
56    fn create_video_stream_segments(
57        &self,
58        #[auth]
59        auth_: &conjure_object::BearerToken,
60        #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
61        video_rid: &super::super::super::super::objects::api::rids::VideoRid,
62        #[path(
63            name = "streamUuid",
64            encoder = conjure_http::client::conjure::PlainEncoder
65        )]
66        stream_uuid: conjure_object::Uuid,
67        #[body(serializer = conjure_http::client::StdRequestSerializer)]
68        request: &super::super::super::super::objects::scout::video::api::CreateSegmentsRequest,
69    ) -> Result<
70        super::super::super::super::objects::scout::video::api::CreateSegmentsResponse,
71        conjure_http::private::Error,
72    >;
73    /// Creates segments for a dataset file video. Used for channel-based video ingestion.
74    /// Internal use only.
75    #[endpoint(
76        method = POST,
77        path = "/video/v2/videos/create-segments",
78        name = "createSegmentsV2",
79        accept = conjure_http::client::StdResponseDeserializer
80    )]
81    fn create_segments_v2(
82        &self,
83        #[auth]
84        auth_: &conjure_object::BearerToken,
85        #[body(serializer = conjure_http::client::StdRequestSerializer)]
86        request: &super::super::super::super::objects::scout::video::api::CreateSegmentsV2Request,
87    ) -> Result<
88        super::super::super::super::objects::scout::video::api::CreateSegmentsV2Response,
89        conjure_http::private::Error,
90    >;
91    /// Creates segments for a channel-backed live video stream. Internal use only.
92    #[endpoint(
93        method = POST,
94        path = "/video/v2/videos/streams/{streamUuid}/create-segments",
95        name = "createStreamSegmentsV2",
96        accept = conjure_http::client::StdResponseDeserializer
97    )]
98    fn create_stream_segments_v2(
99        &self,
100        #[auth]
101        auth_: &conjure_object::BearerToken,
102        #[path(
103            name = "streamUuid",
104            encoder = conjure_http::client::conjure::PlainEncoder
105        )]
106        stream_uuid: conjure_object::Uuid,
107        #[body(serializer = conjure_http::client::StdRequestSerializer)]
108        request: &super::super::super::super::objects::scout::video::api::CreateStreamSegmentsV2Request,
109    ) -> Result<
110        super::super::super::super::objects::scout::video::api::CreateSegmentsV2Response,
111        conjure_http::private::Error,
112    >;
113    /// Returns metadata for the segment within a video containing the requested absolute timestamp.
114    #[endpoint(
115        method = POST,
116        path = "/video/v1/videos/{videoRid}/get-segment-by-timestamp",
117        name = "getSegmentByTimestamp",
118        accept = conjure_http::client::conjure::CollectionResponseDeserializer
119    )]
120    fn get_segment_by_timestamp(
121        &self,
122        #[auth]
123        auth_: &conjure_object::BearerToken,
124        #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
125        video_rid: &super::super::super::super::objects::api::rids::VideoRid,
126        #[body(serializer = conjure_http::client::StdRequestSerializer)]
127        request: &super::super::super::super::objects::scout::video::api::GetSegmentByTimestampRequest,
128    ) -> Result<
129        Option<super::super::super::super::objects::scout::video::api::Segment>,
130        conjure_http::private::Error,
131    >;
132}
133/// Upon ingestion, every video is split into smaller segments. The Video Segment Service manages operations on videos
134/// at the segment-level.
135#[conjure_http::conjure_client(name = "VideoSegmentService")]
136pub trait AsyncVideoSegmentService<
137    #[response_body]
138    I: conjure_http::private::Stream<
139            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
140        >,
141> {
142    #[endpoint(
143        method = POST,
144        path = "/video/v1/videos/{videoRid}/create-segments",
145        name = "createSegments",
146        accept = conjure_http::client::conjure::EmptyResponseDeserializer
147    )]
148    async fn create_segments(
149        &self,
150        #[auth]
151        auth_: &conjure_object::BearerToken,
152        #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
153        video_rid: &super::super::super::super::objects::api::rids::VideoRid,
154        #[body(serializer = conjure_http::client::StdRequestSerializer)]
155        request: &super::super::super::super::objects::scout::video::api::CreateSegmentsRequest,
156    ) -> Result<(), conjure_http::private::Error>;
157    #[endpoint(
158        method = POST,
159        path = "/video/v1/videos/{videoRid}/{videoFileRid}/create-segments",
160        name = "createVideoFileSegments",
161        accept = conjure_http::client::StdResponseDeserializer
162    )]
163    async fn create_video_file_segments(
164        &self,
165        #[auth]
166        auth_: &conjure_object::BearerToken,
167        #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
168        video_rid: &super::super::super::super::objects::api::rids::VideoRid,
169        #[path(
170            name = "videoFileRid",
171            encoder = conjure_http::client::conjure::PlainEncoder
172        )]
173        video_file_rid: &super::super::super::super::objects::api::rids::VideoFileRid,
174        #[body(serializer = conjure_http::client::StdRequestSerializer)]
175        request: &super::super::super::super::objects::scout::video::api::CreateSegmentsRequest,
176    ) -> Result<
177        super::super::super::super::objects::scout::video::api::CreateSegmentsResponse,
178        conjure_http::private::Error,
179    >;
180    /// Creates segments for a video stream. Similar to createVideoFileSegments but for streaming video.
181    #[endpoint(
182        method = POST,
183        path = "/video/v1/videos/{videoRid}/streams/{streamUuid}/create-segments",
184        name = "createVideoStreamSegments",
185        accept = conjure_http::client::StdResponseDeserializer
186    )]
187    async fn create_video_stream_segments(
188        &self,
189        #[auth]
190        auth_: &conjure_object::BearerToken,
191        #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
192        video_rid: &super::super::super::super::objects::api::rids::VideoRid,
193        #[path(
194            name = "streamUuid",
195            encoder = conjure_http::client::conjure::PlainEncoder
196        )]
197        stream_uuid: conjure_object::Uuid,
198        #[body(serializer = conjure_http::client::StdRequestSerializer)]
199        request: &super::super::super::super::objects::scout::video::api::CreateSegmentsRequest,
200    ) -> Result<
201        super::super::super::super::objects::scout::video::api::CreateSegmentsResponse,
202        conjure_http::private::Error,
203    >;
204    /// Creates segments for a dataset file video. Used for channel-based video ingestion.
205    /// Internal use only.
206    #[endpoint(
207        method = POST,
208        path = "/video/v2/videos/create-segments",
209        name = "createSegmentsV2",
210        accept = conjure_http::client::StdResponseDeserializer
211    )]
212    async fn create_segments_v2(
213        &self,
214        #[auth]
215        auth_: &conjure_object::BearerToken,
216        #[body(serializer = conjure_http::client::StdRequestSerializer)]
217        request: &super::super::super::super::objects::scout::video::api::CreateSegmentsV2Request,
218    ) -> Result<
219        super::super::super::super::objects::scout::video::api::CreateSegmentsV2Response,
220        conjure_http::private::Error,
221    >;
222    /// Creates segments for a channel-backed live video stream. Internal use only.
223    #[endpoint(
224        method = POST,
225        path = "/video/v2/videos/streams/{streamUuid}/create-segments",
226        name = "createStreamSegmentsV2",
227        accept = conjure_http::client::StdResponseDeserializer
228    )]
229    async fn create_stream_segments_v2(
230        &self,
231        #[auth]
232        auth_: &conjure_object::BearerToken,
233        #[path(
234            name = "streamUuid",
235            encoder = conjure_http::client::conjure::PlainEncoder
236        )]
237        stream_uuid: conjure_object::Uuid,
238        #[body(serializer = conjure_http::client::StdRequestSerializer)]
239        request: &super::super::super::super::objects::scout::video::api::CreateStreamSegmentsV2Request,
240    ) -> Result<
241        super::super::super::super::objects::scout::video::api::CreateSegmentsV2Response,
242        conjure_http::private::Error,
243    >;
244    /// Returns metadata for the segment within a video containing the requested absolute timestamp.
245    #[endpoint(
246        method = POST,
247        path = "/video/v1/videos/{videoRid}/get-segment-by-timestamp",
248        name = "getSegmentByTimestamp",
249        accept = conjure_http::client::conjure::CollectionResponseDeserializer
250    )]
251    async fn get_segment_by_timestamp(
252        &self,
253        #[auth]
254        auth_: &conjure_object::BearerToken,
255        #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
256        video_rid: &super::super::super::super::objects::api::rids::VideoRid,
257        #[body(serializer = conjure_http::client::StdRequestSerializer)]
258        request: &super::super::super::super::objects::scout::video::api::GetSegmentByTimestampRequest,
259    ) -> Result<
260        Option<super::super::super::super::objects::scout::video::api::Segment>,
261        conjure_http::private::Error,
262    >;
263}
264/// Upon ingestion, every video is split into smaller segments. The Video Segment Service manages operations on videos
265/// at the segment-level.
266#[conjure_http::conjure_client(name = "VideoSegmentService", local)]
267pub trait LocalAsyncVideoSegmentService<
268    #[response_body]
269    I: conjure_http::private::Stream<
270            Item = Result<conjure_http::private::Bytes, conjure_http::private::Error>,
271        >,
272> {
273    #[endpoint(
274        method = POST,
275        path = "/video/v1/videos/{videoRid}/create-segments",
276        name = "createSegments",
277        accept = conjure_http::client::conjure::EmptyResponseDeserializer
278    )]
279    async fn create_segments(
280        &self,
281        #[auth]
282        auth_: &conjure_object::BearerToken,
283        #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
284        video_rid: &super::super::super::super::objects::api::rids::VideoRid,
285        #[body(serializer = conjure_http::client::StdRequestSerializer)]
286        request: &super::super::super::super::objects::scout::video::api::CreateSegmentsRequest,
287    ) -> Result<(), conjure_http::private::Error>;
288    #[endpoint(
289        method = POST,
290        path = "/video/v1/videos/{videoRid}/{videoFileRid}/create-segments",
291        name = "createVideoFileSegments",
292        accept = conjure_http::client::StdResponseDeserializer
293    )]
294    async fn create_video_file_segments(
295        &self,
296        #[auth]
297        auth_: &conjure_object::BearerToken,
298        #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
299        video_rid: &super::super::super::super::objects::api::rids::VideoRid,
300        #[path(
301            name = "videoFileRid",
302            encoder = conjure_http::client::conjure::PlainEncoder
303        )]
304        video_file_rid: &super::super::super::super::objects::api::rids::VideoFileRid,
305        #[body(serializer = conjure_http::client::StdRequestSerializer)]
306        request: &super::super::super::super::objects::scout::video::api::CreateSegmentsRequest,
307    ) -> Result<
308        super::super::super::super::objects::scout::video::api::CreateSegmentsResponse,
309        conjure_http::private::Error,
310    >;
311    /// Creates segments for a video stream. Similar to createVideoFileSegments but for streaming video.
312    #[endpoint(
313        method = POST,
314        path = "/video/v1/videos/{videoRid}/streams/{streamUuid}/create-segments",
315        name = "createVideoStreamSegments",
316        accept = conjure_http::client::StdResponseDeserializer
317    )]
318    async fn create_video_stream_segments(
319        &self,
320        #[auth]
321        auth_: &conjure_object::BearerToken,
322        #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
323        video_rid: &super::super::super::super::objects::api::rids::VideoRid,
324        #[path(
325            name = "streamUuid",
326            encoder = conjure_http::client::conjure::PlainEncoder
327        )]
328        stream_uuid: conjure_object::Uuid,
329        #[body(serializer = conjure_http::client::StdRequestSerializer)]
330        request: &super::super::super::super::objects::scout::video::api::CreateSegmentsRequest,
331    ) -> Result<
332        super::super::super::super::objects::scout::video::api::CreateSegmentsResponse,
333        conjure_http::private::Error,
334    >;
335    /// Creates segments for a dataset file video. Used for channel-based video ingestion.
336    /// Internal use only.
337    #[endpoint(
338        method = POST,
339        path = "/video/v2/videos/create-segments",
340        name = "createSegmentsV2",
341        accept = conjure_http::client::StdResponseDeserializer
342    )]
343    async fn create_segments_v2(
344        &self,
345        #[auth]
346        auth_: &conjure_object::BearerToken,
347        #[body(serializer = conjure_http::client::StdRequestSerializer)]
348        request: &super::super::super::super::objects::scout::video::api::CreateSegmentsV2Request,
349    ) -> Result<
350        super::super::super::super::objects::scout::video::api::CreateSegmentsV2Response,
351        conjure_http::private::Error,
352    >;
353    /// Creates segments for a channel-backed live video stream. Internal use only.
354    #[endpoint(
355        method = POST,
356        path = "/video/v2/videos/streams/{streamUuid}/create-segments",
357        name = "createStreamSegmentsV2",
358        accept = conjure_http::client::StdResponseDeserializer
359    )]
360    async fn create_stream_segments_v2(
361        &self,
362        #[auth]
363        auth_: &conjure_object::BearerToken,
364        #[path(
365            name = "streamUuid",
366            encoder = conjure_http::client::conjure::PlainEncoder
367        )]
368        stream_uuid: conjure_object::Uuid,
369        #[body(serializer = conjure_http::client::StdRequestSerializer)]
370        request: &super::super::super::super::objects::scout::video::api::CreateStreamSegmentsV2Request,
371    ) -> Result<
372        super::super::super::super::objects::scout::video::api::CreateSegmentsV2Response,
373        conjure_http::private::Error,
374    >;
375    /// Returns metadata for the segment within a video containing the requested absolute timestamp.
376    #[endpoint(
377        method = POST,
378        path = "/video/v1/videos/{videoRid}/get-segment-by-timestamp",
379        name = "getSegmentByTimestamp",
380        accept = conjure_http::client::conjure::CollectionResponseDeserializer
381    )]
382    async fn get_segment_by_timestamp(
383        &self,
384        #[auth]
385        auth_: &conjure_object::BearerToken,
386        #[path(name = "videoRid", encoder = conjure_http::client::conjure::PlainEncoder)]
387        video_rid: &super::super::super::super::objects::api::rids::VideoRid,
388        #[body(serializer = conjure_http::client::StdRequestSerializer)]
389        request: &super::super::super::super::objects::scout::video::api::GetSegmentByTimestampRequest,
390    ) -> Result<
391        Option<super::super::super::super::objects::scout::video::api::Segment>,
392        conjure_http::private::Error,
393    >;
394}