File size: 1,597 Bytes
363cda9 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# Create or adopt the project WITHOUT billing
resource "google_project" "project" {
project_id = var.project_id
name = var.project_name
# If you're under an Organization/Folder and want to place it there,
# we can add folder_id/org_id later. For hackathon, keep it simple.
deletion_policy = "ABANDON"
}
# Enable Gmail API (no billing required)
resource "google_project_service" "gmail" {
project = google_project.project.project_id
service = "gmail.googleapis.com"
disable_on_destroy = false
timeouts {
create = "30m"
update = "30m"
delete = "30m"
}
depends_on = [
google_project.project
]
}
# Enable the Google Calendar API
resource "google_project_service" "calendar_api" {
project = google_project.project.project_id
service = "calendar.googleapis.com"
disable_on_destroy = false
}
# Grants your user account the minimal roles needed to manage API services and
# avoid “permission denied” errors when enabling APIs.
resource "google_project_iam_member" "user_editor" {
project = google_project.project.project_id
role = "roles/editor"
member = "user:${var.user_email}"
}
resource "google_project_iam_member" "user_serviceusage_admin" {
project = google_project.project.project_id
role = "roles/serviceusage.serviceUsageAdmin"
member = "user:${var.user_email}"
}
# Give yourself full Owner access for full API + IAM control
resource "google_project_iam_member" "user_owner" {
project = google_project.project.project_id
role = "roles/owner"
member = "user:${var.user_email}"
}
|