locals {
  decoded_statements = flatten([for source_policy in var.source_policies : jsondecode(source_policy).Statement])

  merged_policy = jsonencode(
    {
      Statement = local.decoded_statements,
      Version   = var.policy_document_version
    }
  )
}

resource "aws_iam_policy" "merged_policy" {
  name   = var.name
  policy = local.merged_policy
}
