google_fastly_waf/bigquery.tf (113 lines of code) (raw):

resource "google_bigquery_dataset" "fastly" { project = var.project_id dataset_id = "${replace(var.application, "-", "_")}_${var.realm}_${var.environment}_fastly_cdn_logs" location = "US" access { role = "OWNER" special_group = "projectOwners" } access { role = "OWNER" user_by_email = "tf-webservices@moz-fx-websvc-terraform-admin.iam.gserviceaccount.com" } access { role = "WRITER" special_group = "projectWriters" } access { role = "WRITER" user_by_email = google_service_account.log_uploader.email } } resource "google_bigquery_table" "fastly" { project = var.project_id dataset_id = google_bigquery_dataset.fastly.dataset_id table_id = "fastly" time_partitioning { type = "DAY" expiration_ms = 7776000000 # 90 days field = "timestamp" } labels = { env = "default" } schema = <<EOF [ { "name": "timestamp", "type": "TIMESTAMP", "mode": "NULLABLE", "description": "The timestamp" }, { "name": "response_state", "type": "STRING", "mode": "NULLABLE", "description": "State of Response" }, { "name": "response_status", "type": "STRING", "mode": "NULLABLE", "description": "Status of Response" }, { "name": "response_reason", "type": "STRING", "mode": "NULLABLE", "description": "Response reason" }, { "name": "request_referer", "type": "STRING", "mode": "NULLABLE", "description": "Referrer Information" }, { "name": "request_method", "type": "STRING", "mode": "NULLABLE" }, { "name": "request_protocol", "type": "STRING", "mode": "NULLABLE" }, { "name": "request_user_agent", "type": "STRING", "mode": "NULLABLE" }, { "name": "url", "type": "STRING", "mode": "NULLABLE", "description": "URL" }, { "name": "waf_executed", "type": "BOOLEAN", "mode": "NULLABLE", "description": "Waf Executed" }, { "name": "ngwaf_agentresponse", "type": "STRING", "mode": "NULLABLE", "description": "Response of Agent" }, { "name": "ngwaf_decision_ms", "type": "STRING", "mode": "NULLABLE", "description": "Decision in MS" }, { "name": "ngwaf_signals", "type": "STRING", "mode": "NULLABLE", "description": "Signals" } ] EOF }