1#[derive(Clone, PartialEq, ::prost::Message)]
3pub struct IngestSource {
4 #[prost(oneof = "ingest_source::Source", tags = "1, 2, 3")]
5 pub source: ::core::option::Option<ingest_source::Source>,
6}
7pub mod ingest_source {
9 #[derive(Clone, PartialEq, ::prost::Oneof)]
10 pub enum Source {
11 #[prost(message, tag = "1")]
12 S3(super::S3IngestSource),
13 #[prost(message, tag = "2")]
14 Gcs(super::GcsIngestSource),
15 #[prost(message, tag = "3")]
16 PresignedFile(super::PresignedFileIngestSource),
17 }
18}
19#[derive(Clone, PartialEq, ::prost::Message)]
20pub struct S3IngestSource {
21 #[prost(string, tag = "1")]
22 pub path: ::prost::alloc::string::String,
23}
24#[derive(Clone, PartialEq, ::prost::Message)]
25pub struct GcsIngestSource {
26 #[prost(string, tag = "1")]
27 pub path: ::prost::alloc::string::String,
28}
29#[derive(Clone, PartialEq, ::prost::Message)]
30pub struct PresignedFileIngestSource {
31 #[prost(string, tag = "1")]
32 pub url: ::prost::alloc::string::String,
33}
34#[derive(Clone, PartialEq, ::prost::Message)]
35pub struct TimestampMetadata {
36 #[prost(string, tag = "1")]
37 pub column: ::prost::alloc::string::String,
38 #[prost(message, optional, tag = "2")]
39 pub r#type: ::core::option::Option<super::super::types::time::TimestampType>,
40}
41#[derive(Clone, PartialEq, ::prost::Message)]
42pub struct ContainerizedExtractor {
43 #[prost(string, tag = "1")]
44 pub rid: ::prost::alloc::string::String,
45 #[prost(string, tag = "2")]
46 pub workspace_rid: ::prost::alloc::string::String,
47 #[prost(string, tag = "3")]
48 pub name: ::prost::alloc::string::String,
49 #[prost(string, optional, tag = "4")]
50 pub description: ::core::option::Option<::prost::alloc::string::String>,
51 #[prost(message, optional, tag = "5")]
52 pub created_at: ::core::option::Option<
53 super::super::super::google::protobuf::Timestamp,
54 >,
55 #[prost(bool, tag = "6")]
56 pub is_archived: bool,
57 #[prost(message, optional, tag = "7")]
58 pub active_container_image: ::core::option::Option<
59 super::super::registry::v2::ContainerImage,
60 >,
61}
62#[derive(Clone, PartialEq, ::prost::Message)]
63pub struct CreateContainerizedExtractorRequest {
64 #[prost(string, tag = "1")]
65 pub workspace_rid: ::prost::alloc::string::String,
66 #[prost(string, tag = "2")]
67 pub name: ::prost::alloc::string::String,
68 #[prost(string, optional, tag = "3")]
69 pub description: ::core::option::Option<::prost::alloc::string::String>,
70}
71#[derive(Clone, PartialEq, ::prost::Message)]
72pub struct CreateContainerizedExtractorResponse {
73 #[prost(message, optional, tag = "1")]
74 pub extractor: ::core::option::Option<ContainerizedExtractor>,
75}
76#[derive(Clone, PartialEq, ::prost::Message)]
77pub struct GetContainerizedExtractorRequest {
78 #[prost(string, tag = "1")]
79 pub rid: ::prost::alloc::string::String,
80 #[prost(string, tag = "2")]
81 pub workspace_rid: ::prost::alloc::string::String,
82}
83#[derive(Clone, PartialEq, ::prost::Message)]
84pub struct GetContainerizedExtractorResponse {
85 #[prost(message, optional, tag = "1")]
86 pub extractor: ::core::option::Option<ContainerizedExtractor>,
87}
88#[derive(Clone, PartialEq, ::prost::Message)]
89pub struct UpdateContainerizedExtractorRequest {
90 #[prost(string, tag = "1")]
91 pub rid: ::prost::alloc::string::String,
92 #[prost(string, tag = "2")]
93 pub workspace_rid: ::prost::alloc::string::String,
94 #[prost(string, optional, tag = "3")]
95 pub name: ::core::option::Option<::prost::alloc::string::String>,
96 #[prost(string, optional, tag = "4")]
97 pub description: ::core::option::Option<::prost::alloc::string::String>,
98 #[prost(bool, optional, tag = "5")]
99 pub is_archived: ::core::option::Option<bool>,
100 #[prost(string, optional, tag = "6")]
101 pub active_container_image_rid: ::core::option::Option<
102 ::prost::alloc::string::String,
103 >,
104}
105#[derive(Clone, PartialEq, ::prost::Message)]
106pub struct UpdateContainerizedExtractorResponse {
107 #[prost(message, optional, tag = "1")]
108 pub extractor: ::core::option::Option<ContainerizedExtractor>,
109}
110#[derive(Clone, PartialEq, ::prost::Message)]
111pub struct SearchContainerizedExtractorsRequest {
112 #[prost(string, tag = "1")]
113 pub workspace_rid: ::prost::alloc::string::String,
114 #[prost(bool, tag = "2")]
115 pub include_archived: bool,
116 #[prost(int32, tag = "3")]
117 pub page_size: i32,
118 #[prost(string, optional, tag = "4")]
119 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
120 #[prost(string, optional, tag = "5")]
121 pub file_extension: ::core::option::Option<::prost::alloc::string::String>,
122}
123#[derive(Clone, PartialEq, ::prost::Message)]
124pub struct SearchContainerizedExtractorsResponse {
125 #[prost(message, repeated, tag = "1")]
126 pub extractors: ::prost::alloc::vec::Vec<ContainerizedExtractor>,
127 #[prost(string, optional, tag = "2")]
128 pub next_page_token: ::core::option::Option<::prost::alloc::string::String>,
129}
130pub mod containerized_extractor_service_client {
132 #![allow(
133 unused_variables,
134 dead_code,
135 missing_docs,
136 clippy::wildcard_imports,
137 clippy::let_unit_value,
138 )]
139 use tonic::codegen::*;
140 use tonic::codegen::http::Uri;
141 #[derive(Debug, Clone)]
142 pub struct ContainerizedExtractorServiceClient<T> {
143 inner: tonic::client::Grpc<T>,
144 }
145 impl ContainerizedExtractorServiceClient<tonic::transport::Channel> {
146 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
148 where
149 D: TryInto<tonic::transport::Endpoint>,
150 D::Error: Into<StdError>,
151 {
152 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
153 Ok(Self::new(conn))
154 }
155 }
156 impl<T> ContainerizedExtractorServiceClient<T>
157 where
158 T: tonic::client::GrpcService<tonic::body::Body>,
159 T::Error: Into<StdError>,
160 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
161 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
162 {
163 pub fn new(inner: T) -> Self {
164 let inner = tonic::client::Grpc::new(inner);
165 Self { inner }
166 }
167 pub fn with_origin(inner: T, origin: Uri) -> Self {
168 let inner = tonic::client::Grpc::with_origin(inner, origin);
169 Self { inner }
170 }
171 pub fn with_interceptor<F>(
172 inner: T,
173 interceptor: F,
174 ) -> ContainerizedExtractorServiceClient<InterceptedService<T, F>>
175 where
176 F: tonic::service::Interceptor,
177 T::ResponseBody: Default,
178 T: tonic::codegen::Service<
179 http::Request<tonic::body::Body>,
180 Response = http::Response<
181 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
182 >,
183 >,
184 <T as tonic::codegen::Service<
185 http::Request<tonic::body::Body>,
186 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
187 {
188 ContainerizedExtractorServiceClient::new(
189 InterceptedService::new(inner, interceptor),
190 )
191 }
192 #[must_use]
197 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
198 self.inner = self.inner.send_compressed(encoding);
199 self
200 }
201 #[must_use]
203 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
204 self.inner = self.inner.accept_compressed(encoding);
205 self
206 }
207 #[must_use]
211 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
212 self.inner = self.inner.max_decoding_message_size(limit);
213 self
214 }
215 #[must_use]
219 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
220 self.inner = self.inner.max_encoding_message_size(limit);
221 self
222 }
223 pub async fn create_containerized_extractor(
224 &mut self,
225 request: impl tonic::IntoRequest<super::CreateContainerizedExtractorRequest>,
226 ) -> std::result::Result<
227 tonic::Response<super::CreateContainerizedExtractorResponse>,
228 tonic::Status,
229 > {
230 self.inner
231 .ready()
232 .await
233 .map_err(|e| {
234 tonic::Status::unknown(
235 format!("Service was not ready: {}", e.into()),
236 )
237 })?;
238 let codec = tonic::codec::ProstCodec::default();
239 let path = http::uri::PathAndQuery::from_static(
240 "/nominal.ingest.v2.ContainerizedExtractorService/CreateContainerizedExtractor",
241 );
242 let mut req = request.into_request();
243 req.extensions_mut()
244 .insert(
245 GrpcMethod::new(
246 "nominal.ingest.v2.ContainerizedExtractorService",
247 "CreateContainerizedExtractor",
248 ),
249 );
250 self.inner.unary(req, path, codec).await
251 }
252 pub async fn get_containerized_extractor(
253 &mut self,
254 request: impl tonic::IntoRequest<super::GetContainerizedExtractorRequest>,
255 ) -> std::result::Result<
256 tonic::Response<super::GetContainerizedExtractorResponse>,
257 tonic::Status,
258 > {
259 self.inner
260 .ready()
261 .await
262 .map_err(|e| {
263 tonic::Status::unknown(
264 format!("Service was not ready: {}", e.into()),
265 )
266 })?;
267 let codec = tonic::codec::ProstCodec::default();
268 let path = http::uri::PathAndQuery::from_static(
269 "/nominal.ingest.v2.ContainerizedExtractorService/GetContainerizedExtractor",
270 );
271 let mut req = request.into_request();
272 req.extensions_mut()
273 .insert(
274 GrpcMethod::new(
275 "nominal.ingest.v2.ContainerizedExtractorService",
276 "GetContainerizedExtractor",
277 ),
278 );
279 self.inner.unary(req, path, codec).await
280 }
281 pub async fn update_containerized_extractor(
282 &mut self,
283 request: impl tonic::IntoRequest<super::UpdateContainerizedExtractorRequest>,
284 ) -> std::result::Result<
285 tonic::Response<super::UpdateContainerizedExtractorResponse>,
286 tonic::Status,
287 > {
288 self.inner
289 .ready()
290 .await
291 .map_err(|e| {
292 tonic::Status::unknown(
293 format!("Service was not ready: {}", e.into()),
294 )
295 })?;
296 let codec = tonic::codec::ProstCodec::default();
297 let path = http::uri::PathAndQuery::from_static(
298 "/nominal.ingest.v2.ContainerizedExtractorService/UpdateContainerizedExtractor",
299 );
300 let mut req = request.into_request();
301 req.extensions_mut()
302 .insert(
303 GrpcMethod::new(
304 "nominal.ingest.v2.ContainerizedExtractorService",
305 "UpdateContainerizedExtractor",
306 ),
307 );
308 self.inner.unary(req, path, codec).await
309 }
310 pub async fn search_containerized_extractors(
311 &mut self,
312 request: impl tonic::IntoRequest<super::SearchContainerizedExtractorsRequest>,
313 ) -> std::result::Result<
314 tonic::Response<super::SearchContainerizedExtractorsResponse>,
315 tonic::Status,
316 > {
317 self.inner
318 .ready()
319 .await
320 .map_err(|e| {
321 tonic::Status::unknown(
322 format!("Service was not ready: {}", e.into()),
323 )
324 })?;
325 let codec = tonic::codec::ProstCodec::default();
326 let path = http::uri::PathAndQuery::from_static(
327 "/nominal.ingest.v2.ContainerizedExtractorService/SearchContainerizedExtractors",
328 );
329 let mut req = request.into_request();
330 req.extensions_mut()
331 .insert(
332 GrpcMethod::new(
333 "nominal.ingest.v2.ContainerizedExtractorService",
334 "SearchContainerizedExtractors",
335 ),
336 );
337 self.inner.unary(req, path, codec).await
338 }
339 }
340}
341#[derive(Clone, PartialEq, ::prost::Message)]
342pub struct ContainerizedIngestItem {
343 #[prost(string, tag = "1")]
344 pub extractor_rid: ::prost::alloc::string::String,
345 #[prost(map = "string, message", tag = "2")]
346 pub sources: ::std::collections::HashMap<
347 ::prost::alloc::string::String,
348 IngestSource,
349 >,
350 #[prost(map = "string, string", tag = "3")]
351 pub arguments: ::std::collections::HashMap<
352 ::prost::alloc::string::String,
353 ::prost::alloc::string::String,
354 >,
355 #[prost(message, optional, tag = "4")]
356 pub timestamp_metadata: ::core::option::Option<TimestampMetadata>,
357}
358#[derive(Clone, PartialEq, ::prost::Message)]
359pub struct FileIngestItem {
360 #[prost(message, optional, tag = "1")]
361 pub source: ::core::option::Option<IngestSource>,
362 #[prost(message, optional, tag = "2")]
363 pub ingest: ::core::option::Option<FileIngestOptions>,
364}
365#[derive(Clone, PartialEq, ::prost::Message)]
366pub struct FileIngestOptions {
367 #[prost(message, optional, tag = "1")]
368 pub timestamp_metadata: ::core::option::Option<TimestampMetadata>,
369 #[prost(map = "string, string", tag = "2")]
370 pub units: ::std::collections::HashMap<
371 ::prost::alloc::string::String,
372 ::prost::alloc::string::String,
373 >,
374 #[prost(string, optional, tag = "3")]
375 pub channel_prefix: ::core::option::Option<::prost::alloc::string::String>,
376 #[prost(map = "string, string", tag = "7")]
377 pub channel_name_overrides: ::std::collections::HashMap<
378 ::prost::alloc::string::String,
379 ::prost::alloc::string::String,
380 >,
381 #[prost(oneof = "file_ingest_options::Ingest", tags = "4, 5, 6")]
382 pub ingest: ::core::option::Option<file_ingest_options::Ingest>,
383}
384pub mod file_ingest_options {
386 #[derive(Clone, PartialEq, ::prost::Oneof)]
387 pub enum Ingest {
388 #[prost(message, tag = "4")]
389 Csv(super::CsvIngestOptions),
390 #[prost(message, tag = "5")]
391 Parquet(super::ParquetIngestOptions),
392 #[prost(message, tag = "6")]
393 Avro(super::AvroIngestOptions),
394 }
395}
396#[derive(Clone, PartialEq, ::prost::Message)]
397pub struct CsvIngestOptions {
398 #[prost(message, optional, tag = "1")]
399 pub format: ::core::option::Option<CsvFormat>,
400}
401#[derive(Clone, PartialEq, ::prost::Message)]
402pub struct ParquetIngestOptions {
403 #[prost(message, optional, tag = "1")]
404 pub format: ::core::option::Option<ParquetFormat>,
405 #[prost(bool, tag = "2")]
406 pub is_archive: bool,
407}
408#[derive(Clone, Copy, PartialEq, ::prost::Message)]
409pub struct AvroIngestOptions {}
410#[derive(Clone, PartialEq, ::prost::Message)]
411pub struct CsvFormat {
412 #[prost(oneof = "csv_format::Format", tags = "1, 2")]
413 pub format: ::core::option::Option<csv_format::Format>,
414}
415pub mod csv_format {
417 #[derive(Clone, PartialEq, ::prost::Oneof)]
418 pub enum Format {
419 #[prost(message, tag = "1")]
420 Wide(super::WideFormat),
421 #[prost(message, tag = "2")]
422 Long(super::LongFormat),
423 }
424}
425#[derive(Clone, PartialEq, ::prost::Message)]
426pub struct ParquetFormat {
427 #[prost(oneof = "parquet_format::Format", tags = "1, 2")]
428 pub format: ::core::option::Option<parquet_format::Format>,
429}
430pub mod parquet_format {
432 #[derive(Clone, PartialEq, ::prost::Oneof)]
433 pub enum Format {
434 #[prost(message, tag = "1")]
435 Wide(super::WideFormat),
436 #[prost(message, tag = "2")]
437 Long(super::LongFormat),
438 }
439}
440#[derive(Clone, PartialEq, ::prost::Message)]
441pub struct WideFormat {
442 #[prost(map = "string, string", tag = "1")]
443 pub tag_columns: ::std::collections::HashMap<
444 ::prost::alloc::string::String,
445 ::prost::alloc::string::String,
446 >,
447 #[prost(string, repeated, tag = "2")]
448 pub exclude_columns: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
449}
450#[derive(Clone, PartialEq, ::prost::Message)]
451pub struct LongFormat {
452 #[prost(string, optional, tag = "1")]
453 pub channel_column: ::core::option::Option<::prost::alloc::string::String>,
454 #[prost(string, optional, tag = "2")]
455 pub value_column: ::core::option::Option<::prost::alloc::string::String>,
456 #[prost(string, optional, tag = "3")]
457 pub tags_column: ::core::option::Option<::prost::alloc::string::String>,
458}
459#[derive(Clone, PartialEq, ::prost::Message)]
460pub struct LogIngestItem {
461 #[prost(message, optional, tag = "1")]
462 pub source: ::core::option::Option<IngestSource>,
463 #[prost(string, optional, tag = "2")]
464 pub channel: ::core::option::Option<::prost::alloc::string::String>,
465 #[prost(message, optional, tag = "3")]
466 pub timestamp_metadata: ::core::option::Option<TimestampMetadata>,
467}
468#[derive(Clone, PartialEq, ::prost::Message)]
469pub struct McapIngestItem {
470 #[prost(message, optional, tag = "1")]
471 pub source: ::core::option::Option<IngestSource>,
472 #[prost(message, optional, tag = "2")]
473 pub channels: ::core::option::Option<McapChannelSelection>,
474 #[prost(bool, tag = "3")]
475 pub ignore_invalid_topics: bool,
476}
477#[derive(Clone, PartialEq, ::prost::Message)]
478pub struct McapChannelSelection {
479 #[prost(oneof = "mcap_channel_selection::Selection", tags = "1, 2")]
480 pub selection: ::core::option::Option<mcap_channel_selection::Selection>,
481}
482pub mod mcap_channel_selection {
484 #[derive(Clone, PartialEq, ::prost::Oneof)]
485 pub enum Selection {
486 #[prost(message, tag = "1")]
487 IncludeTopics(super::McapTopicNames),
488 #[prost(message, tag = "2")]
489 ExcludeTopics(super::McapTopicNames),
490 }
491}
492#[derive(Clone, PartialEq, ::prost::Message)]
493pub struct McapTopicNames {
494 #[prost(string, repeated, tag = "1")]
495 pub topics: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
496}
497#[derive(Clone, PartialEq, ::prost::Message)]
498pub struct DataflashIngestItem {
499 #[prost(message, optional, tag = "1")]
500 pub source: ::core::option::Option<IngestSource>,
501}
502#[derive(Clone, PartialEq, ::prost::Message)]
503pub struct PointCloudIngestItem {
504 #[prost(message, optional, tag = "1")]
505 pub source: ::core::option::Option<IngestSource>,
506 #[prost(message, optional, tag = "2")]
507 pub ingest: ::core::option::Option<PointCloudIngestOptions>,
508}
509#[derive(Clone, PartialEq, ::prost::Message)]
510pub struct PointCloudIngestOptions {
511 #[prost(message, optional, tag = "1")]
512 pub sensor_metadata: ::core::option::Option<PointCloudSensorMetadata>,
513 #[prost(string, tag = "2")]
514 pub channel: ::prost::alloc::string::String,
515}
516#[derive(Clone, PartialEq, ::prost::Message)]
517pub struct PointCloudSensorMetadata {
518 #[prost(map = "string, string", tag = "1")]
519 pub properties: ::std::collections::HashMap<
520 ::prost::alloc::string::String,
521 ::prost::alloc::string::String,
522 >,
523}
524#[derive(Clone, PartialEq, ::prost::Message)]
525pub struct VideoIngestItem {
526 #[prost(message, optional, tag = "1")]
527 pub source: ::core::option::Option<IngestSource>,
528 #[prost(message, optional, tag = "2")]
529 pub ingest: ::core::option::Option<VideoIngestOptions>,
530}
531#[derive(Clone, PartialEq, ::prost::Message)]
532pub struct VideoIngestOptions {
533 #[prost(message, optional, tag = "1")]
534 pub timestamp_manifest: ::core::option::Option<VideoTimestampManifest>,
535 #[prost(string, tag = "2")]
536 pub channel: ::prost::alloc::string::String,
537 #[prost(bool, optional, tag = "3")]
538 pub overwrite_segments: ::core::option::Option<bool>,
539}
540#[derive(Clone, PartialEq, ::prost::Message)]
541pub struct VideoTimestampManifest {
542 #[prost(oneof = "video_timestamp_manifest::Manifest", tags = "1, 2")]
543 pub manifest: ::core::option::Option<video_timestamp_manifest::Manifest>,
544}
545pub mod video_timestamp_manifest {
547 #[derive(Clone, PartialEq, ::prost::Oneof)]
548 pub enum Manifest {
549 #[prost(message, tag = "1")]
550 NoManifest(super::NoTimestampManifest),
551 #[prost(message, tag = "2")]
552 TimestampManifestFiles(super::TimestampManifestFiles),
553 }
554}
555#[derive(Clone, Copy, PartialEq, ::prost::Message)]
556pub struct NoTimestampManifest {
557 #[prost(message, optional, tag = "1")]
558 pub starting_timestamp: ::core::option::Option<
559 super::super::super::google::protobuf::Timestamp,
560 >,
561 #[prost(message, optional, tag = "2")]
562 pub scale_parameter: ::core::option::Option<ScaleParameter>,
563}
564#[derive(Clone, PartialEq, ::prost::Message)]
565pub struct TimestampManifestFiles {
566 #[prost(message, repeated, tag = "1")]
567 pub sources: ::prost::alloc::vec::Vec<IngestSource>,
568}
569#[derive(Clone, Copy, PartialEq, ::prost::Message)]
570pub struct ScaleParameter {
571 #[prost(oneof = "scale_parameter::ScaleParameter", tags = "1, 2, 3")]
572 pub scale_parameter: ::core::option::Option<scale_parameter::ScaleParameter>,
573}
574pub mod scale_parameter {
576 #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
577 pub enum ScaleParameter {
578 #[prost(double, tag = "1")]
579 TrueFrameRate(f64),
580 #[prost(message, tag = "2")]
581 EndingTimestamp(super::super::super::super::google::protobuf::Timestamp),
582 #[prost(double, tag = "3")]
583 ScaleFactor(f64),
584 }
585}
586#[derive(Clone, PartialEq, ::prost::Message)]
587pub struct IngestRequest {
588 #[prost(string, tag = "1")]
589 pub dataset_rid: ::prost::alloc::string::String,
590 #[prost(string, repeated, tag = "2")]
591 pub runs_to_expand: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
592 #[prost(message, repeated, tag = "3")]
593 pub items: ::prost::alloc::vec::Vec<IngestItem>,
594 #[prost(map = "string, string", tag = "4")]
595 pub tags: ::std::collections::HashMap<
596 ::prost::alloc::string::String,
597 ::prost::alloc::string::String,
598 >,
599}
600#[derive(Clone, PartialEq, ::prost::Message)]
601pub struct IngestResponse {
602 #[prost(string, tag = "1")]
603 pub ingest_job_rid: ::prost::alloc::string::String,
604}
605#[derive(Clone, PartialEq, ::prost::Message)]
606pub struct IngestItem {
607 #[prost(map = "string, string", tag = "1")]
608 pub tags: ::std::collections::HashMap<
609 ::prost::alloc::string::String,
610 ::prost::alloc::string::String,
611 >,
612 #[prost(oneof = "ingest_item::Item", tags = "2, 3, 4, 5, 6, 7, 8")]
613 pub item: ::core::option::Option<ingest_item::Item>,
614}
615pub mod ingest_item {
617 #[derive(Clone, PartialEq, ::prost::Oneof)]
618 pub enum Item {
619 #[prost(message, tag = "2")]
620 File(super::FileIngestItem),
621 #[prost(message, tag = "3")]
622 Log(super::LogIngestItem),
623 #[prost(message, tag = "4")]
624 Containerized(super::ContainerizedIngestItem),
625 #[prost(message, tag = "5")]
626 Video(super::VideoIngestItem),
627 #[prost(message, tag = "6")]
628 PointCloud(super::PointCloudIngestItem),
629 #[prost(message, tag = "7")]
630 Mcap(super::McapIngestItem),
631 #[prost(message, tag = "8")]
632 Dataflash(super::DataflashIngestItem),
633 }
634}
635pub mod ingest_service_client {
637 #![allow(
638 unused_variables,
639 dead_code,
640 missing_docs,
641 clippy::wildcard_imports,
642 clippy::let_unit_value,
643 )]
644 use tonic::codegen::*;
645 use tonic::codegen::http::Uri;
646 #[derive(Debug, Clone)]
647 pub struct IngestServiceClient<T> {
648 inner: tonic::client::Grpc<T>,
649 }
650 impl IngestServiceClient<tonic::transport::Channel> {
651 pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
653 where
654 D: TryInto<tonic::transport::Endpoint>,
655 D::Error: Into<StdError>,
656 {
657 let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
658 Ok(Self::new(conn))
659 }
660 }
661 impl<T> IngestServiceClient<T>
662 where
663 T: tonic::client::GrpcService<tonic::body::Body>,
664 T::Error: Into<StdError>,
665 T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
666 <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
667 {
668 pub fn new(inner: T) -> Self {
669 let inner = tonic::client::Grpc::new(inner);
670 Self { inner }
671 }
672 pub fn with_origin(inner: T, origin: Uri) -> Self {
673 let inner = tonic::client::Grpc::with_origin(inner, origin);
674 Self { inner }
675 }
676 pub fn with_interceptor<F>(
677 inner: T,
678 interceptor: F,
679 ) -> IngestServiceClient<InterceptedService<T, F>>
680 where
681 F: tonic::service::Interceptor,
682 T::ResponseBody: Default,
683 T: tonic::codegen::Service<
684 http::Request<tonic::body::Body>,
685 Response = http::Response<
686 <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
687 >,
688 >,
689 <T as tonic::codegen::Service<
690 http::Request<tonic::body::Body>,
691 >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
692 {
693 IngestServiceClient::new(InterceptedService::new(inner, interceptor))
694 }
695 #[must_use]
700 pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
701 self.inner = self.inner.send_compressed(encoding);
702 self
703 }
704 #[must_use]
706 pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
707 self.inner = self.inner.accept_compressed(encoding);
708 self
709 }
710 #[must_use]
714 pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
715 self.inner = self.inner.max_decoding_message_size(limit);
716 self
717 }
718 #[must_use]
722 pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
723 self.inner = self.inner.max_encoding_message_size(limit);
724 self
725 }
726 pub async fn ingest(
727 &mut self,
728 request: impl tonic::IntoRequest<super::IngestRequest>,
729 ) -> std::result::Result<tonic::Response<super::IngestResponse>, tonic::Status> {
730 self.inner
731 .ready()
732 .await
733 .map_err(|e| {
734 tonic::Status::unknown(
735 format!("Service was not ready: {}", e.into()),
736 )
737 })?;
738 let codec = tonic::codec::ProstCodec::default();
739 let path = http::uri::PathAndQuery::from_static(
740 "/nominal.ingest.v2.IngestService/Ingest",
741 );
742 let mut req = request.into_request();
743 req.extensions_mut()
744 .insert(GrpcMethod::new("nominal.ingest.v2.IngestService", "Ingest"));
745 self.inner.unary(req, path, codec).await
746 }
747 }
748}