deprecated-code/terraform-modules/service-usage/tf-service-usage.tf (22 lines of code) (raw):
####################################################################################
# Copyright 2022 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
####################################################################################
####################################################################################
# Create the GCP resources
#
# NOTE: This uses teh logged in user to run this
#
# Author: Adam Paternostro
####################################################################################
terraform {
required_providers {
google = {
source = "hashicorp/google-beta"
version = "5.35.0"
}
}
}
####################################################################################
# Variables
####################################################################################
variable "project_id" {}
####################################################################################
# Enable Google APIs that are required
# NOTE: There are lots of time delays so thing proprogate before use.
# TODO: Reduce the time delays to a minimum (right now it works, just has a lot of 30 second delays)
# gcloud services list --enabled (to see what is enabled if you click in the console)
#
# Reference: https://developers.google.com/apis-explorer (to get an API name)
####################################################################################
resource "google_project_service" "gcp_services_serviceusage" {
project = var.project_id
service = "serviceusage.googleapis.com"
disable_dependent_services = true
disable_on_destroy = true
timeouts {
create = "15m"
}
}
# Sleep to let this propagate. Without this enabled then other cannot be enabled.
resource "time_sleep" "enable_api_serviceusage_time_delay" {
depends_on = [google_project_service.gcp_services_serviceusage]
create_duration = "240s"
}