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 }