github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/aws/ec2/subnet.go (about)

     1  package ec2
     2  
     3  import (
     4  	"github.com/khulnasoft-lab/defsec/pkg/providers/aws/ec2"
     5  	"github.com/khulnasoft-lab/defsec/pkg/terraform"
     6  )
     7  
     8  func adaptSubnets(modules terraform.Modules) []ec2.Subnet {
     9  	var subnets []ec2.Subnet
    10  	for _, module := range modules {
    11  		for _, resource := range module.GetResourcesByType("aws_subnet") {
    12  			subnets = append(subnets, adaptSubnet(resource, module))
    13  		}
    14  	}
    15  	return subnets
    16  }
    17  
    18  func adaptSubnet(resource *terraform.Block, module *terraform.Module) ec2.Subnet {
    19  	mapPublicIpOnLaunchAttr := resource.GetAttribute("map_public_ip_on_launch")
    20  	mapPublicIpOnLaunchVal := mapPublicIpOnLaunchAttr.AsBoolValueOrDefault(false, resource)
    21  
    22  	return ec2.Subnet{
    23  		Metadata:            resource.GetMetadata(),
    24  		MapPublicIpOnLaunch: mapPublicIpOnLaunchVal,
    25  	}
    26  }