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

     1  package monitor
     2  
     3  import (
     4  	"github.com/khulnasoft-lab/defsec/pkg/providers/azure/monitor"
     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) monitor.Monitor {
    10  	return monitor.Monitor{
    11  		LogProfiles: adaptLogProfiles(deployment),
    12  	}
    13  }
    14  
    15  func adaptLogProfiles(deployment azure.Deployment) (logProfiles []monitor.LogProfile) {
    16  	for _, resource := range deployment.GetResourcesByType("Microsoft.Insights/logProfiles") {
    17  		logProfiles = append(logProfiles, adaptLogProfile(resource))
    18  	}
    19  	return logProfiles
    20  }
    21  
    22  func adaptLogProfile(resource azure.Resource) monitor.LogProfile {
    23  	categories := resource.Properties.GetMapValue("categories").AsList()
    24  	var categoriesList []types.StringValue
    25  	for _, category := range categories {
    26  		categoriesList = append(categoriesList, category.AsStringValue("", category.Metadata))
    27  	}
    28  
    29  	locations := resource.Properties.GetMapValue("locations").AsList()
    30  	var locationsList []types.StringValue
    31  	for _, location := range locations {
    32  		locationsList = append(locationsList, location.AsStringValue("", location.Metadata))
    33  	}
    34  
    35  	return monitor.LogProfile{
    36  		Metadata: resource.Metadata,
    37  		RetentionPolicy: monitor.RetentionPolicy{
    38  			Metadata: resource.Metadata,
    39  			Enabled:  resource.Properties.GetMapValue("retentionPolicy").GetMapValue("enabled").AsBoolValue(false, resource.Metadata),
    40  			Days:     resource.Properties.GetMapValue("retentionPolicy").GetMapValue("days").AsIntValue(0, resource.Metadata),
    41  		},
    42  		Categories: categoriesList,
    43  		Locations:  locationsList,
    44  	}
    45  }