Files

110 lines
3.1 KiB
Terraform

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
}