resource "aws_ec2_managed_prefix_list" "private" {
  address_family = "IPv4"
  max_entries = length(
    [

      aws_subnet.subnet-0b798708cb146a155,
      aws_subnet.subnet-0f16e2315a457aca9,

    ]
  )
  name = "${var.environment}-${var.account_group}-private-subnet-prefix-list"

  dynamic "entry" {
    for_each = toset([

      aws_subnet.subnet-0b798708cb146a155,
      aws_subnet.subnet-0f16e2315a457aca9,
    ])
    content {
      cidr        = entry.value["cidr_block"]
      description = "${var.environment} ${var.account_group} private subnet ${entry.value["cidr_block"]} in ${entry.value["availability_zone"]}"
    }
  }

  tags = {
    account_group = var.account_group
    environment   = var.environment
    service_name  = "managed-prefix-list"
    subnet_group  = "all"
    subnet_type   = "private"
    tier          = "private"
    terraformed   = true
    vpc_id        = aws_vpc.vpc-071995abcfc106bd5.id
  }
}

resource "aws_ram_resource_share" "private_subnet" {
  name = "${var.environment}-${var.account_group}-private-subnet-managed-prefix-list-share"

  tags = {
    account_group = var.account_group
    environment   = var.environment
    service_name  = "managed-prefix-list"
    terraformed   = true
  }
}

resource "aws_ram_resource_association" "private_subnet_association" {
  resource_arn       = aws_ec2_managed_prefix_list.private.arn
  resource_share_arn = aws_ram_resource_share.private_subnet.arn
}

resource "aws_ram_principal_association" "private_subnet_principal_association" {
  for_each           = var.resource_share_principals
  principal          = each.value
  resource_share_arn = aws_ram_resource_share.private_subnet.arn
}
