terraform { backend "gcs" { bucket = "tf-state-4b00" prefix = "terraform/api_gateway_test" } required_providers { google = { source = "hashicorp/google" version = "6.7.0" } google-beta = { source = "hashicorp/google-beta" version = "6.7.0" } random = { source = "hashicorp/random" version = "3.6.2" } } } variable "provider_project" { description = "Project ID." type = string default = "terraform-management-427323" } variable "region" { description = "Region." type = string default = "us-central1" } variable "zone" { description = "Zone." type = string default = "us-central1-c" } # manual step: enable cloudbilling.googleapis.com in the terraform provider project # https://console.developers.google.com/apis/api/cloudbilling.googleapis.com/overview?project=terraform-management-427323 provider "google" { project = var.provider_project region = var.region zone = var.zone billing_project = var.provider_project user_project_override = true } provider "google-beta" { project = var.provider_project region = var.region zone = var.zone billing_project = var.provider_project user_project_override = true } resource "random_id" "project" { byte_length = 4 } data "google_billing_account" "acct" { display_name = "My Billing Account" open = true } resource "google_project" "project" { name = "Api Gateway Test" project_id = "api-gateway-test-${random_id.project.hex}" billing_account = data.google_billing_account.acct.id deletion_policy = "DELETE" } resource "google_project_service" "service" { project = google_project.project.project_id for_each = toset(["run", "artifactregistry", "apigateway", "secretmanager"]) service = "${each.key}.googleapis.com" disable_dependent_services = true }