variable "account" {
  type        = string
  description = "snowflake account id"
  default     = "delphi"
}

variable "shared_services_nat_gateways" {
  description = "EIP of NAT gateways in shared services AWS account"
  default = [
    "3.213.73.88",
    "3.81.188.77",
    "34.196.231.107",
    "52.202.238.54",
    "34.198.230.207",
    "34.200.140.205",
    "100.25.234.141",
    "54.160.83.19",
  ]
}

locals {
  policies = {
    "HIGHTOUCH_POLICY" = {
      comment = "PC_HIGHTOUCH_USER policy"
      ip_addresses = [
        "3.217.26.199",
        "3.224.126.197",
        "18.213.226.96",
        "34.255.226.212",
        "52.16.84.199",
        "52.72.201.213",
        "52.211.114.138",
        "54.196.30.169",
        "71.232.79.5",
      ]
    }
    "delphi-stage-nat-policy" = {
      comment = "IP addresses of NAT gatewas of delphi staging environment"
      ip_addresses = [
        "54.156.200.217",
        "34.237.62.112",
        "54.236.159.9",
      ]
    }
    "segment-user-network-policy" = {
      ip_addresses = [
        "52.25.130.38",
        "34.223.203.0/28",
      ]
    }
    "fivetran-policy" = {
      ip_addresses = ["35.234.176.144/29"]
    }
    "gdb-infra-prod-policy" = {
      ip_addresses = ["18.205.50.243"]
    }
    "jenkins-cli-network-policy" = {
      ip_addresses = concat(
        [for gateway in data.aws_nat_gateway.nat_gateway : gateway.public_ip],
        var.shared_services_nat_gateways
      )
    }
    "sony-publishing-policy" = {
      ip_addresses = [
        "35.170.165.105",
        "160.33.192.127",
        "35.170.165.105",
        "160.33.192.127",
        "3.210.196.9",
        "44.208.252.95",
        "54.197.47.65",
        "54.204.223.42",
        "44.217.104.236",
        "52.204.95.44",
      ]
    }
    "apollo-prod-nat-policy" = {
      ip_addresses = [
        "52.20.59.103",
        "52.3.64.168",
        "54.83.195.103",
      ]
    }
    "periscope-policy" = {
      ip_addresses = ["107.23.195.228"]
    }
    "tableau-cloud-network-policy" = {
      ip_addresses = flatten([for prefix in local.salesforce_ip_prefixes : prefix.ip_prefix if prefix.region == "us-east-1"])
      comment      = "Network policy to allow access from Tableau Cloud in us-east-1"
    }
    "datadog-webhooks-network-policy" = {
      ip_addresses = data.datadog_ip_ranges.datadog_ips.webhooks_ipv4
      comment      = "datadog IP address for webhooks"
    }
    "sisense-network-policy" = {
      ip_addresses = [
        "107.23.195.228",
        "54.236.224.46"
      ]
    }
    "looker-network-policy" = {
      ip_addresses = [
        # Prod instance
        "54.159.42.144",
        "3.229.81.101",
        "34.225.255.220",
        # Dev instance
        "2.86.109.68",
        "54.159.176.199",
        "52.55.239.166",
      ]
    }
    "looker-external-network-policy" = {
      ip_addresses = [
        "35.168.173.238",
        "54.162.175.244",
        "54.80.5.17",
      ]
    }
    "sagemaker-network-policy" = {
      ip_addresses = [
        "52.0.160.11"
      ]
    }
    "business-intelligence-network-policy" = {
      ip_addresses = [
        "52.7.56.4",
        "35.169.51.238",
        "18.211.205.189",
      ]
    }
    "pipedream-network-policy" = {
      ip_addresses = [
        "44.223.89.56",
        "44.223.89.57",
        "44.223.89.58",
        "44.223.89.59",
        "44.223.89.60",
        "44.223.89.61",
        "44.223.89.62",
        "44.223.89.63",
      ]
    }
    "quicksight-network-policy" = {
      ip_addresses = [
        "52.23.63.224/27",
      ]
    }
  }
}
