resource "aws_acm_certificate" "wildcard_atlas_stream_cert" {
  domain_name       = "*.atlas.stream"
  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" "wildcard_atlas_stream_cert_validation_record" {
  provider = aws.gdb-core-dev
  name     = tolist(aws_acm_certificate.wildcard_atlas_stream_cert.domain_validation_options)[0].resource_record_name
  type     = tolist(aws_acm_certificate.wildcard_atlas_stream_cert.domain_validation_options)[0].resource_record_type
  zone_id  = data.aws_route53_zone.atlas_stream_zone.id
  ttl      = 60

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

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

  validation_record_fqdns = [
    aws_route53_record.wildcard_atlas_stream_cert_validation_record.fqdn,
  ]
}
