// 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 Service {
    #[prost(uint64, required, tag = "1")]
    pub id: u64,
    #[prost(string, required, tag = "2")]
    pub name: ::prost::alloc::string::String,
    #[prost(string, optional, tag = "3")]
    pub description: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(bool, required, tag = "4")]
    pub enabled: bool,
    #[prost(bool, required, tag = "5")]
    pub running: bool,
    #[prost(bool, required, tag = "6")]
    pub failed: bool,
    #[prost(uint32, optional, tag = "7")]
    pub pid: ::core::option::Option<u32>,
    #[prost(string, optional, tag = "8")]
    pub user: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "9")]
    pub group: ::core::option::Option<::prost::alloc::string::String>,
    #[prost(string, optional, tag = "10")]
    pub file_path: ::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 RequestServiceList {}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RequestServiceLogs {
    #[prost(uint64, required, tag = "1")]
    pub service_id: u64,
    #[prost(uint32, optional, tag = "2")]
    pub pid: ::core::option::Option<u32>,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RequestServiceStart {
    #[prost(uint64, required, tag = "1")]
    pub service_id: u64,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RequestServiceStop {
    #[prost(uint64, required, tag = "1")]
    pub service_id: u64,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RequestServiceRestart {
    #[prost(uint64, required, tag = "1")]
    pub service_id: u64,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RequestServiceEnable {
    #[prost(uint64, required, tag = "1")]
    pub service_id: u64,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct RequestServiceDisable {
    #[prost(uint64, required, tag = "1")]
    pub service_id: u64,
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServicesRequest {
    #[prost(oneof = "services_request::Request", tags = "1, 2, 3, 4, 5, 6, 7, 8")]
    pub request: ::core::option::Option<services_request::Request>,
}
/// Nested message and enum types in `ServicesRequest`.
pub mod services_request {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "snake_case")]
    #[derive(strum::EnumIter)]
    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
    pub enum Request {
        #[prost(message, tag = "1")]
        SystemServiceList(super::RequestServiceList),
        #[prost(message, tag = "2")]
        UserServiceList(super::RequestServiceList),
        #[prost(message, tag = "3")]
        ServiceLogs(super::RequestServiceLogs),
        #[prost(message, tag = "4")]
        ServiceStart(super::RequestServiceStart),
        #[prost(message, tag = "5")]
        ServiceStop(super::RequestServiceStop),
        #[prost(message, tag = "6")]
        ServiceRestart(super::RequestServiceRestart),
        #[prost(message, tag = "7")]
        ServiceEnable(super::RequestServiceEnable),
        #[prost(message, tag = "8")]
        ServiceDisable(super::RequestServiceDisable),
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, PartialEq, ::prost::Message)]
pub struct ServicesResponse {
    #[prost(oneof = "services_response::Response", tags = "1, 2, 3, 4")]
    pub response: ::core::option::Option<services_response::Response>,
}
/// Nested message and enum types in `ServicesResponse`.
pub mod services_response {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "snake_case")]
    #[derive(Clone, PartialEq, ::prost::Message)]
    pub struct ServiceList {
        #[prost(message, repeated, tag = "1")]
        pub services: ::prost::alloc::vec::Vec<super::Service>,
    }
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "snake_case")]
    #[derive(strum::EnumIter)]
    #[derive(Clone, PartialEq, ::prost::Oneof)]
    pub enum Response {
        #[prost(message, tag = "1")]
        Services(ServiceList),
        #[prost(string, tag = "2")]
        Logs(::prost::alloc::string::String),
        #[prost(message, tag = "3")]
        Empty(super::super::common::Empty),
        #[prost(message, tag = "4")]
        Error(super::ServicesResponseError),
    }
}
#[derive(serde::Serialize, serde::Deserialize)]
#[serde(rename_all = "snake_case")]
#[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]
pub struct ServicesResponseError {
    #[prost(oneof = "services_response_error::Error", tags = "1, 2, 3")]
    pub error: ::core::option::Option<services_response_error::Error>,
}
/// Nested message and enum types in `ServicesResponseError`.
pub mod services_response_error {
    #[derive(serde::Serialize, serde::Deserialize)]
    #[serde(rename_all = "snake_case")]
    #[derive(strum::EnumIter)]
    #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Oneof)]
    pub enum Error {
        #[prost(message, tag = "1")]
        PermissionDenied(super::super::common::Empty),
        #[prost(message, tag = "2")]
        ServiceNotFound(super::super::common::Empty),
        #[prost(message, tag = "3")]
        EmptyRequest(super::super::common::Empty),
    }
}
