resource "aws_acm_certificate" "wildcard_delphi_zone_cert" {
  domain_name       = "*.delphi.zone"
  validation_method = "DNS"

  tags = {
    service                  = "ACM",
    plat_env_project_service = "${local.aggregated_tag}_ACM"
  }

  lifecycle {
    create_before_destroy = true
  }
}

resource "aws_route53_record" "wildcard_delphi_zone_cert_validation_record" {
  provider = aws.gdb-delphi-prod
  name     = tolist(aws_acm_certificate.wildcard_delphi_zone_cert.domain_validation_options)[0].resource_record_name
  type     = tolist(aws_acm_certificate.wildcard_delphi_zone_cert.domain_validation_options)[0].resource_record_type
  zone_id  = data.aws_route53_zone.delphi_zone.id
  ttl      = 60

  records = [
    tolist(aws_acm_certificate.wildcard_delphi_zone_cert.domain_validation_options)[0].resource_record_value,
  ]
}

resource "aws_acm_certificate_validation" "wildcard_atlas_stream_cert_validation" {
  certificate_arn = aws_acm_certificate.wildcard_delphi_zone_cert.arn

  validation_record_fqdns = [
    aws_route53_record.wildcard_delphi_zone_cert_validation_record.fqdn,
  ]
}
