use serde::{Deserialize, Serialize};
use crate::{HasId, HasName, Uri};
use tmflib_derive::{HasId, HasName};
use super::resource_function::ResourceFunctionRef;
use super::{TaskStateType, MOD_PATH};
const CLASS_PATH: &str = "scale";
#[derive(Clone, Debug, Default, Deserialize, Serialize)]
pub struct ScheduleRef {
pub id: String,
pub href: Option<String>,
pub name: Option<String>,
}
#[derive(Clone, Debug, Default, HasId, HasName, Deserialize, Serialize)]
pub struct Scale {
pub id: Option<String>,
pub href: Option<Uri>,
pub name: Option<String>,
pub aspect_id: Option<String>,
pub number_of_steps: Option<u32>,
pub scale_type: Option<String>,
pub state: Option<TaskStateType>,
pub resource_function: ResourceFunctionRef,
pub schedule: Option<Vec<ScheduleRef>>,
}
impl Scale {
pub fn new(name: impl Into<String>) -> Scale {
Scale { ..Scale::create() }.name(name)
}
}