google_api_gateway_test/terraform/main.tf
2024-10-16 08:49:48 -04:00

81 lines
2.0 KiB
HCL

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
}