package framework

import (
	xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1"
	"github.com/crossplane/provider-aws/apis/ec2/v1beta1"
	ec2v1beta1 "github.com/crossplane/provider-aws/apis/ec2/v1beta1"
	metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
	"k8s.io/utils/pointer"
)

func NewVPC(generateName string, providerConfigName string, cidr string) *ec2v1beta1.VPC {
	vpc := &ec2v1beta1.VPC{
		ObjectMeta: metav1.ObjectMeta{
			GenerateName: generateName,
		},
		Spec: v1beta1.VPCSpec{
			ResourceSpec: xpv1.ResourceSpec{
				ProviderConfigReference: &xpv1.Reference{Name: providerConfigName},
			},
			ForProvider: v1beta1.VPCParameters{
				Region:             pointer.String(DefaultAWSRegion),
				CIDRBlock:          cidr,
				EnableDNSSupport:   pointer.Bool(true),
				EnableDNSHostNames: pointer.Bool(true),
			},
		},
	}

	return vpc
}
