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

     1  package synapse
     2  
     3  import (
     4  	"github.com/khulnasoft-lab/defsec/pkg/providers/azure/synapse"
     5  	"github.com/khulnasoft-lab/defsec/pkg/terraform"
     6  )
     7  
     8  func Adapt(modules terraform.Modules) synapse.Synapse {
     9  	return synapse.Synapse{
    10  		Workspaces: adaptWorkspaces(modules),
    11  	}
    12  }
    13  
    14  func adaptWorkspaces(modules terraform.Modules) []synapse.Workspace {
    15  	var workspaces []synapse.Workspace
    16  	for _, module := range modules {
    17  		for _, resource := range module.GetResourcesByType("azurerm_synapse_workspace") {
    18  			workspaces = append(workspaces, adaptWorkspace(resource))
    19  		}
    20  	}
    21  	return workspaces
    22  }
    23  
    24  func adaptWorkspace(resource *terraform.Block) synapse.Workspace {
    25  	enableManagedVNAttr := resource.GetAttribute("managed_virtual_network_enabled")
    26  	enableManagedVNVal := enableManagedVNAttr.AsBoolValueOrDefault(false, resource)
    27  
    28  	return synapse.Workspace{
    29  		Metadata:                    resource.GetMetadata(),
    30  		EnableManagedVirtualNetwork: enableManagedVNVal,
    31  	}
    32  }