/
main.go
44 lines (34 loc) · 888 Bytes
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package vpc
import (
"github.com/pulumi/pulumi-aws/sdk/v5/go/aws/ec2"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
type Vpc struct {
pulumi.ResourceState
Vpc *ec2.Vpc `pulumi:"vpc"`
VpcId pulumi.IDOutput `pulumi:"vpc-id"`
}
type ModuleArgs struct {
Cidr string
}
func NewVpc(ctx *pulumi.Context, name string, args *ModuleArgs, opts ...pulumi.ResourceOption) (*Vpc, error) {
module := &Vpc{}
err := ctx.RegisterComponentResource("thomassjogren:index:aws-vpc", name, module, opts...)
if err != nil {
return nil, err
}
vpc, err := ec2.NewVpc(ctx, name, &ec2.VpcArgs{
CidrBlock: pulumi.String(args.Cidr),
}, pulumi.Parent(module))
module.Vpc = vpc
module.VpcId = vpc.ID()
err = ctx.RegisterResourceOutputs(module, pulumi.Map{
"vpc": vpc,
"vpc-id": vpc.ID(),
"vpc-arn": vpc.Arn,
})
if err != nil {
return nil, err
}
return module, nil
}