// This file is @generated by prost-build.
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ExecuteIngestTransformRequest {
    #[prost(string, tag = "1")]
    pub transform_uuid: ::prost::alloc::string::String,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct ExecuteIngestTransformResponse {}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LoadRunnableTransformRequest {
    #[prost(string, tag = "1")]
    pub transform_uuid: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct LoadRunnableTransformResponse {
    #[prost(string, tag = "1")]
    pub transform_uuid: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub ingest_job_uuid: ::prost::alloc::string::String,
    #[prost(string, tag = "3")]
    pub org_uuid: ::prost::alloc::string::String,
    #[prost(enumeration = "IngestTransformType", tag = "4")]
    pub transform_type: i32,
    #[prost(map = "string, string", tag = "6")]
    pub arguments: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        ::prost::alloc::string::String,
    >,
    #[prost(string, optional, tag = "7")]
    pub extractor_rid: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, tag = "13")]
    pub ingest_job_rid: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "9")]
    pub timestamp_metadata: ::core::option::Option<
        super::super::ingest::v2::TimestampMetadata,
    >,
    #[prost(
        oneof = "load_runnable_transform_response::Payload",
        tags = "10, 11, 12, 14, 15"
    )]
    pub payload: ::core::option::Option<load_runnable_transform_response::Payload>,
}
/// Nested message and enum types in `LoadRunnableTransformResponse`.
pub mod load_runnable_transform_response {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Payload {
        #[prost(message, tag = "10")]
        Containerized(super::ContainerizedTransformPayload),
        #[prost(message, tag = "11")]
        Mcap(super::McapTransformPayload),
        #[prost(message, tag = "12")]
        Dataflash(super::DataflashTransformPayload),
        #[prost(message, tag = "14")]
        ParquetArchive(super::ParquetArchiveTransformPayload),
        #[prost(message, tag = "15")]
        FileCopy(super::FileCopyTransformPayload),
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct McapTransformPayload {
    #[prost(message, optional, tag = "1")]
    pub source: ::core::option::Option<super::super::ingest::v2::IngestSource>,
    #[prost(map = "string, string", tag = "2")]
    pub tags: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        ::prost::alloc::string::String,
    >,
    #[prost(message, optional, tag = "3")]
    pub channels: ::core::option::Option<McapChannelFilter>,
    #[prost(bool, tag = "4")]
    pub ignore_invalid_topics: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct McapChannelFilter {
    #[prost(oneof = "mcap_channel_filter::Filter", tags = "1, 2")]
    pub filter: ::core::option::Option<mcap_channel_filter::Filter>,
}
/// Nested message and enum types in `McapChannelFilter`.
pub mod mcap_channel_filter {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Filter {
        #[prost(message, tag = "1")]
        IncludeTopics(super::McapTopics),
        #[prost(message, tag = "2")]
        ExcludeTopics(super::McapTopics),
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct McapTopics {
    #[prost(string, repeated, tag = "1")]
    pub topics: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataflashTransformPayload {
    #[prost(message, optional, tag = "1")]
    pub source: ::core::option::Option<super::super::ingest::v2::IngestSource>,
    #[prost(map = "string, string", tag = "2")]
    pub tags: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        ::prost::alloc::string::String,
    >,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ParquetArchiveTransformPayload {
    #[prost(message, optional, tag = "1")]
    pub source: ::core::option::Option<super::super::ingest::v2::IngestSource>,
    #[prost(message, optional, tag = "2")]
    pub timestamp_metadata: ::core::option::Option<
        super::super::ingest::v2::TimestampMetadata,
    >,
    #[prost(message, optional, tag = "3")]
    pub format: ::core::option::Option<super::super::ingest::v2::ParquetFormat>,
    #[prost(map = "string, string", tag = "4")]
    pub units: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        ::prost::alloc::string::String,
    >,
    #[prost(map = "string, string", tag = "5")]
    pub tags: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        ::prost::alloc::string::String,
    >,
    #[prost(string, optional, tag = "6")]
    pub channel_prefix: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(map = "string, string", tag = "7")]
    pub channel_name_overrides: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        ::prost::alloc::string::String,
    >,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct FileCopyTransformPayload {
    #[prost(message, optional, tag = "1")]
    pub file: ::core::option::Option<super::super::ingest::v2::FileIngestItem>,
    #[prost(map = "string, string", tag = "2")]
    pub tags: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        ::prost::alloc::string::String,
    >,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ContainerizedTransformPayload {
    #[prost(map = "string, message", tag = "1")]
    pub sources: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        super::super::ingest::v2::IngestSource,
    >,
    #[prost(map = "string, string", tag = "2")]
    pub tags: ::std::collections::HashMap<
        ::prost::alloc::string::String,
        ::prost::alloc::string::String,
    >,
    #[prost(string, repeated, tag = "3")]
    pub runs_to_expand: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarkTransformSucceededRequest {
    #[prost(string, tag = "1")]
    pub transform_uuid: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct MarkTransformFailedRequest {
    #[prost(string, tag = "1")]
    pub transform_uuid: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub safe_error_message: ::prost::alloc::string::String,
    #[prost(enumeration = "TransformFailureKind", tag = "3")]
    pub failure_kind: i32,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum TransformFailureKind {
    Unspecified = 0,
    User = 1,
    System = 2,
}
impl TransformFailureKind {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::Unspecified => "TRANSFORM_FAILURE_KIND_UNSPECIFIED",
            Self::User => "TRANSFORM_FAILURE_KIND_USER",
            Self::System => "TRANSFORM_FAILURE_KIND_SYSTEM",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "TRANSFORM_FAILURE_KIND_UNSPECIFIED" => Some(Self::Unspecified),
            "TRANSFORM_FAILURE_KIND_USER" => Some(Self::User),
            "TRANSFORM_FAILURE_KIND_SYSTEM" => Some(Self::System),
            _ => None,
        }
    }
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, PartialOrd, Ord, ::prost::Enumeration)]
#[repr(i32)]
pub enum IngestTransformType {
    Unspecified = 0,
    Containerized = 1,
    Mcap = 2,
    Dataflash = 3,
    ParquetArchive = 4,
    FileCopy = 5,
}
impl IngestTransformType {
    /// String value of the enum field names used in the ProtoBuf definition.
    ///
    /// The values are not transformed in any way and thus are considered stable
    /// (if the ProtoBuf definition does not change) and safe for programmatic use.
    pub fn as_str_name(&self) -> &'static str {
        match self {
            Self::Unspecified => "INGEST_TRANSFORM_TYPE_UNSPECIFIED",
            Self::Containerized => "INGEST_TRANSFORM_TYPE_CONTAINERIZED",
            Self::Mcap => "INGEST_TRANSFORM_TYPE_MCAP",
            Self::Dataflash => "INGEST_TRANSFORM_TYPE_DATAFLASH",
            Self::ParquetArchive => "INGEST_TRANSFORM_TYPE_PARQUET_ARCHIVE",
            Self::FileCopy => "INGEST_TRANSFORM_TYPE_FILE_COPY",
        }
    }
    /// Creates an enum from field names used in the ProtoBuf definition.
    pub fn from_str_name(value: &str) -> ::core::option::Option<Self> {
        match value {
            "INGEST_TRANSFORM_TYPE_UNSPECIFIED" => Some(Self::Unspecified),
            "INGEST_TRANSFORM_TYPE_CONTAINERIZED" => Some(Self::Containerized),
            "INGEST_TRANSFORM_TYPE_MCAP" => Some(Self::Mcap),
            "INGEST_TRANSFORM_TYPE_DATAFLASH" => Some(Self::Dataflash),
            "INGEST_TRANSFORM_TYPE_PARQUET_ARCHIVE" => Some(Self::ParquetArchive),
            "INGEST_TRANSFORM_TYPE_FILE_COPY" => Some(Self::FileCopy),
            _ => None,
        }
    }
}
