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

     1  package accessanalyzer
     2  
     3  import (
     4  	"github.com/khulnasoft-lab/defsec/pkg/providers/aws/accessanalyzer"
     5  	"github.com/khulnasoft-lab/defsec/pkg/terraform"
     6  	"github.com/khulnasoft-lab/defsec/pkg/types"
     7  )
     8  
     9  func Adapt(modules terraform.Modules) accessanalyzer.AccessAnalyzer {
    10  	return accessanalyzer.AccessAnalyzer{
    11  		Analyzers: adaptTrails(modules),
    12  	}
    13  }
    14  
    15  func adaptTrails(modules terraform.Modules) []accessanalyzer.Analyzer {
    16  	var analyzer []accessanalyzer.Analyzer
    17  
    18  	for _, module := range modules {
    19  		for _, resource := range module.GetResourcesByType("aws_accessanalyzer_analyzer") {
    20  			analyzer = append(analyzer, adaptAnalyzers(resource))
    21  		}
    22  	}
    23  	return analyzer
    24  }
    25  
    26  func adaptAnalyzers(resource *terraform.Block) accessanalyzer.Analyzer {
    27  
    28  	analyzerName := resource.GetAttribute("analyzer_name")
    29  	analyzerNameAttr := analyzerName.AsStringValueOrDefault("", resource)
    30  
    31  	arnAnalyzer := resource.GetAttribute("arn")
    32  	arnAnalyzerAttr := arnAnalyzer.AsStringValueOrDefault("", resource)
    33  
    34  	return accessanalyzer.Analyzer{
    35  		Metadata: resource.GetMetadata(),
    36  		Name:     analyzerNameAttr,
    37  		ARN:      arnAnalyzerAttr,
    38  		Active:   types.BoolDefault(false, resource.GetMetadata()),
    39  	}
    40  }