// This file is @generated by prost-build.
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct Status {
    #[prost(int64, tag = "1")]
    pub code: i64,
    #[prost(string, tag = "2")]
    pub symbol: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NumericDatapoint {
    #[prost(int64, tag = "1")]
    pub timestamp: i64,
    #[prost(double, tag = "2")]
    pub value: f64,
    #[prost(message, optional, tag = "3")]
    pub status: ::core::option::Option<Status>,
    #[prost(bool, tag = "4")]
    pub null_value: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct NumericDatapoints {
    #[prost(message, repeated, tag = "1")]
    pub datapoints: ::prost::alloc::vec::Vec<NumericDatapoint>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct StringDatapoint {
    #[prost(int64, tag = "1")]
    pub timestamp: i64,
    #[prost(string, tag = "2")]
    pub value: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "3")]
    pub status: ::core::option::Option<Status>,
    #[prost(bool, tag = "4")]
    pub null_value: bool,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct StringDatapoints {
    #[prost(message, repeated, tag = "1")]
    pub datapoints: ::prost::alloc::vec::Vec<StringDatapoint>,
}
#[derive(Clone, Copy, PartialEq, ::prost::Message)]
pub struct AggregateDatapoint {
    #[prost(int64, tag = "1")]
    pub timestamp: i64,
    #[prost(double, tag = "2")]
    pub average: f64,
    #[prost(double, tag = "3")]
    pub max: f64,
    #[prost(double, tag = "4")]
    pub min: f64,
    #[prost(double, tag = "5")]
    pub count: f64,
    #[prost(double, tag = "6")]
    pub sum: f64,
    #[prost(double, tag = "7")]
    pub interpolation: f64,
    #[prost(double, tag = "8")]
    pub step_interpolation: f64,
    #[prost(double, tag = "9")]
    pub continuous_variance: f64,
    #[prost(double, tag = "10")]
    pub discrete_variance: f64,
    #[prost(double, tag = "11")]
    pub total_variation: f64,
    #[prost(double, tag = "12")]
    pub count_good: f64,
    #[prost(double, tag = "13")]
    pub count_uncertain: f64,
    #[prost(double, tag = "14")]
    pub count_bad: f64,
    #[prost(double, tag = "15")]
    pub duration_good: f64,
    #[prost(double, tag = "16")]
    pub duration_uncertain: f64,
    #[prost(double, tag = "17")]
    pub duration_bad: f64,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct AggregateDatapoints {
    #[prost(message, repeated, tag = "1")]
    pub datapoints: ::prost::alloc::vec::Vec<AggregateDatapoint>,
}
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct InstanceId {
    #[prost(string, tag = "1")]
    pub space: ::prost::alloc::string::String,
    #[prost(string, tag = "2")]
    pub external_id: ::prost::alloc::string::String,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataPointInsertionItem {
    #[prost(
        oneof = "data_point_insertion_item::TimeSeriesReference",
        tags = "1, 2, 5"
    )]
    pub time_series_reference:
        ::core::option::Option<data_point_insertion_item::TimeSeriesReference>,
    #[prost(oneof = "data_point_insertion_item::DatapointType", tags = "3, 4")]
    pub datapoint_type: ::core::option::Option<data_point_insertion_item::DatapointType>,
}
/// Nested message and enum types in `DataPointInsertionItem`.
pub mod data_point_insertion_item {
    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
    pub enum TimeSeriesReference {
        #[prost(int64, tag = "1")]
        Id(i64),
        #[prost(string, tag = "2")]
        ExternalId(::prost::alloc::string::String),
        #[prost(message, tag = "5")]
        InstanceId(super::InstanceId),
    }
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum DatapointType {
        #[prost(message, tag = "3")]
        NumericDatapoints(super::NumericDatapoints),
        #[prost(message, tag = "4")]
        StringDatapoints(super::StringDatapoints),
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataPointInsertionRequest {
    #[prost(message, repeated, tag = "1")]
    pub items: ::prost::alloc::vec::Vec<DataPointInsertionItem>,
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataPointListItem {
    #[prost(int64, tag = "1")]
    pub id: i64,
    #[prost(string, tag = "2")]
    pub external_id: ::prost::alloc::string::String,
    #[prost(message, optional, tag = "11")]
    pub instance_id: ::core::option::Option<InstanceId>,
    #[prost(bool, tag = "6")]
    pub is_string: bool,
    #[prost(bool, tag = "7")]
    pub is_step: bool,
    #[prost(string, tag = "8")]
    pub unit: ::prost::alloc::string::String,
    #[prost(string, tag = "9")]
    pub next_cursor: ::prost::alloc::string::String,
    #[prost(string, tag = "10")]
    pub unit_external_id: ::prost::alloc::string::String,
    #[prost(oneof = "data_point_list_item::DatapointType", tags = "3, 4, 5")]
    pub datapoint_type: ::core::option::Option<data_point_list_item::DatapointType>,
}
/// Nested message and enum types in `DataPointListItem`.
pub mod data_point_list_item {
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum DatapointType {
        #[prost(message, tag = "3")]
        NumericDatapoints(super::NumericDatapoints),
        #[prost(message, tag = "4")]
        StringDatapoints(super::StringDatapoints),
        #[prost(message, tag = "5")]
        AggregateDatapoints(super::AggregateDatapoints),
    }
}
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct DataPointListResponse {
    #[prost(message, repeated, tag = "1")]
    pub items: ::prost::alloc::vec::Vec<DataPointListItem>,
}
