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" "iam" { 9*55e87721SMatt Gilbride service = "iam.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 "random_id" "id" { 15*55e87721SMatt Gilbride byte_length = 3 16*55e87721SMatt Gilbride} 17*55e87721SMatt Gilbridelocals { 18*55e87721SMatt Gilbride service_account_id = lower("service-account-id-${random_id.id.hex}") 19*55e87721SMatt Gilbride} 20*55e87721SMatt Gilbrideresource "google_service_account" "service_account" { 21*55e87721SMatt Gilbride account_id = local.service_account_id 22*55e87721SMatt Gilbride display_name = "Service Account" 23*55e87721SMatt Gilbride depends_on = [google_project_service.iam] 24*55e87721SMatt Gilbride} 25