github.com/GoogleCloudPlatform/terraformer@v0.8.18/providers/aws/sfn.go (about)

     1  package aws
     2  
     3  import (
     4  	"context"
     5  
     6  	"github.com/GoogleCloudPlatform/terraformer/terraformutils"
     7  	"github.com/aws/aws-sdk-go-v2/service/sfn"
     8  )
     9  
    10  var sfnAllowEmptyValues = []string{"tags."}
    11  
    12  type SfnGenerator struct {
    13  	AWSService
    14  }
    15  
    16  func (g *SfnGenerator) InitResources() error {
    17  	config, e := g.generateConfig()
    18  	if e != nil {
    19  		return e
    20  	}
    21  	svc := sfn.NewFromConfig(config)
    22  
    23  	p := sfn.NewListStateMachinesPaginator(svc, &sfn.ListStateMachinesInput{})
    24  	for p.HasMorePages() {
    25  		page, err := p.NextPage(context.TODO())
    26  		if err != nil {
    27  			return err
    28  		}
    29  		for _, stateMachine := range page.StateMachines {
    30  			g.Resources = append(g.Resources, terraformutils.NewSimpleResource(
    31  				*stateMachine.StateMachineArn,
    32  				*stateMachine.Name,
    33  				"aws_sfn_state_machine",
    34  				"aws",
    35  				sfnAllowEmptyValues,
    36  			))
    37  		}
    38  	}
    39  
    40  	pActivity := sfn.NewListActivitiesPaginator(svc, &sfn.ListActivitiesInput{})
    41  	for pActivity.HasMorePages() {
    42  		pActivityNextPage, err := pActivity.NextPage(context.TODO())
    43  		if err != nil {
    44  			return err
    45  		}
    46  		for _, stateMachine := range pActivityNextPage.Activities {
    47  			g.Resources = append(g.Resources, terraformutils.NewSimpleResource(
    48  				*stateMachine.ActivityArn,
    49  				*stateMachine.Name,
    50  				"aws_sfn_activity",
    51  				"aws",
    52  				sfnAllowEmptyValues,
    53  			))
    54  		}
    55  	}
    56  
    57  	return nil
    58  }