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