resource "aws_cloudfront_response_headers_policy" "response_headers_policy" {
  # checkov:skip=ORCD_AWS_4:This resource is designed for the ORCD_AWS_3 policy only.
}

#---

resource "aws_cloudfront_distribution" "pass_on_default_cache_behavior" {
  default_cache_behavior {
    allowed_methods            = ["HEAD", "GET"]
    response_headers_policy_id = aws_cloudfront_response_headers_policy.response_headers_policy.id
  }
}

resource "aws_cloudfront_distribution" "fail_on_default_cache_behavior" {
  default_cache_behavior {
    allowed_methods = ["HEAD", "GET"]
  }
}

#---

resource "aws_cloudfront_distribution" "pass_on_ordered_cache_behavior" {
  default_cache_behavior {
    allowed_methods            = ["HEAD", "GET"]
    response_headers_policy_id = aws_cloudfront_response_headers_policy.response_headers_policy.id
  }

  ordered_cache_behavior {
    allowed_methods            = ["HEAD", "GET"]
    response_headers_policy_id = aws_cloudfront_response_headers_policy.response_headers_policy.id
  }
}

resource "aws_cloudfront_distribution" "fail_on_ordered_cache_behavior" {
  default_cache_behavior {
    allowed_methods            = ["HEAD", "GET"]
    response_headers_policy_id = aws_cloudfront_response_headers_policy.response_headers_policy.id
  }

  ordered_cache_behavior {
    allowed_methods = ["HEAD", "GET"]
  }
}

#---

resource "aws_cloudfront_distribution" "pass_on_multiple_ordered_cache_behaviors" {
  default_cache_behavior {
    allowed_methods            = ["HEAD", "GET"]
    response_headers_policy_id = aws_cloudfront_response_headers_policy.response_headers_policy.id
  }

  ordered_cache_behavior {
    allowed_methods            = ["HEAD", "GET"]
    response_headers_policy_id = aws_cloudfront_response_headers_policy.response_headers_policy.id
  }

  ordered_cache_behavior {
    allowed_methods            = ["HEAD", "GET"]
    response_headers_policy_id = aws_cloudfront_response_headers_policy.response_headers_policy.id
  }
}

resource "aws_cloudfront_distribution" "fail_on_multiple_ordered_cache_behaviors" {
  default_cache_behavior {
    allowed_methods            = ["HEAD", "GET"]
    response_headers_policy_id = aws_cloudfront_response_headers_policy.response_headers_policy.id
  }

  ordered_cache_behavior {
    allowed_methods            = ["HEAD", "GET"]
    response_headers_policy_id = aws_cloudfront_response_headers_policy.response_headers_policy.id
  }

  ordered_cache_behavior {
    allowed_methods = ["HEAD", "GET"]
  }
}
