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

     1  package efs
     2  
     3  import (
     4  	"github.com/khulnasoft-lab/defsec/pkg/providers/aws/efs"
     5  	"github.com/khulnasoft-lab/defsec/pkg/terraform"
     6  )
     7  
     8  func Adapt(modules terraform.Modules) efs.EFS {
     9  	return efs.EFS{
    10  		FileSystems: adaptFileSystems(modules),
    11  	}
    12  }
    13  
    14  func adaptFileSystems(modules terraform.Modules) []efs.FileSystem {
    15  	var filesystems []efs.FileSystem
    16  	for _, module := range modules {
    17  		for _, resource := range module.GetResourcesByType("aws_efs_file_system") {
    18  			filesystems = append(filesystems, adaptFileSystem(resource))
    19  		}
    20  	}
    21  	return filesystems
    22  }
    23  
    24  func adaptFileSystem(resource *terraform.Block) efs.FileSystem {
    25  	encryptedAttr := resource.GetAttribute("encrypted")
    26  	encryptedVal := encryptedAttr.AsBoolValueOrDefault(false, resource)
    27  
    28  	return efs.FileSystem{
    29  		Metadata:  resource.GetMetadata(),
    30  		Encrypted: encryptedVal,
    31  	}
    32  }