pub mod flag;
#[derive(Debug, Clone)]
pub struct FlagsClient<T> {
client: T,
path: String,
}
impl<T> FlagsClient<T>
where
T: crate::client::Client,
{
pub fn new(client: T, parent_path: &str) -> Self {
Self {
client,
path: format!("{}{}", parent_path, "/flags"),
}
}
}
impl<T> FlagsClient<T>
where
T: crate::client::Client,
{
#[doc = "get the status of all ceph flags"]
#[doc = ""]
#[doc = "Permission check: perm(\"/\", [\"Sys.Audit\"])"]
pub async fn get(&self) -> Result<Vec<GetOutputItems>, T::Error> {
let path = self.path.to_string();
let optional_vec: Option<Vec<GetOutputItems>> = self.client.get(&path, &()).await?;
Ok(optional_vec.unwrap_or_default())
}
}
impl<T> FlagsClient<T>
where
T: crate::client::Client,
{
#[doc = "Set/Unset multiple ceph flags at once."]
#[doc = ""]
#[doc = "Permission check: perm(\"/\", [\"Sys.Modify\"])"]
pub async fn put(&self, params: PutParams) -> Result<String, T::Error> {
let path = self.path.to_string();
self.client.put(&path, ¶ms).await
}
}
impl GetOutputItems {
pub fn new(description: String, name: Name, value: bool) -> Self {
Self {
description,
name,
value,
additional_properties: ::std::default::Default::default(),
}
}
}
#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize)]
pub struct GetOutputItems {
#[doc = "Flag description."]
#[doc = ""]
pub description: String,
#[doc = "Flag name."]
#[doc = ""]
pub name: Name,
#[serde(
serialize_with = "crate::types::serialize_bool",
deserialize_with = "crate::types::deserialize_bool"
)]
#[doc = "Flag value."]
#[doc = ""]
pub value: bool,
#[serde(
flatten,
default,
skip_serializing_if = "::std::collections::HashMap::is_empty"
)]
pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
}
#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, Default)]
pub struct PutParams {
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Backfilling of PGs is suspended."]
#[doc = ""]
pub nobackfill: Option<bool>,
#[serde(rename = "nodeep-scrub")]
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Deep Scrubbing is disabled."]
#[doc = ""]
pub nodeep_scrub: Option<bool>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "OSD failure reports are being ignored, such that the monitors will not mark OSDs down."]
#[doc = ""]
pub nodown: Option<bool>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "OSDs that were previously marked out will not be marked back in when they start."]
#[doc = ""]
pub noin: Option<bool>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "OSDs will not automatically be marked out after the configured interval."]
#[doc = ""]
pub noout: Option<bool>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Rebalancing of PGs is suspended."]
#[doc = ""]
pub norebalance: Option<bool>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Recovery of PGs is suspended."]
#[doc = ""]
pub norecover: Option<bool>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Scrubbing is disabled."]
#[doc = ""]
pub noscrub: Option<bool>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Cache tiering activity is suspended."]
#[doc = ""]
pub notieragent: Option<bool>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "OSDs are not allowed to start."]
#[doc = ""]
pub noup: Option<bool>,
#[serde(
serialize_with = "crate::types::serialize_bool_optional",
deserialize_with = "crate::types::deserialize_bool_optional"
)]
#[serde(skip_serializing_if = "Option::is_none", default)]
#[doc = "Pauses read and writes."]
#[doc = ""]
pub pause: Option<bool>,
#[serde(
flatten,
default,
skip_serializing_if = "::std::collections::HashMap::is_empty"
)]
pub additional_properties: ::std::collections::HashMap<String, ::serde_json::Value>,
}
#[derive(Clone, Debug, :: serde :: Serialize, :: serde :: Deserialize, PartialEq)]
#[doc = "Flag name."]
#[doc = ""]
pub enum Name {
#[serde(rename = "nobackfill")]
Nobackfill,
#[serde(rename = "nodeep-scrub")]
NodeepScrub,
#[serde(rename = "nodown")]
Nodown,
#[serde(rename = "noin")]
Noin,
#[serde(rename = "noout")]
Noout,
#[serde(rename = "norebalance")]
Norebalance,
#[serde(rename = "norecover")]
Norecover,
#[serde(rename = "noscrub")]
Noscrub,
#[serde(rename = "notieragent")]
Notieragent,
#[serde(rename = "noup")]
Noup,
#[serde(rename = "pause")]
Pause,
}
impl TryFrom<&str> for Name {
type Error = String;
fn try_from(value: &str) -> Result<Self, <Self as TryFrom<&str>>::Error> {
match value {
"nobackfill" => Ok(Self::Nobackfill),
"nodeep-scrub" => Ok(Self::NodeepScrub),
"nodown" => Ok(Self::Nodown),
"noin" => Ok(Self::Noin),
"noout" => Ok(Self::Noout),
"norebalance" => Ok(Self::Norebalance),
"norecover" => Ok(Self::Norecover),
"noscrub" => Ok(Self::Noscrub),
"notieragent" => Ok(Self::Notieragent),
"noup" => Ok(Self::Noup),
"pause" => Ok(Self::Pause),
v => Err(format!("Unknown variant {v}")),
}
}
}
impl<T> FlagsClient<T>
where
T: crate::client::Client,
{
pub fn flag(&self, flag: &str) -> flag::FlagClient<T> {
flag::FlagClient::<T>::new(self.client.clone(), &self.path, flag)
}
}