github.com/GoogleCloudPlatform/terraformer@v0.8.18/providers/azure/security_center_subscription_pricing.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 SecurityCenterSubscriptionPricingGenerator struct { 14 AzureService 15 } 16 17 func (g SecurityCenterSubscriptionPricingGenerator) listSubscriptionPricing() ([]terraformutils.Resource, error) { 18 var resources []terraformutils.Resource 19 ctx := context.Background() 20 subscriptionID := g.Args["config"].(authentication.Config).SubscriptionID 21 22 securityCenterPricingClient := security.NewPricingsClient(subscriptionID, "") 23 securityCenterPricingClient.Authorizer = g.Args["authorizer"].(autorest.Authorizer) 24 25 if rg := g.Args["resource_group"].(string); rg != "" { 26 return resources, nil 27 } 28 pricingList, err := securityCenterPricingClient.List(ctx) 29 if err != nil { 30 return resources, err 31 } 32 33 for _, pricing := range *pricingList.Value { 34 resources = append(resources, terraformutils.NewSimpleResource( 35 *pricing.ID, 36 *pricing.Name, 37 "azurerm_security_center_subscription_pricing", 38 g.ProviderName, 39 []string{})) 40 } 41 42 return resources, nil 43 } 44 45 func (g *SecurityCenterSubscriptionPricingGenerator) InitResources() error { 46 resources, err := g.listSubscriptionPricing() 47 if err != nil { 48 return err 49 } 50 51 g.Resources = append(g.Resources, resources...) 52 53 return nil 54 }