xref: /aosp_15_r20/external/google-cloud-java/.cloud/helpers/generated-main.template.tf (revision 55e87721aa1bc457b326496a7ca40f3ea1a63287)
1*55e87721SMatt Gilbride# Auto-generated by generate-config.sh
2*55e87721SMatt Gilbrideterraform {
3*55e87721SMatt Gilbride  required_providers {
4*55e87721SMatt Gilbride    google = {
5*55e87721SMatt Gilbride      source = "hashicorp/google"
6*55e87721SMatt Gilbride    }
7*55e87721SMatt Gilbride  }
8*55e87721SMatt Gilbride}
9*55e87721SMatt Gilbrideprovider "google" {
10*55e87721SMatt Gilbride  project = var.project_id
11*55e87721SMatt Gilbride  region  = var.region
12*55e87721SMatt Gilbride  zone    = var.zone
13*55e87721SMatt Gilbride}
14*55e87721SMatt Gilbridelocals {
15*55e87721SMatt Gilbride  # Objects with additional key-value entries may be passed as variables
16*55e87721SMatt Gilbride  # to modules needing an object with only a subset of those entries.
17*55e87721SMatt Gilbride  # So this 'data' object is a superset of key-value entries that may be
18*55e87721SMatt Gilbride  # needed, and we pass it to every module.
19*55e87721SMatt Gilbride  data = {
20*55e87721SMatt Gilbride    project_id                      = var.project_id
21*55e87721SMatt Gilbride    region                          = var.region
22*55e87721SMatt Gilbride    zone                            = var.zone
23*55e87721SMatt Gilbride    should_create_container_network = var.should_create_container_network
24*55e87721SMatt Gilbride    should_create_redis_network     = var.should_create_redis_network
25*55e87721SMatt Gilbride    should_enable_apis_on_apply     = var.should_enable_apis_on_apply
26*55e87721SMatt Gilbride    should_disable_apis_on_destroy  = var.should_disable_apis_on_destroy
27*55e87721SMatt Gilbride  }
28*55e87721SMatt Gilbride}
29*55e87721SMatt Gilbrideresource "google_project_service" "cloudresourcemanager" {
30*55e87721SMatt Gilbride  service            = "cloudresourcemanager.googleapis.com"
31*55e87721SMatt Gilbride  project            = local.data.project_id
32*55e87721SMatt Gilbride  count              = local.data.should_enable_apis_on_apply ? 1 : 0
33*55e87721SMatt Gilbride  disable_on_destroy = local.data.should_disable_apis_on_destroy
34*55e87721SMatt Gilbride}
35*55e87721SMatt Gilbrideresource "google_project_service" "iam" {
36*55e87721SMatt Gilbride  service            = "iam.googleapis.com"
37*55e87721SMatt Gilbride  project            = local.data.project_id
38*55e87721SMatt Gilbride  count              = local.data.should_enable_apis_on_apply ? 1 : 0
39*55e87721SMatt Gilbride  disable_on_destroy = local.data.should_disable_apis_on_destroy
40*55e87721SMatt Gilbride}
41*55e87721SMatt Gilbrideresource "google_project_service" "iamcredentials" {
42*55e87721SMatt Gilbride  service            = "iamcredentials.googleapis.com"
43*55e87721SMatt Gilbride  project            = local.data.project_id
44*55e87721SMatt Gilbride  count              = local.data.should_enable_apis_on_apply ? 1 : 0
45*55e87721SMatt Gilbride  disable_on_destroy = local.data.should_disable_apis_on_destroy
46*55e87721SMatt Gilbride}
47*55e87721SMatt Gilbrideresource "google_project_service" "serviceusage" {
48*55e87721SMatt Gilbride  service            = "serviceusage.googleapis.com"
49*55e87721SMatt Gilbride  project            = local.data.project_id
50*55e87721SMatt Gilbride  count              = local.data.should_enable_apis_on_apply ? 1 : 0
51*55e87721SMatt Gilbride  disable_on_destroy = local.data.should_disable_apis_on_destroy
52*55e87721SMatt Gilbride}
53*55e87721SMatt Gilbrideresource "time_sleep" "for_1m_allowBaseCloudApisToFullyEnable" {
54*55e87721SMatt Gilbride  create_duration = "1m"
55*55e87721SMatt Gilbride  depends_on      = [
56*55e87721SMatt Gilbride    google_project_service.cloudresourcemanager,
57*55e87721SMatt Gilbride    google_project_service.iam,
58*55e87721SMatt Gilbride    google_project_service.iamcredentials,
59*55e87721SMatt Gilbride    google_project_service.serviceusage
60*55e87721SMatt Gilbride  ]
61*55e87721SMatt Gilbride  triggers = {
62*55e87721SMatt Gilbride    when_project_created = local.data.project_id
63*55e87721SMatt Gilbride  }
64*55e87721SMatt Gilbride}
65