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 }