use crate::resources::{Param, ResourceDefinition, SecurityParam};
use crate::types::ResolvedType;
pub fn network_create_security_group() -> ResourceDefinition {
ResourceDefinition {
module: "Network",
function: "createSecurityGroup",
required_params: vec![Param::new("vpc", ResolvedType::Vpc), Param::string("name")],
optional_params: vec![
Param::string("description"),
Param::new(
"ingressRules",
ResolvedType::List(Box::new(ResolvedType::Record(
std::collections::HashMap::new(),
))),
),
Param::new(
"egressRules",
ResolvedType::List(Box::new(ResolvedType::Record(
std::collections::HashMap::new(),
))),
),
Param::tags("tags"),
],
preferred_params: vec![],
security_params: vec![
SecurityParam::new("allowSshFromInternet", false, true),
SecurityParam::new("allowRdpFromInternet", false, true),
SecurityParam::new("allowDbFromInternet", false, true),
SecurityParam::new("allowAllFromInternet", false, true),
],
returns: ResolvedType::SecurityGroup,
}
}