locals { openclaw_project_id = "octobot-486812" } # ------------------------------------------------------------------------------ # 1. API Services Enablement # ------------------------------------------------------------------------------ resource "google_project_service" "apikeys_api" { project = local.openclaw_project_id service = "apikeys.googleapis.com" disable_on_destroy = false } resource "google_project_service" "youtube_api" { project = local.openclaw_project_id service = "youtube.googleapis.com" disable_on_destroy = false } resource "google_project_service" "routes_api" { project = local.openclaw_project_id service = "routes.googleapis.com" disable_on_destroy = false } resource "google_project_service" "geocoding_api" { project = local.openclaw_project_id service = "geocoding-backend.googleapis.com" disable_on_destroy = false } resource "google_project_service" "static_maps_api" { project = local.openclaw_project_id service = "static-maps-backend.googleapis.com" disable_on_destroy = false } resource "google_project_service" "places_api" { project = local.openclaw_project_id service = "places.googleapis.com" disable_on_destroy = false } # ------------------------------------------------------------------------------ # 2. Dedicated API Keys # ------------------------------------------------------------------------------ resource "google_apikeys_key" "openclaw_youtube_key" { name = "openclaw-youtube-key" display_name = "OpenClaw YouTube API Key" project = local.openclaw_project_id restrictions { api_targets { service = "youtube.googleapis.com" } } depends_on = [ google_project_service.apikeys_api, google_project_service.youtube_api ] } resource "google_apikeys_key" "openclaw_google_maps_key" { name = "openclaw-google-maps-key" display_name = "OpenClaw Google Maps API Key" project = local.openclaw_project_id restrictions { api_targets { service = "places.googleapis.com" } api_targets { service = "routes.googleapis.com" } api_targets { service = "geocoding-backend.googleapis.com" } api_targets { service = "static-maps-backend.googleapis.com" } } depends_on = [ google_project_service.apikeys_api, google_project_service.places_api, google_project_service.routes_api, google_project_service.geocoding_api, google_project_service.static_maps_api ] } # ------------------------------------------------------------------------------ # 3. Outputs # ------------------------------------------------------------------------------ output "openclaw_youtube_api_key" { value = google_apikeys_key.openclaw_youtube_key.key_string description = "API Key dedicated to YouTube Data API v3 for OpenClaw" sensitive = true } output "openclaw_google_maps_api_key" { value = google_apikeys_key.openclaw_google_maps_key.key_string description = "API Key dedicated to Google Maps Platform for OpenClaw" sensitive = true }