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  }