icinga2_api/api/action/
restart_process.rs1use serde::{Deserialize, Serialize};
6
7use crate::types::action::StatusResponse;
8use crate::types::query::ResultsWrapper;
9use crate::types::rest::{RestApiEndpoint, RestApiResponse};
10
11#[derive(Debug, Clone, derive_builder::Builder, Serialize, Deserialize)]
13#[expect(
14 clippy::empty_structs_with_brackets,
15 reason = "derive_builder::Builder does not support unit structs"
16)]
17pub struct RestartProcess {}
18
19impl RestartProcess {
20 #[must_use]
24 pub fn builder() -> RestartProcessBuilder {
25 RestartProcessBuilder::default()
26 }
27}
28
29impl RestApiEndpoint for RestartProcess {
30 type RequestBody = Self;
31
32 fn method(&self) -> Result<reqwest::Method, crate::error::Error> {
33 Ok(reqwest::Method::POST)
34 }
35
36 fn url(&self, base_url: &url::Url) -> Result<url::Url, crate::error::Error> {
37 base_url
38 .join("v1/actions/restart-process")
39 .map_err(crate::error::Error::CouldNotParseUrlFragment)
40 }
41
42 fn request_body(
43 &self,
44 ) -> Result<Option<std::borrow::Cow<'_, Self::RequestBody>>, crate::error::Error>
45 where
46 Self::RequestBody: Clone + serde::Serialize + std::fmt::Debug,
47 {
48 Ok(Some(std::borrow::Cow::Borrowed(self)))
49 }
50}
51
52impl RestApiResponse<RestartProcess> for ResultsWrapper<StatusResponse> {}