github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/arm/securitycenter/adapt.go (about) 1 package securitycenter 2 3 import ( 4 "github.com/khulnasoft-lab/defsec/pkg/providers/azure/securitycenter" 5 "github.com/khulnasoft-lab/defsec/pkg/scanners/azure" 6 ) 7 8 func Adapt(deployment azure.Deployment) securitycenter.SecurityCenter { 9 return securitycenter.SecurityCenter{ 10 Contacts: adaptContacts(deployment), 11 Subscriptions: adaptSubscriptions(deployment), 12 } 13 } 14 15 func adaptContacts(deployment azure.Deployment) (contacts []securitycenter.Contact) { 16 for _, resource := range deployment.GetResourcesByType("Microsoft.Security/securityContacts") { 17 contacts = append(contacts, adaptContact(resource)) 18 } 19 20 return contacts 21 } 22 23 func adaptContact(resource azure.Resource) securitycenter.Contact { 24 return securitycenter.Contact{ 25 Metadata: resource.Metadata, 26 EnableAlertNotifications: resource.Properties.GetMapValue("email").AsBoolValue(false, resource.Metadata), 27 Phone: resource.Properties.GetMapValue("phone").AsStringValue("", resource.Metadata), 28 } 29 } 30 31 func adaptSubscriptions(deployment azure.Deployment) (subscriptions []securitycenter.SubscriptionPricing) { 32 for _, resource := range deployment.GetResourcesByType("Microsoft.Security/pricings") { 33 subscriptions = append(subscriptions, adaptSubscription(resource)) 34 } 35 return subscriptions 36 } 37 38 func adaptSubscription(resource azure.Resource) securitycenter.SubscriptionPricing { 39 return securitycenter.SubscriptionPricing{ 40 Metadata: resource.Metadata, 41 Tier: resource.Properties.GetMapValue("pricingTier").AsStringValue("Free", resource.Metadata), 42 } 43 }