provider "snowflake" {
  account_name = var.account
  role         = "PROD_ATLANTIS"
}


terraform {
  backend "s3" {
    bucket  = "orcd-terraform-state"
    key     = "prod/snowflake/delphi/databases/delphi-public-data-main/additional_roles/terraform.tfstate"
    region  = "us-east-1"
    encrypt = "true"
  }
}

module "playlists_read_role" {
  for_each = toset([
    "DIM_ALBUM",
    "DIM_ALBUM_ARTIST",
    "DIM_ARTIST",
    "DIM_DSP",
    "DIM_MARKET",
    "DIM_PLAYLIST",
    "DIM_PLAYLIST_EXTRA",
    "DIM_PLAYLIST_OWNER",
    "DIM_PLAYLIST_OWNER_CATEGORY",
    "DIM_TRACK",
    "DIM_TRACK_ALBUM",
    "DIM_TRACK_ARTIST",
    "FACT_PLAYLIST_TRACK_HISTORY",
    "FACT_PLAYLIST_TRACK_SNAPSHOT",
    "FACT_PLAYLIST_TRACKLIST_UPDATES",
    "FACT_PUBLIC_APPLE_PLAYLIST_ISRC_LIFETIME",
    "FACT_PUBLIC_SPOTIFY_PLAYLIST_ISRC_LIFETIME",
    "FACT_SPOTIFY_PLAYLIST_FOLLOWERS",
    "PLAYLIST_EVENT_HISTORY",
    "PLAYLIST_TRACK_EVENT_HISTORY",
    "STARRED_PLAYLIST",
    "STARRED_TRACK",
    "TOP_PLAYLIST"
  ])

  source = "git@github.com:theorchard/terraform-snowflake.git//modules/roles/table_access?ref=7.2.1"

  database = var.database_name
  schema   = "PLAYLISTS"
  table    = each.value
}
