use serde::{Deserialize};
use crate::registry::list::Task;
#[derive(Debug,Deserialize)]
#[serde(deny_unknown_fields)]
pub struct Play {
pub name : String,
pub groups : Vec<String>,
pub roles : Option<Vec<RoleInvocation>>,
pub defaults: Option<serde_yaml::Mapping>,
pub vars : Option<serde_yaml::Mapping>,
pub vars_files: Option<Vec<String>>,
pub sudo: Option<String>,
pub sudo_template: Option<String>,
pub ssh_user : Option<String>,
pub ssh_port : Option<i64>,
pub tasks : Option<Vec<Task>>,
pub handlers : Option<Vec<Task>>,
pub batch_size : Option<usize>,
}
#[derive(Debug,Deserialize,Clone)]
#[serde(deny_unknown_fields)]
pub struct Role {
pub name: String,
pub defaults: Option<serde_yaml::Mapping>,
pub tasks: Option<Vec<String>>,
pub handlers: Option<Vec<String>>
}
#[derive(Debug,Deserialize)]
#[serde(deny_unknown_fields)]
pub struct RoleInvocation {
pub role: String,
pub vars: Option<serde_yaml::Mapping>,
pub tags: Option<Vec<String>>
}