// This file is @generated by prost-build.
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct About {
    #[prost(message, required, tag = "1")]
    pub os_info: about::OsInfo,
    #[prost(message, required, tag = "2")]
    pub de_info: about::DeInfo,
    #[prost(message, required, tag = "3")]
    pub device_info: about::DeviceInfo,
}
/// Nested message and enum types in `About`.
pub mod about {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "snake_case")]
    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
    pub struct OsInfo {
        #[prost(string, optional, tag = "1")]
        pub name: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "2")]
        pub pretty_name: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "3")]
        pub id: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "4")]
        pub id_like: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "5")]
        pub version_id: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "6")]
        pub version: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "7")]
        pub version_codename: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "8")]
        pub ubuntu_codename: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "9")]
        pub home_url: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "10")]
        pub documentation_url: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "11")]
        pub support_url: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "12")]
        pub bug_report_url: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "13")]
        pub privacy_policy_url: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "14")]
        pub os_type: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "15")]
        pub os_architecture: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "16")]
        pub kernel_release: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "17")]
        pub kernel_version: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(bytes = "vec", optional, tag = "18")]
        pub logo: ::core::option::Option<::prost::alloc::vec::Vec<u8>>,
        #[prost(string, optional, tag = "19")]
        pub package_manager: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "20")]
        pub package_manager_version: ::core::option::Option<
            ::prost::alloc::string::String,
        >,
    }
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "snake_case")]
    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
    pub struct DeviceInfo {
        #[prost(string, optional, tag = "1")]
        pub hostname: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "2")]
        pub vendor: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "3")]
        pub model: ::core::option::Option<::prost::alloc::string::String>,
    }
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "snake_case")]
    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
    pub struct DeInfo {
        #[prost(string, optional, tag = "1")]
        pub desktop_environment: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "2")]
        pub version: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "3")]
        pub windowing_system: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "4")]
        pub session_id: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "5")]
        pub session_type: ::core::option::Option<::prost::alloc::string::String>,
        #[prost(string, optional, tag = "6")]
        pub virtual_terminal: ::core::option::Option<::prost::alloc::string::String>,
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AboutRequest {}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AboutResponse {
    #[prost(oneof = "about_response::Response", tags = "1, 2")]
    pub response: ::core::option::Option<about_response::Response>,
}
/// Nested message and enum types in `AboutResponse`.
pub mod about_response {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "snake_case")]
    #[derive(strum::EnumIter)]
    #[derive(Clone, PartialEq, Eq, Hash, ::prost::Oneof)]
    pub enum Response {
        #[prost(message, tag = "1")]
        AboutInfo(super::About),
        #[prost(message, tag = "2")]
        Error(super::AboutResponseError),
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct AboutResponseError {}
