You've already forked terraform-bunnynet
168 lines
3.9 KiB
HCL
168 lines
3.9 KiB
HCL
variable "name" {
|
|
type = string
|
|
description = "The name of the pullzone"
|
|
|
|
validation {
|
|
condition = length(var.name) > 0
|
|
error_message = "The pullzone name cannot be empty."
|
|
}
|
|
}
|
|
|
|
variable "domain" {
|
|
type = string
|
|
description = "The domain name for the pullzone"
|
|
|
|
validation {
|
|
condition = length(var.domain) > 0
|
|
error_message = "The domain cannot be empty."
|
|
}
|
|
}
|
|
|
|
variable "origin" {
|
|
type = string
|
|
description = "The origin URL for the pullzone"
|
|
|
|
validation {
|
|
condition = can(regex("^https?://", var.origin))
|
|
error_message = "The origin must be a valid HTTP(S) URL."
|
|
}
|
|
}
|
|
|
|
variable "origin_host" {
|
|
type = string
|
|
description = "The host header to send to the origin"
|
|
|
|
validation {
|
|
condition = length(var.origin_host) > 0
|
|
error_message = "The origin host cannot be empty."
|
|
}
|
|
}
|
|
|
|
variable "origin_type" {
|
|
type = string
|
|
default = "OriginUrl"
|
|
description = "The type of origin (OriginUrl, StorageZone, etc.)"
|
|
|
|
validation {
|
|
condition = contains(["OriginUrl", "StorageZone"], var.origin_type)
|
|
error_message = "The origin_type must be either 'OriginUrl' or 'StorageZone'."
|
|
}
|
|
}
|
|
|
|
variable "origin_verify_ssl" {
|
|
type = bool
|
|
default = true
|
|
description = "Whether to verify SSL certificates for the origin"
|
|
}
|
|
|
|
variable "block_post_requests" {
|
|
type = bool
|
|
default = false
|
|
description = "Whether to block POST requests"
|
|
}
|
|
|
|
variable "request_coalescing" {
|
|
type = bool
|
|
default = false
|
|
description = "Whether to enable request coalescing"
|
|
}
|
|
|
|
variable "websockets_enabled" {
|
|
type = bool
|
|
default = true
|
|
description = "Whether WebSockets are enabled"
|
|
}
|
|
|
|
variable "routing_tier" {
|
|
type = string
|
|
default = "Standard"
|
|
description = "The routing tier (Standard or Volume)"
|
|
|
|
validation {
|
|
condition = contains(["Standard", "Volume"], var.routing_tier)
|
|
error_message = "The routing_tier must be either 'Standard' or 'Volume'."
|
|
}
|
|
}
|
|
|
|
variable "routing_zones" {
|
|
type = list(string)
|
|
default = ["EU"]
|
|
description = "List of routing zones (AF, ASIA, EU, SA, US)"
|
|
}
|
|
|
|
variable "routing_blocked_countries" {
|
|
type = list(string)
|
|
default = []
|
|
description = "List of countries to block"
|
|
}
|
|
|
|
variable "routing_filters" {
|
|
type = list(string)
|
|
default = ["all"]
|
|
description = "List of routing filters (all, eu, scripting)"
|
|
}
|
|
|
|
variable "cache_chunked" {
|
|
type = bool
|
|
default = false
|
|
description = "Whether to enable chunked cache"
|
|
}
|
|
|
|
variable "cache_stale" {
|
|
type = list(string)
|
|
default = ["offline", "updating"]
|
|
description = "List of cache stale options"
|
|
}
|
|
|
|
variable "cache_vary" {
|
|
type = list(string)
|
|
default = ["querystring"]
|
|
description = "List of cache vary options (avif, cookie, country, hostname, mobile, querystring, state, webp)"
|
|
}
|
|
|
|
variable "errorpage_whitelabel" {
|
|
type = bool
|
|
default = true
|
|
description = "Whether to use whitelabel error pages"
|
|
}
|
|
|
|
variable "limit_bandwidth" {
|
|
type = number
|
|
default = 1000000000000
|
|
description = "Bandwidth limit in bytes"
|
|
|
|
validation {
|
|
condition = var.limit_bandwidth > 0
|
|
error_message = "The bandwidth limit must be a positive number."
|
|
}
|
|
}
|
|
|
|
variable "limit_download_speed" {
|
|
type = number
|
|
default = 12500
|
|
description = "Download speed limit in bytes per second"
|
|
|
|
validation {
|
|
condition = var.limit_download_speed > 0
|
|
error_message = "The download speed limit must be a positive number."
|
|
}
|
|
}
|
|
|
|
variable "certificate" {
|
|
type = string
|
|
default = ""
|
|
description = "Path to the certificate file"
|
|
}
|
|
|
|
variable "certificate_key" {
|
|
type = string
|
|
default = ""
|
|
description = "Path to the certificate key file"
|
|
}
|
|
|
|
variable "certificate_vault" {
|
|
type = bool
|
|
default = false
|
|
description = "Whether to use Vault for certificate management"
|
|
}
|