// GENERATED, DO NOT EDIT THIS FILE
package aws

const AwsSecurityGroupResourceType = "aws_security_group"

type AwsSecurityGroup struct {
	Arn         *string `cty:"arn" computed:"true"`
	Description *string `cty:"description"`
	Egress      *[]struct {
		CidrBlocks     *[]string `cty:"cidr_blocks"`
		Description    *string   `cty:"description"`
		FromPort       *int      `cty:"from_port"`
		Ipv6CidrBlocks *[]string `cty:"ipv6_cidr_blocks"`
		PrefixListIds  *[]string `cty:"prefix_list_ids"`
		Protocol       *string   `cty:"protocol"`
		SecurityGroups *[]string `cty:"security_groups"`
		Self           *bool     `cty:"self"`
		ToPort         *int      `cty:"to_port"`
	} `cty:"egress"`
	Id      string `cty:"id"`
	Ingress *[]struct {
		CidrBlocks     *[]string `cty:"cidr_blocks"`
		Description    *string   `cty:"description"`
		FromPort       *int      `cty:"from_port"`
		Ipv6CidrBlocks *[]string `cty:"ipv6_cidr_blocks"`
		PrefixListIds  *[]string `cty:"prefix_list_ids"`
		Protocol       *string   `cty:"protocol"`
		SecurityGroups *[]string `cty:"security_groups"`
		Self           *bool     `cty:"self"`
		ToPort         *int      `cty:"to_port"`
	} `cty:"ingress"`
	Name                *string           `cty:"name"`
	NamePrefix          *string           `cty:"name_prefix"`
	OwnerId             *string           `cty:"owner_id" computed:"true"`
	RevokeRulesOnDelete *bool             `cty:"revoke_rules_on_delete" diff:"-"`
	Tags                map[string]string `cty:"tags"`
	VpcId               *string           `cty:"vpc_id" computed:"true"`
	Timeouts            *struct {
		Create *string `cty:"create"`
		Delete *string `cty:"delete"`
	} `cty:"timeouts" diff:"-"`
}

func (r *AwsSecurityGroup) TerraformId() string {
	return r.Id
}

func (r *AwsSecurityGroup) TerraformType() string {
	return AwsSecurityGroupResourceType
}
