# Wildcard apollo certificate
resource "aws_acm_certificate" "atlas_stream_cert" {
  domain_name       = "*.atlas.stream"
  validation_method = "DNS"

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

  lifecycle {
    create_before_destroy = true
  }
}

resource "aws_route53_record" "atlas_stream_cert_validation" {
  name    = tolist(aws_acm_certificate.atlas_stream_cert.domain_validation_options)[0].resource_record_name
  type    = tolist(aws_acm_certificate.atlas_stream_cert.domain_validation_options)[0].resource_record_type
  zone_id = data.aws_route53_zone.atlas_stream_zone.id
  records = [
    tolist(aws_acm_certificate.atlas_stream_cert.domain_validation_options)[0].resource_record_value,
  ]
  ttl      = 60
  provider = aws.gdb-core-dev
}

resource "aws_acm_certificate_validation" "atlas_stream_cert" {
  certificate_arn = aws_acm_certificate.atlas_stream_cert.arn
  validation_record_fqdns = [
    aws_route53_record.atlas_stream_cert_validation.fqdn
  ]
}
