provider "google" {
    project = var.project_id
}

# Enable APIs for the project
# - cloudresourcemanager.googleapis.com
# - Dataproc API: to run dbt python models
# - Cloud scheduluer
# - PubSub
# - Cloud Run admin
# - Event Arc
# - Cloud Build API
# - Secret Manager API
resource "google_project_service" "enabled_apis" {
    project = var.project_id
    for_each = toset([
        "cloudresourcemanager.googleapis.com",
        "dataproc.googleapis.com",
        "cloudscheduler.googleapis.com",
        "pubsub.googleapis.com",
        "run.googleapis.com",
        "eventarc.googleapis.com",
        "cloudbuild.googleapis.com",
        "secretmanager.googleapis.com"
        ])
    service = each.value
}

resource "google_storage_bucket" "terraform_workspace_bucket" {
    name     = "${var.project_id}-terraform-state"
    location = var.region
}

resource "google_storage_bucket" "dbt_dataproc_bucket" {
    name     = "${var.project_id}-dbt-dataproc"
    location = var.region
}
