use crate::resources::{Param, ParamValue, ResourceDefinition, SecurityParam};
use crate::types::ResolvedType;
pub fn network_create_vpc() -> ResourceDefinition {
ResourceDefinition {
module: "Network",
function: "createVpc",
required_params: vec![Param::string("name"), Param::string("cidr")],
optional_params: vec![
Param::string("instanceTenancy"),
Param::bool("enableDnsHostnames"),
Param::bool("enableDnsSupport"),
Param::tags("tags"),
Param::new("flowLogsBucket", ResolvedType::Bucket), Param::new("flowLogsLogGroup", ResolvedType::LogGroup), ],
preferred_params: vec![],
security_params: vec![SecurityParam::with_type(
"flowLogs",
ResolvedType::Union(
Box::new(ResolvedType::Bucket),
Box::new(ResolvedType::LogGroup),
),
ParamValue::String("required".into()),
)],
returns: ResolvedType::Vpc,
}
}
#[allow(dead_code)]
mod security_rules {
pub const VPC_001: &str = "VPC flow logs are required for network visibility";
}