use serde::{Deserialize, Serialize};
#[allow(unused_imports)]
use super::*;
#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ScheduledJobOperation {
pub operation_type: OperationTypes,
#[serde(skip_serializing_if = "Option::is_none")]
pub package_names: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub windows_update_names: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub manage_module_streams_details: Option<ManageModuleStreamsInScheduledJobDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub switch_module_streams_details: Option<ModuleStreamDetails>,
#[serde(skip_serializing_if = "Option::is_none")]
pub software_source_ids: Option<Vec<String>>,
#[serde(skip_serializing_if = "Option::is_none")]
pub reboot_timeout_in_mins: Option<i64>,
}
pub struct ScheduledJobOperationRequired {
pub operation_type: OperationTypes,
}
impl ScheduledJobOperation {
pub fn new(required: ScheduledJobOperationRequired) -> Self {
Self {
operation_type: required.operation_type,
package_names: None,
windows_update_names: None,
manage_module_streams_details: None,
switch_module_streams_details: None,
software_source_ids: None,
reboot_timeout_in_mins: None,
}
}
pub fn set_operation_type(mut self, value: OperationTypes) -> Self {
self.operation_type = value;
self
}
pub fn set_package_names(mut self, value: Option<Vec<String>>) -> Self {
self.package_names = value;
self
}
pub fn set_windows_update_names(mut self, value: Option<Vec<String>>) -> Self {
self.windows_update_names = value;
self
}
pub fn set_manage_module_streams_details(
mut self,
value: Option<ManageModuleStreamsInScheduledJobDetails>,
) -> Self {
self.manage_module_streams_details = value;
self
}
pub fn set_switch_module_streams_details(mut self, value: Option<ModuleStreamDetails>) -> Self {
self.switch_module_streams_details = value;
self
}
pub fn set_software_source_ids(mut self, value: Option<Vec<String>>) -> Self {
self.software_source_ids = value;
self
}
pub fn set_reboot_timeout_in_mins(mut self, value: Option<i64>) -> Self {
self.reboot_timeout_in_mins = value;
self
}
pub fn with_package_names(mut self, value: Vec<String>) -> Self {
self.package_names = Some(value);
self
}
pub fn with_windows_update_names(mut self, value: Vec<String>) -> Self {
self.windows_update_names = Some(value);
self
}
pub fn with_manage_module_streams_details(
mut self,
value: ManageModuleStreamsInScheduledJobDetails,
) -> Self {
self.manage_module_streams_details = Some(value);
self
}
pub fn with_switch_module_streams_details(mut self, value: ModuleStreamDetails) -> Self {
self.switch_module_streams_details = Some(value);
self
}
pub fn with_software_source_ids(mut self, value: Vec<String>) -> Self {
self.software_source_ids = Some(value);
self
}
pub fn with_reboot_timeout_in_mins(mut self, value: i64) -> Self {
self.reboot_timeout_in_mins = Some(value);
self
}
}