use serde::{Deserialize, Serialize};
#[allow(unused_imports)]
use super::*;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct WindowsUpdate {
pub name: String,
pub update_id: String,
pub update_type: ClassificationTypes,
#[serde(skip_serializing_if = "Option::is_none")]
pub description: Option<String>,
#[serde(skip_serializing_if = "Option::is_none")]
pub size_in_bytes: Option<i64>,
#[serde(skip_serializing_if = "Option::is_none")]
pub installable: Option<WindowsUpdateInstallable>,
#[serde(skip_serializing_if = "Option::is_none")]
pub installation_requirements: Option<Vec<InstallationRequirements>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub is_reboot_required_for_installation: Option<bool>,
#[serde(skip_serializing_if = "Option::is_none")]
pub kb_article_ids: Option<Vec<String>>,
}
pub struct WindowsUpdateRequired {
pub name: String,
pub update_id: String,
pub update_type: ClassificationTypes,
}
impl WindowsUpdate {
pub fn new(required: WindowsUpdateRequired) -> Self {
Self {
name: required.name,
update_id: required.update_id,
update_type: required.update_type,
description: None,
size_in_bytes: None,
installable: None,
installation_requirements: None,
is_reboot_required_for_installation: None,
kb_article_ids: None,
}
}
pub fn set_name(mut self, value: String) -> Self {
self.name = value;
self
}
pub fn set_update_id(mut self, value: String) -> Self {
self.update_id = value;
self
}
pub fn set_description(mut self, value: Option<String>) -> Self {
self.description = value;
self
}
pub fn set_update_type(mut self, value: ClassificationTypes) -> Self {
self.update_type = value;
self
}
pub fn set_size_in_bytes(mut self, value: Option<i64>) -> Self {
self.size_in_bytes = value;
self
}
pub fn set_installable(mut self, value: Option<WindowsUpdateInstallable>) -> Self {
self.installable = value;
self
}
pub fn set_installation_requirements(
mut self,
value: Option<Vec<InstallationRequirements>>,
) -> Self {
self.installation_requirements = value;
self
}
pub fn set_is_reboot_required_for_installation(mut self, value: Option<bool>) -> Self {
self.is_reboot_required_for_installation = value;
self
}
pub fn set_kb_article_ids(mut self, value: Option<Vec<String>>) -> Self {
self.kb_article_ids = value;
self
}
pub fn with_description(mut self, value: impl Into<String>) -> Self {
self.description = Some(value.into());
self
}
pub fn with_size_in_bytes(mut self, value: i64) -> Self {
self.size_in_bytes = Some(value);
self
}
pub fn with_installable(mut self, value: WindowsUpdateInstallable) -> Self {
self.installable = Some(value);
self
}
pub fn with_installation_requirements(mut self, value: Vec<InstallationRequirements>) -> Self {
self.installation_requirements = Some(value);
self
}
pub fn with_is_reboot_required_for_installation(mut self, value: bool) -> Self {
self.is_reboot_required_for_installation = Some(value);
self
}
pub fn with_kb_article_ids(mut self, value: Vec<String>) -> Self {
self.kb_article_ids = Some(value);
self
}
}