110 lines
3.1 KiB
Terraform
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
|
|
}
|