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  }