xref: /aosp_15_r20/external/google-cloud-java/java-bigqueryconnection/.cloud/main.tf (revision 55e87721aa1bc457b326496a7ca40f3ea1a63287)
1terraform {
2  required_providers {
3    google = {
4      source = "hashicorp/google"
5    }
6  }
7}
8resource "google_project_service" "bigquery" {
9  service            = "bigquery.googleapis.com"
10  project            = var.inputs.project_id
11  count              = var.inputs.should_enable_apis_on_apply ? 1 : 0
12  disable_on_destroy = var.inputs.should_disable_apis_on_destroy
13}
14resource "google_project_service" "bigqueryconnection" {
15  service            = "bigqueryconnection.googleapis.com"
16  project            = var.inputs.project_id
17  count              = var.inputs.should_enable_apis_on_apply ? 1 : 0
18  disable_on_destroy = var.inputs.should_disable_apis_on_destroy
19}
20resource "google_project_service" "sqladmin" {
21  service            = "sqladmin.googleapis.com"
22  project            = var.inputs.project_id
23  count              = var.inputs.should_enable_apis_on_apply ? 1 : 0
24  disable_on_destroy = var.inputs.should_disable_apis_on_destroy
25}
26
27resource "random_id" "id" {
28  byte_length = 3
29}
30locals {
31  db_name = lower("mysql-db-${random_id.id.hex}")
32}
33
34module "mysql-db" {
35  source              = "GoogleCloudPlatform/sql-db/google//modules/mysql"
36  version             = "12.0.0"
37  name                = local.db_name
38  database_version    = "MYSQL_8_0"
39  deletion_protection = false
40  project_id          = var.inputs.project_id
41  zone                = var.inputs.zone
42  region              = var.inputs.region
43  depends_on          = [
44    google_project_service.bigquery,
45    google_project_service.bigqueryconnection,
46    google_project_service.sqladmin
47  ]
48}
49