resource "datadog_team" "team" {
  description = "Managed by Terraform."
  handle      = var.team_handle
  name        = var.team_name
}

data "datadog_user" "user" {
  for_each = var.team_members

  filter = each.value
}

resource "datadog_team_membership" "membership" {
  for_each = var.team_members

  team_id = datadog_team.team.id
  user_id = data.datadog_user.user[each.value].id
}

resource "datadog_team_notification_rule" "team_notification" {
  team_id = datadog_team.team.id
  slack {
    channel   = var.team_slack_channel
    workspace = var.team_slack_workspace
  }
  email {
    enabled = var.team_email_notifications_enabled
  }
}

resource "datadog_team_connection" "team_connection" {
  count = length(var.github_teams) > 0 ? 1 : 0

  team {
    id   = datadog_team.team.id
    type = "team"
  }
  dynamic "connected_team" {
    for_each = var.github_teams
    content {
      id   = connected_team.value
      type = "github_team"
    }
  }
}
