github.com/GoogleCloudPlatform/terraformer@v0.8.18/providers/azure/security_center_contact.go (about) 1 package azure 2 3 import ( 4 "context" 5 6 "github.com/Azure/go-autorest/autorest" 7 "github.com/hashicorp/go-azure-helpers/authentication" 8 9 "github.com/Azure/azure-sdk-for-go/services/preview/security/mgmt/v3.0/security" 10 "github.com/GoogleCloudPlatform/terraformer/terraformutils" 11 ) 12 13 type SecurityCenterContactGenerator struct { 14 AzureService 15 } 16 17 func (g SecurityCenterContactGenerator) listContacts() ([]terraformutils.Resource, error) { 18 var resources []terraformutils.Resource 19 ctx := context.Background() 20 subscriptionID := g.Args["config"].(authentication.Config).SubscriptionID 21 22 securityCenterContactClient := security.NewContactsClient(subscriptionID, "") 23 securityCenterContactClient.Authorizer = g.Args["authorizer"].(autorest.Authorizer) 24 25 if rg := g.Args["resource_group"].(string); rg != "" { 26 return resources, nil 27 } 28 contactsIterator, err := securityCenterContactClient.ListComplete(ctx) 29 if err != nil { 30 return resources, err 31 } 32 33 for contactsIterator.NotDone() { 34 contact := contactsIterator.Value() 35 resources = append(resources, terraformutils.NewSimpleResource( 36 *contact.ID, 37 *contact.Name, 38 "azurerm_security_center_contact", 39 g.ProviderName, 40 []string{})) 41 42 if err := contactsIterator.NextWithContext(ctx); err != nil { 43 return resources, err 44 } 45 } 46 47 return resources, nil 48 } 49 50 func (g *SecurityCenterContactGenerator) InitResources() error { 51 resources, err := g.listContacts() 52 if err != nil { 53 return err 54 } 55 56 g.Resources = append(g.Resources, resources...) 57 58 return nil 59 }