provider "aws" {
  profile = var.aws_profile
  region  = var.aws_region_id
}

locals {
  ipv4_list      = toset(split("\n", data.aws_s3_object.ioc_ipv4_addresses_block.body))
  ipv4_cidr_list = toset(split("\n", data.aws_s3_object.ioc_ipv4_cidr_block.body))
  cidr_v4_list = concat(
    [for ip in local.ipv4_list : format("%s/32", trimspace(ip)) if ip != ""],
    [for ip in local.ipv4_cidr_list : trimspace(ip) if ip != ""],
  )

  ipv6_list      = toset(split("\n", data.aws_s3_object.ioc_ipv6_addresses_block.body))
  ipv6_cidr_list = toset(split("\n", data.aws_s3_object.ioc_ipv6_cidr_block.body))
  cidr_v6_list = concat(
    [for ip in local.ipv6_list : format("%s/128", trimspace(ip)) if ip != ""],
    [for ip in local.ipv6_cidr_list : trimspace(ip) if ip != ""],
  )
}

data "aws_s3_object" "ioc_ipv4_addresses_block" {
  bucket = "gdb-infra-dev-ip-and-domain-block"
  key    = "IOC_IPV4_Address_block.txt"
}

data "aws_s3_object" "ioc_ipv4_cidr_block" {
  bucket = "gdb-infra-dev-ip-and-domain-block"
  key    = "IOC_IPV4_CIDR_block.txt"
}

data "aws_s3_object" "ioc_ipv6_addresses_block" {
  bucket = "gdb-infra-dev-ip-and-domain-block"
  key    = "IOC_IPv6_Address_block.txt"
}

data "aws_s3_object" "ioc_ipv6_cidr_block" {
  bucket = "gdb-infra-dev-ip-and-domain-block"
  key    = "IOC_IPV6_CIDR_block.txt"
}
