1*55e87721SMatt Gilbrideterraform { 2*55e87721SMatt Gilbride required_providers { 3*55e87721SMatt Gilbride google = { 4*55e87721SMatt Gilbride source = "hashicorp/google" 5*55e87721SMatt Gilbride } 6*55e87721SMatt Gilbride } 7*55e87721SMatt Gilbride} 8*55e87721SMatt Gilbrideresource "google_project_service" "compute" { 9*55e87721SMatt Gilbride service = "compute.googleapis.com" 10*55e87721SMatt Gilbride project = var.inputs.project_id 11*55e87721SMatt Gilbride count = var.inputs.should_enable_apis_on_apply ? 1 : 0 12*55e87721SMatt Gilbride disable_on_destroy = var.inputs.should_disable_apis_on_destroy 13*55e87721SMatt Gilbride} 14*55e87721SMatt Gilbrideresource "google_project_service" "dataproc" { 15*55e87721SMatt Gilbride service = "dataproc.googleapis.com" 16*55e87721SMatt Gilbride project = var.inputs.project_id 17*55e87721SMatt Gilbride count = var.inputs.should_enable_apis_on_apply ? 1 : 0 18*55e87721SMatt Gilbride disable_on_destroy = var.inputs.should_disable_apis_on_destroy 19*55e87721SMatt Gilbride} 20*55e87721SMatt Gilbridedata "google_compute_default_service_account" "default" { 21*55e87721SMatt Gilbride depends_on = [google_project_service.compute, google_project_service.dataproc] 22*55e87721SMatt Gilbride} 23*55e87721SMatt Gilbrideresource "google_project_iam_member" "dataproc_iam" { 24*55e87721SMatt Gilbride project = var.inputs.project_id 25*55e87721SMatt Gilbride role = "roles/dataproc.worker" 26*55e87721SMatt Gilbride member = "serviceAccount:${data.google_compute_default_service_account.default.email}" 27*55e87721SMatt Gilbride} 28