github.com/myhau/pulumi/pkg/v3@v3.70.2-0.20221116134521-f2775972e587/codegen/testing/test/testdata/output-funcs-aws-pp/go/output-funcs-aws.go (about)

     1  package main
     2  
     3  import (
     4  	"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2"
     5  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     6  )
     7  
     8  func main() {
     9  	pulumi.Run(func(ctx *pulumi.Context) error {
    10  		aws_vpc, err := ec2.NewVpc(ctx, "aws_vpc", &ec2.VpcArgs{
    11  			CidrBlock:       pulumi.String("10.0.0.0/16"),
    12  			InstanceTenancy: pulumi.String("default"),
    13  		})
    14  		if err != nil {
    15  			return err
    16  		}
    17  		privateS3VpcEndpoint, err := ec2.NewVpcEndpoint(ctx, "privateS3VpcEndpoint", &ec2.VpcEndpointArgs{
    18  			VpcId:       aws_vpc.ID(),
    19  			ServiceName: pulumi.String("com.amazonaws.us-west-2.s3"),
    20  		})
    21  		if err != nil {
    22  			return err
    23  		}
    24  		privateS3PrefixList := ec2.GetPrefixListOutput(ctx, ec2.GetPrefixListOutputArgs{
    25  			PrefixListId: privateS3VpcEndpoint.PrefixListId,
    26  		}, nil)
    27  		bar, err := ec2.NewNetworkAcl(ctx, "bar", &ec2.NetworkAclArgs{
    28  			VpcId: aws_vpc.ID(),
    29  		})
    30  		if err != nil {
    31  			return err
    32  		}
    33  		_, err = ec2.NewNetworkAclRule(ctx, "privateS3NetworkAclRule", &ec2.NetworkAclRuleArgs{
    34  			NetworkAclId: bar.ID(),
    35  			RuleNumber:   pulumi.Int(200),
    36  			Egress:       pulumi.Bool(false),
    37  			Protocol:     pulumi.String("tcp"),
    38  			RuleAction:   pulumi.String("allow"),
    39  			CidrBlock: privateS3PrefixList.ApplyT(func(privateS3PrefixList ec2.GetPrefixListResult) (string, error) {
    40  				return privateS3PrefixList.CidrBlocks[0], nil
    41  			}).(pulumi.StringOutput),
    42  			FromPort: pulumi.Int(443),
    43  			ToPort:   pulumi.Int(443),
    44  		})
    45  		if err != nil {
    46  			return err
    47  		}
    48  		_ = ec2.GetAmiIdsOutput(ctx, ec2.GetAmiIdsOutputArgs{
    49  			Owners: pulumi.StringArray{
    50  				bar.ID(),
    51  			},
    52  			Filters: ec2.GetAmiIdsFilterArray{
    53  				&ec2.GetAmiIdsFilterArgs{
    54  					Name: bar.ID(),
    55  					Values: pulumi.StringArray{
    56  						pulumi.String("pulumi*"),
    57  					},
    58  				},
    59  			},
    60  		}, nil)
    61  		return nil
    62  	})
    63  }