#Terraform and its management of DNS in route53

#Setup the domain in route53
resource "aws_route53_zone" "ahoskingit_ca" {
    name = "ahoskingit.ca"
}

resource "aws_route53_record" "ahoskingit_ca" {
    zone_id = "${aws_route53_zone.ahoskingit_ca.zone_id}"
    name = "ahoskingit.ca"
    type = "A"
    ttl = "5"
    records = ["${var.site5_ip}"]
}

resource "aws_route53_record" "ahoskingit_ca_www" {
    zone_id = "${aws_route53_zone.ahoskingit_ca.zone_id}"
    name = "www.ahoskingit.ca"
    type = "CNAME"
    ttl = "5"
    records = ["${aws_route53_record.ahoskingit_ca.name}"]
}

resource "aws_route53_record" "home_ahoskingit_ca" {
    zone_id = "${aws_route53_zone.ahoskingit_ca.zone_id}"
    name = "home.ahoskingit.ca"
    type = "A"
    ttl = "5"
    records = ["${var.home_ip}"]
}

resource "aws_route53_record" "inventory_ahoskingit_ca" {
    zone_id = "${aws_route53_zone.ahoskingit_ca.zone_id}"
    name = "inventory.ahoskingit.ca"
    type = "CNAME"
    ttl = "5"
    records = ["${aws_route53_record.home_ahoskingit_ca.name}"]
}

resource "aws_route53_record" "plex_ahoskingit_ca" {
    zone_id = "${aws_route53_zone.ahoskingit_ca.zone_id}"
    name = "plex.ahoskingit.ca"
    type = "CNAME"
    ttl = "5"
    records = ["${aws_route53_record.home_ahoskingit_ca.name}"]
}

resource "aws_route53_record" "ns1_ahoskingit_ca" {
    zone_id = "${aws_route53_zone.ahoskingit_ca.zone_id}"
    name = "ns1.ahoskingit.ca"
    type = "CNAME"
    ttl = "5"
    records = ["${aws_route53_record.home_ahoskingit_ca.name}"]
}

resource "aws_route53_record" "docs_ahoskingit_ca" {
    zone_id = "${aws_route53_zone.ahoskingit_ca.zone_id}"
    name = "docs.ahoskingit.ca"
    type = "CNAME"
    ttl = "5"
    records = ["${aws_route53_record.home_ahoskingit_ca.name}"]
}

resource "aws_route53_record" "cloud_ahoskingit_ca" {
    zone_id = "${aws_route53_zone.ahoskingit_ca.zone_id}"
    name = "cloud.ahoskingit.ca"
    type = "CNAME"
    ttl = "5"
    records = ["${aws_route53_record.home_ahoskingit_ca.name}"]
}

resource "aws_route53_record" "support_ahoskingit_ca" {
    zone_id = "${aws_route53_zone.ahoskingit_ca.zone_id}"
    name = "support.ahoskingit.ca"
    type = "CNAME"
    ttl = "5"
    records = ["${aws_route53_record.home_ahoskingit_ca.name}"]
}

resource "aws_route53_record" "git_ahoskingit_ca" {
    zone_id = "${aws_route53_zone.ahoskingit_ca.zone_id}"
    name = "git.ahoskingit.ca"
    type = "CNAME"
    ttl = "5"
    records = ["${aws_route53_record.home_ahoskingit_ca.name}"]
}

resource "aws_route53_record" "gitlab_ahoskingit_ca" {
    zone_id = "${aws_route53_zone.ahoskingit_ca.zone_id}"
    name = "gitlab.ahoskingit.ca"
    type = "CNAME"
    ttl = "5"
    records = ["${aws_route53_record.home_ahoskingit_ca.name}"]
}

##Route53 DNS entry
#resource "aws_route53_record" "www_ahoskingit_ca" {
#    zone_id = "${aws_route53_zone.ahoskingit_ca.zone_id}"
#    name = "www.ahoskingit.ca"
#    type = "A"
#    ttl = "5"
#    records = ["${var.home_ip}"]
#}

# email MX records for DNS
resource "aws_route53_record" "ahoskingit_ca_mx" {
    zone_id = "${aws_route53_zone.ahoskingit_ca.zone_id}"
    name = "${aws_route53_zone.ahoskingit_ca.name}"
    type = "MX"
    ttl = "60"
    records = ["1 ASPMX.L.GOOGLE.COM",
               "5 ALT1.ASPMX.L.GOOGLE.COM",
               "5 ALT2.ASPMX.L.GOOGLE.COM",
               "10 ALT3.ASPMX.L.GOOGLE.COM",
               "10 ALT4.ASPMX.L.GOOGLE.COM"]
}
resource "aws_route53_record" "ahoskingit_ca_txt" {
    zone_id = "${aws_route53_zone.ahoskingit_ca.zone_id}"
    name = "${aws_route53_zone.ahoskingit_ca.name}"
    type = "TXT"
    ttl = "60"
    records = ["google-site-verification=BgSCW0dvRYo4wR3l4ubjfq--VXsv554GIxgCDTyMK78"]
}
