Skip to main content

nominal_api_proto/proto/
nominal.ingest.v2.rs

1// This file is @generated by prost-build.
2#[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}
7/// Nested message and enum types in `IngestSource`.
8pub 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    /// String value of the enum field names used in the ProtoBuf definition.
150    ///
151    /// The values are not transformed in any way and thus are considered stable
152    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
153    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    /// Creates an enum from field names used in the ProtoBuf definition.
161    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}
170/// Generated client implementations.
171pub 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        /// Attempt to create a new client by connecting to a given endpoint.
187        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        /// Compress requests with the given encoding.
233        ///
234        /// This requires the server to support it otherwise it might respond with an
235        /// error.
236        #[must_use]
237        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
238            self.inner = self.inner.send_compressed(encoding);
239            self
240        }
241        /// Enable decompressing responses.
242        #[must_use]
243        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
244            self.inner = self.inner.accept_compressed(encoding);
245            self
246        }
247        /// Limits the maximum size of a decoded message.
248        ///
249        /// Default: `4MB`
250        #[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        /// Limits the maximum size of an encoded message.
256        ///
257        /// Default: `usize::MAX`
258        #[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}
424/// Nested message and enum types in `FileIngestOptions`.
425pub 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}
455/// Nested message and enum types in `CsvFormat`.
456pub 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}
470/// Nested message and enum types in `ParquetFormat`.
471pub 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}
524/// Nested message and enum types in `McapChannelSelection`.
525pub 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")]
585    pub manifest: ::core::option::Option<video_timestamp_manifest::Manifest>,
586}
587/// Nested message and enum types in `VideoTimestampManifest`.
588pub 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    }
596}
597#[derive(Clone, Copy, PartialEq, ::prost::Message)]
598pub struct NoTimestampManifest {
599    #[prost(message, optional, tag = "1")]
600    pub starting_timestamp: ::core::option::Option<
601        super::super::super::google::protobuf::Timestamp,
602    >,
603    #[prost(message, optional, tag = "2")]
604    pub scale_parameter: ::core::option::Option<ScaleParameter>,
605}
606#[derive(Clone, PartialEq, ::prost::Message)]
607pub struct TimestampManifestFiles {
608    #[prost(message, repeated, tag = "1")]
609    pub sources: ::prost::alloc::vec::Vec<IngestSource>,
610}
611#[derive(Clone, Copy, PartialEq, ::prost::Message)]
612pub struct ScaleParameter {
613    #[prost(oneof = "scale_parameter::ScaleParameter", tags = "1, 2, 3")]
614    pub scale_parameter: ::core::option::Option<scale_parameter::ScaleParameter>,
615}
616/// Nested message and enum types in `ScaleParameter`.
617pub mod scale_parameter {
618    #[derive(Clone, Copy, PartialEq, ::prost::Oneof)]
619    pub enum ScaleParameter {
620        #[prost(double, tag = "1")]
621        TrueFrameRate(f64),
622        #[prost(message, tag = "2")]
623        EndingTimestamp(super::super::super::super::google::protobuf::Timestamp),
624        #[prost(double, tag = "3")]
625        ScaleFactor(f64),
626    }
627}
628#[derive(Clone, PartialEq, ::prost::Message)]
629pub struct IngestRequest {
630    #[prost(string, tag = "1")]
631    pub dataset_rid: ::prost::alloc::string::String,
632    #[prost(string, repeated, tag = "2")]
633    pub runs_to_expand: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
634    #[prost(message, repeated, tag = "3")]
635    pub items: ::prost::alloc::vec::Vec<IngestItem>,
636    #[prost(map = "string, string", tag = "4")]
637    pub tags: ::std::collections::HashMap<
638        ::prost::alloc::string::String,
639        ::prost::alloc::string::String,
640    >,
641}
642#[derive(Clone, PartialEq, ::prost::Message)]
643pub struct IngestResponse {
644    #[prost(string, tag = "1")]
645    pub ingest_job_rid: ::prost::alloc::string::String,
646}
647#[derive(Clone, PartialEq, ::prost::Message)]
648pub struct IngestItem {
649    #[prost(map = "string, string", tag = "1")]
650    pub tags: ::std::collections::HashMap<
651        ::prost::alloc::string::String,
652        ::prost::alloc::string::String,
653    >,
654    #[prost(oneof = "ingest_item::Item", tags = "2, 3, 4, 5, 6, 7, 8")]
655    pub item: ::core::option::Option<ingest_item::Item>,
656}
657/// Nested message and enum types in `IngestItem`.
658pub mod ingest_item {
659    #[derive(Clone, PartialEq, ::prost::Oneof)]
660    pub enum Item {
661        #[prost(message, tag = "2")]
662        File(super::FileIngestItem),
663        #[prost(message, tag = "3")]
664        Log(super::LogIngestItem),
665        #[prost(message, tag = "4")]
666        Containerized(super::ContainerizedIngestItem),
667        #[prost(message, tag = "5")]
668        Video(super::VideoIngestItem),
669        #[prost(message, tag = "6")]
670        PointCloud(super::PointCloudIngestItem),
671        #[prost(message, tag = "7")]
672        Mcap(super::McapIngestItem),
673        #[prost(message, tag = "8")]
674        Dataflash(super::DataflashIngestItem),
675    }
676}
677/// Generated client implementations.
678pub mod ingest_service_client {
679    #![allow(
680        unused_variables,
681        dead_code,
682        missing_docs,
683        clippy::wildcard_imports,
684        clippy::let_unit_value,
685    )]
686    use tonic::codegen::*;
687    use tonic::codegen::http::Uri;
688    #[derive(Debug, Clone)]
689    pub struct IngestServiceClient<T> {
690        inner: tonic::client::Grpc<T>,
691    }
692    impl IngestServiceClient<tonic::transport::Channel> {
693        /// Attempt to create a new client by connecting to a given endpoint.
694        pub async fn connect<D>(dst: D) -> Result<Self, tonic::transport::Error>
695        where
696            D: TryInto<tonic::transport::Endpoint>,
697            D::Error: Into<StdError>,
698        {
699            let conn = tonic::transport::Endpoint::new(dst)?.connect().await?;
700            Ok(Self::new(conn))
701        }
702    }
703    impl<T> IngestServiceClient<T>
704    where
705        T: tonic::client::GrpcService<tonic::body::Body>,
706        T::Error: Into<StdError>,
707        T::ResponseBody: Body<Data = Bytes> + std::marker::Send + 'static,
708        <T::ResponseBody as Body>::Error: Into<StdError> + std::marker::Send,
709    {
710        pub fn new(inner: T) -> Self {
711            let inner = tonic::client::Grpc::new(inner);
712            Self { inner }
713        }
714        pub fn with_origin(inner: T, origin: Uri) -> Self {
715            let inner = tonic::client::Grpc::with_origin(inner, origin);
716            Self { inner }
717        }
718        pub fn with_interceptor<F>(
719            inner: T,
720            interceptor: F,
721        ) -> IngestServiceClient<InterceptedService<T, F>>
722        where
723            F: tonic::service::Interceptor,
724            T::ResponseBody: Default,
725            T: tonic::codegen::Service<
726                http::Request<tonic::body::Body>,
727                Response = http::Response<
728                    <T as tonic::client::GrpcService<tonic::body::Body>>::ResponseBody,
729                >,
730            >,
731            <T as tonic::codegen::Service<
732                http::Request<tonic::body::Body>,
733            >>::Error: Into<StdError> + std::marker::Send + std::marker::Sync,
734        {
735            IngestServiceClient::new(InterceptedService::new(inner, interceptor))
736        }
737        /// Compress requests with the given encoding.
738        ///
739        /// This requires the server to support it otherwise it might respond with an
740        /// error.
741        #[must_use]
742        pub fn send_compressed(mut self, encoding: CompressionEncoding) -> Self {
743            self.inner = self.inner.send_compressed(encoding);
744            self
745        }
746        /// Enable decompressing responses.
747        #[must_use]
748        pub fn accept_compressed(mut self, encoding: CompressionEncoding) -> Self {
749            self.inner = self.inner.accept_compressed(encoding);
750            self
751        }
752        /// Limits the maximum size of a decoded message.
753        ///
754        /// Default: `4MB`
755        #[must_use]
756        pub fn max_decoding_message_size(mut self, limit: usize) -> Self {
757            self.inner = self.inner.max_decoding_message_size(limit);
758            self
759        }
760        /// Limits the maximum size of an encoded message.
761        ///
762        /// Default: `usize::MAX`
763        #[must_use]
764        pub fn max_encoding_message_size(mut self, limit: usize) -> Self {
765            self.inner = self.inner.max_encoding_message_size(limit);
766            self
767        }
768        pub async fn ingest(
769            &mut self,
770            request: impl tonic::IntoRequest<super::IngestRequest>,
771        ) -> std::result::Result<tonic::Response<super::IngestResponse>, tonic::Status> {
772            self.inner
773                .ready()
774                .await
775                .map_err(|e| {
776                    tonic::Status::unknown(
777                        format!("Service was not ready: {}", e.into()),
778                    )
779                })?;
780            let codec = tonic::codec::ProstCodec::default();
781            let path = http::uri::PathAndQuery::from_static(
782                "/nominal.ingest.v2.IngestService/Ingest",
783            );
784            let mut req = request.into_request();
785            req.extensions_mut()
786                .insert(GrpcMethod::new("nominal.ingest.v2.IngestService", "Ingest"));
787            self.inner.unary(req, path, codec).await
788        }
789    }
790}