use zbus::proxy;
use crate::{ActiveState, Job, KeyValue};
#[proxy(
interface = "org.freedesktop.systemd1.Unit",
default_service = "org.freedesktop.systemd1",
default_path = "/org/freedesktop/systemd1/unit"
)]
pub trait Unit {
fn clean(&self, mask: &[&str]) -> zbus::Result<()>;
fn enqueue_job(&self, job_type: &str, job_mode: &str) -> zbus::Result<(Job, Vec<Job>)>;
fn kill(&self, whom: &str, signal: i32) -> zbus::Result<()>;
fn reload(&self, mode: &str) -> zbus::Result<zbus::zvariant::OwnedObjectPath>;
fn reload_or_restart(&self, mode: &str) -> zbus::Result<zbus::zvariant::OwnedObjectPath>;
fn reload_or_try_restart(&self, mode: &str) -> zbus::Result<zbus::zvariant::OwnedObjectPath>;
fn reset_failed(&self) -> zbus::Result<()>;
fn restart(&self, mode: &str) -> zbus::Result<zbus::zvariant::OwnedObjectPath>;
fn set_properties(
&self,
runtime: bool,
properties: &[(&str, zbus::zvariant::Value<'_>)],
) -> zbus::Result<()>;
fn start(&self, mode: &str) -> zbus::Result<zbus::zvariant::OwnedObjectPath>;
fn stop(&self, mode: &str) -> zbus::Result<zbus::zvariant::OwnedObjectPath>;
fn try_restart(&self, mode: &str) -> zbus::Result<zbus::zvariant::OwnedObjectPath>;
#[zbus(property, name = "AccessSELinuxContext")]
fn access_selinux_context(&self) -> zbus::Result<String>;
#[zbus(property)]
fn activation_details(&self) -> zbus::Result<Vec<KeyValue<String, String>>>;
#[zbus(property)]
fn active_enter_timestamp(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn active_enter_timestamp_monotonic(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn active_exit_timestamp(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn active_exit_timestamp_monotonic(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn active_state(&self) -> zbus::Result<ActiveState>;
#[zbus(property)]
fn after(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn allow_isolate(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn assert_result(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn assert_timestamp(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn assert_timestamp_monotonic(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn before(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn binds_to(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn bound_by(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn can_clean(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn can_freeze(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn can_isolate(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn can_reload(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn can_start(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn can_stop(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn collect_mode(&self) -> zbus::Result<String>;
#[zbus(property)]
fn condition_result(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn condition_timestamp(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn condition_timestamp_monotonic(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn conflicted_by(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn conflicts(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn consists_of(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn default_dependencies(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn description(&self) -> zbus::Result<String>;
#[zbus(property)]
fn documentation(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn drop_in_paths(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn failure_action(&self) -> zbus::Result<String>;
#[zbus(property)]
fn failure_action_exit_status(&self) -> zbus::Result<i32>;
#[zbus(property)]
fn following(&self) -> zbus::Result<String>;
#[zbus(property)]
fn fragment_path(&self) -> zbus::Result<String>;
#[zbus(property)]
fn freezer_state(&self) -> zbus::Result<String>;
#[zbus(property)]
fn id(&self) -> zbus::Result<String>;
#[zbus(property)]
fn ignore_on_isolate(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn inactive_enter_timestamp(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn inactive_enter_timestamp_monotonic(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn inactive_exit_timestamp(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn inactive_exit_timestamp_monotonic(&self) -> zbus::Result<u64>;
#[zbus(property, name = "InvocationID")]
fn invocation_id(&self) -> zbus::Result<Vec<u8>>;
#[zbus(property)]
fn job(&self) -> zbus::Result<(u32, zbus::zvariant::OwnedObjectPath)>;
#[zbus(property, name = "JobRunningTimeoutUSec")]
fn job_running_timeout_usec(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn job_timeout_action(&self) -> zbus::Result<String>;
#[zbus(property)]
fn job_timeout_reboot_argument(&self) -> zbus::Result<String>;
#[zbus(property, name = "JobTimeoutUSec")]
fn job_timeout_usec(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn joins_namespace_of(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn load_error(&self) -> zbus::Result<(String, String)>;
#[zbus(property)]
fn load_state(&self) -> zbus::Result<String>;
#[zbus(property)]
fn markers(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn names(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn need_daemon_reload(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn on_failure(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn on_failure_job_mode(&self) -> zbus::Result<String>;
#[zbus(property)]
fn on_failure_of(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn on_success(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn on_success_job_mode(&self) -> zbus::Result<String>;
#[zbus(property)]
fn on_success_of(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn part_of(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn perpetual(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn propagates_reload_to(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn propagates_stop_to(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn reboot_argument(&self) -> zbus::Result<String>;
#[zbus(property)]
fn refs(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn refuse_manual_start(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn refuse_manual_stop(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn reload_propagated_from(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn required_by(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn requires(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn requires_mounts_for(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn requisite(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn requisite_of(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn slice_of(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn source_path(&self) -> zbus::Result<String>;
#[zbus(property)]
fn start_limit_action(&self) -> zbus::Result<String>;
#[zbus(property)]
fn start_limit_burst(&self) -> zbus::Result<u32>;
#[zbus(property, name = "StartLimitIntervalUSec")]
fn start_limit_interval_usec(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn state_change_timestamp(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn state_change_timestamp_monotonic(&self) -> zbus::Result<u64>;
#[zbus(property)]
fn stop_propagated_from(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn stop_when_unneeded(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn sub_state(&self) -> zbus::Result<String>;
#[zbus(property)]
fn success_action(&self) -> zbus::Result<String>;
#[zbus(property)]
fn success_action_exit_status(&self) -> zbus::Result<i32>;
#[zbus(property)]
fn transient(&self) -> zbus::Result<bool>;
#[zbus(property)]
fn triggered_by(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn triggers(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn unit_file_preset(&self) -> zbus::Result<String>;
#[zbus(property)]
fn unit_file_state(&self) -> zbus::Result<String>;
#[zbus(property)]
fn upheld_by(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn upholds(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn wanted_by(&self) -> zbus::Result<Vec<String>>;
#[zbus(property)]
fn wants(&self) -> zbus::Result<Vec<String>>;
}