pull/52/head
Stephen Kirby 2 years ago
parent 6a83fe8793
commit 72d5f7622e

@ -10,27 +10,27 @@ terraform {
} }
variable "display_name" { variable "display_name" {
default = "Fly.io Region" default = "Fly.io Region"
description = "The display name of the parameter." description = "The display name of the parameter."
type = string type = string
} }
variable "description" { variable "description" {
default = "The region to deploy workspace infrastructure." default = "The region to deploy workspace infrastructure."
description = "The description of the parameter." description = "The description of the parameter."
type = string type = string
} }
variable "default" { variable "default" {
default = null default = null
description = "The default region to use if no region is specified." description = "The default region to use if no region is specified."
type = string type = string
} }
variable "mutable" { variable "mutable" {
default = false default = false
description = "Whether the parameter can be changed after creation." description = "Whether the parameter can be changed after creation."
type = bool type = bool
} }
variable "custom_names" { variable "custom_names" {
@ -46,242 +46,242 @@ variable "custom_icons" {
} }
variable "regions" { variable "regions" {
default = [] default = []
description = "List of regions to include for region selection." description = "List of regions to include for region selection."
type = list(string) type = list(string)
} }
locals { locals {
regions = { regions = {
"ams" = { "ams" = {
name = "Amsterdam, Netherlands" name = "Amsterdam, Netherlands"
gateway = true gateway = true
paid_only = false paid_only = false
icon = "/emojis/1f1f3-1f1f1.png" icon = "/emojis/1f1f3-1f1f1.png"
} }
"arn" = { "arn" = {
name = "Stockholm, Sweden" name = "Stockholm, Sweden"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1f8-1f1ea.png" icon = "/emojis/1f1f8-1f1ea.png"
} }
"atl" = { "atl" = {
name = "Atlanta, Georgia (US)" name = "Atlanta, Georgia (US)"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1fa-1f1f8.png" icon = "/emojis/1f1fa-1f1f8.png"
} }
"bog" = { "bog" = {
name = "Bogotá, Colombia" name = "Bogotá, Colombia"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1e8-1f1f4.png" icon = "/emojis/1f1e8-1f1f4.png"
} }
"bom" = { "bom" = {
name = "Mumbai, India" name = "Mumbai, India"
gateway = true gateway = true
paid_only = true paid_only = true
icon = "/emojis/1f1ee-1f1f3.png" icon = "/emojis/1f1ee-1f1f3.png"
} }
"bos" = { "bos" = {
name = "Boston, Massachusetts (US)" name = "Boston, Massachusetts (US)"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1fa-1f1f8.png" icon = "/emojis/1f1fa-1f1f8.png"
} }
"cdg" = { "cdg" = {
name = "Paris, France" name = "Paris, France"
gateway = true gateway = true
paid_only = false paid_only = false
icon = "/emojis/1f1eb-1f1f7.png" icon = "/emojis/1f1eb-1f1f7.png"
} }
"den" = { "den" = {
name = "Denver, Colorado (US)" name = "Denver, Colorado (US)"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1fa-1f1f8.png" icon = "/emojis/1f1fa-1f1f8.png"
} }
"dfw" = { "dfw" = {
name = "Dallas, Texas (US)" name = "Dallas, Texas (US)"
gateway = true gateway = true
paid_only = false paid_only = false
icon = "/emojis/1f1fa-1f1f8.png" icon = "/emojis/1f1fa-1f1f8.png"
} }
"ewr" = { "ewr" = {
name = "Secaucus, NJ (US)" name = "Secaucus, NJ (US)"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1fa-1f1f8.png" icon = "/emojis/1f1fa-1f1f8.png"
} }
"eze" = { "eze" = {
name = "Ezeiza, Argentina" name = "Ezeiza, Argentina"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1e6-1f1f7.png" icon = "/emojis/1f1e6-1f1f7.png"
} }
"fra" = { "fra" = {
name = "Frankfurt, Germany" name = "Frankfurt, Germany"
gateway = true gateway = true
paid_only = true paid_only = true
icon = "/emojis/1f1e9-1f1ea.png" icon = "/emojis/1f1e9-1f1ea.png"
} }
"gdl" = { "gdl" = {
name = "Guadalajara, Mexico" name = "Guadalajara, Mexico"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1f2-1f1fd.png" icon = "/emojis/1f1f2-1f1fd.png"
} }
"gig" = { "gig" = {
name = "Rio de Janeiro, Brazil" name = "Rio de Janeiro, Brazil"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1e7-1f1f7.png" icon = "/emojis/1f1e7-1f1f7.png"
} }
"gru" = { "gru" = {
name = "Sao Paulo, Brazil" name = "Sao Paulo, Brazil"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1e7-1f1f7.png" icon = "/emojis/1f1e7-1f1f7.png"
} }
"hkg" = { "hkg" = {
name = "Hong Kong, Hong Kong" name = "Hong Kong, Hong Kong"
gateway = true gateway = true
paid_only = false paid_only = false
icon = "/emojis/1f1ed-1f1f0.png" icon = "/emojis/1f1ed-1f1f0.png"
} }
"iad" = { "iad" = {
name = "Ashburn, Virginia (US)" name = "Ashburn, Virginia (US)"
gateway = true gateway = true
paid_only = false paid_only = false
icon = "/emojis/1f1fa-1f1f8.png" icon = "/emojis/1f1fa-1f1f8.png"
} }
"jnb" = { "jnb" = {
name = "Johannesburg, South Africa" name = "Johannesburg, South Africa"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1ff-1f1e6.png" icon = "/emojis/1f1ff-1f1e6.png"
} }
"lax" = { "lax" = {
name = "Los Angeles, California (US)" name = "Los Angeles, California (US)"
gateway = true gateway = true
paid_only = false paid_only = false
icon = "/emojis/1f1fa-1f1f8.png" icon = "/emojis/1f1fa-1f1f8.png"
} }
"lhr" = { "lhr" = {
name = "London, United Kingdom" name = "London, United Kingdom"
gateway = true gateway = true
paid_only = false paid_only = false
icon = "/emojis/1f1ec-1f1e7.png" icon = "/emojis/1f1ec-1f1e7.png"
} }
"mad" = { "mad" = {
name = "Madrid, Spain" name = "Madrid, Spain"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1ea-1f1f8.png" icon = "/emojis/1f1ea-1f1f8.png"
} }
"mia" = { "mia" = {
name = "Miami, Florida (US)" name = "Miami, Florida (US)"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1fa-1f1f8.png" icon = "/emojis/1f1fa-1f1f8.png"
} }
"nrt" = { "nrt" = {
name = "Tokyo, Japan" name = "Tokyo, Japan"
gateway = true gateway = true
paid_only = false paid_only = false
icon = "/emojis/1f1ef-1f1f5.png" icon = "/emojis/1f1ef-1f1f5.png"
} }
"ord" = { "ord" = {
name = "Chicago, Illinois (US)" name = "Chicago, Illinois (US)"
gateway = true gateway = true
paid_only = false paid_only = false
icon = "/emojis/1f1fa-1f1f8.png" icon = "/emojis/1f1fa-1f1f8.png"
} }
"otp" = { "otp" = {
name = "Bucharest, Romania" name = "Bucharest, Romania"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1f7-1f1f4.png" icon = "/emojis/1f1f7-1f1f4.png"
} }
"phx" = { "phx" = {
name = "Phoenix, Arizona (US)" name = "Phoenix, Arizona (US)"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1fa-1f1f8.png" icon = "/emojis/1f1fa-1f1f8.png"
} }
"qro" = { "qro" = {
name = "Querétaro, Mexico" name = "Querétaro, Mexico"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1f2-1f1fd.png" icon = "/emojis/1f1f2-1f1fd.png"
} }
"scl" = { "scl" = {
name = "Santiago, Chile" name = "Santiago, Chile"
gateway = true gateway = true
paid_only = false paid_only = false
icon = "/emojis/1f1e8-1f1f1.png" icon = "/emojis/1f1e8-1f1f1.png"
} }
"sea" = { "sea" = {
name = "Seattle, Washington (US)" name = "Seattle, Washington (US)"
gateway = true gateway = true
paid_only = false paid_only = false
icon = "/emojis/1f1fa-1f1f8.png" icon = "/emojis/1f1fa-1f1f8.png"
} }
"sin" = { "sin" = {
name = "Singapore, Singapore" name = "Singapore, Singapore"
gateway = true gateway = true
paid_only = false paid_only = false
icon = "/emojis/1f1f8-1f1ec.png" icon = "/emojis/1f1f8-1f1ec.png"
} }
"sjc" = { "sjc" = {
name = "San Jose, California (US)" name = "San Jose, California (US)"
gateway = true gateway = true
paid_only = false paid_only = false
icon = "/emojis/1f1fa-1f1f8.png" icon = "/emojis/1f1fa-1f1f8.png"
} }
"syd" = { "syd" = {
name = "Sydney, Australia" name = "Sydney, Australia"
gateway = true gateway = true
paid_only = false paid_only = false
icon = "/emojis/1f1e6-1f1fa.png" icon = "/emojis/1f1e6-1f1fa.png"
} }
"waw" = { "waw" = {
name = "Warsaw, Poland" name = "Warsaw, Poland"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1f5-1f1f1.png" icon = "/emojis/1f1f5-1f1f1.png"
} }
"yul" = { "yul" = {
name = "Montreal, Canada" name = "Montreal, Canada"
gateway = false gateway = false
paid_only = false paid_only = false
icon = "/emojis/1f1e8-1f1e6.png" icon = "/emojis/1f1e8-1f1e6.png"
} }
"yyz" = { "yyz" = {
name = "Toronto, Canada" name = "Toronto, Canada"
gateway = true gateway = true
paid_only = false paid_only = false
icon = "/emojis/1f1e8-1f1e6.png" icon = "/emojis/1f1e8-1f1e6.png"
} }
} }
} }
data "coder_parameter" "fly_region" { data "coder_parameter" "fly_region" {
name = "flyio_region" name = "flyio_region"
display_name = var.display_name display_name = var.display_name
description = var.description description = var.description
default = (var.default != null && var.default != "") && ((var.default != null ? contains(var.regions, var.default) : false) || length(var.regions) == 0) ? var.default : null default = (var.default != null && var.default != "") && ((var.default != null ? contains(var.regions, var.default) : false) || length(var.regions) == 0) ? var.default : null
mutable = var.mutable mutable = var.mutable
dynamic "option" { dynamic "option" {
for_each = { for k, v in local.regions : k => v if anytrue([for d in var.regions : k == d ]) || length(var.regions) == 0 } for_each = { for k, v in local.regions : k => v if anytrue([for d in var.regions : k == d]) || length(var.regions) == 0 }
content { content {
name = try(var.custom_names[option.key], option.value.name) name = try(var.custom_names[option.key], option.value.name)
icon = try(var.custom_icons[option.key], option.value.icon) icon = try(var.custom_icons[option.key], option.value.icon)
value = option.key value = option.key
}
} }
}
} }
output "value" { output "value" {
value = data.coder_parameter.fly_region.value value = data.coder_parameter.fly_region.value
} }
Loading…
Cancel
Save