// @generated
// This file is @generated by prost-build.
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CalculatedChannel {
    #[prost(string, tag="1")]
    pub calculated_channel_id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub organization_id: ::prost::alloc::string::String,
    #[prost(string, optional, tag="3")]
    pub client_key: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag="4")]
    pub archived_date: ::core::option::Option<::pbjson_types::Timestamp>,
    #[prost(string, tag="5")]
    pub version_id: ::prost::alloc::string::String,
    #[prost(uint32, tag="6")]
    pub version: u32,
    #[prost(string, tag="7")]
    pub name: ::prost::alloc::string::String,
    #[prost(string, tag="8")]
    pub description: ::prost::alloc::string::String,
    #[prost(string, tag="9")]
    pub change_message: ::prost::alloc::string::String,
    #[prost(string, tag="10")]
    pub user_notes: ::prost::alloc::string::String,
    #[prost(string, optional, tag="18")]
    pub units: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag="11")]
    pub created_date: ::core::option::Option<::pbjson_types::Timestamp>,
    #[prost(message, optional, tag="12")]
    pub modified_date: ::core::option::Option<::pbjson_types::Timestamp>,
    #[prost(message, optional, tag="15")]
    pub calculated_channel_configuration: ::core::option::Option<CalculatedChannelConfiguration>,
    #[prost(string, tag="16")]
    pub created_by_user_id: ::prost::alloc::string::String,
    #[prost(string, tag="17")]
    pub modified_by_user_id: ::prost::alloc::string::String,
    #[prost(message, repeated, tag="19")]
    pub function_dependencies: ::prost::alloc::vec::Vec<super::super::common::r#type::v1::FunctionDependency>,
    #[prost(message, repeated, tag="20")]
    pub metadata: ::prost::alloc::vec::Vec<super::super::metadata::v1::MetadataValue>,
    #[prost(bool, tag="21")]
    pub is_archived: bool,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CalculatedChannelConfiguration {
    #[prost(message, optional, tag="1")]
    pub asset_configuration: ::core::option::Option<CalculatedChannelAssetConfiguration>,
    #[prost(message, optional, tag="2")]
    pub query_configuration: ::core::option::Option<CalculatedChannelQueryConfiguration>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CalculatedChannelAssetConfiguration {
    #[prost(oneof="calculated_channel_asset_configuration::AssetScope", tags="1, 2")]
    pub asset_scope: ::core::option::Option<calculated_channel_asset_configuration::AssetScope>,
}
/// Nested message and enum types in `CalculatedChannelAssetConfiguration`.
pub mod calculated_channel_asset_configuration {
    #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
    pub struct AssetSelection {
        #[prost(string, repeated, tag="1")]
        pub asset_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
        #[prost(string, repeated, tag="2")]
        pub tag_ids: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    }
    #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum AssetScope {
        #[prost(bool, tag="1")]
        AllAssets(bool),
        #[prost(message, tag="2")]
        Selection(AssetSelection),
    }
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CalculatedChannelQueryConfiguration {
    #[prost(oneof="calculated_channel_query_configuration::Query", tags="1")]
    pub query: ::core::option::Option<calculated_channel_query_configuration::Query>,
}
/// Nested message and enum types in `CalculatedChannelQueryConfiguration`.
pub mod calculated_channel_query_configuration {
    #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
    pub struct Sel {
        #[prost(string, tag="1")]
        pub expression: ::prost::alloc::string::String,
        #[prost(message, repeated, tag="2")]
        pub expression_channel_references: ::prost::alloc::vec::Vec<super::CalculatedChannelAbstractChannelReference>,
    }
    #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Query {
        #[prost(message, tag="1")]
        Sel(Sel),
    }
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CalculatedChannelAbstractChannelReference {
    #[prost(string, tag="1")]
    pub channel_reference: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub channel_identifier: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CalculatedChannelValidationResult {
    #[prost(string, tag="1")]
    pub asset_id: ::prost::alloc::string::String,
    #[prost(string, optional, tag="2")]
    pub asset_name: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, repeated, tag="3")]
    pub tag_names: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
    #[prost(string, repeated, tag="4")]
    pub missing_channels: ::prost::alloc::vec::Vec<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetCalculatedChannelRequest {
    #[prost(string, tag="1")]
    pub calculated_channel_id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub client_key: ::prost::alloc::string::String,
    #[prost(string, tag="3")]
    pub organization_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct GetCalculatedChannelResponse {
    #[prost(message, optional, tag="1")]
    pub calculated_channel: ::core::option::Option<CalculatedChannel>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateCalculatedChannelRequest {
    #[prost(string, tag="1")]
    pub name: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub description: ::prost::alloc::string::String,
    #[prost(string, tag="3")]
    pub user_notes: ::prost::alloc::string::String,
    #[prost(string, optional, tag="7")]
    pub units: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag="4")]
    pub client_key: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, optional, tag="5")]
    pub calculated_channel_configuration: ::core::option::Option<CalculatedChannelConfiguration>,
    #[prost(message, repeated, tag="8")]
    pub metadata: ::prost::alloc::vec::Vec<super::super::metadata::v1::MetadataValue>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CreateCalculatedChannelResponse {
    #[prost(message, optional, tag="1")]
    pub calculated_channel: ::core::option::Option<CalculatedChannel>,
    #[prost(message, repeated, tag="2")]
    pub inapplicable_assets: ::prost::alloc::vec::Vec<CalculatedChannelValidationResult>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListCalculatedChannelsRequest {
    #[prost(uint32, tag="1")]
    pub page_size: u32,
    #[prost(string, tag="2")]
    pub page_token: ::prost::alloc::string::String,
    #[prost(string, tag="3")]
    pub filter: ::prost::alloc::string::String,
    #[prost(string, tag="4")]
    pub organization_id: ::prost::alloc::string::String,
    #[prost(string, tag="5")]
    pub order_by: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListCalculatedChannelsResponse {
    #[prost(message, repeated, tag="1")]
    pub calculated_channels: ::prost::alloc::vec::Vec<CalculatedChannel>,
    #[prost(string, tag="2")]
    pub next_page_token: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateCalculatedChannelRequest {
    #[prost(message, optional, tag="1")]
    pub calculated_channel: ::core::option::Option<CalculatedChannel>,
    #[prost(message, optional, tag="2")]
    pub update_mask: ::core::option::Option<::pbjson_types::FieldMask>,
    #[prost(string, optional, tag="3")]
    pub user_notes: ::core::option::Option<::prost::alloc::string::String>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UpdateCalculatedChannelResponse {
    #[prost(message, optional, tag="1")]
    pub calculated_channel: ::core::option::Option<CalculatedChannel>,
    #[prost(message, repeated, tag="2")]
    pub inapplicable_assets: ::prost::alloc::vec::Vec<CalculatedChannelValidationResult>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListCalculatedChannelVersionsRequest {
    #[prost(string, tag="1")]
    pub calculated_channel_id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub client_key: ::prost::alloc::string::String,
    #[prost(uint32, tag="3")]
    pub page_size: u32,
    #[prost(string, tag="4")]
    pub page_token: ::prost::alloc::string::String,
    #[prost(string, tag="5")]
    pub filter: ::prost::alloc::string::String,
    #[prost(string, tag="6")]
    pub organization_id: ::prost::alloc::string::String,
    #[prost(string, tag="7")]
    pub order_by: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListCalculatedChannelVersionsResponse {
    #[prost(message, repeated, tag="1")]
    pub calculated_channel_versions: ::prost::alloc::vec::Vec<CalculatedChannel>,
    #[prost(string, tag="2")]
    pub next_page_token: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResolveCalculatedChannelRequest {
    #[prost(string, tag="3")]
    pub organization_id: ::prost::alloc::string::String,
    #[prost(message, optional, tag="4")]
    pub assets: ::core::option::Option<super::super::common::r#type::v1::NamedResources>,
    #[prost(message, optional, tag="5")]
    pub run: ::core::option::Option<super::super::common::r#type::v1::ResourceIdentifier>,
    #[prost(oneof="resolve_calculated_channel_request::CalculatedChannel", tags="1, 2")]
    pub calculated_channel: ::core::option::Option<resolve_calculated_channel_request::CalculatedChannel>,
}
/// Nested message and enum types in `ResolveCalculatedChannelRequest`.
pub mod resolve_calculated_channel_request {
    #[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum CalculatedChannel {
        #[prost(message, tag="1")]
        Identifier(super::super::super::common::r#type::v1::ResourceIdentifier),
        #[prost(message, tag="2")]
        CalculatedChannelConfiguration(super::CalculatedChannelConfiguration),
    }
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResolvedCalculatedChannel {
    #[prost(string, tag="1")]
    pub asset_name: ::prost::alloc::string::String,
    #[prost(message, optional, tag="2")]
    pub expression_request: ::core::option::Option<super::v1::ExpressionRequest>,
    #[prost(enumeration="super::super::common::r#type::v1::ChannelDataType", tag="3")]
    pub output_data_type: i32,
    #[prost(string, tag="4")]
    pub asset_id: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct UnresolvedCalculatedChannel {
    #[prost(string, tag="1")]
    pub asset_name: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub error_message: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ResolveCalculatedChannelResponse {
    #[prost(string, optional, tag="1")]
    pub calculated_channel_id: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(message, repeated, tag="2")]
    pub resolved: ::prost::alloc::vec::Vec<ResolvedCalculatedChannel>,
    #[prost(message, repeated, tag="3")]
    pub unresolved: ::prost::alloc::vec::Vec<UnresolvedCalculatedChannel>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BatchResolveCalculatedChannelsRequest {
    #[prost(message, repeated, tag="1")]
    pub requests: ::prost::alloc::vec::Vec<ResolveCalculatedChannelRequest>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct BatchResolveCalculatedChannelsResponse {
    #[prost(message, repeated, tag="1")]
    pub responses: ::prost::alloc::vec::Vec<ResolveCalculatedChannelResponse>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListResolvedCalculatedChannelsRequest {
    #[prost(string, tag="1")]
    pub asset_id: ::prost::alloc::string::String,
    #[prost(string, tag="2")]
    pub run_id: ::prost::alloc::string::String,
    #[prost(uint32, tag="3")]
    pub page_size: u32,
    #[prost(string, tag="4")]
    pub page_token: ::prost::alloc::string::String,
    #[prost(string, tag="5")]
    pub filter: ::prost::alloc::string::String,
    #[prost(string, tag="6")]
    pub order_by: ::prost::alloc::string::String,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct CalculatedChannelResolution {
    #[prost(message, optional, tag="1")]
    pub calculated_channel: ::core::option::Option<CalculatedChannel>,
    #[prost(message, repeated, tag="2")]
    pub resolved: ::prost::alloc::vec::Vec<ResolvedCalculatedChannel>,
    #[prost(message, repeated, tag="3")]
    pub unresolved: ::prost::alloc::vec::Vec<UnresolvedCalculatedChannel>,
}
#[allow(clippy::derive_partial_eq_without_eq)]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ListResolvedCalculatedChannelsResponse {
    #[prost(message, repeated, tag="1")]
    pub calculated_channel_resolutions: ::prost::alloc::vec::Vec<CalculatedChannelResolution>,
    #[prost(string, tag="3")]
    pub next_page_token: ::prost::alloc::string::String,
}
include!("sift.calculated_channels.v2.tonic.rs");
include!("sift.calculated_channels.v2.serde.rs");
// @@protoc_insertion_point(module)