github.com/khulnasoft-lab/defsec@v1.0.5-0.20230827010352-5e9f46893d95/internal/adapters/terraform/azure/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/terraform" 6 ) 7 8 func Adapt(modules terraform.Modules) securitycenter.SecurityCenter { 9 return securitycenter.SecurityCenter{ 10 Contacts: adaptContacts(modules), 11 Subscriptions: adaptSubscriptions(modules), 12 } 13 } 14 15 func adaptContacts(modules terraform.Modules) []securitycenter.Contact { 16 var contacts []securitycenter.Contact 17 18 for _, module := range modules { 19 for _, resource := range module.GetResourcesByType("azurerm_security_center_contact") { 20 contacts = append(contacts, adaptContact(resource)) 21 } 22 } 23 return contacts 24 } 25 26 func adaptSubscriptions(modules terraform.Modules) []securitycenter.SubscriptionPricing { 27 var subscriptions []securitycenter.SubscriptionPricing 28 29 for _, module := range modules { 30 for _, resource := range module.GetResourcesByType("azurerm_security_center_subscription_pricing") { 31 subscriptions = append(subscriptions, adaptSubscription(resource)) 32 } 33 } 34 return subscriptions 35 } 36 37 func adaptContact(resource *terraform.Block) securitycenter.Contact { 38 enableAlertNotifAttr := resource.GetAttribute("alert_notifications") 39 enableAlertNotifVal := enableAlertNotifAttr.AsBoolValueOrDefault(false, resource) 40 41 phoneAttr := resource.GetAttribute("phone") 42 phoneVal := phoneAttr.AsStringValueOrDefault("", resource) 43 44 return securitycenter.Contact{ 45 Metadata: resource.GetMetadata(), 46 EnableAlertNotifications: enableAlertNotifVal, 47 Phone: phoneVal, 48 } 49 } 50 51 func adaptSubscription(resource *terraform.Block) securitycenter.SubscriptionPricing { 52 tierAttr := resource.GetAttribute("tier") 53 tierVal := tierAttr.AsStringValueOrDefault("Free", resource) 54 55 return securitycenter.SubscriptionPricing{ 56 Metadata: resource.GetMetadata(), 57 Tier: tierVal, 58 } 59 }