variable "application_family" {
  type    = string
  default = "devops"
}

variable "team_name" {
  type    = string
  default = "devops"
}

variable "environment" {
  default = "networking"
}

variable "customer_gateway_ip_address" {
  type        = string
  description = "The IP address for the customer gateway"
  default     = "207.237.185.2"
}

variable "vpn_addresses" {
  type        = list(string)
  description = "List of addresses associated with the VPN connection"
  default = [
    "10.20.0.0/22", # NY MGMT
    "192.168.32.0/24",
    "192.168.40.0/22",
  ]
}

variable "user_vpn_addresses" {
  type        = list(string)
  description = "Subset of vpn_addresses including only CIDR's neccessary for user connection via VPN and from the office"
  default = [
    "10.30.0.0/22",
    "192.168.32.0/24",
    "192.168.40.0/22",
    "162.49.36.0/22", # gp.sonymusic.com global protect clients vpn range
    "162.49.1.137/32", # gpny.sonymusic.com global protect clients vpn range
  ]
}

variable "vpc_routes" {
  type        = map(string)
  description = "A map of CIDR ranges to VPC names to configure routes for in the associated route table"
  default = {
    "10.0.0.0/16"    = "royaltyshare"
    "10.11.0.0/16"   = "gdb-apollo-dev-dev-apollo"
    "10.13.0.0/16"   = "gdb-delphi-prod-prod-apollo"
    "10.15.0.0/16"   = "gdb-apollo-dev-stage-apollo"
    "10.17.0.0/16"   = "gdb-apollo-prod-prod-apollo"
    "10.30.8.0/21"   = "gdb-delphi-dev-dev-delphi"
    "10.31.0.0/16"   = "gdb-delphi-dev-qa-delphi"
    "10.32.0.0/16"   = "gdb-delphi-dev-stage-delphi"
    "10.33.0.0/16"   = "gdb-delphi-prod-prod-delphi"
    "10.50.0.0/16"   = "gdb-infra-dev"
    "10.53.0.0/16"   = "gdb-infra-dev-jenkins"
    "10.60.0.0/16"   = "gdb-prodhub-dev-dev-ecommerce"
    "10.61.0.0/16"   = "gdb-prodhub-dev-prod-ecommerce"
    "10.93.0.0/16"   = "gdb-core-prod-uat-core"
    "10.94.0.0/16"   = "gdb-core-prod-prod-core"
    "10.100.0.0/16"  = "prod"
    "10.101.0.0/16"  = "dev"
    "10.110.0.0/16"  = "qa-graphql-switchboard"
    "10.164.0.0/16"  = "gdb-databricks-dev"
    "10.165.0.0/16"  = "gdb-databricks-prod"
    "10.180.0.0/20"  = "songwhip-qa"
    "10.180.16.0/20" = "songwhip-prod"
    "10.210.0.0/20"  = "networking"
    "10.214.0.0/20"  = "accounting-qa"
    "10.215.0.0/20"  = "accounting-prod"
    "10.216.0.0/20"  = "permissions-platform-qa"
    "10.217.0.0/20"  = "permissions-platform-prod"
    "10.219.0.0/20"  = "fansifter-qa"
    "10.220.0.0/20"  = "fansifter-prod"
    "10.213.0.0/20"  = "shared"
    "10.221.0.0/20"  = "business-intelligence-prod"
    "10.222.0.0/20"  = "business-solutions-qa"
    "10.223.0.0/20"  = "business-solutions-prod"
    "10.225.0.0/20"  = "supply-chain-qa"
    "10.226.0.0/20"  = "supply-chain-prod"
    "10.228.0.0/20"  = "mobile-code-push-qa"
    "10.229.0.0/20"  = "mobile-code-push-prod"
  }
}

variable "inter_region_routes" {
  type        = map(string)
  description = "A map of CIDR ranges to regions to configure routes for in the associated route table"
  default = {
    "172.31.0.0/16" = "us-west-2" # royaltyshare
  }
}

variable "managed_prefix_list_share_principals" {
  description = "List of principals to share the managed prefix list resource with via RAM"
  default = [
    "arn:aws:organizations::970903126758:ou/o-bqioddgr91/ou-ax9e-vu43qt3i", # The Orchard OU
    "arn:aws:organizations::970903126758:ou/o-bqioddgr91/ou-ax9e-ouayejxi", # Data Strategy aka GDB OU
    "arn:aws:organizations::970903126758:ou/o-bqioddgr91/ou-ax9e-nxfxc71f", # SME DEV OU
    "arn:aws:organizations::970903126758:ou/o-bqioddgr91/ou-ax9e-dc402ggh", # SME PROD OU
  ]
}

variable "ny_devops_vpn_access" {
  type        = list(string)
  description = "List of addresses associated with the VPN connection"
  default = [
    "192.168.32.0/24", # External NY DevOps VPN
    "192.168.36.0/28", # Internal NY DevOps VPN
    "10.160.0.26/32",  # NY Infolobox
    "10.160.0.27/32",  # NY Infolobox
  ]
}

