horkos 0.2.0

Cloud infrastructure language where insecure code won't compile
Documentation
//! Generated from network_create_security_group.yaml
//! DO NOT EDIT - regenerate with `cargo run -p horkos-codegen`

use crate::resources::{Param, ResourceDefinition, SecurityParam};
use crate::types::ResolvedType;

/// Create a security group with secure defaults
///
/// Terraform: `aws_security_group`
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(),
                ))),
            ), /* IngressRule */
            Param::new(
                "egressRules",
                ResolvedType::List(Box::new(ResolvedType::Record(
                    std::collections::HashMap::new(),
                ))),
            ), /* EgressRule */
            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,
    }
}