use serde::{Deserialize, Serialize};
use serde_json::{Map, Value};
use super::{Resource, ResourceStatus};
#[derive(Debug, Clone, Deserialize)]
pub struct Bios {
#[serde(flatten)]
pub resource: Resource,
#[serde(rename = "Attributes", default)]
pub attributes: Map<String, Value>,
#[serde(rename = "Status", default)]
pub status: Option<ResourceStatus>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct BiosSettings {
#[serde(flatten)]
pub resource: Resource,
#[serde(rename = "Attributes", default)]
pub attributes: Map<String, Value>,
#[serde(rename = "Status", default)]
pub status: Option<ResourceStatus>,
}
#[derive(Debug, Clone, Serialize, Default)]
pub struct BiosSettingsUpdateRequest {
#[serde(rename = "Attributes", default)]
pub attributes: Map<String, Value>,
#[serde(flatten, skip_serializing_if = "Map::is_empty")]
pub extra: Map<String, Value>,
}
impl BiosSettingsUpdateRequest {
pub fn new() -> Self {
Self::default()
}
pub fn with_attribute(mut self, key: impl Into<String>, value: impl Into<Value>) -> Self {
self.attributes.insert(key.into(), value.into());
self
}
pub fn with_extra(mut self, key: impl Into<String>, value: impl Into<Value>) -> Self {
self.extra.insert(key.into(), value.into());
self
}
}