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

     1  package emr
     2  
     3  import (
     4  	"github.com/khulnasoft-lab/defsec/pkg/providers/aws/emr"
     5  	"github.com/khulnasoft-lab/defsec/pkg/terraform"
     6  )
     7  
     8  func Adapt(modules terraform.Modules) emr.EMR {
     9  	return emr.EMR{
    10  		Clusters:              adaptClusters(modules),
    11  		SecurityConfiguration: adaptSecurityConfigurations(modules),
    12  	}
    13  }
    14  func adaptClusters(modules terraform.Modules) []emr.Cluster {
    15  	var clusters []emr.Cluster
    16  	for _, module := range modules {
    17  		for _, resource := range module.GetResourcesByType("aws_emr_cluster") {
    18  			clusters = append(clusters, adaptCluster(resource))
    19  		}
    20  	}
    21  	return clusters
    22  }
    23  
    24  func adaptCluster(resource *terraform.Block) emr.Cluster {
    25  
    26  	return emr.Cluster{
    27  		Metadata: resource.GetMetadata(),
    28  	}
    29  }
    30  
    31  func adaptSecurityConfigurations(modules terraform.Modules) []emr.SecurityConfiguration {
    32  	var securityConfiguration []emr.SecurityConfiguration
    33  	for _, module := range modules {
    34  		for _, resource := range module.GetResourcesByType("aws_emr_security_configuration") {
    35  			securityConfiguration = append(securityConfiguration, adaptSecurityConfiguration(resource))
    36  		}
    37  	}
    38  	return securityConfiguration
    39  }
    40  
    41  func adaptSecurityConfiguration(resource *terraform.Block) emr.SecurityConfiguration {
    42  
    43  	return emr.SecurityConfiguration{
    44  		Metadata:      resource.GetMetadata(),
    45  		Name:          resource.GetAttribute("name").AsStringValueOrDefault("", resource),
    46  		Configuration: resource.GetAttribute("configuration").AsStringValueOrDefault("", resource),
    47  	}
    48  
    49  }