resource "aws_acm_certificate" "wildcard_crm_subdomain" {
  domain_name       = "*.${local.crm_subdomain}"
  validation_method = "DNS"

  tags = merge(
    local.common_tags,
    {
      project                  = "Infrastructure",
      service                  = "ACM",
      plat_env_project_service = "${local.aggregated_tag}_INFRA_ACM"
    }
  )

  lifecycle {
    create_before_destroy = true
  }
}

resource "aws_route53_record" "crm_subdomain_validation_record" {
  name    = tolist(aws_acm_certificate.wildcard_crm_subdomain.domain_validation_options)[0].resource_record_name
  type    = tolist(aws_acm_certificate.wildcard_crm_subdomain.domain_validation_options)[0].resource_record_type
  zone_id = aws_route53_zone.crm_subdomain.zone_id
  records = [
    tolist(aws_acm_certificate.wildcard_crm_subdomain.domain_validation_options)[0].resource_record_value,
  ]
  ttl = 60
}

resource "aws_acm_certificate_validation" "wildcard_crm_subdomain_validation" {
  certificate_arn         = aws_acm_certificate.wildcard_crm_subdomain.arn
  validation_record_fqdns = [aws_route53_record.crm_subdomain_validation_record.fqdn]
}
