data "aws_caller_identity" "current" {}

data "aws_region" "current" {}

locals {
  share_name = data.aws_region.current.name == var.default_region ? "shared-aws-account-ids-share" : "shared-aws-account-ids-share-${data.aws_region.current.name}"
}

data "aws_ram_resource_share" "accounts" {
  name           = local.share_name
  resource_owner = data.aws_caller_identity.current.account_id == "086679231553" ? "SELF" : "OTHER-ACCOUNTS"
}

data "aws_ssm_parameter" "accounts" {
  for_each = toset(data.aws_ram_resource_share.accounts.resource_arns)
  name     = each.value
}

locals {
  full_accounts_map = {
    for arn, param in data.aws_ssm_parameter.accounts :
    jsondecode(nonsensitive(param.value))["name"] => jsondecode(nonsensitive(param.value))
  }
}
