github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/arm/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/scanners/azure"
     6  	"github.com/khulnasoft-lab/defsec/pkg/types"
     7  )
     8  
     9  func Adapt(deployment azure.Deployment) synapse.Synapse {
    10  	return synapse.Synapse{
    11  		Workspaces: adaptWorkspaces(deployment),
    12  	}
    13  }
    14  
    15  func adaptWorkspaces(deployment azure.Deployment) (workspaces []synapse.Workspace) {
    16  	for _, resource := range deployment.GetResourcesByType("Microsoft.Synapse/workspaces") {
    17  		workspaces = append(workspaces, adaptWorkspace(resource))
    18  	}
    19  	return workspaces
    20  }
    21  
    22  func adaptWorkspace(resource azure.Resource) synapse.Workspace {
    23  
    24  	managedVirtualNetwork := resource.Properties.GetMapValue("managedVirtualNetwork").AsString()
    25  	enableManagedVirtualNetwork := types.BoolDefault(false, resource.Metadata)
    26  	if managedVirtualNetwork == "default" {
    27  		enableManagedVirtualNetwork = types.Bool(true, resource.Metadata)
    28  	}
    29  
    30  	return synapse.Workspace{
    31  		Metadata:                    resource.Metadata,
    32  		EnableManagedVirtualNetwork: enableManagedVirtualNetwork,
    33  	}
    34  }