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 }