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