|
|
@ -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
|
|
|
|
}
|
|
|
|
}
|