[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-datadog-labs-dd-gcp-integration":3,"mdc--9lrfs7-key":39,"related-org-datadog-labs-dd-gcp-integration":11045,"related-repo-datadog-labs-dd-gcp-integration":11217},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":28,"repoUrl":29,"updatedAt":30,"license":31,"forks":32,"topics":33,"repo":34,"sourceUrl":37,"mdContent":38},"dd-gcp-integration","set up Datadog Google Cloud integration","Set up the Datadog Google Cloud integration with Terraform - creates a service account in the host project, lets Datadog's delegate principal impersonate it via roles\u002Fiam.serviceAccountTokenCreator (no service-account keys), enables the required APIs, grants the monitoring roles across the chosen projects and folders, and registers the account through datadog_integration_gcp_sts. Use when the user wants to monitor GCP resources such as Compute Engine, Cloud SQL, GKE, Cloud Run, or Pub\u002FSub, wants to connect a GCP project or folder or organization to Datadog, or asks to set up or repair the GCP integration. Does not set up log forwarding.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"datadog-labs","Datadog Labs","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fdatadog-labs.png",[12,16,19,22,25],{"name":13,"slug":14,"type":15},"Monitoring","monitoring","tag",{"name":17,"slug":18,"type":15},"Datadog","datadog",{"name":20,"slug":21,"type":15},"Terraform","terraform",{"name":23,"slug":24,"type":15},"Infrastructure as Code","infrastructure-as-code",{"name":26,"slug":27,"type":15},"Google Cloud","google-cloud",145,"https:\u002F\u002Fgithub.com\u002Fdatadog-labs\u002Fagent-skills","2026-09-01T08:30:26.174103",null,19,[],{"repoUrl":29,"stars":28,"forks":32,"topics":35,"description":36},[],"Public repository for Datadog Agent Skills","https:\u002F\u002Fgithub.com\u002Fdatadog-labs\u002Fagent-skills\u002Ftree\u002FHEAD\u002Fdd-gcp-integration","---\nname: dd-gcp-integration\ndescription: Set up the Datadog Google Cloud integration with Terraform - creates a service account in the host project, lets Datadog's delegate principal impersonate it via roles\u002Fiam.serviceAccountTokenCreator (no service-account keys), enables the required APIs, grants the monitoring roles across the chosen projects and folders, and registers the account through datadog_integration_gcp_sts. Use when the user wants to monitor GCP resources such as Compute Engine, Cloud SQL, GKE, Cloud Run, or Pub\u002FSub, wants to connect a GCP project or folder or organization to Datadog, or asks to set up or repair the GCP integration. Does not set up log forwarding.\nmetadata:\n  version: \"1.0.0\"\n  author: datadog-labs\n  repository: https:\u002F\u002Fgithub.com\u002Fdatadog-labs\u002Fagent-skills\n  tags: datadog,gcp,google-cloud,integration,terraform,cloud\n  alwaysApply: \"false\"\n  tools: terraform\n---\n\n# Datadog GCP Integration\n\nYou are helping a user set up the Datadog GCP integration using Terraform.\n\nThe integration creates a GCP service account in the customer's project and grants Datadog's delegate principal\nthe ability to impersonate it via `roles\u002Fiam.serviceAccountTokenCreator`. This avoids long-lived keys entirely.\n\nThis is a hands-on setup: run the commands yourself as part of the conversation rather than handing the\nuser a list, keep them in the loop, and pause for confirmation before `terraform apply`.\n\n## Phase 0: Preflight\n\n**Terraform or OpenTofu.** Every command in this skill is written as `terraform`, but OpenTofu is a\ndrop-in substitute - the providers and module sources used here resolve the same way on both registries.\nCheck which binary the user actually has before Phase 1:\n\n```bash\ncommand -v terraform tofu\n```\n\nIf only `tofu` is on the PATH, read every `terraform \u003Csubcommand>` below as `tofu \u003Csubcommand>`. If both\nare present, ask which one the user wants rather than guessing.\n\n**Datadog credentials.** Load `DD_SITE` \u002F `DD_API_KEY` \u002F `DD_APP_KEY` from the environment (falling back\nto `.env.local` \u002F `.env`) and validate both keys - they fail independently:\n\n```bash\nfor f in .env.local .env; do [ -f \"$f\" ] || continue; for k in DD_SITE DD_API_KEY DD_APP_KEY; do eval \"[ -n \\\"\\${$k:-}\\\" ]\" && continue; v=$(grep -E \"^$k=\" \"$f\" | head -1 | cut -d= -f2- | sed 's\u002F^[\"'\\'']\u002F\u002F;s\u002F[\"'\\'']$\u002F\u002F'); [ -n \"$v\" ] && export \"$k=$v\"; done; done\n: \"${DD_SITE:=datadoghq.com}\"\necho \"DD_SITE=${DD_SITE}\"\necho \"DD_API_KEY=$([ -n \"${DD_API_KEY:-}\" ] && echo set || echo UNSET)   DD_APP_KEY=$([ -n \"${DD_APP_KEY:-}\" ] && echo set || echo UNSET)\"\nprintf 'DD-API-KEY: %s\\n' \"$DD_API_KEY\" \\\n  | curl -sS --max-time 20 -o \u002Fdev\u002Fnull -w \"validate:     HTTP %{http_code}\\n\" \\\n      -H @- \"https:\u002F\u002Fapi.${DD_SITE}\u002Fapi\u002Fv1\u002Fvalidate\"\nprintf 'DD-API-KEY: %s\\nDD-APPLICATION-KEY: %s\\n' \"$DD_API_KEY\" \"$DD_APP_KEY\" \\\n  | curl -sS --max-time 20 -o \u002Fdev\u002Fnull -w \"current_user: HTTP %{http_code}\\n\" \\\n      -H @- \"https:\u002F\u002Fapi.${DD_SITE}\u002Fapi\u002Fv2\u002Fcurrent_user\"\n```\n\n| Result | Meaning | What to do |\n|---|---|---|\n| Both `200` | Keys are good for this site | Continue to Phase 1 |\n| `validate` is `403` | The **API key** is invalid, or belongs to a different region than `DD_SITE` | Ask which site the key belongs to, fix `DD_SITE`, re-check |\n| `validate` `200`, `current_user` `403` | The **app key** is wrong or from another region - not the API key | Get one from `\u003CAPP_BASE>\u002Forganization-settings\u002Fapplication-keys` |\n| Either key unset | Nothing to validate | On a commercial site, run the **dd-account-setup** skill, then come back. On `ddog-gov.com` or `us2.ddog-gov.com`, ask the user for the keys directly - that skill validates `DD_SITE` against a list that excludes both government sites and will reject them |\n\n**App URL.** The Datadog app host is **not** `app.${DD_SITE}` for every site. It is\n`https:\u002F\u002Fapp.datadoghq.com` (US1), `https:\u002F\u002Fapp.datadoghq.eu` (EU1), `https:\u002F\u002Fapp.ddog-gov.com` (Gov),\nand for every other site it is `https:\u002F\u002F${DD_SITE}` itself - `https:\u002F\u002Fus3.datadoghq.com`,\n`https:\u002F\u002Fus5.datadoghq.com`, `https:\u002F\u002Fap1.datadoghq.com`, `https:\u002F\u002Fap2.datadoghq.com`,\n`https:\u002F\u002Fuk1.datadoghq.com`. Resolve it once and substitute it wherever `\u003CAPP_BASE>` appears below.\nFull list: https:\u002F\u002Fdocs.datadoghq.com\u002Fgetting_started\u002Fsite\u002F\n\n**Remember the resolved `DD_SITE`.** Most agent runtimes start a fresh shell per command, so the\n`export` above is gone by the next block. That is why the loader line is repeated verbatim at the top\nof every later block that needs credentials - it is deliberate, not drift; don't strip it. `DD_SITE` is not a secret, so every later block re-establishes it\nitself with an explicit `DD_SITE='\u003Csite>'; export DD_SITE` - substitute the site confirmed in Phase 0.\nIt is a plain assignment rather than `: \"${DD_SITE:=...}\"` on purpose: `:=` only fills in an *unset or\nempty* value, so a wrong non-empty `DD_SITE` sitting in `.env` would survive it and every call would go to\nthe wrong region. The keys are guarded with `:?` instead, so a missing key aborts loudly rather than\nsending an empty header. **Never inline the key values** - they must always\narrive through the loader as `$DD_API_KEY` \u002F `$DD_APP_KEY`. Two consequences follow, and both are\ndeliberate:\n\n- **Datadog calls pass headers on stdin**, as `printf 'DD-API-KEY: %s\\n' \"$DD_API_KEY\" | curl -H @- ...`.\n  `printf` is a shell builtin, so the key never becomes an argument of any process and never appears in\n  `ps`. Writing `-H \"DD-API-KEY: $DD_API_KEY\"` instead would put it in curl's argv. (`-H @-` needs\n  curl 7.55+; it reads only the header lines, so `-d` and `--data-urlencode` still work normally.)\n- **Terraform never receives the keys as values at all** for AWS, Azure, and GCP: the Datadog provider\n  reads `DD_API_KEY` \u002F `DD_APP_KEY` from the environment, so there are no root variables, no `-var=`\n  arguments, and nothing for Terraform to record in state or a saved plan. (OCI is the exception - its\n  module needs them as inputs, so there they travel as `TF_VAR_*`.)\n\nTogether with the loader, that keeps both keys out of the transcript, out of shell history, and out of\nthe process list.\n\n**Tools.** `terraform` is required, plus `jq` for Phase 1. The `gcloud` CLI is optional for discovery,\nbut the `google` provider needs ambient GCP credentials either way\n(`gcloud auth application-default login`, or `GOOGLE_APPLICATION_CREDENTIALS`):\n\n```bash\ncommand -v terraform || echo \"MISSING terraform - https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Finstall\"\ncommand -v jq || echo \"MISSING jq - needed to read the delegate email in Phase 1\"\ncommand -v gcloud >\u002Fdev\u002Fnull 2>&1 && echo \"gcloud: available\" || echo \"gcloud: not installed\"\n```\n\nIf `jq` isn't available, read `data.attributes.delegate_account_email` out of the raw JSON response in\nPhase 1 yourself instead of piping through `jq`.\n\n**The snippets here are POSIX shell.** Under PowerShell or `cmd`, use the Windows equivalents\n(`Get-Command`, `$env:VAR`, `2>$null`, `curl.exe`) - same calls, same order.\n\n## Phase 1: Gather Datadog Delegate Principal\n\nDatadog impersonates the customer's service account through a per-org delegate service account. Get its\nemail - **GET first**, and only POST if the org has no delegate yet, so an existing one is reused rather\nthan re-created:\n\n```bash\nfor f in .env.local .env; do [ -f \"$f\" ] || continue; for k in DD_SITE DD_API_KEY DD_APP_KEY; do eval \"[ -n \\\"\\${$k:-}\\\" ]\" && continue; v=$(grep -E \"^$k=\" \"$f\" | head -1 | cut -d= -f2- | sed 's\u002F^[\"'\\'']\u002F\u002F;s\u002F[\"'\\'']$\u002F\u002F'); [ -n \"$v\" ] && export \"$k=$v\"; done; done\nDD_SITE='datadoghq.com'; export DD_SITE   # \u003C- replace with the site confirmed in Phase 0.\n# Explicit assignment, not ':=': a wrong non-empty DD_SITE in .env would otherwise survive.\n: \"${DD_API_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"; : \"${DD_APP_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"\nresp=$(printf 'DD-API-KEY: %s\\nDD-APPLICATION-KEY: %s\\n' \"$DD_API_KEY\" \"$DD_APP_KEY\" \\\n  | curl -sS -w '\\n%{http_code}' -X GET \\\n      -H @- \"https:\u002F\u002Fapi.${DD_SITE}\u002Fapi\u002Fv2\u002Fintegration\u002Fgcp\u002Fsts_delegate\")\ncode=$(printf '%s' \"$resp\" | tail -1); body=$(printf '%s' \"$resp\" | sed '$d')\nif [ \"$code\" = \"404\" ]; then\n  echo \"no delegate exists yet (HTTP 404) - creating one\"\n  resp=$(printf 'DD-API-KEY: %s\\nDD-APPLICATION-KEY: %s\\n' \"$DD_API_KEY\" \"$DD_APP_KEY\" \\\n    | curl -sS -w '\\n%{http_code}' -X POST -H \"Content-Type: application\u002Fjson\" -d '{}' \\\n        -H @- \"https:\u002F\u002Fapi.${DD_SITE}\u002Fapi\u002Fv2\u002Fintegration\u002Fgcp\u002Fsts_delegate\")\n  code=$(printf '%s' \"$resp\" | tail -1); body=$(printf '%s' \"$resp\" | sed '$d')\nelif [ \"$code\" != \"200\" ]; then\n  echo \"GET sts_delegate returned HTTP $code - not creating anything. Response:\"\n  printf '%s\\n' \"$body\"\n  echo \"403 means the app key lacks permission, 429 is rate limiting, 000 is a transport failure, 5xx is\"\n  echo \"server-side. None of those mean 'no delegate exists', so a POST here could create one you did not\"\n  echo \"intend. Resolve the error, then re-run. If the body says no delegate exists, POST explicitly.\"\n  exit 1\nfi\n[ \"$code\" = \"200\" ] || { echo \"sts_delegate failed with HTTP $code:\"; printf '%s\\n' \"$body\"; exit 1; }\nemail=$(printf '%s' \"$body\" | jq -r '.data.attributes.delegate_account_email \u002F\u002F empty')\ncase \"$email\" in\n  *@*.iam.gserviceaccount.com) echo \"DATADOG_PRINCIPAL_ID=$email\" ;;\n  *) echo \"did not get a delegate service-account email; response was:\"; printf '%s\\n' \"$body\"; exit 1 ;;\nesac\n```\n\nRemember the printed email as `DATADOG_PRINCIPAL_ID` - the Terraform below needs it. It is org-specific\nand cannot be hardcoded.\n\n**Never continue on an empty or `null` email.** The guards above exist because `curl -s | jq -r` on an\nerror response prints `null`, which would silently become `member = \"serviceAccount:null\"` in the\nTerraform and produce an integration that cannot authenticate.\n\nIf `jq` is unavailable, run the block exactly as written **except** the `email=$(... | jq -r ...)` line -\ndo not remove the `printf ... | curl -H @-` pipeline, which is what supplies authentication. Read\n`data.attributes.delegate_account_email` out of `$body` yourself and apply the same rule: refuse to proceed\nunless it looks like a `...@....iam.gserviceaccount.com` address.\n\n## Phase 2: Determine Scope\n\nAsk the user if they already know which GCP project IDs and\u002For folder IDs they want Datadog to monitor.\n\nIf they do, collect:\n- Which GCP project should host the Datadog service account (the \"host project\")?\n- The list of project IDs and\u002For folder IDs to monitor.\n\nIf they don't know or want help figuring it out:\n\n**If the `gcloud` CLI is available**, offer to discover their GCP\nenvironment. Explain that you will use `gcloud` to list their organizations, folders, and projects\nso they can pick which ones to monitor. This is best-effort - run each command independently and\nwork with whatever succeeds:\n\n**Organizations:**\n```bash\ngcloud organizations list --format=\"table(displayName, name)\"\n```\n\n**Folders** (uses the REST API to search all active folders across the org; also requires `gcloud`\nfor the access token):\n```bash\nprintf 'Authorization: Bearer %s\\n' \"$(gcloud auth print-access-token)\" \\\n  | curl -sS -H @- -H \"Content-Type: application\u002Fjson\" \\\n      -d '{\"query\": \"lifecycleState=ACTIVE\"}' \\\n      \"https:\u002F\u002Fcloudresourcemanager.googleapis.com\u002Fv2\u002Ffolders:search\"\n```\nIf the response contains a `nextPageToken`, paginate by adding `\"pageToken\": \"\u003Ctoken>\"` to the request body\nuntil all folders are retrieved.\n\n**Expand nested folders yourself.** The search above returns every active folder in the org, so use it to\nbuild the *full* descendant set for whatever the user picks: for each chosen folder, collect every folder\nwhose `parent` chain leads back to it, then list the projects of all of them:\n\n```bash\n# replace these with the chosen folder and every folder nested beneath it\nset -- 123456789012 987654321098\nfor folder do\n  gcloud projects list --filter=\"parent.id=${folder} AND lifecycleState=ACTIVE AND NOT projectId:sys*\" \\\n    --format=\"value(projectId)\"\ndone | sort -u\n```\n\nPut that expanded list into the Terraform's `project_ids` **in addition to** keeping the chosen folders in\n`folder_ids`. The reason is in the template: folder-level IAM is inherited by every descendant project, but\nAPI enablement is not, and the `google_projects` data source matches on immediate parent only. Folders in\n`folder_ids` cover IAM (including projects created later); the expanded `project_ids` is what actually\nenables the required APIs in each existing project. Skipping the expansion produces an integration that\nlooks configured but silently collects nothing from projects in sub-folders.\n\n**Projects** (active only, excluding system projects):\n```bash\ngcloud projects list --filter=\"lifecycleState=ACTIVE AND NOT projectId:sys*\" --format=\"table(projectId, name, parent.id)\"\n```\n\nIf any individual command fails (e.g., the user lacks permission to list organizations or folders),\ninform the user which command failed and why, but continue with whatever information was\nsuccessfully retrieved. For example, if they can list projects but not folders, proceed with\nproject-level setup.\n\n**Otherwise** (`gcloud` not installed or not authenticated), ask the user to gather the IDs from\nthe GCP Console:\n- **Project IDs**: console.cloud.google.com → project picker (top bar) → each project's ID is shown\n  next to its name.\n- **Folder IDs** (optional): console.cloud.google.com → **IAM & Admin** → **Manage Resources** →\n  expand the org tree; folder IDs are visible in the resource manager.\n- **Every project inside those folders, including nested sub-folders** - expand the whole subtree in\n  **Manage Resources** and collect each project ID. This is not optional busywork: the Terraform enables\n  the required APIs per project, so any project you don't list gets folder-inherited IAM and no API\n  enablement, and collects nothing. If the user won't enumerate them, tell them folder-scoped setup needs\n  `gcloud` (which can expand the subtree automatically) and offer project-scoped setup instead.\n- **Host project**: ask which project the Datadog service account should live in.\n\nPresent whatever results were gathered in a readable format and let the user choose:\n- **Specific projects**: list of project IDs\n- **Folders**: list of folder IDs (Datadog will discover all active projects within them)\n- **Both**: a combination of explicit projects and folders\n\nThen ask which project should host the Datadog service account.\n\n## Phase 3: Generate and Apply Terraform\n\n### Check what already exists - local Terraform first, then Datadog\n\nDo this **before** generating or applying anything, and in this order. Local state first, because it\ndecides whether an existing integration is something you can update or something you must not touch:\n\n```bash\nfind . -maxdepth 1 -type f \\( -name '*.tf' -o -name 'terraform.tfstate' \\) -print\n# A project is \"present\" if it has configuration - .terraform\u002F may simply not exist yet on a fresh clone\n# with a remote backend, and terraform.tfstate does not exist at all when state is remote.\nif [ -n \"$(find . -maxdepth 1 -type f \\( -name '*.tf' -o -name '*.tf.json' \\) -print -quit)\" ]; then\n  terraform init -input=false >\u002Fdev\u002Fnull || { echo \"terraform init failed - resolve that before concluding anything about existing state\"; exit 1; }\n  out=$(terraform state list 2>&1); rc=$?\n  if [ \"$rc\" -ne 0 ]; then\n    case $out in\n      *'No state file'*|*'no state'*|*'Backend initialization required'*)\n        echo \"project is initialized but has no state yet - treat as a clean install\" ;;\n      *)\n        printf '%s\\n' \"$out\"\n        echo \"could not read state (backend or credentials problem) - do NOT treat this as 'nothing exists'\"; exit 1 ;;\n    esac\n  elif [ -z \"$out\" ]; then\n    echo \"state is empty - treat as a clean install\"\n  else\n    printf '%s\\n' \"$out\" | grep -F 'datadog_integration_gcp_sts' || echo \"state exists but holds no datadog_integration_gcp_sts resource\"\n  fi\nelse\n  echo \"no Terraform configuration here yet - clean install\"\nfi\n```\n\nMatch the **exact** resource address `datadog_integration_gcp_sts`, not a loose `grep -i datadog`: unrelated Datadog\nresources, or cloud IAM left behind by a partial apply, would otherwise read as a managed integration.\n\nThen ask Datadog what it already has:\n\n```bash\nfor f in .env.local .env; do [ -f \"$f\" ] || continue; for k in DD_SITE DD_API_KEY DD_APP_KEY; do eval \"[ -n \\\"\\${$k:-}\\\" ]\" && continue; v=$(grep -E \"^$k=\" \"$f\" | head -1 | cut -d= -f2- | sed 's\u002F^[\"'\\'']\u002F\u002F;s\u002F[\"'\\'']$\u002F\u002F'); [ -n \"$v\" ] && export \"$k=$v\"; done; done\nDD_SITE='datadoghq.com'; export DD_SITE   # \u003C- replace with the site confirmed in Phase 0.\n# Explicit assignment, not ':=': a wrong non-empty DD_SITE in .env would otherwise survive.\n: \"${DD_API_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"; : \"${DD_APP_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"\nresp=$(printf 'DD-API-KEY: %s\\nDD-APPLICATION-KEY: %s\\n' \"$DD_API_KEY\" \"$DD_APP_KEY\" \\\n  | curl -sS -w '\\n%{http_code}' -X GET -H @- \"https:\u002F\u002Fapi.${DD_SITE}\u002Fapi\u002Fv2\u002Fintegration\u002Fgcp\u002Faccounts\")\ncode=$(printf '%s' \"$resp\" | tail -1); body=$(printf '%s' \"$resp\" | sed '$d')\n[ \"$code\" = \"200\" ] || { echo \"lookup failed with HTTP $code - do not assume 'not connected':\"; printf '%s\\n' \"$body\"; exit 1; }\nprintf '%s\\n' \"$body\"\n```\n\nNow reconcile the two answers before doing anything:\n\n- **Not in Datadog, nothing in local state** - a clean install. Continue.\n- **In Datadog *and* present in local state** - this is the update\u002Frepair case, not a duplicate.\n  Continue into the Terraform below as a change to the existing resources, and let the plan show\n  what it will alter.\n- **In Datadog but *absent* from local state** (a service account for the host project from Phase 2 is already registered) - stop. Applying would either create a\n  duplicate or fight with whatever manages it. Say so plainly and offer the options: import the existing\n  object into this project (`terraform import datadog_integration_gcp_sts.datadog_integration \"\u003Cintegration-uuid>\"` - the uuid\n  comes from `GET \u002Fapi\u002Fv2\u002Fintegration\u002Fgcp\u002Faccounts`, not the project id or service-account email), manage it where it is already managed, or delete it in Datadog first.\n  Only continue if the user picks one and confirms.\n  Two things about importing, in this order. **Generate the configuration first** (the Terraform below,\n  adapted to the identity that already exists - same role\u002Fapp\u002Fservice-account name), because `terraform\n  import` binds an existing object to a *configured* resource address and fails without one. And importing\n  the Datadog registration alone is not enough: the cloud-side identity (the IAM role, the app registration,\n  the service account) is still outside state, so either import those too or reference them with data\n  sources, or the next apply will try to create them again and collide.\n\n   ```bash\n   # the uuid comes from the accounts listing, not the project id or service-account email\n   terraform import datadog_integration_gcp_sts.datadog_integration \"\u003Cintegration-uuid>\"\n   ```\n- **Present in local state but *absent* from Datadog** - a partial or rolled-back install. The cloud-side\n  resources may exist while the registration does not. Do not start from scratch: run the plan and let it\n  show what is missing, and expect it to re-create only the registration.\n\n### Check for Existing Terraform\n\nBefore generating a new Terraform configuration, check if the user already has a Terraform project\nin the current directory or nearby:\n\n```bash\nfind . -maxdepth 1 -type f \\( -name '*.tf' -o -name 'terraform.tfstate' \\) -print\n```\n\n**If existing `.tf` files are found:**\n- Read them to understand what providers and resources are already configured.\n- If a `datadog` provider already exists, reuse its configuration - do not create a duplicate.\n- If a `google` provider already exists, reuse it.\n- Only add the **new resources** needed (service account, IAM bindings, `datadog_integration_gcp_sts`)\n  to the existing project. Do not regenerate providers, variables, or terraform blocks that\n  already exist.\n- If the user has a modular layout, create a new file like `datadog-gcp-integration.tf` for the\n  Datadog resources.\n\n**If no existing Terraform is found**, generate a standalone configuration.\n\nThe full HCL template - providers, API enablement, the service account, the token-creator binding for\nDatadog's delegate, the project and folder role bindings, and the `datadog_integration_gcp_sts`\nregistration - is in **`references\u002Fterraform.md`**, along with the projects-only and folders-only\nvariants. Read it now and emit it with the placeholders filled in.\n\n## Applying the Terraform\n\n1. Replace all `\u003CPLACEHOLDER>` values in the template with the actual values gathered:\n   - `\u003CUSER_FOLDER_IDS>` and `\u003CUSER_PROJECT_IDS>` from Phase 2\n   - `\u003CHOST_PROJECT_ID>` from Phase 2\n   - `\u003CDATADOG_PRINCIPAL_ID>` from Phase 1\n   - `\u003CDD_SITE>` from Phase 0\n2. If the user selected only projects (no folders), remove the `folder_ids` local, the `google_projects.folder_projects` data source, the `google_folder_iam_member` resource, and simplify `all_project_ids` to just `local.project_ids`.\n3. If the user selected only folders (no explicit projects), **still put the expanded descendant project\n   list from Phase 2 into `project_ids`** - do not set it to `[]`. `folder_ids` grants IAM (and covers\n   projects created later), but API enablement is per-project, so an empty `project_ids` leaves every\n   existing project in those folders without the required APIs.\n4. Run `terraform init` to install providers.\n5. Plan, and **save the plan to a file**. The Datadog provider reads `DD_API_KEY` \u002F `DD_APP_KEY`\n   straight from the environment, so there are no root variables and no `-var=` arguments - nothing secret\n   ends up in the plan file, in state, or on a command line:\n\n   ```bash\n   for f in .env.local .env; do [ -f \"$f\" ] || continue; for k in DD_SITE DD_API_KEY DD_APP_KEY; do eval \"[ -n \\\"\\${$k:-}\\\" ]\" && continue; v=$(grep -E \"^$k=\" \"$f\" | head -1 | cut -d= -f2- | sed 's\u002F^[\"'\\'']\u002F\u002F;s\u002F[\"'\\'']$\u002F\u002F'); [ -n \"$v\" ] && export \"$k=$v\"; done; done\n   DD_SITE='datadoghq.com'; export DD_SITE   # \u003C- replace with the site confirmed in Phase 0.\n   # Explicit assignment, not ':=': a wrong non-empty DD_SITE in .env would otherwise survive.\n   : \"${DD_API_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"; : \"${DD_APP_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"\n   umask 077          # tighten permissions on the plan file anyway\n   terraform plan -out=tfplan\n   ```\n\n   Show the plan output to the user and wait for explicit confirmation.\n6. Apply **that saved plan**, only after the user confirms it. Applying the file is what makes the\n   approval meaningful: `terraform apply` with no plan file computes a brand-new plan, and `-auto-approve`\n   would execute it without anyone seeing it, so anything changed since the plan would go in unreviewed:\n\n   ```bash\n   for f in .env.local .env; do [ -f \"$f\" ] || continue; for k in DD_SITE DD_API_KEY DD_APP_KEY; do eval \"[ -n \\\"\\${$k:-}\\\" ]\" && continue; v=$(grep -E \"^$k=\" \"$f\" | head -1 | cut -d= -f2- | sed 's\u002F^[\"'\\'']\u002F\u002F;s\u002F[\"'\\'']$\u002F\u002F'); [ -n \"$v\" ] && export \"$k=$v\"; done; done\n   DD_SITE='datadoghq.com'; export DD_SITE   # \u003C- replace with the site confirmed in Phase 0.\n   # Explicit assignment, not ':=': a wrong non-empty DD_SITE in .env would otherwise survive.\n   : \"${DD_API_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"; : \"${DD_APP_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"\n   trap 'rm -f tfplan' EXIT HUP INT TERM   # the plan file goes away even if this is interrupted\n   if terraform apply tfplan; then\n     echo \"apply complete\"\n   else\n     echo \"terraform apply FAILED - do NOT verify or report success\"\n     exit 1\n   fi\n   ```\n\n   The `trap` removes the plan file on every exit path, including Ctrl-C while the user is deciding. The\n   `if`\u002F`else` around the apply matters because a cleanup command as the block's last line would make a\n   failed apply exit 0, and the agent would go on to \"verify\" a deployment that never happened. (It is an\n   `if` rather than `status=$?` on purpose: `status` is a read-only variable in zsh.)\n\n   The plan file holds no key material at all, because the keys never become Terraform values - the provider\n   reads them from the environment. That is what makes `-out` safe here, on any Terraform version, and it is\n   why an existing project needs no variable changes either.\n\n7. After `terraform apply` succeeds, verify the integration registered with Datadog:\n\n   ```bash\n   for f in .env.local .env; do [ -f \"$f\" ] || continue; for k in DD_SITE DD_API_KEY DD_APP_KEY; do eval \"[ -n \\\"\\${$k:-}\\\" ]\" && continue; v=$(grep -E \"^$k=\" \"$f\" | head -1 | cut -d= -f2- | sed 's\u002F^[\"'\\'']\u002F\u002F;s\u002F[\"'\\'']$\u002F\u002F'); [ -n \"$v\" ] && export \"$k=$v\"; done; done\n   DD_SITE='datadoghq.com'; export DD_SITE   # \u003C- replace with the site confirmed in Phase 0.\n   # Explicit assignment, not ':=': a wrong non-empty DD_SITE in .env would otherwise survive.\n   : \"${DD_API_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"; : \"${DD_APP_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"\n   resp=$(printf 'DD-API-KEY: %s\\nDD-APPLICATION-KEY: %s\\n' \"$DD_API_KEY\" \"$DD_APP_KEY\" \\\n     | curl -sS -w '\\n%{http_code}' -X GET -H @- \"https:\u002F\u002Fapi.${DD_SITE}\u002Fapi\u002Fv2\u002Fintegration\u002Fgcp\u002Faccounts\")\n   code=$(printf '%s' \"$resp\" | tail -1); body=$(printf '%s' \"$resp\" | sed '$d')\n   [ \"$code\" = \"200\" ] || { echo \"lookup failed with HTTP $code - do not assume 'not connected':\"; printf '%s\\n' \"$body\"; exit 1; }\n   printf '%s\\n' \"$body\"\n   ```\n\n   Confirm the response includes the service account email just provisioned. If it's missing, surface the response to the user so they can debug.\n\n## Getting the Most Out of Your Integration\n\nOnce `terraform apply` completes successfully, congratulate the user and let them know metrics typically\narrive within 5-10 minutes. Then check for early metrics and show a widget.\n\n### Checking for Metrics\n\nGive it a few seconds, then make a single query to the metrics API - substitute a project you actually put in\nmonitoring scope for `\u003CMONITORED_PROJECT_ID>` - not necessarily the host project, which the template\nallows to be out of scope:\n\n```bash\nfor f in .env.local .env; do [ -f \"$f\" ] || continue; for k in DD_SITE DD_API_KEY DD_APP_KEY; do eval \"[ -n \\\"\\${$k:-}\\\" ]\" && continue; v=$(grep -E \"^$k=\" \"$f\" | head -1 | cut -d= -f2- | sed 's\u002F^[\"'\\'']\u002F\u002F;s\u002F[\"'\\'']$\u002F\u002F'); [ -n \"$v\" ] && export \"$k=$v\"; done; done\nDD_SITE='datadoghq.com'; export DD_SITE   # \u003C- replace with the site confirmed in Phase 0.\n# Explicit assignment, not ':=': a wrong non-empty DD_SITE in .env would otherwise survive.\n: \"${DD_API_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"; : \"${DD_APP_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"\nsleep 10\nresp=$(printf 'DD-API-KEY: %s\\nDD-APPLICATION-KEY: %s\\n' \"$DD_API_KEY\" \"$DD_APP_KEY\" \\\n  | curl -sS -w '\\n%{http_code}' -G -H @- \"https:\u002F\u002Fapi.${DD_SITE}\u002Fapi\u002Fv1\u002Fquery\" \\\n  --data-urlencode \"from=$(($(date +%s) - 900))\" \\\n  --data-urlencode \"to=$(date +%s)\" \\\n  --data-urlencode \"query=avg:gcp.gce.instance.cpu.utilization{project_id:\u003CMONITORED_PROJECT_ID>} by {instance_name}\")\ncode=$(printf '%s' \"$resp\" | tail -1); body=$(printf '%s' \"$resp\" | sed '$d')\n[ \"$code\" = \"200\" ] || { echo \"metric query failed with HTTP $code - that is NOT 'metrics still propagating':\"; printf '%s\\n' \"$body\"; exit 1; }\nprintf '%s\\n' \"$body\"\n```\n\n### Rendering the Widget\n\n**If the `series` array is non-empty**, render an ASCII chart from the real data:\n- Use the `pointlist` values to plot the line, scaling Y-axis to actual min\u002Fmax.\n- Use box-drawing characters (`╭`, `╰`, `─`, `│`, `┤`) for the line.\n- List the instance names from each series `scope` at the bottom.\n- Show the top 3 series by average value if multiple are returned.\n\n**If the `series` array is empty**, show this static preview instead and let the user know\nmetrics are still propagating:\n\n    ┌─────────────────────────────────────────────────────────┐\n    │  gcp.gce.instance.cpu.utilization   ▂▃▅▆▇▆▅▃▂▁▂▃▅  │\n    │  100% ┤                                          ╭──╮   │\n    │   75% ┤                    ╭───╮              ╭──╯  │   │\n    │   50% ┤              ╭────╯   ╰──╮     ╭────╯     │   │\n    │   25% ┤    ╭────────╯            ╰────╯           │   │\n    │    0% ┤────╯                                       │   │\n    │       └────────────────────────────────────────────┘   │\n    │                                                         │\n    │  Metrics are on their way - check back in a few minutes │\n    └─────────────────────────────────────────────────────────┘\n    Metrics Explorer: \u003CAPP_BASE>\u002Fmetric\u002Fexplorer?exp_metric=gcp.gce.instance.cpu.utilization\n\nConfirm to the user that their integration is configured and data will appear shortly. All links use `DD_SITE` - construct them as `\u003CAPP_BASE>\u002F...`.\n\n- **GCP Integration tile**: `\u003CAPP_BASE>\u002Fintegrations\u002Fgoogle-cloud-platform` - access the pre-built dashboard and verify the integration is active.\n- **Metrics Explorer**: `\u003CAPP_BASE>\u002Fmetric\u002Fexplorer?exp_metric=gcp.gce.instance.cpu.utilization` - confirm data is flowing.\n- Each GCP sub-integration (Cloud SQL, Cloud Run, Pub\u002FSub, GKE, etc.) has its own dashboard that activates automatically when metrics for that service are detected.\n\n**Recommended Monitors** - suggest creating monitors for common GCP health signals at `\u003CAPP_BASE>\u002Fmonitors\u002Fcreate`:\n- Compute Engine CPU exceeding a threshold\n- Cloud SQL connection counts approaching limits\n- GKE nodes entering NotReady state\n- Pub\u002FSub dead-letter queue growth\n\n**If resource collection was enabled:**\n- **Resource Catalog**: `\u003CAPP_BASE>\u002Finfrastructure\u002Fcatalog` - browse Compute instances, Cloud SQL databases, GKE clusters, and more.\n- **Infrastructure Map**: `\u003CAPP_BASE>\u002Finfrastructure\u002Fmap` - visualize GCP infrastructure.\n\n**Explore more Datadog products:**\n- **Log Management**: `\u003CAPP_BASE>\u002Flogs` - stream GCP logs for centralized search and alerting. Setup: https:\u002F\u002Fdocs.datadoghq.com\u002Fintegrations\u002Fgoogle_cloud_platform\u002F#log-collection\n- **APM & Traces**: `\u003CAPP_BASE>\u002Fapm\u002Fgetting-started` - distributed tracing for applications on Cloud Run, GKE, or Compute Engine.\n- **Notebooks**: `\u003CAPP_BASE>\u002Fnotebook` - shareable investigations combining metrics, logs, and events.\n\n## Important Notes\n\n- Always confirm project IDs, folder IDs, and the host project with the user before generating Terraform.\n- The user needs permission to create service accounts, enable services, and set IAM policy on every\n  project and folder in scope: `roles\u002Fresourcemanager.projectIamAdmin` \u002F\n  `roles\u002Fresourcemanager.folderIamAdmin`, `roles\u002Fiam.serviceAccountAdmin` on the host project, and\n  `roles\u002Fserviceusage.serviceUsageAdmin` on every project where the config enables an API (the host\n  project included - it gets `iam.googleapis.com` and `iamcredentials.googleapis.com`).\n  `roles\u002Fserviceusage.serviceUsageConsumer`, which the service account itself receives, is not enough to\n  *enable* an API.\n- The Datadog delegate principal ID is org-specific and must be fetched from the API - it cannot be hardcoded.\n- The Datadog API and app keys are never passed to Terraform as values: the `datadog` provider reads\n  `DD_API_KEY` and `DD_APP_KEY` from the environment, so there are no root variables, no `-var=` arguments,\n  and nothing for Terraform to record in state or a saved plan. Don't declare key variables, and don't\n  write the keys into a committed `.tfvars` file or any other persistent file.\n- Never run `terraform apply` without showing the plan to the user first.\n",{"data":40,"body":45},{"name":4,"description":6,"metadata":41},{"version":42,"author":8,"repository":29,"tags":43,"alwaysApply":44,"tools":21},"1.0.0","datadog,gcp,google-cloud,integration,terraform,cloud","false",{"type":46,"children":47},"root",[48,57,63,77,90,97,115,154,183,231,1146,1354,1463,1567,1676,1681,1737,1890,1916,1963,1969,1981,3786,3799,3840,3896,3902,3907,3912,3925,3930,3954,3962,4004,4021,4156,4177,4202,4357,4406,4416,4472,4477,4493,4563,4568,4600,4605,4611,4618,4630,5380,5407,5412,6405,6410,6556,6562,6567,6649,6665,6728,6738,6761,6767,9413,9419,9431,9437,9450,10564,10570,10587,10662,10678,10688,10707,10750,10767,10790,10798,10835,10843,10903,10909,11039],{"type":49,"tag":50,"props":51,"children":53},"element","h1",{"id":52},"datadog-gcp-integration",[54],{"type":55,"value":56},"text","Datadog GCP Integration",{"type":49,"tag":58,"props":59,"children":60},"p",{},[61],{"type":55,"value":62},"You are helping a user set up the Datadog GCP integration using Terraform.",{"type":49,"tag":58,"props":64,"children":65},{},[66,68,75],{"type":55,"value":67},"The integration creates a GCP service account in the customer's project and grants Datadog's delegate principal\nthe ability to impersonate it via ",{"type":49,"tag":69,"props":70,"children":72},"code",{"className":71},[],[73],{"type":55,"value":74},"roles\u002Fiam.serviceAccountTokenCreator",{"type":55,"value":76},". This avoids long-lived keys entirely.",{"type":49,"tag":58,"props":78,"children":79},{},[80,82,88],{"type":55,"value":81},"This is a hands-on setup: run the commands yourself as part of the conversation rather than handing the\nuser a list, keep them in the loop, and pause for confirmation before ",{"type":49,"tag":69,"props":83,"children":85},{"className":84},[],[86],{"type":55,"value":87},"terraform apply",{"type":55,"value":89},".",{"type":49,"tag":91,"props":92,"children":94},"h2",{"id":93},"phase-0-preflight",[95],{"type":55,"value":96},"Phase 0: Preflight",{"type":49,"tag":58,"props":98,"children":99},{},[100,106,108,113],{"type":49,"tag":101,"props":102,"children":103},"strong",{},[104],{"type":55,"value":105},"Terraform or OpenTofu.",{"type":55,"value":107}," Every command in this skill is written as ",{"type":49,"tag":69,"props":109,"children":111},{"className":110},[],[112],{"type":55,"value":21},{"type":55,"value":114},", but OpenTofu is a\ndrop-in substitute - the providers and module sources used here resolve the same way on both registries.\nCheck which binary the user actually has before Phase 1:",{"type":49,"tag":116,"props":117,"children":122},"pre",{"className":118,"code":119,"language":120,"meta":121,"style":121},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","command -v terraform tofu\n","bash","",[123],{"type":49,"tag":69,"props":124,"children":125},{"__ignoreMap":121},[126],{"type":49,"tag":127,"props":128,"children":131},"span",{"class":129,"line":130},"line",1,[132,138,144,149],{"type":49,"tag":127,"props":133,"children":135},{"style":134},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[136],{"type":55,"value":137},"command",{"type":49,"tag":127,"props":139,"children":141},{"style":140},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[142],{"type":55,"value":143}," -v",{"type":49,"tag":127,"props":145,"children":146},{"style":140},[147],{"type":55,"value":148}," terraform",{"type":49,"tag":127,"props":150,"children":151},{"style":140},[152],{"type":55,"value":153}," tofu\n",{"type":49,"tag":58,"props":155,"children":156},{},[157,159,165,167,173,175,181],{"type":55,"value":158},"If only ",{"type":49,"tag":69,"props":160,"children":162},{"className":161},[],[163],{"type":55,"value":164},"tofu",{"type":55,"value":166}," is on the PATH, read every ",{"type":49,"tag":69,"props":168,"children":170},{"className":169},[],[171],{"type":55,"value":172},"terraform \u003Csubcommand>",{"type":55,"value":174}," below as ",{"type":49,"tag":69,"props":176,"children":178},{"className":177},[],[179],{"type":55,"value":180},"tofu \u003Csubcommand>",{"type":55,"value":182},". If both\nare present, ask which one the user wants rather than guessing.",{"type":49,"tag":58,"props":184,"children":185},{},[186,191,193,199,201,207,208,214,216,222,223,229],{"type":49,"tag":101,"props":187,"children":188},{},[189],{"type":55,"value":190},"Datadog credentials.",{"type":55,"value":192}," Load ",{"type":49,"tag":69,"props":194,"children":196},{"className":195},[],[197],{"type":55,"value":198},"DD_SITE",{"type":55,"value":200}," \u002F ",{"type":49,"tag":69,"props":202,"children":204},{"className":203},[],[205],{"type":55,"value":206},"DD_API_KEY",{"type":55,"value":200},{"type":49,"tag":69,"props":209,"children":211},{"className":210},[],[212],{"type":55,"value":213},"DD_APP_KEY",{"type":55,"value":215}," from the environment (falling back\nto ",{"type":49,"tag":69,"props":217,"children":219},{"className":218},[],[220],{"type":55,"value":221},".env.local",{"type":55,"value":200},{"type":49,"tag":69,"props":224,"children":226},{"className":225},[],[227],{"type":55,"value":228},".env",{"type":55,"value":230},") and validate both keys - they fail independently:",{"type":49,"tag":116,"props":232,"children":234},{"className":118,"code":233,"language":120,"meta":121,"style":121},"for f in .env.local .env; do [ -f \"$f\" ] || continue; for k in DD_SITE DD_API_KEY DD_APP_KEY; do eval \"[ -n \\\"\\${$k:-}\\\" ]\" && continue; v=$(grep -E \"^$k=\" \"$f\" | head -1 | cut -d= -f2- | sed 's\u002F^[\"'\\'']\u002F\u002F;s\u002F[\"'\\'']$\u002F\u002F'); [ -n \"$v\" ] && export \"$k=$v\"; done; done\n: \"${DD_SITE:=datadoghq.com}\"\necho \"DD_SITE=${DD_SITE}\"\necho \"DD_API_KEY=$([ -n \"${DD_API_KEY:-}\" ] && echo set || echo UNSET)   DD_APP_KEY=$([ -n \"${DD_APP_KEY:-}\" ] && echo set || echo UNSET)\"\nprintf 'DD-API-KEY: %s\\n' \"$DD_API_KEY\" \\\n  | curl -sS --max-time 20 -o \u002Fdev\u002Fnull -w \"validate:     HTTP %{http_code}\\n\" \\\n      -H @- \"https:\u002F\u002Fapi.${DD_SITE}\u002Fapi\u002Fv1\u002Fvalidate\"\nprintf 'DD-API-KEY: %s\\nDD-APPLICATION-KEY: %s\\n' \"$DD_API_KEY\" \"$DD_APP_KEY\" \\\n  | curl -sS --max-time 20 -o \u002Fdev\u002Fnull -w \"current_user: HTTP %{http_code}\\n\" \\\n      -H @- \"https:\u002F\u002Fapi.${DD_SITE}\u002Fapi\u002Fv2\u002Fcurrent_user\"\n",[235],{"type":49,"tag":69,"props":236,"children":237},{"__ignoreMap":121},[238,647,689,720,854,894,956,1002,1052,1105],{"type":49,"tag":127,"props":239,"children":240},{"class":129,"line":130},[241,247,253,258,263,268,274,279,284,289,294,299,304,309,314,319,323,328,333,337,342,347,352,356,360,365,369,374,379,384,389,394,399,403,407,412,416,420,425,430,436,441,445,450,454,459,463,467,471,475,480,485,490,494,499,504,509,513,518,523,528,533,538,542,547,551,555,559,564,568,573,577,582,586,591,595,599,603,609,613,617,621,625,629,633,638,642],{"type":49,"tag":127,"props":242,"children":244},{"style":243},"--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic",[245],{"type":55,"value":246},"for",{"type":49,"tag":127,"props":248,"children":250},{"style":249},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[251],{"type":55,"value":252}," f ",{"type":49,"tag":127,"props":254,"children":255},{"style":243},[256],{"type":55,"value":257},"in",{"type":49,"tag":127,"props":259,"children":260},{"style":140},[261],{"type":55,"value":262}," .env.local",{"type":49,"tag":127,"props":264,"children":265},{"style":140},[266],{"type":55,"value":267}," .env",{"type":49,"tag":127,"props":269,"children":271},{"style":270},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[272],{"type":55,"value":273},";",{"type":49,"tag":127,"props":275,"children":276},{"style":243},[277],{"type":55,"value":278}," do",{"type":49,"tag":127,"props":280,"children":281},{"style":270},[282],{"type":55,"value":283}," [",{"type":49,"tag":127,"props":285,"children":286},{"style":270},[287],{"type":55,"value":288}," -f",{"type":49,"tag":127,"props":290,"children":291},{"style":270},[292],{"type":55,"value":293}," \"",{"type":49,"tag":127,"props":295,"children":296},{"style":249},[297],{"type":55,"value":298},"$f",{"type":49,"tag":127,"props":300,"children":301},{"style":270},[302],{"type":55,"value":303},"\"",{"type":49,"tag":127,"props":305,"children":306},{"style":270},[307],{"type":55,"value":308}," ]",{"type":49,"tag":127,"props":310,"children":311},{"style":270},[312],{"type":55,"value":313}," ||",{"type":49,"tag":127,"props":315,"children":316},{"style":243},[317],{"type":55,"value":318}," continue",{"type":49,"tag":127,"props":320,"children":321},{"style":270},[322],{"type":55,"value":273},{"type":49,"tag":127,"props":324,"children":325},{"style":243},[326],{"type":55,"value":327}," for",{"type":49,"tag":127,"props":329,"children":330},{"style":249},[331],{"type":55,"value":332}," k ",{"type":49,"tag":127,"props":334,"children":335},{"style":243},[336],{"type":55,"value":257},{"type":49,"tag":127,"props":338,"children":339},{"style":140},[340],{"type":55,"value":341}," DD_SITE",{"type":49,"tag":127,"props":343,"children":344},{"style":140},[345],{"type":55,"value":346}," DD_API_KEY",{"type":49,"tag":127,"props":348,"children":349},{"style":140},[350],{"type":55,"value":351}," DD_APP_KEY",{"type":49,"tag":127,"props":353,"children":354},{"style":270},[355],{"type":55,"value":273},{"type":49,"tag":127,"props":357,"children":358},{"style":243},[359],{"type":55,"value":278},{"type":49,"tag":127,"props":361,"children":362},{"style":134},[363],{"type":55,"value":364}," eval",{"type":49,"tag":127,"props":366,"children":367},{"style":270},[368],{"type":55,"value":293},{"type":49,"tag":127,"props":370,"children":371},{"style":140},[372],{"type":55,"value":373},"[ -n ",{"type":49,"tag":127,"props":375,"children":376},{"style":249},[377],{"type":55,"value":378},"\\\"\\$",{"type":49,"tag":127,"props":380,"children":381},{"style":140},[382],{"type":55,"value":383},"{",{"type":49,"tag":127,"props":385,"children":386},{"style":249},[387],{"type":55,"value":388},"$k",{"type":49,"tag":127,"props":390,"children":391},{"style":140},[392],{"type":55,"value":393},":-}",{"type":49,"tag":127,"props":395,"children":396},{"style":249},[397],{"type":55,"value":398},"\\\"",{"type":49,"tag":127,"props":400,"children":401},{"style":140},[402],{"type":55,"value":308},{"type":49,"tag":127,"props":404,"children":405},{"style":270},[406],{"type":55,"value":303},{"type":49,"tag":127,"props":408,"children":409},{"style":270},[410],{"type":55,"value":411}," &&",{"type":49,"tag":127,"props":413,"children":414},{"style":243},[415],{"type":55,"value":318},{"type":49,"tag":127,"props":417,"children":418},{"style":270},[419],{"type":55,"value":273},{"type":49,"tag":127,"props":421,"children":422},{"style":249},[423],{"type":55,"value":424}," v",{"type":49,"tag":127,"props":426,"children":427},{"style":270},[428],{"type":55,"value":429},"=$(",{"type":49,"tag":127,"props":431,"children":433},{"style":432},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[434],{"type":55,"value":435},"grep",{"type":49,"tag":127,"props":437,"children":438},{"style":140},[439],{"type":55,"value":440}," -E",{"type":49,"tag":127,"props":442,"children":443},{"style":270},[444],{"type":55,"value":293},{"type":49,"tag":127,"props":446,"children":447},{"style":140},[448],{"type":55,"value":449},"^",{"type":49,"tag":127,"props":451,"children":452},{"style":249},[453],{"type":55,"value":388},{"type":49,"tag":127,"props":455,"children":456},{"style":140},[457],{"type":55,"value":458},"=",{"type":49,"tag":127,"props":460,"children":461},{"style":270},[462],{"type":55,"value":303},{"type":49,"tag":127,"props":464,"children":465},{"style":270},[466],{"type":55,"value":293},{"type":49,"tag":127,"props":468,"children":469},{"style":249},[470],{"type":55,"value":298},{"type":49,"tag":127,"props":472,"children":473},{"style":270},[474],{"type":55,"value":303},{"type":49,"tag":127,"props":476,"children":477},{"style":270},[478],{"type":55,"value":479}," |",{"type":49,"tag":127,"props":481,"children":482},{"style":432},[483],{"type":55,"value":484}," head",{"type":49,"tag":127,"props":486,"children":487},{"style":140},[488],{"type":55,"value":489}," -1",{"type":49,"tag":127,"props":491,"children":492},{"style":270},[493],{"type":55,"value":479},{"type":49,"tag":127,"props":495,"children":496},{"style":432},[497],{"type":55,"value":498}," cut",{"type":49,"tag":127,"props":500,"children":501},{"style":140},[502],{"type":55,"value":503}," -d=",{"type":49,"tag":127,"props":505,"children":506},{"style":140},[507],{"type":55,"value":508}," -f2-",{"type":49,"tag":127,"props":510,"children":511},{"style":270},[512],{"type":55,"value":479},{"type":49,"tag":127,"props":514,"children":515},{"style":432},[516],{"type":55,"value":517}," sed",{"type":49,"tag":127,"props":519,"children":520},{"style":270},[521],{"type":55,"value":522}," '",{"type":49,"tag":127,"props":524,"children":525},{"style":140},[526],{"type":55,"value":527},"s\u002F^[\"",{"type":49,"tag":127,"props":529,"children":530},{"style":270},[531],{"type":55,"value":532},"'",{"type":49,"tag":127,"props":534,"children":535},{"style":249},[536],{"type":55,"value":537},"\\'",{"type":49,"tag":127,"props":539,"children":540},{"style":270},[541],{"type":55,"value":532},{"type":49,"tag":127,"props":543,"children":544},{"style":140},[545],{"type":55,"value":546},"]\u002F\u002F;s\u002F[\"",{"type":49,"tag":127,"props":548,"children":549},{"style":270},[550],{"type":55,"value":532},{"type":49,"tag":127,"props":552,"children":553},{"style":249},[554],{"type":55,"value":537},{"type":49,"tag":127,"props":556,"children":557},{"style":270},[558],{"type":55,"value":532},{"type":49,"tag":127,"props":560,"children":561},{"style":140},[562],{"type":55,"value":563},"]$\u002F\u002F",{"type":49,"tag":127,"props":565,"children":566},{"style":270},[567],{"type":55,"value":532},{"type":49,"tag":127,"props":569,"children":570},{"style":270},[571],{"type":55,"value":572},");",{"type":49,"tag":127,"props":574,"children":575},{"style":270},[576],{"type":55,"value":283},{"type":49,"tag":127,"props":578,"children":579},{"style":270},[580],{"type":55,"value":581}," -n",{"type":49,"tag":127,"props":583,"children":584},{"style":270},[585],{"type":55,"value":293},{"type":49,"tag":127,"props":587,"children":588},{"style":249},[589],{"type":55,"value":590},"$v",{"type":49,"tag":127,"props":592,"children":593},{"style":270},[594],{"type":55,"value":303},{"type":49,"tag":127,"props":596,"children":597},{"style":270},[598],{"type":55,"value":308},{"type":49,"tag":127,"props":600,"children":601},{"style":270},[602],{"type":55,"value":411},{"type":49,"tag":127,"props":604,"children":606},{"style":605},"--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA",[607],{"type":55,"value":608}," export",{"type":49,"tag":127,"props":610,"children":611},{"style":270},[612],{"type":55,"value":293},{"type":49,"tag":127,"props":614,"children":615},{"style":249},[616],{"type":55,"value":388},{"type":49,"tag":127,"props":618,"children":619},{"style":140},[620],{"type":55,"value":458},{"type":49,"tag":127,"props":622,"children":623},{"style":249},[624],{"type":55,"value":590},{"type":49,"tag":127,"props":626,"children":627},{"style":270},[628],{"type":55,"value":303},{"type":49,"tag":127,"props":630,"children":631},{"style":270},[632],{"type":55,"value":273},{"type":49,"tag":127,"props":634,"children":635},{"style":243},[636],{"type":55,"value":637}," done",{"type":49,"tag":127,"props":639,"children":640},{"style":270},[641],{"type":55,"value":273},{"type":49,"tag":127,"props":643,"children":644},{"style":243},[645],{"type":55,"value":646}," done\n",{"type":49,"tag":127,"props":648,"children":650},{"class":129,"line":649},2,[651,656,661,665,670,675,679,684],{"type":49,"tag":127,"props":652,"children":653},{"style":134},[654],{"type":55,"value":655},":",{"type":49,"tag":127,"props":657,"children":658},{"style":270},[659],{"type":55,"value":660}," \"${",{"type":49,"tag":127,"props":662,"children":663},{"style":249},[664],{"type":55,"value":198},{"type":49,"tag":127,"props":666,"children":667},{"style":270},[668],{"type":55,"value":669},":=",{"type":49,"tag":127,"props":671,"children":672},{"style":249},[673],{"type":55,"value":674},"datadoghq",{"type":49,"tag":127,"props":676,"children":677},{"style":140},[678],{"type":55,"value":89},{"type":49,"tag":127,"props":680,"children":681},{"style":249},[682],{"type":55,"value":683},"com",{"type":49,"tag":127,"props":685,"children":686},{"style":270},[687],{"type":55,"value":688},"}\"\n",{"type":49,"tag":127,"props":690,"children":692},{"class":129,"line":691},3,[693,698,702,707,712,716],{"type":49,"tag":127,"props":694,"children":695},{"style":134},[696],{"type":55,"value":697},"echo",{"type":49,"tag":127,"props":699,"children":700},{"style":270},[701],{"type":55,"value":293},{"type":49,"tag":127,"props":703,"children":704},{"style":140},[705],{"type":55,"value":706},"DD_SITE=",{"type":49,"tag":127,"props":708,"children":709},{"style":270},[710],{"type":55,"value":711},"${",{"type":49,"tag":127,"props":713,"children":714},{"style":249},[715],{"type":55,"value":198},{"type":49,"tag":127,"props":717,"children":718},{"style":270},[719],{"type":55,"value":688},{"type":49,"tag":127,"props":721,"children":723},{"class":129,"line":722},4,[724,728,732,737,742,746,750,754,759,763,767,772,777,782,786,791,796,801,805,809,813,817,821,825,829,833,837,841,845,849],{"type":49,"tag":127,"props":725,"children":726},{"style":134},[727],{"type":55,"value":697},{"type":49,"tag":127,"props":729,"children":730},{"style":270},[731],{"type":55,"value":293},{"type":49,"tag":127,"props":733,"children":734},{"style":140},[735],{"type":55,"value":736},"DD_API_KEY=",{"type":49,"tag":127,"props":738,"children":739},{"style":270},[740],{"type":55,"value":741},"$([",{"type":49,"tag":127,"props":743,"children":744},{"style":270},[745],{"type":55,"value":581},{"type":49,"tag":127,"props":747,"children":748},{"style":270},[749],{"type":55,"value":660},{"type":49,"tag":127,"props":751,"children":752},{"style":249},[753],{"type":55,"value":206},{"type":49,"tag":127,"props":755,"children":756},{"style":270},[757],{"type":55,"value":758},":-}\"",{"type":49,"tag":127,"props":760,"children":761},{"style":270},[762],{"type":55,"value":308},{"type":49,"tag":127,"props":764,"children":765},{"style":270},[766],{"type":55,"value":411},{"type":49,"tag":127,"props":768,"children":769},{"style":134},[770],{"type":55,"value":771}," echo",{"type":49,"tag":127,"props":773,"children":774},{"style":140},[775],{"type":55,"value":776}," set ",{"type":49,"tag":127,"props":778,"children":779},{"style":270},[780],{"type":55,"value":781},"||",{"type":49,"tag":127,"props":783,"children":784},{"style":134},[785],{"type":55,"value":771},{"type":49,"tag":127,"props":787,"children":788},{"style":140},[789],{"type":55,"value":790}," UNSET",{"type":49,"tag":127,"props":792,"children":793},{"style":270},[794],{"type":55,"value":795},")",{"type":49,"tag":127,"props":797,"children":798},{"style":140},[799],{"type":55,"value":800},"   DD_APP_KEY=",{"type":49,"tag":127,"props":802,"children":803},{"style":270},[804],{"type":55,"value":741},{"type":49,"tag":127,"props":806,"children":807},{"style":270},[808],{"type":55,"value":581},{"type":49,"tag":127,"props":810,"children":811},{"style":270},[812],{"type":55,"value":660},{"type":49,"tag":127,"props":814,"children":815},{"style":249},[816],{"type":55,"value":213},{"type":49,"tag":127,"props":818,"children":819},{"style":270},[820],{"type":55,"value":758},{"type":49,"tag":127,"props":822,"children":823},{"style":270},[824],{"type":55,"value":308},{"type":49,"tag":127,"props":826,"children":827},{"style":270},[828],{"type":55,"value":411},{"type":49,"tag":127,"props":830,"children":831},{"style":134},[832],{"type":55,"value":771},{"type":49,"tag":127,"props":834,"children":835},{"style":140},[836],{"type":55,"value":776},{"type":49,"tag":127,"props":838,"children":839},{"style":270},[840],{"type":55,"value":781},{"type":49,"tag":127,"props":842,"children":843},{"style":134},[844],{"type":55,"value":771},{"type":49,"tag":127,"props":846,"children":847},{"style":140},[848],{"type":55,"value":790},{"type":49,"tag":127,"props":850,"children":851},{"style":270},[852],{"type":55,"value":853},")\"\n",{"type":49,"tag":127,"props":855,"children":857},{"class":129,"line":856},5,[858,863,867,872,876,880,885,889],{"type":49,"tag":127,"props":859,"children":860},{"style":134},[861],{"type":55,"value":862},"printf",{"type":49,"tag":127,"props":864,"children":865},{"style":270},[866],{"type":55,"value":522},{"type":49,"tag":127,"props":868,"children":869},{"style":140},[870],{"type":55,"value":871},"DD-API-KEY: %s\\n",{"type":49,"tag":127,"props":873,"children":874},{"style":270},[875],{"type":55,"value":532},{"type":49,"tag":127,"props":877,"children":878},{"style":270},[879],{"type":55,"value":293},{"type":49,"tag":127,"props":881,"children":882},{"style":249},[883],{"type":55,"value":884},"$DD_API_KEY",{"type":49,"tag":127,"props":886,"children":887},{"style":270},[888],{"type":55,"value":303},{"type":49,"tag":127,"props":890,"children":891},{"style":249},[892],{"type":55,"value":893}," \\\n",{"type":49,"tag":127,"props":895,"children":897},{"class":129,"line":896},6,[898,903,908,913,918,924,929,934,939,943,948,952],{"type":49,"tag":127,"props":899,"children":900},{"style":270},[901],{"type":55,"value":902},"  |",{"type":49,"tag":127,"props":904,"children":905},{"style":432},[906],{"type":55,"value":907}," curl",{"type":49,"tag":127,"props":909,"children":910},{"style":140},[911],{"type":55,"value":912}," -sS",{"type":49,"tag":127,"props":914,"children":915},{"style":140},[916],{"type":55,"value":917}," --max-time",{"type":49,"tag":127,"props":919,"children":921},{"style":920},"--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C",[922],{"type":55,"value":923}," 20",{"type":49,"tag":127,"props":925,"children":926},{"style":140},[927],{"type":55,"value":928}," -o",{"type":49,"tag":127,"props":930,"children":931},{"style":140},[932],{"type":55,"value":933}," \u002Fdev\u002Fnull",{"type":49,"tag":127,"props":935,"children":936},{"style":140},[937],{"type":55,"value":938}," -w",{"type":49,"tag":127,"props":940,"children":941},{"style":270},[942],{"type":55,"value":293},{"type":49,"tag":127,"props":944,"children":945},{"style":140},[946],{"type":55,"value":947},"validate:     HTTP %{http_code}\\n",{"type":49,"tag":127,"props":949,"children":950},{"style":270},[951],{"type":55,"value":303},{"type":49,"tag":127,"props":953,"children":954},{"style":249},[955],{"type":55,"value":893},{"type":49,"tag":127,"props":957,"children":959},{"class":129,"line":958},7,[960,965,970,974,979,983,987,992,997],{"type":49,"tag":127,"props":961,"children":962},{"style":140},[963],{"type":55,"value":964},"      -H",{"type":49,"tag":127,"props":966,"children":967},{"style":140},[968],{"type":55,"value":969}," @-",{"type":49,"tag":127,"props":971,"children":972},{"style":270},[973],{"type":55,"value":293},{"type":49,"tag":127,"props":975,"children":976},{"style":140},[977],{"type":55,"value":978},"https:\u002F\u002Fapi.",{"type":49,"tag":127,"props":980,"children":981},{"style":270},[982],{"type":55,"value":711},{"type":49,"tag":127,"props":984,"children":985},{"style":249},[986],{"type":55,"value":198},{"type":49,"tag":127,"props":988,"children":989},{"style":270},[990],{"type":55,"value":991},"}",{"type":49,"tag":127,"props":993,"children":994},{"style":140},[995],{"type":55,"value":996},"\u002Fapi\u002Fv1\u002Fvalidate",{"type":49,"tag":127,"props":998,"children":999},{"style":270},[1000],{"type":55,"value":1001},"\"\n",{"type":49,"tag":127,"props":1003,"children":1005},{"class":129,"line":1004},8,[1006,1010,1014,1019,1023,1027,1031,1035,1039,1044,1048],{"type":49,"tag":127,"props":1007,"children":1008},{"style":134},[1009],{"type":55,"value":862},{"type":49,"tag":127,"props":1011,"children":1012},{"style":270},[1013],{"type":55,"value":522},{"type":49,"tag":127,"props":1015,"children":1016},{"style":140},[1017],{"type":55,"value":1018},"DD-API-KEY: %s\\nDD-APPLICATION-KEY: %s\\n",{"type":49,"tag":127,"props":1020,"children":1021},{"style":270},[1022],{"type":55,"value":532},{"type":49,"tag":127,"props":1024,"children":1025},{"style":270},[1026],{"type":55,"value":293},{"type":49,"tag":127,"props":1028,"children":1029},{"style":249},[1030],{"type":55,"value":884},{"type":49,"tag":127,"props":1032,"children":1033},{"style":270},[1034],{"type":55,"value":303},{"type":49,"tag":127,"props":1036,"children":1037},{"style":270},[1038],{"type":55,"value":293},{"type":49,"tag":127,"props":1040,"children":1041},{"style":249},[1042],{"type":55,"value":1043},"$DD_APP_KEY",{"type":49,"tag":127,"props":1045,"children":1046},{"style":270},[1047],{"type":55,"value":303},{"type":49,"tag":127,"props":1049,"children":1050},{"style":249},[1051],{"type":55,"value":893},{"type":49,"tag":127,"props":1053,"children":1055},{"class":129,"line":1054},9,[1056,1060,1064,1068,1072,1076,1080,1084,1088,1092,1097,1101],{"type":49,"tag":127,"props":1057,"children":1058},{"style":270},[1059],{"type":55,"value":902},{"type":49,"tag":127,"props":1061,"children":1062},{"style":432},[1063],{"type":55,"value":907},{"type":49,"tag":127,"props":1065,"children":1066},{"style":140},[1067],{"type":55,"value":912},{"type":49,"tag":127,"props":1069,"children":1070},{"style":140},[1071],{"type":55,"value":917},{"type":49,"tag":127,"props":1073,"children":1074},{"style":920},[1075],{"type":55,"value":923},{"type":49,"tag":127,"props":1077,"children":1078},{"style":140},[1079],{"type":55,"value":928},{"type":49,"tag":127,"props":1081,"children":1082},{"style":140},[1083],{"type":55,"value":933},{"type":49,"tag":127,"props":1085,"children":1086},{"style":140},[1087],{"type":55,"value":938},{"type":49,"tag":127,"props":1089,"children":1090},{"style":270},[1091],{"type":55,"value":293},{"type":49,"tag":127,"props":1093,"children":1094},{"style":140},[1095],{"type":55,"value":1096},"current_user: HTTP %{http_code}\\n",{"type":49,"tag":127,"props":1098,"children":1099},{"style":270},[1100],{"type":55,"value":303},{"type":49,"tag":127,"props":1102,"children":1103},{"style":249},[1104],{"type":55,"value":893},{"type":49,"tag":127,"props":1106,"children":1108},{"class":129,"line":1107},10,[1109,1113,1117,1121,1125,1129,1133,1137,1142],{"type":49,"tag":127,"props":1110,"children":1111},{"style":140},[1112],{"type":55,"value":964},{"type":49,"tag":127,"props":1114,"children":1115},{"style":140},[1116],{"type":55,"value":969},{"type":49,"tag":127,"props":1118,"children":1119},{"style":270},[1120],{"type":55,"value":293},{"type":49,"tag":127,"props":1122,"children":1123},{"style":140},[1124],{"type":55,"value":978},{"type":49,"tag":127,"props":1126,"children":1127},{"style":270},[1128],{"type":55,"value":711},{"type":49,"tag":127,"props":1130,"children":1131},{"style":249},[1132],{"type":55,"value":198},{"type":49,"tag":127,"props":1134,"children":1135},{"style":270},[1136],{"type":55,"value":991},{"type":49,"tag":127,"props":1138,"children":1139},{"style":140},[1140],{"type":55,"value":1141},"\u002Fapi\u002Fv2\u002Fcurrent_user",{"type":49,"tag":127,"props":1143,"children":1144},{"style":270},[1145],{"type":55,"value":1001},{"type":49,"tag":1147,"props":1148,"children":1149},"table",{},[1150,1174],{"type":49,"tag":1151,"props":1152,"children":1153},"thead",{},[1154],{"type":49,"tag":1155,"props":1156,"children":1157},"tr",{},[1158,1164,1169],{"type":49,"tag":1159,"props":1160,"children":1161},"th",{},[1162],{"type":55,"value":1163},"Result",{"type":49,"tag":1159,"props":1165,"children":1166},{},[1167],{"type":55,"value":1168},"Meaning",{"type":49,"tag":1159,"props":1170,"children":1171},{},[1172],{"type":55,"value":1173},"What to do",{"type":49,"tag":1175,"props":1176,"children":1177},"tbody",{},[1178,1203,1252,1306],{"type":49,"tag":1155,"props":1179,"children":1180},{},[1181,1193,1198],{"type":49,"tag":1182,"props":1183,"children":1184},"td",{},[1185,1187],{"type":55,"value":1186},"Both ",{"type":49,"tag":69,"props":1188,"children":1190},{"className":1189},[],[1191],{"type":55,"value":1192},"200",{"type":49,"tag":1182,"props":1194,"children":1195},{},[1196],{"type":55,"value":1197},"Keys are good for this site",{"type":49,"tag":1182,"props":1199,"children":1200},{},[1201],{"type":55,"value":1202},"Continue to Phase 1",{"type":49,"tag":1155,"props":1204,"children":1205},{},[1206,1223,1240],{"type":49,"tag":1182,"props":1207,"children":1208},{},[1209,1215,1217],{"type":49,"tag":69,"props":1210,"children":1212},{"className":1211},[],[1213],{"type":55,"value":1214},"validate",{"type":55,"value":1216}," is ",{"type":49,"tag":69,"props":1218,"children":1220},{"className":1219},[],[1221],{"type":55,"value":1222},"403",{"type":49,"tag":1182,"props":1224,"children":1225},{},[1226,1228,1233,1235],{"type":55,"value":1227},"The ",{"type":49,"tag":101,"props":1229,"children":1230},{},[1231],{"type":55,"value":1232},"API key",{"type":55,"value":1234}," is invalid, or belongs to a different region than ",{"type":49,"tag":69,"props":1236,"children":1238},{"className":1237},[],[1239],{"type":55,"value":198},{"type":49,"tag":1182,"props":1241,"children":1242},{},[1243,1245,1250],{"type":55,"value":1244},"Ask which site the key belongs to, fix ",{"type":49,"tag":69,"props":1246,"children":1248},{"className":1247},[],[1249],{"type":55,"value":198},{"type":55,"value":1251},", re-check",{"type":49,"tag":1155,"props":1253,"children":1254},{},[1255,1284,1295],{"type":49,"tag":1182,"props":1256,"children":1257},{},[1258,1263,1265,1270,1272,1278,1279],{"type":49,"tag":69,"props":1259,"children":1261},{"className":1260},[],[1262],{"type":55,"value":1214},{"type":55,"value":1264}," ",{"type":49,"tag":69,"props":1266,"children":1268},{"className":1267},[],[1269],{"type":55,"value":1192},{"type":55,"value":1271},", ",{"type":49,"tag":69,"props":1273,"children":1275},{"className":1274},[],[1276],{"type":55,"value":1277},"current_user",{"type":55,"value":1264},{"type":49,"tag":69,"props":1280,"children":1282},{"className":1281},[],[1283],{"type":55,"value":1222},{"type":49,"tag":1182,"props":1285,"children":1286},{},[1287,1288,1293],{"type":55,"value":1227},{"type":49,"tag":101,"props":1289,"children":1290},{},[1291],{"type":55,"value":1292},"app key",{"type":55,"value":1294}," is wrong or from another region - not the API key",{"type":49,"tag":1182,"props":1296,"children":1297},{},[1298,1300],{"type":55,"value":1299},"Get one from ",{"type":49,"tag":69,"props":1301,"children":1303},{"className":1302},[],[1304],{"type":55,"value":1305},"\u003CAPP_BASE>\u002Forganization-settings\u002Fapplication-keys",{"type":49,"tag":1155,"props":1307,"children":1308},{},[1309,1314,1319],{"type":49,"tag":1182,"props":1310,"children":1311},{},[1312],{"type":55,"value":1313},"Either key unset",{"type":49,"tag":1182,"props":1315,"children":1316},{},[1317],{"type":55,"value":1318},"Nothing to validate",{"type":49,"tag":1182,"props":1320,"children":1321},{},[1322,1324,1329,1331,1337,1339,1345,1347,1352],{"type":55,"value":1323},"On a commercial site, run the ",{"type":49,"tag":101,"props":1325,"children":1326},{},[1327],{"type":55,"value":1328},"dd-account-setup",{"type":55,"value":1330}," skill, then come back. On ",{"type":49,"tag":69,"props":1332,"children":1334},{"className":1333},[],[1335],{"type":55,"value":1336},"ddog-gov.com",{"type":55,"value":1338}," or ",{"type":49,"tag":69,"props":1340,"children":1342},{"className":1341},[],[1343],{"type":55,"value":1344},"us2.ddog-gov.com",{"type":55,"value":1346},", ask the user for the keys directly - that skill validates ",{"type":49,"tag":69,"props":1348,"children":1350},{"className":1349},[],[1351],{"type":55,"value":198},{"type":55,"value":1353}," against a list that excludes both government sites and will reject them",{"type":49,"tag":58,"props":1355,"children":1356},{},[1357,1362,1364,1369,1370,1376,1378,1384,1386,1392,1394,1400,1402,1408,1410,1416,1418,1424,1425,1431,1432,1438,1439,1445,1447,1453,1455],{"type":49,"tag":101,"props":1358,"children":1359},{},[1360],{"type":55,"value":1361},"App URL.",{"type":55,"value":1363}," The Datadog app host is ",{"type":49,"tag":101,"props":1365,"children":1366},{},[1367],{"type":55,"value":1368},"not",{"type":55,"value":1264},{"type":49,"tag":69,"props":1371,"children":1373},{"className":1372},[],[1374],{"type":55,"value":1375},"app.${DD_SITE}",{"type":55,"value":1377}," for every site. It is\n",{"type":49,"tag":69,"props":1379,"children":1381},{"className":1380},[],[1382],{"type":55,"value":1383},"https:\u002F\u002Fapp.datadoghq.com",{"type":55,"value":1385}," (US1), ",{"type":49,"tag":69,"props":1387,"children":1389},{"className":1388},[],[1390],{"type":55,"value":1391},"https:\u002F\u002Fapp.datadoghq.eu",{"type":55,"value":1393}," (EU1), ",{"type":49,"tag":69,"props":1395,"children":1397},{"className":1396},[],[1398],{"type":55,"value":1399},"https:\u002F\u002Fapp.ddog-gov.com",{"type":55,"value":1401}," (Gov),\nand for every other site it is ",{"type":49,"tag":69,"props":1403,"children":1405},{"className":1404},[],[1406],{"type":55,"value":1407},"https:\u002F\u002F${DD_SITE}",{"type":55,"value":1409}," itself - ",{"type":49,"tag":69,"props":1411,"children":1413},{"className":1412},[],[1414],{"type":55,"value":1415},"https:\u002F\u002Fus3.datadoghq.com",{"type":55,"value":1417},",\n",{"type":49,"tag":69,"props":1419,"children":1421},{"className":1420},[],[1422],{"type":55,"value":1423},"https:\u002F\u002Fus5.datadoghq.com",{"type":55,"value":1271},{"type":49,"tag":69,"props":1426,"children":1428},{"className":1427},[],[1429],{"type":55,"value":1430},"https:\u002F\u002Fap1.datadoghq.com",{"type":55,"value":1271},{"type":49,"tag":69,"props":1433,"children":1435},{"className":1434},[],[1436],{"type":55,"value":1437},"https:\u002F\u002Fap2.datadoghq.com",{"type":55,"value":1417},{"type":49,"tag":69,"props":1440,"children":1442},{"className":1441},[],[1443],{"type":55,"value":1444},"https:\u002F\u002Fuk1.datadoghq.com",{"type":55,"value":1446},". Resolve it once and substitute it wherever ",{"type":49,"tag":69,"props":1448,"children":1450},{"className":1449},[],[1451],{"type":55,"value":1452},"\u003CAPP_BASE>",{"type":55,"value":1454}," appears below.\nFull list: ",{"type":49,"tag":1456,"props":1457,"children":1461},"a",{"href":1458,"rel":1459},"https:\u002F\u002Fdocs.datadoghq.com\u002Fgetting_started\u002Fsite\u002F",[1460],"nofollow",[1462],{"type":55,"value":1458},{"type":49,"tag":58,"props":1464,"children":1465},{},[1466,1477,1479,1485,1487,1492,1494,1500,1502,1508,1510,1515,1517,1523,1525,1530,1532,1537,1539,1545,1547,1552,1554,1559,1560,1565],{"type":49,"tag":101,"props":1467,"children":1468},{},[1469,1471,1476],{"type":55,"value":1470},"Remember the resolved ",{"type":49,"tag":69,"props":1472,"children":1474},{"className":1473},[],[1475],{"type":55,"value":198},{"type":55,"value":89},{"type":55,"value":1478}," Most agent runtimes start a fresh shell per command, so the\n",{"type":49,"tag":69,"props":1480,"children":1482},{"className":1481},[],[1483],{"type":55,"value":1484},"export",{"type":55,"value":1486}," above is gone by the next block. That is why the loader line is repeated verbatim at the top\nof every later block that needs credentials - it is deliberate, not drift; don't strip it. ",{"type":49,"tag":69,"props":1488,"children":1490},{"className":1489},[],[1491],{"type":55,"value":198},{"type":55,"value":1493}," is not a secret, so every later block re-establishes it\nitself with an explicit ",{"type":49,"tag":69,"props":1495,"children":1497},{"className":1496},[],[1498],{"type":55,"value":1499},"DD_SITE='\u003Csite>'; export DD_SITE",{"type":55,"value":1501}," - substitute the site confirmed in Phase 0.\nIt is a plain assignment rather than ",{"type":49,"tag":69,"props":1503,"children":1505},{"className":1504},[],[1506],{"type":55,"value":1507},": \"${DD_SITE:=...}\"",{"type":55,"value":1509}," on purpose: ",{"type":49,"tag":69,"props":1511,"children":1513},{"className":1512},[],[1514],{"type":55,"value":669},{"type":55,"value":1516}," only fills in an ",{"type":49,"tag":1518,"props":1519,"children":1520},"em",{},[1521],{"type":55,"value":1522},"unset or\nempty",{"type":55,"value":1524}," value, so a wrong non-empty ",{"type":49,"tag":69,"props":1526,"children":1528},{"className":1527},[],[1529],{"type":55,"value":198},{"type":55,"value":1531}," sitting in ",{"type":49,"tag":69,"props":1533,"children":1535},{"className":1534},[],[1536],{"type":55,"value":228},{"type":55,"value":1538}," would survive it and every call would go to\nthe wrong region. The keys are guarded with ",{"type":49,"tag":69,"props":1540,"children":1542},{"className":1541},[],[1543],{"type":55,"value":1544},":?",{"type":55,"value":1546}," instead, so a missing key aborts loudly rather than\nsending an empty header. ",{"type":49,"tag":101,"props":1548,"children":1549},{},[1550],{"type":55,"value":1551},"Never inline the key values",{"type":55,"value":1553}," - they must always\narrive through the loader as ",{"type":49,"tag":69,"props":1555,"children":1557},{"className":1556},[],[1558],{"type":55,"value":884},{"type":55,"value":200},{"type":49,"tag":69,"props":1561,"children":1563},{"className":1562},[],[1564],{"type":55,"value":1043},{"type":55,"value":1566},". Two consequences follow, and both are\ndeliberate:",{"type":49,"tag":1568,"props":1569,"children":1570},"ul",{},[1571,1637],{"type":49,"tag":1572,"props":1573,"children":1574},"li",{},[1575,1580,1582,1588,1590,1595,1597,1603,1605,1611,1613,1619,1621,1627,1629,1635],{"type":49,"tag":101,"props":1576,"children":1577},{},[1578],{"type":55,"value":1579},"Datadog calls pass headers on stdin",{"type":55,"value":1581},", as ",{"type":49,"tag":69,"props":1583,"children":1585},{"className":1584},[],[1586],{"type":55,"value":1587},"printf 'DD-API-KEY: %s\\n' \"$DD_API_KEY\" | curl -H @- ...",{"type":55,"value":1589},".\n",{"type":49,"tag":69,"props":1591,"children":1593},{"className":1592},[],[1594],{"type":55,"value":862},{"type":55,"value":1596}," is a shell builtin, so the key never becomes an argument of any process and never appears in\n",{"type":49,"tag":69,"props":1598,"children":1600},{"className":1599},[],[1601],{"type":55,"value":1602},"ps",{"type":55,"value":1604},". Writing ",{"type":49,"tag":69,"props":1606,"children":1608},{"className":1607},[],[1609],{"type":55,"value":1610},"-H \"DD-API-KEY: $DD_API_KEY\"",{"type":55,"value":1612}," instead would put it in curl's argv. (",{"type":49,"tag":69,"props":1614,"children":1616},{"className":1615},[],[1617],{"type":55,"value":1618},"-H @-",{"type":55,"value":1620}," needs\ncurl 7.55+; it reads only the header lines, so ",{"type":49,"tag":69,"props":1622,"children":1624},{"className":1623},[],[1625],{"type":55,"value":1626},"-d",{"type":55,"value":1628}," and ",{"type":49,"tag":69,"props":1630,"children":1632},{"className":1631},[],[1633],{"type":55,"value":1634},"--data-urlencode",{"type":55,"value":1636}," still work normally.)",{"type":49,"tag":1572,"props":1638,"children":1639},{},[1640,1645,1647,1652,1653,1658,1660,1666,1668,1674],{"type":49,"tag":101,"props":1641,"children":1642},{},[1643],{"type":55,"value":1644},"Terraform never receives the keys as values at all",{"type":55,"value":1646}," for AWS, Azure, and GCP: the Datadog provider\nreads ",{"type":49,"tag":69,"props":1648,"children":1650},{"className":1649},[],[1651],{"type":55,"value":206},{"type":55,"value":200},{"type":49,"tag":69,"props":1654,"children":1656},{"className":1655},[],[1657],{"type":55,"value":213},{"type":55,"value":1659}," from the environment, so there are no root variables, no ",{"type":49,"tag":69,"props":1661,"children":1663},{"className":1662},[],[1664],{"type":55,"value":1665},"-var=",{"type":55,"value":1667},"\narguments, and nothing for Terraform to record in state or a saved plan. (OCI is the exception - its\nmodule needs them as inputs, so there they travel as ",{"type":49,"tag":69,"props":1669,"children":1671},{"className":1670},[],[1672],{"type":55,"value":1673},"TF_VAR_*",{"type":55,"value":1675},".)",{"type":49,"tag":58,"props":1677,"children":1678},{},[1679],{"type":55,"value":1680},"Together with the loader, that keeps both keys out of the transcript, out of shell history, and out of\nthe process list.",{"type":49,"tag":58,"props":1682,"children":1683},{},[1684,1689,1690,1695,1697,1703,1705,1711,1713,1719,1721,1727,1729,1735],{"type":49,"tag":101,"props":1685,"children":1686},{},[1687],{"type":55,"value":1688},"Tools.",{"type":55,"value":1264},{"type":49,"tag":69,"props":1691,"children":1693},{"className":1692},[],[1694],{"type":55,"value":21},{"type":55,"value":1696}," is required, plus ",{"type":49,"tag":69,"props":1698,"children":1700},{"className":1699},[],[1701],{"type":55,"value":1702},"jq",{"type":55,"value":1704}," for Phase 1. The ",{"type":49,"tag":69,"props":1706,"children":1708},{"className":1707},[],[1709],{"type":55,"value":1710},"gcloud",{"type":55,"value":1712}," CLI is optional for discovery,\nbut the ",{"type":49,"tag":69,"props":1714,"children":1716},{"className":1715},[],[1717],{"type":55,"value":1718},"google",{"type":55,"value":1720}," provider needs ambient GCP credentials either way\n(",{"type":49,"tag":69,"props":1722,"children":1724},{"className":1723},[],[1725],{"type":55,"value":1726},"gcloud auth application-default login",{"type":55,"value":1728},", or ",{"type":49,"tag":69,"props":1730,"children":1732},{"className":1731},[],[1733],{"type":55,"value":1734},"GOOGLE_APPLICATION_CREDENTIALS",{"type":55,"value":1736},"):",{"type":49,"tag":116,"props":1738,"children":1740},{"className":118,"code":1739,"language":120,"meta":121,"style":121},"command -v terraform || echo \"MISSING terraform - https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Finstall\"\ncommand -v jq || echo \"MISSING jq - needed to read the delegate email in Phase 1\"\ncommand -v gcloud >\u002Fdev\u002Fnull 2>&1 && echo \"gcloud: available\" || echo \"gcloud: not installed\"\n",[1741],{"type":49,"tag":69,"props":1742,"children":1743},{"__ignoreMap":121},[1744,1780,1817],{"type":49,"tag":127,"props":1745,"children":1746},{"class":129,"line":130},[1747,1751,1755,1759,1763,1767,1771,1776],{"type":49,"tag":127,"props":1748,"children":1749},{"style":134},[1750],{"type":55,"value":137},{"type":49,"tag":127,"props":1752,"children":1753},{"style":140},[1754],{"type":55,"value":143},{"type":49,"tag":127,"props":1756,"children":1757},{"style":140},[1758],{"type":55,"value":148},{"type":49,"tag":127,"props":1760,"children":1761},{"style":270},[1762],{"type":55,"value":313},{"type":49,"tag":127,"props":1764,"children":1765},{"style":134},[1766],{"type":55,"value":771},{"type":49,"tag":127,"props":1768,"children":1769},{"style":270},[1770],{"type":55,"value":293},{"type":49,"tag":127,"props":1772,"children":1773},{"style":140},[1774],{"type":55,"value":1775},"MISSING terraform - https:\u002F\u002Fdeveloper.hashicorp.com\u002Fterraform\u002Finstall",{"type":49,"tag":127,"props":1777,"children":1778},{"style":270},[1779],{"type":55,"value":1001},{"type":49,"tag":127,"props":1781,"children":1782},{"class":129,"line":649},[1783,1787,1791,1796,1800,1804,1808,1813],{"type":49,"tag":127,"props":1784,"children":1785},{"style":134},[1786],{"type":55,"value":137},{"type":49,"tag":127,"props":1788,"children":1789},{"style":140},[1790],{"type":55,"value":143},{"type":49,"tag":127,"props":1792,"children":1793},{"style":140},[1794],{"type":55,"value":1795}," jq",{"type":49,"tag":127,"props":1797,"children":1798},{"style":270},[1799],{"type":55,"value":313},{"type":49,"tag":127,"props":1801,"children":1802},{"style":134},[1803],{"type":55,"value":771},{"type":49,"tag":127,"props":1805,"children":1806},{"style":270},[1807],{"type":55,"value":293},{"type":49,"tag":127,"props":1809,"children":1810},{"style":140},[1811],{"type":55,"value":1812},"MISSING jq - needed to read the delegate email in Phase 1",{"type":49,"tag":127,"props":1814,"children":1815},{"style":270},[1816],{"type":55,"value":1001},{"type":49,"tag":127,"props":1818,"children":1819},{"class":129,"line":691},[1820,1824,1828,1833,1838,1843,1848,1852,1856,1860,1865,1869,1873,1877,1881,1886],{"type":49,"tag":127,"props":1821,"children":1822},{"style":134},[1823],{"type":55,"value":137},{"type":49,"tag":127,"props":1825,"children":1826},{"style":140},[1827],{"type":55,"value":143},{"type":49,"tag":127,"props":1829,"children":1830},{"style":140},[1831],{"type":55,"value":1832}," gcloud",{"type":49,"tag":127,"props":1834,"children":1835},{"style":270},[1836],{"type":55,"value":1837}," >",{"type":49,"tag":127,"props":1839,"children":1840},{"style":140},[1841],{"type":55,"value":1842},"\u002Fdev\u002Fnull",{"type":49,"tag":127,"props":1844,"children":1845},{"style":270},[1846],{"type":55,"value":1847}," 2>&1",{"type":49,"tag":127,"props":1849,"children":1850},{"style":270},[1851],{"type":55,"value":411},{"type":49,"tag":127,"props":1853,"children":1854},{"style":134},[1855],{"type":55,"value":771},{"type":49,"tag":127,"props":1857,"children":1858},{"style":270},[1859],{"type":55,"value":293},{"type":49,"tag":127,"props":1861,"children":1862},{"style":140},[1863],{"type":55,"value":1864},"gcloud: available",{"type":49,"tag":127,"props":1866,"children":1867},{"style":270},[1868],{"type":55,"value":303},{"type":49,"tag":127,"props":1870,"children":1871},{"style":270},[1872],{"type":55,"value":313},{"type":49,"tag":127,"props":1874,"children":1875},{"style":134},[1876],{"type":55,"value":771},{"type":49,"tag":127,"props":1878,"children":1879},{"style":270},[1880],{"type":55,"value":293},{"type":49,"tag":127,"props":1882,"children":1883},{"style":140},[1884],{"type":55,"value":1885},"gcloud: not installed",{"type":49,"tag":127,"props":1887,"children":1888},{"style":270},[1889],{"type":55,"value":1001},{"type":49,"tag":58,"props":1891,"children":1892},{},[1893,1895,1900,1902,1908,1910,1915],{"type":55,"value":1894},"If ",{"type":49,"tag":69,"props":1896,"children":1898},{"className":1897},[],[1899],{"type":55,"value":1702},{"type":55,"value":1901}," isn't available, read ",{"type":49,"tag":69,"props":1903,"children":1905},{"className":1904},[],[1906],{"type":55,"value":1907},"data.attributes.delegate_account_email",{"type":55,"value":1909}," out of the raw JSON response in\nPhase 1 yourself instead of piping through ",{"type":49,"tag":69,"props":1911,"children":1913},{"className":1912},[],[1914],{"type":55,"value":1702},{"type":55,"value":89},{"type":49,"tag":58,"props":1917,"children":1918},{},[1919,1924,1926,1932,1934,1940,1941,1947,1948,1954,1955,1961],{"type":49,"tag":101,"props":1920,"children":1921},{},[1922],{"type":55,"value":1923},"The snippets here are POSIX shell.",{"type":55,"value":1925}," Under PowerShell or ",{"type":49,"tag":69,"props":1927,"children":1929},{"className":1928},[],[1930],{"type":55,"value":1931},"cmd",{"type":55,"value":1933},", use the Windows equivalents\n(",{"type":49,"tag":69,"props":1935,"children":1937},{"className":1936},[],[1938],{"type":55,"value":1939},"Get-Command",{"type":55,"value":1271},{"type":49,"tag":69,"props":1942,"children":1944},{"className":1943},[],[1945],{"type":55,"value":1946},"$env:VAR",{"type":55,"value":1271},{"type":49,"tag":69,"props":1949,"children":1951},{"className":1950},[],[1952],{"type":55,"value":1953},"2>$null",{"type":55,"value":1271},{"type":49,"tag":69,"props":1956,"children":1958},{"className":1957},[],[1959],{"type":55,"value":1960},"curl.exe",{"type":55,"value":1962},") - same calls, same order.",{"type":49,"tag":91,"props":1964,"children":1966},{"id":1965},"phase-1-gather-datadog-delegate-principal",[1967],{"type":55,"value":1968},"Phase 1: Gather Datadog Delegate Principal",{"type":49,"tag":58,"props":1970,"children":1971},{},[1972,1974,1979],{"type":55,"value":1973},"Datadog impersonates the customer's service account through a per-org delegate service account. Get its\nemail - ",{"type":49,"tag":101,"props":1975,"children":1976},{},[1977],{"type":55,"value":1978},"GET first",{"type":55,"value":1980},", and only POST if the org has no delegate yet, so an existing one is reused rather\nthan re-created:",{"type":49,"tag":116,"props":1982,"children":1984},{"className":118,"code":1983,"language":120,"meta":121,"style":121},"for f in .env.local .env; do [ -f \"$f\" ] || continue; for k in DD_SITE DD_API_KEY DD_APP_KEY; do eval \"[ -n \\\"\\${$k:-}\\\" ]\" && continue; v=$(grep -E \"^$k=\" \"$f\" | head -1 | cut -d= -f2- | sed 's\u002F^[\"'\\'']\u002F\u002F;s\u002F[\"'\\'']$\u002F\u002F'); [ -n \"$v\" ] && export \"$k=$v\"; done; done\nDD_SITE='datadoghq.com'; export DD_SITE   # \u003C- replace with the site confirmed in Phase 0.\n# Explicit assignment, not ':=': a wrong non-empty DD_SITE in .env would otherwise survive.\n: \"${DD_API_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"; : \"${DD_APP_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"\nresp=$(printf 'DD-API-KEY: %s\\nDD-APPLICATION-KEY: %s\\n' \"$DD_API_KEY\" \"$DD_APP_KEY\" \\\n  | curl -sS -w '\\n%{http_code}' -X GET \\\n      -H @- \"https:\u002F\u002Fapi.${DD_SITE}\u002Fapi\u002Fv2\u002Fintegration\u002Fgcp\u002Fsts_delegate\")\ncode=$(printf '%s' \"$resp\" | tail -1); body=$(printf '%s' \"$resp\" | sed '$d')\nif [ \"$code\" = \"404\" ]; then\n  echo \"no delegate exists yet (HTTP 404) - creating one\"\n  resp=$(printf 'DD-API-KEY: %s\\nDD-APPLICATION-KEY: %s\\n' \"$DD_API_KEY\" \"$DD_APP_KEY\" \\\n    | curl -sS -w '\\n%{http_code}' -X POST -H \"Content-Type: application\u002Fjson\" -d '{}' \\\n        -H @- \"https:\u002F\u002Fapi.${DD_SITE}\u002Fapi\u002Fv2\u002Fintegration\u002Fgcp\u002Fsts_delegate\")\n  code=$(printf '%s' \"$resp\" | tail -1); body=$(printf '%s' \"$resp\" | sed '$d')\nelif [ \"$code\" != \"200\" ]; then\n  echo \"GET sts_delegate returned HTTP $code - not creating anything. Response:\"\n  printf '%s\\n' \"$body\"\n  echo \"403 means the app key lacks permission, 429 is rate limiting, 000 is a transport failure, 5xx is\"\n  echo \"server-side. None of those mean 'no delegate exists', so a POST here could create one you did not\"\n  echo \"intend. Resolve the error, then re-run. If the body says no delegate exists, POST explicitly.\"\n  exit 1\nfi\n[ \"$code\" = \"200\" ] || { echo \"sts_delegate failed with HTTP $code:\"; printf '%s\\n' \"$body\"; exit 1; }\nemail=$(printf '%s' \"$body\" | jq -r '.data.attributes.delegate_account_email \u002F\u002F empty')\ncase \"$email\" in\n  *@*.iam.gserviceaccount.com) echo \"DATADOG_PRINCIPAL_ID=$email\" ;;\n  *) echo \"did not get a delegate service-account email; response was:\"; printf '%s\\n' \"$body\"; exit 1 ;;\nesac\n",[1985],{"type":49,"tag":69,"props":1986,"children":1987},{"__ignoreMap":121},[1988,2339,2382,2390,2588,2644,2690,2735,2855,2908,2929,2986,3068,3113,3230,3280,3310,3345,3366,3386,3407,3421,3430,3561,3632,3659,3703,3777],{"type":49,"tag":127,"props":1989,"children":1990},{"class":129,"line":130},[1991,1995,1999,2003,2007,2011,2015,2019,2023,2027,2031,2035,2039,2043,2047,2051,2055,2059,2063,2067,2071,2075,2079,2083,2087,2091,2095,2099,2103,2107,2111,2115,2119,2123,2127,2131,2135,2139,2143,2147,2151,2155,2159,2163,2167,2171,2175,2179,2183,2187,2191,2195,2199,2203,2207,2211,2215,2219,2223,2227,2231,2235,2239,2243,2247,2251,2255,2259,2263,2267,2271,2275,2279,2283,2287,2291,2295,2299,2303,2307,2311,2315,2319,2323,2327,2331,2335],{"type":49,"tag":127,"props":1992,"children":1993},{"style":243},[1994],{"type":55,"value":246},{"type":49,"tag":127,"props":1996,"children":1997},{"style":249},[1998],{"type":55,"value":252},{"type":49,"tag":127,"props":2000,"children":2001},{"style":243},[2002],{"type":55,"value":257},{"type":49,"tag":127,"props":2004,"children":2005},{"style":140},[2006],{"type":55,"value":262},{"type":49,"tag":127,"props":2008,"children":2009},{"style":140},[2010],{"type":55,"value":267},{"type":49,"tag":127,"props":2012,"children":2013},{"style":270},[2014],{"type":55,"value":273},{"type":49,"tag":127,"props":2016,"children":2017},{"style":243},[2018],{"type":55,"value":278},{"type":49,"tag":127,"props":2020,"children":2021},{"style":270},[2022],{"type":55,"value":283},{"type":49,"tag":127,"props":2024,"children":2025},{"style":270},[2026],{"type":55,"value":288},{"type":49,"tag":127,"props":2028,"children":2029},{"style":270},[2030],{"type":55,"value":293},{"type":49,"tag":127,"props":2032,"children":2033},{"style":249},[2034],{"type":55,"value":298},{"type":49,"tag":127,"props":2036,"children":2037},{"style":270},[2038],{"type":55,"value":303},{"type":49,"tag":127,"props":2040,"children":2041},{"style":270},[2042],{"type":55,"value":308},{"type":49,"tag":127,"props":2044,"children":2045},{"style":270},[2046],{"type":55,"value":313},{"type":49,"tag":127,"props":2048,"children":2049},{"style":243},[2050],{"type":55,"value":318},{"type":49,"tag":127,"props":2052,"children":2053},{"style":270},[2054],{"type":55,"value":273},{"type":49,"tag":127,"props":2056,"children":2057},{"style":243},[2058],{"type":55,"value":327},{"type":49,"tag":127,"props":2060,"children":2061},{"style":249},[2062],{"type":55,"value":332},{"type":49,"tag":127,"props":2064,"children":2065},{"style":243},[2066],{"type":55,"value":257},{"type":49,"tag":127,"props":2068,"children":2069},{"style":140},[2070],{"type":55,"value":341},{"type":49,"tag":127,"props":2072,"children":2073},{"style":140},[2074],{"type":55,"value":346},{"type":49,"tag":127,"props":2076,"children":2077},{"style":140},[2078],{"type":55,"value":351},{"type":49,"tag":127,"props":2080,"children":2081},{"style":270},[2082],{"type":55,"value":273},{"type":49,"tag":127,"props":2084,"children":2085},{"style":243},[2086],{"type":55,"value":278},{"type":49,"tag":127,"props":2088,"children":2089},{"style":134},[2090],{"type":55,"value":364},{"type":49,"tag":127,"props":2092,"children":2093},{"style":270},[2094],{"type":55,"value":293},{"type":49,"tag":127,"props":2096,"children":2097},{"style":140},[2098],{"type":55,"value":373},{"type":49,"tag":127,"props":2100,"children":2101},{"style":249},[2102],{"type":55,"value":378},{"type":49,"tag":127,"props":2104,"children":2105},{"style":140},[2106],{"type":55,"value":383},{"type":49,"tag":127,"props":2108,"children":2109},{"style":249},[2110],{"type":55,"value":388},{"type":49,"tag":127,"props":2112,"children":2113},{"style":140},[2114],{"type":55,"value":393},{"type":49,"tag":127,"props":2116,"children":2117},{"style":249},[2118],{"type":55,"value":398},{"type":49,"tag":127,"props":2120,"children":2121},{"style":140},[2122],{"type":55,"value":308},{"type":49,"tag":127,"props":2124,"children":2125},{"style":270},[2126],{"type":55,"value":303},{"type":49,"tag":127,"props":2128,"children":2129},{"style":270},[2130],{"type":55,"value":411},{"type":49,"tag":127,"props":2132,"children":2133},{"style":243},[2134],{"type":55,"value":318},{"type":49,"tag":127,"props":2136,"children":2137},{"style":270},[2138],{"type":55,"value":273},{"type":49,"tag":127,"props":2140,"children":2141},{"style":249},[2142],{"type":55,"value":424},{"type":49,"tag":127,"props":2144,"children":2145},{"style":270},[2146],{"type":55,"value":429},{"type":49,"tag":127,"props":2148,"children":2149},{"style":432},[2150],{"type":55,"value":435},{"type":49,"tag":127,"props":2152,"children":2153},{"style":140},[2154],{"type":55,"value":440},{"type":49,"tag":127,"props":2156,"children":2157},{"style":270},[2158],{"type":55,"value":293},{"type":49,"tag":127,"props":2160,"children":2161},{"style":140},[2162],{"type":55,"value":449},{"type":49,"tag":127,"props":2164,"children":2165},{"style":249},[2166],{"type":55,"value":388},{"type":49,"tag":127,"props":2168,"children":2169},{"style":140},[2170],{"type":55,"value":458},{"type":49,"tag":127,"props":2172,"children":2173},{"style":270},[2174],{"type":55,"value":303},{"type":49,"tag":127,"props":2176,"children":2177},{"style":270},[2178],{"type":55,"value":293},{"type":49,"tag":127,"props":2180,"children":2181},{"style":249},[2182],{"type":55,"value":298},{"type":49,"tag":127,"props":2184,"children":2185},{"style":270},[2186],{"type":55,"value":303},{"type":49,"tag":127,"props":2188,"children":2189},{"style":270},[2190],{"type":55,"value":479},{"type":49,"tag":127,"props":2192,"children":2193},{"style":432},[2194],{"type":55,"value":484},{"type":49,"tag":127,"props":2196,"children":2197},{"style":140},[2198],{"type":55,"value":489},{"type":49,"tag":127,"props":2200,"children":2201},{"style":270},[2202],{"type":55,"value":479},{"type":49,"tag":127,"props":2204,"children":2205},{"style":432},[2206],{"type":55,"value":498},{"type":49,"tag":127,"props":2208,"children":2209},{"style":140},[2210],{"type":55,"value":503},{"type":49,"tag":127,"props":2212,"children":2213},{"style":140},[2214],{"type":55,"value":508},{"type":49,"tag":127,"props":2216,"children":2217},{"style":270},[2218],{"type":55,"value":479},{"type":49,"tag":127,"props":2220,"children":2221},{"style":432},[2222],{"type":55,"value":517},{"type":49,"tag":127,"props":2224,"children":2225},{"style":270},[2226],{"type":55,"value":522},{"type":49,"tag":127,"props":2228,"children":2229},{"style":140},[2230],{"type":55,"value":527},{"type":49,"tag":127,"props":2232,"children":2233},{"style":270},[2234],{"type":55,"value":532},{"type":49,"tag":127,"props":2236,"children":2237},{"style":249},[2238],{"type":55,"value":537},{"type":49,"tag":127,"props":2240,"children":2241},{"style":270},[2242],{"type":55,"value":532},{"type":49,"tag":127,"props":2244,"children":2245},{"style":140},[2246],{"type":55,"value":546},{"type":49,"tag":127,"props":2248,"children":2249},{"style":270},[2250],{"type":55,"value":532},{"type":49,"tag":127,"props":2252,"children":2253},{"style":249},[2254],{"type":55,"value":537},{"type":49,"tag":127,"props":2256,"children":2257},{"style":270},[2258],{"type":55,"value":532},{"type":49,"tag":127,"props":2260,"children":2261},{"style":140},[2262],{"type":55,"value":563},{"type":49,"tag":127,"props":2264,"children":2265},{"style":270},[2266],{"type":55,"value":532},{"type":49,"tag":127,"props":2268,"children":2269},{"style":270},[2270],{"type":55,"value":572},{"type":49,"tag":127,"props":2272,"children":2273},{"style":270},[2274],{"type":55,"value":283},{"type":49,"tag":127,"props":2276,"children":2277},{"style":270},[2278],{"type":55,"value":581},{"type":49,"tag":127,"props":2280,"children":2281},{"style":270},[2282],{"type":55,"value":293},{"type":49,"tag":127,"props":2284,"children":2285},{"style":249},[2286],{"type":55,"value":590},{"type":49,"tag":127,"props":2288,"children":2289},{"style":270},[2290],{"type":55,"value":303},{"type":49,"tag":127,"props":2292,"children":2293},{"style":270},[2294],{"type":55,"value":308},{"type":49,"tag":127,"props":2296,"children":2297},{"style":270},[2298],{"type":55,"value":411},{"type":49,"tag":127,"props":2300,"children":2301},{"style":605},[2302],{"type":55,"value":608},{"type":49,"tag":127,"props":2304,"children":2305},{"style":270},[2306],{"type":55,"value":293},{"type":49,"tag":127,"props":2308,"children":2309},{"style":249},[2310],{"type":55,"value":388},{"type":49,"tag":127,"props":2312,"children":2313},{"style":140},[2314],{"type":55,"value":458},{"type":49,"tag":127,"props":2316,"children":2317},{"style":249},[2318],{"type":55,"value":590},{"type":49,"tag":127,"props":2320,"children":2321},{"style":270},[2322],{"type":55,"value":303},{"type":49,"tag":127,"props":2324,"children":2325},{"style":270},[2326],{"type":55,"value":273},{"type":49,"tag":127,"props":2328,"children":2329},{"style":243},[2330],{"type":55,"value":637},{"type":49,"tag":127,"props":2332,"children":2333},{"style":270},[2334],{"type":55,"value":273},{"type":49,"tag":127,"props":2336,"children":2337},{"style":243},[2338],{"type":55,"value":646},{"type":49,"tag":127,"props":2340,"children":2341},{"class":129,"line":649},[2342,2346,2350,2354,2359,2363,2367,2371,2376],{"type":49,"tag":127,"props":2343,"children":2344},{"style":249},[2345],{"type":55,"value":198},{"type":49,"tag":127,"props":2347,"children":2348},{"style":270},[2349],{"type":55,"value":458},{"type":49,"tag":127,"props":2351,"children":2352},{"style":270},[2353],{"type":55,"value":532},{"type":49,"tag":127,"props":2355,"children":2356},{"style":140},[2357],{"type":55,"value":2358},"datadoghq.com",{"type":49,"tag":127,"props":2360,"children":2361},{"style":270},[2362],{"type":55,"value":532},{"type":49,"tag":127,"props":2364,"children":2365},{"style":270},[2366],{"type":55,"value":273},{"type":49,"tag":127,"props":2368,"children":2369},{"style":605},[2370],{"type":55,"value":608},{"type":49,"tag":127,"props":2372,"children":2373},{"style":249},[2374],{"type":55,"value":2375}," DD_SITE   ",{"type":49,"tag":127,"props":2377,"children":2379},{"style":2378},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[2380],{"type":55,"value":2381},"# \u003C- replace with the site confirmed in Phase 0.\n",{"type":49,"tag":127,"props":2383,"children":2384},{"class":129,"line":691},[2385],{"type":49,"tag":127,"props":2386,"children":2387},{"style":2378},[2388],{"type":55,"value":2389},"# Explicit assignment, not ':=': a wrong non-empty DD_SITE in .env would otherwise survive.\n",{"type":49,"tag":127,"props":2391,"children":2392},{"class":129,"line":722},[2393,2397,2401,2405,2409,2413,2418,2423,2428,2433,2438,2443,2448,2453,2458,2463,2468,2473,2477,2482,2486,2490,2495,2499,2504,2508,2512,2516,2520,2524,2528,2532,2536,2540,2544,2548,2552,2556,2560,2564,2568,2572,2576,2580,2584],{"type":49,"tag":127,"props":2394,"children":2395},{"style":134},[2396],{"type":55,"value":655},{"type":49,"tag":127,"props":2398,"children":2399},{"style":270},[2400],{"type":55,"value":660},{"type":49,"tag":127,"props":2402,"children":2403},{"style":249},[2404],{"type":55,"value":206},{"type":49,"tag":127,"props":2406,"children":2407},{"style":270},[2408],{"type":55,"value":1544},{"type":49,"tag":127,"props":2410,"children":2411},{"style":249},[2412],{"type":55,"value":1368},{"type":49,"tag":127,"props":2414,"children":2415},{"style":249},[2416],{"type":55,"value":2417}," set",{"type":49,"tag":127,"props":2419,"children":2420},{"style":249},[2421],{"type":55,"value":2422}," -",{"type":49,"tag":127,"props":2424,"children":2425},{"style":249},[2426],{"type":55,"value":2427}," run",{"type":49,"tag":127,"props":2429,"children":2430},{"style":249},[2431],{"type":55,"value":2432}," dd-account-setup",{"type":49,"tag":127,"props":2434,"children":2435},{"style":140},[2436],{"type":55,"value":2437}," (",{"type":49,"tag":127,"props":2439,"children":2440},{"style":249},[2441],{"type":55,"value":2442},"commercial",{"type":49,"tag":127,"props":2444,"children":2445},{"style":249},[2446],{"type":55,"value":2447}," sites",{"type":49,"tag":127,"props":2449,"children":2450},{"style":140},[2451],{"type":55,"value":2452},") ",{"type":49,"tag":127,"props":2454,"children":2455},{"style":249},[2456],{"type":55,"value":2457},"or",{"type":49,"tag":127,"props":2459,"children":2460},{"style":249},[2461],{"type":55,"value":2462}," supply",{"type":49,"tag":127,"props":2464,"children":2465},{"style":249},[2466],{"type":55,"value":2467}," it",{"type":49,"tag":127,"props":2469,"children":2470},{"style":249},[2471],{"type":55,"value":2472}," directly",{"type":49,"tag":127,"props":2474,"children":2475},{"style":140},[2476],{"type":55,"value":2437},{"type":49,"tag":127,"props":2478,"children":2479},{"style":249},[2480],{"type":55,"value":2481},"government",{"type":49,"tag":127,"props":2483,"children":2484},{"style":249},[2485],{"type":55,"value":2447},{"type":49,"tag":127,"props":2487,"children":2488},{"style":140},[2489],{"type":55,"value":795},{"type":49,"tag":127,"props":2491,"children":2492},{"style":270},[2493],{"type":55,"value":2494},"}\"",{"type":49,"tag":127,"props":2496,"children":2497},{"style":270},[2498],{"type":55,"value":273},{"type":49,"tag":127,"props":2500,"children":2501},{"style":134},[2502],{"type":55,"value":2503}," :",{"type":49,"tag":127,"props":2505,"children":2506},{"style":270},[2507],{"type":55,"value":660},{"type":49,"tag":127,"props":2509,"children":2510},{"style":249},[2511],{"type":55,"value":213},{"type":49,"tag":127,"props":2513,"children":2514},{"style":270},[2515],{"type":55,"value":1544},{"type":49,"tag":127,"props":2517,"children":2518},{"style":249},[2519],{"type":55,"value":1368},{"type":49,"tag":127,"props":2521,"children":2522},{"style":249},[2523],{"type":55,"value":2417},{"type":49,"tag":127,"props":2525,"children":2526},{"style":249},[2527],{"type":55,"value":2422},{"type":49,"tag":127,"props":2529,"children":2530},{"style":249},[2531],{"type":55,"value":2427},{"type":49,"tag":127,"props":2533,"children":2534},{"style":249},[2535],{"type":55,"value":2432},{"type":49,"tag":127,"props":2537,"children":2538},{"style":140},[2539],{"type":55,"value":2437},{"type":49,"tag":127,"props":2541,"children":2542},{"style":249},[2543],{"type":55,"value":2442},{"type":49,"tag":127,"props":2545,"children":2546},{"style":249},[2547],{"type":55,"value":2447},{"type":49,"tag":127,"props":2549,"children":2550},{"style":140},[2551],{"type":55,"value":2452},{"type":49,"tag":127,"props":2553,"children":2554},{"style":249},[2555],{"type":55,"value":2457},{"type":49,"tag":127,"props":2557,"children":2558},{"style":249},[2559],{"type":55,"value":2462},{"type":49,"tag":127,"props":2561,"children":2562},{"style":249},[2563],{"type":55,"value":2467},{"type":49,"tag":127,"props":2565,"children":2566},{"style":249},[2567],{"type":55,"value":2472},{"type":49,"tag":127,"props":2569,"children":2570},{"style":140},[2571],{"type":55,"value":2437},{"type":49,"tag":127,"props":2573,"children":2574},{"style":249},[2575],{"type":55,"value":2481},{"type":49,"tag":127,"props":2577,"children":2578},{"style":249},[2579],{"type":55,"value":2447},{"type":49,"tag":127,"props":2581,"children":2582},{"style":140},[2583],{"type":55,"value":795},{"type":49,"tag":127,"props":2585,"children":2586},{"style":270},[2587],{"type":55,"value":688},{"type":49,"tag":127,"props":2589,"children":2590},{"class":129,"line":856},[2591,2596,2600,2604,2608,2612,2616,2620,2624,2628,2632,2636,2640],{"type":49,"tag":127,"props":2592,"children":2593},{"style":249},[2594],{"type":55,"value":2595},"resp",{"type":49,"tag":127,"props":2597,"children":2598},{"style":270},[2599],{"type":55,"value":429},{"type":49,"tag":127,"props":2601,"children":2602},{"style":134},[2603],{"type":55,"value":862},{"type":49,"tag":127,"props":2605,"children":2606},{"style":270},[2607],{"type":55,"value":522},{"type":49,"tag":127,"props":2609,"children":2610},{"style":140},[2611],{"type":55,"value":1018},{"type":49,"tag":127,"props":2613,"children":2614},{"style":270},[2615],{"type":55,"value":532},{"type":49,"tag":127,"props":2617,"children":2618},{"style":270},[2619],{"type":55,"value":293},{"type":49,"tag":127,"props":2621,"children":2622},{"style":249},[2623],{"type":55,"value":884},{"type":49,"tag":127,"props":2625,"children":2626},{"style":270},[2627],{"type":55,"value":303},{"type":49,"tag":127,"props":2629,"children":2630},{"style":270},[2631],{"type":55,"value":293},{"type":49,"tag":127,"props":2633,"children":2634},{"style":249},[2635],{"type":55,"value":1043},{"type":49,"tag":127,"props":2637,"children":2638},{"style":270},[2639],{"type":55,"value":303},{"type":49,"tag":127,"props":2641,"children":2642},{"style":249},[2643],{"type":55,"value":893},{"type":49,"tag":127,"props":2645,"children":2646},{"class":129,"line":896},[2647,2651,2655,2659,2663,2667,2672,2676,2681,2686],{"type":49,"tag":127,"props":2648,"children":2649},{"style":270},[2650],{"type":55,"value":902},{"type":49,"tag":127,"props":2652,"children":2653},{"style":432},[2654],{"type":55,"value":907},{"type":49,"tag":127,"props":2656,"children":2657},{"style":140},[2658],{"type":55,"value":912},{"type":49,"tag":127,"props":2660,"children":2661},{"style":140},[2662],{"type":55,"value":938},{"type":49,"tag":127,"props":2664,"children":2665},{"style":270},[2666],{"type":55,"value":522},{"type":49,"tag":127,"props":2668,"children":2669},{"style":140},[2670],{"type":55,"value":2671},"\\n%{http_code}",{"type":49,"tag":127,"props":2673,"children":2674},{"style":270},[2675],{"type":55,"value":532},{"type":49,"tag":127,"props":2677,"children":2678},{"style":140},[2679],{"type":55,"value":2680}," -X",{"type":49,"tag":127,"props":2682,"children":2683},{"style":140},[2684],{"type":55,"value":2685}," GET",{"type":49,"tag":127,"props":2687,"children":2688},{"style":249},[2689],{"type":55,"value":893},{"type":49,"tag":127,"props":2691,"children":2692},{"class":129,"line":958},[2693,2697,2701,2705,2709,2713,2717,2721,2726,2730],{"type":49,"tag":127,"props":2694,"children":2695},{"style":140},[2696],{"type":55,"value":964},{"type":49,"tag":127,"props":2698,"children":2699},{"style":140},[2700],{"type":55,"value":969},{"type":49,"tag":127,"props":2702,"children":2703},{"style":270},[2704],{"type":55,"value":293},{"type":49,"tag":127,"props":2706,"children":2707},{"style":140},[2708],{"type":55,"value":978},{"type":49,"tag":127,"props":2710,"children":2711},{"style":270},[2712],{"type":55,"value":711},{"type":49,"tag":127,"props":2714,"children":2715},{"style":249},[2716],{"type":55,"value":198},{"type":49,"tag":127,"props":2718,"children":2719},{"style":270},[2720],{"type":55,"value":991},{"type":49,"tag":127,"props":2722,"children":2723},{"style":140},[2724],{"type":55,"value":2725},"\u002Fapi\u002Fv2\u002Fintegration\u002Fgcp\u002Fsts_delegate",{"type":49,"tag":127,"props":2727,"children":2728},{"style":270},[2729],{"type":55,"value":303},{"type":49,"tag":127,"props":2731,"children":2732},{"style":270},[2733],{"type":55,"value":2734},")\n",{"type":49,"tag":127,"props":2736,"children":2737},{"class":129,"line":1004},[2738,2742,2746,2750,2754,2759,2763,2767,2772,2776,2780,2785,2789,2793,2798,2802,2806,2810,2814,2818,2822,2826,2830,2834,2838,2842,2847,2851],{"type":49,"tag":127,"props":2739,"children":2740},{"style":249},[2741],{"type":55,"value":69},{"type":49,"tag":127,"props":2743,"children":2744},{"style":270},[2745],{"type":55,"value":429},{"type":49,"tag":127,"props":2747,"children":2748},{"style":134},[2749],{"type":55,"value":862},{"type":49,"tag":127,"props":2751,"children":2752},{"style":270},[2753],{"type":55,"value":522},{"type":49,"tag":127,"props":2755,"children":2756},{"style":140},[2757],{"type":55,"value":2758},"%s",{"type":49,"tag":127,"props":2760,"children":2761},{"style":270},[2762],{"type":55,"value":532},{"type":49,"tag":127,"props":2764,"children":2765},{"style":270},[2766],{"type":55,"value":293},{"type":49,"tag":127,"props":2768,"children":2769},{"style":249},[2770],{"type":55,"value":2771},"$resp",{"type":49,"tag":127,"props":2773,"children":2774},{"style":270},[2775],{"type":55,"value":303},{"type":49,"tag":127,"props":2777,"children":2778},{"style":270},[2779],{"type":55,"value":479},{"type":49,"tag":127,"props":2781,"children":2782},{"style":432},[2783],{"type":55,"value":2784}," tail",{"type":49,"tag":127,"props":2786,"children":2787},{"style":140},[2788],{"type":55,"value":489},{"type":49,"tag":127,"props":2790,"children":2791},{"style":270},[2792],{"type":55,"value":572},{"type":49,"tag":127,"props":2794,"children":2795},{"style":249},[2796],{"type":55,"value":2797}," body",{"type":49,"tag":127,"props":2799,"children":2800},{"style":270},[2801],{"type":55,"value":429},{"type":49,"tag":127,"props":2803,"children":2804},{"style":134},[2805],{"type":55,"value":862},{"type":49,"tag":127,"props":2807,"children":2808},{"style":270},[2809],{"type":55,"value":522},{"type":49,"tag":127,"props":2811,"children":2812},{"style":140},[2813],{"type":55,"value":2758},{"type":49,"tag":127,"props":2815,"children":2816},{"style":270},[2817],{"type":55,"value":532},{"type":49,"tag":127,"props":2819,"children":2820},{"style":270},[2821],{"type":55,"value":293},{"type":49,"tag":127,"props":2823,"children":2824},{"style":249},[2825],{"type":55,"value":2771},{"type":49,"tag":127,"props":2827,"children":2828},{"style":270},[2829],{"type":55,"value":303},{"type":49,"tag":127,"props":2831,"children":2832},{"style":270},[2833],{"type":55,"value":479},{"type":49,"tag":127,"props":2835,"children":2836},{"style":432},[2837],{"type":55,"value":517},{"type":49,"tag":127,"props":2839,"children":2840},{"style":270},[2841],{"type":55,"value":522},{"type":49,"tag":127,"props":2843,"children":2844},{"style":140},[2845],{"type":55,"value":2846},"$d",{"type":49,"tag":127,"props":2848,"children":2849},{"style":270},[2850],{"type":55,"value":532},{"type":49,"tag":127,"props":2852,"children":2853},{"style":270},[2854],{"type":55,"value":2734},{"type":49,"tag":127,"props":2856,"children":2857},{"class":129,"line":1054},[2858,2863,2867,2871,2876,2880,2885,2889,2894,2898,2903],{"type":49,"tag":127,"props":2859,"children":2860},{"style":243},[2861],{"type":55,"value":2862},"if",{"type":49,"tag":127,"props":2864,"children":2865},{"style":270},[2866],{"type":55,"value":283},{"type":49,"tag":127,"props":2868,"children":2869},{"style":270},[2870],{"type":55,"value":293},{"type":49,"tag":127,"props":2872,"children":2873},{"style":249},[2874],{"type":55,"value":2875},"$code",{"type":49,"tag":127,"props":2877,"children":2878},{"style":270},[2879],{"type":55,"value":303},{"type":49,"tag":127,"props":2881,"children":2882},{"style":270},[2883],{"type":55,"value":2884}," =",{"type":49,"tag":127,"props":2886,"children":2887},{"style":270},[2888],{"type":55,"value":293},{"type":49,"tag":127,"props":2890,"children":2891},{"style":140},[2892],{"type":55,"value":2893},"404",{"type":49,"tag":127,"props":2895,"children":2896},{"style":270},[2897],{"type":55,"value":303},{"type":49,"tag":127,"props":2899,"children":2900},{"style":270},[2901],{"type":55,"value":2902}," ];",{"type":49,"tag":127,"props":2904,"children":2905},{"style":243},[2906],{"type":55,"value":2907}," then\n",{"type":49,"tag":127,"props":2909,"children":2910},{"class":129,"line":1107},[2911,2916,2920,2925],{"type":49,"tag":127,"props":2912,"children":2913},{"style":134},[2914],{"type":55,"value":2915},"  echo",{"type":49,"tag":127,"props":2917,"children":2918},{"style":270},[2919],{"type":55,"value":293},{"type":49,"tag":127,"props":2921,"children":2922},{"style":140},[2923],{"type":55,"value":2924},"no delegate exists yet (HTTP 404) - creating one",{"type":49,"tag":127,"props":2926,"children":2927},{"style":270},[2928],{"type":55,"value":1001},{"type":49,"tag":127,"props":2930,"children":2932},{"class":129,"line":2931},11,[2933,2938,2942,2946,2950,2954,2958,2962,2966,2970,2974,2978,2982],{"type":49,"tag":127,"props":2934,"children":2935},{"style":249},[2936],{"type":55,"value":2937},"  resp",{"type":49,"tag":127,"props":2939,"children":2940},{"style":270},[2941],{"type":55,"value":429},{"type":49,"tag":127,"props":2943,"children":2944},{"style":134},[2945],{"type":55,"value":862},{"type":49,"tag":127,"props":2947,"children":2948},{"style":270},[2949],{"type":55,"value":522},{"type":49,"tag":127,"props":2951,"children":2952},{"style":140},[2953],{"type":55,"value":1018},{"type":49,"tag":127,"props":2955,"children":2956},{"style":270},[2957],{"type":55,"value":532},{"type":49,"tag":127,"props":2959,"children":2960},{"style":270},[2961],{"type":55,"value":293},{"type":49,"tag":127,"props":2963,"children":2964},{"style":249},[2965],{"type":55,"value":884},{"type":49,"tag":127,"props":2967,"children":2968},{"style":270},[2969],{"type":55,"value":303},{"type":49,"tag":127,"props":2971,"children":2972},{"style":270},[2973],{"type":55,"value":293},{"type":49,"tag":127,"props":2975,"children":2976},{"style":249},[2977],{"type":55,"value":1043},{"type":49,"tag":127,"props":2979,"children":2980},{"style":270},[2981],{"type":55,"value":303},{"type":49,"tag":127,"props":2983,"children":2984},{"style":249},[2985],{"type":55,"value":893},{"type":49,"tag":127,"props":2987,"children":2989},{"class":129,"line":2988},12,[2990,2995,2999,3003,3007,3011,3015,3019,3023,3028,3033,3037,3042,3046,3051,3055,3060,3064],{"type":49,"tag":127,"props":2991,"children":2992},{"style":270},[2993],{"type":55,"value":2994},"    |",{"type":49,"tag":127,"props":2996,"children":2997},{"style":432},[2998],{"type":55,"value":907},{"type":49,"tag":127,"props":3000,"children":3001},{"style":140},[3002],{"type":55,"value":912},{"type":49,"tag":127,"props":3004,"children":3005},{"style":140},[3006],{"type":55,"value":938},{"type":49,"tag":127,"props":3008,"children":3009},{"style":270},[3010],{"type":55,"value":522},{"type":49,"tag":127,"props":3012,"children":3013},{"style":140},[3014],{"type":55,"value":2671},{"type":49,"tag":127,"props":3016,"children":3017},{"style":270},[3018],{"type":55,"value":532},{"type":49,"tag":127,"props":3020,"children":3021},{"style":140},[3022],{"type":55,"value":2680},{"type":49,"tag":127,"props":3024,"children":3025},{"style":140},[3026],{"type":55,"value":3027}," POST",{"type":49,"tag":127,"props":3029,"children":3030},{"style":140},[3031],{"type":55,"value":3032}," -H",{"type":49,"tag":127,"props":3034,"children":3035},{"style":270},[3036],{"type":55,"value":293},{"type":49,"tag":127,"props":3038,"children":3039},{"style":140},[3040],{"type":55,"value":3041},"Content-Type: application\u002Fjson",{"type":49,"tag":127,"props":3043,"children":3044},{"style":270},[3045],{"type":55,"value":303},{"type":49,"tag":127,"props":3047,"children":3048},{"style":140},[3049],{"type":55,"value":3050}," -d",{"type":49,"tag":127,"props":3052,"children":3053},{"style":270},[3054],{"type":55,"value":522},{"type":49,"tag":127,"props":3056,"children":3057},{"style":140},[3058],{"type":55,"value":3059},"{}",{"type":49,"tag":127,"props":3061,"children":3062},{"style":270},[3063],{"type":55,"value":532},{"type":49,"tag":127,"props":3065,"children":3066},{"style":249},[3067],{"type":55,"value":893},{"type":49,"tag":127,"props":3069,"children":3071},{"class":129,"line":3070},13,[3072,3077,3081,3085,3089,3093,3097,3101,3105,3109],{"type":49,"tag":127,"props":3073,"children":3074},{"style":140},[3075],{"type":55,"value":3076},"        -H",{"type":49,"tag":127,"props":3078,"children":3079},{"style":140},[3080],{"type":55,"value":969},{"type":49,"tag":127,"props":3082,"children":3083},{"style":270},[3084],{"type":55,"value":293},{"type":49,"tag":127,"props":3086,"children":3087},{"style":140},[3088],{"type":55,"value":978},{"type":49,"tag":127,"props":3090,"children":3091},{"style":270},[3092],{"type":55,"value":711},{"type":49,"tag":127,"props":3094,"children":3095},{"style":249},[3096],{"type":55,"value":198},{"type":49,"tag":127,"props":3098,"children":3099},{"style":270},[3100],{"type":55,"value":991},{"type":49,"tag":127,"props":3102,"children":3103},{"style":140},[3104],{"type":55,"value":2725},{"type":49,"tag":127,"props":3106,"children":3107},{"style":270},[3108],{"type":55,"value":303},{"type":49,"tag":127,"props":3110,"children":3111},{"style":270},[3112],{"type":55,"value":2734},{"type":49,"tag":127,"props":3114,"children":3116},{"class":129,"line":3115},14,[3117,3122,3126,3130,3134,3138,3142,3146,3150,3154,3158,3162,3166,3170,3174,3178,3182,3186,3190,3194,3198,3202,3206,3210,3214,3218,3222,3226],{"type":49,"tag":127,"props":3118,"children":3119},{"style":249},[3120],{"type":55,"value":3121},"  code",{"type":49,"tag":127,"props":3123,"children":3124},{"style":270},[3125],{"type":55,"value":429},{"type":49,"tag":127,"props":3127,"children":3128},{"style":134},[3129],{"type":55,"value":862},{"type":49,"tag":127,"props":3131,"children":3132},{"style":270},[3133],{"type":55,"value":522},{"type":49,"tag":127,"props":3135,"children":3136},{"style":140},[3137],{"type":55,"value":2758},{"type":49,"tag":127,"props":3139,"children":3140},{"style":270},[3141],{"type":55,"value":532},{"type":49,"tag":127,"props":3143,"children":3144},{"style":270},[3145],{"type":55,"value":293},{"type":49,"tag":127,"props":3147,"children":3148},{"style":249},[3149],{"type":55,"value":2771},{"type":49,"tag":127,"props":3151,"children":3152},{"style":270},[3153],{"type":55,"value":303},{"type":49,"tag":127,"props":3155,"children":3156},{"style":270},[3157],{"type":55,"value":479},{"type":49,"tag":127,"props":3159,"children":3160},{"style":432},[3161],{"type":55,"value":2784},{"type":49,"tag":127,"props":3163,"children":3164},{"style":140},[3165],{"type":55,"value":489},{"type":49,"tag":127,"props":3167,"children":3168},{"style":270},[3169],{"type":55,"value":572},{"type":49,"tag":127,"props":3171,"children":3172},{"style":249},[3173],{"type":55,"value":2797},{"type":49,"tag":127,"props":3175,"children":3176},{"style":270},[3177],{"type":55,"value":429},{"type":49,"tag":127,"props":3179,"children":3180},{"style":134},[3181],{"type":55,"value":862},{"type":49,"tag":127,"props":3183,"children":3184},{"style":270},[3185],{"type":55,"value":522},{"type":49,"tag":127,"props":3187,"children":3188},{"style":140},[3189],{"type":55,"value":2758},{"type":49,"tag":127,"props":3191,"children":3192},{"style":270},[3193],{"type":55,"value":532},{"type":49,"tag":127,"props":3195,"children":3196},{"style":270},[3197],{"type":55,"value":293},{"type":49,"tag":127,"props":3199,"children":3200},{"style":249},[3201],{"type":55,"value":2771},{"type":49,"tag":127,"props":3203,"children":3204},{"style":270},[3205],{"type":55,"value":303},{"type":49,"tag":127,"props":3207,"children":3208},{"style":270},[3209],{"type":55,"value":479},{"type":49,"tag":127,"props":3211,"children":3212},{"style":432},[3213],{"type":55,"value":517},{"type":49,"tag":127,"props":3215,"children":3216},{"style":270},[3217],{"type":55,"value":522},{"type":49,"tag":127,"props":3219,"children":3220},{"style":140},[3221],{"type":55,"value":2846},{"type":49,"tag":127,"props":3223,"children":3224},{"style":270},[3225],{"type":55,"value":532},{"type":49,"tag":127,"props":3227,"children":3228},{"style":270},[3229],{"type":55,"value":2734},{"type":49,"tag":127,"props":3231,"children":3233},{"class":129,"line":3232},15,[3234,3239,3243,3247,3251,3255,3260,3264,3268,3272,3276],{"type":49,"tag":127,"props":3235,"children":3236},{"style":243},[3237],{"type":55,"value":3238},"elif",{"type":49,"tag":127,"props":3240,"children":3241},{"style":270},[3242],{"type":55,"value":283},{"type":49,"tag":127,"props":3244,"children":3245},{"style":270},[3246],{"type":55,"value":293},{"type":49,"tag":127,"props":3248,"children":3249},{"style":249},[3250],{"type":55,"value":2875},{"type":49,"tag":127,"props":3252,"children":3253},{"style":270},[3254],{"type":55,"value":303},{"type":49,"tag":127,"props":3256,"children":3257},{"style":270},[3258],{"type":55,"value":3259}," !=",{"type":49,"tag":127,"props":3261,"children":3262},{"style":270},[3263],{"type":55,"value":293},{"type":49,"tag":127,"props":3265,"children":3266},{"style":140},[3267],{"type":55,"value":1192},{"type":49,"tag":127,"props":3269,"children":3270},{"style":270},[3271],{"type":55,"value":303},{"type":49,"tag":127,"props":3273,"children":3274},{"style":270},[3275],{"type":55,"value":2902},{"type":49,"tag":127,"props":3277,"children":3278},{"style":243},[3279],{"type":55,"value":2907},{"type":49,"tag":127,"props":3281,"children":3283},{"class":129,"line":3282},16,[3284,3288,3292,3297,3301,3306],{"type":49,"tag":127,"props":3285,"children":3286},{"style":134},[3287],{"type":55,"value":2915},{"type":49,"tag":127,"props":3289,"children":3290},{"style":270},[3291],{"type":55,"value":293},{"type":49,"tag":127,"props":3293,"children":3294},{"style":140},[3295],{"type":55,"value":3296},"GET sts_delegate returned HTTP ",{"type":49,"tag":127,"props":3298,"children":3299},{"style":249},[3300],{"type":55,"value":2875},{"type":49,"tag":127,"props":3302,"children":3303},{"style":140},[3304],{"type":55,"value":3305}," - not creating anything. Response:",{"type":49,"tag":127,"props":3307,"children":3308},{"style":270},[3309],{"type":55,"value":1001},{"type":49,"tag":127,"props":3311,"children":3313},{"class":129,"line":3312},17,[3314,3319,3323,3328,3332,3336,3341],{"type":49,"tag":127,"props":3315,"children":3316},{"style":134},[3317],{"type":55,"value":3318},"  printf",{"type":49,"tag":127,"props":3320,"children":3321},{"style":270},[3322],{"type":55,"value":522},{"type":49,"tag":127,"props":3324,"children":3325},{"style":140},[3326],{"type":55,"value":3327},"%s\\n",{"type":49,"tag":127,"props":3329,"children":3330},{"style":270},[3331],{"type":55,"value":532},{"type":49,"tag":127,"props":3333,"children":3334},{"style":270},[3335],{"type":55,"value":293},{"type":49,"tag":127,"props":3337,"children":3338},{"style":249},[3339],{"type":55,"value":3340},"$body",{"type":49,"tag":127,"props":3342,"children":3343},{"style":270},[3344],{"type":55,"value":1001},{"type":49,"tag":127,"props":3346,"children":3348},{"class":129,"line":3347},18,[3349,3353,3357,3362],{"type":49,"tag":127,"props":3350,"children":3351},{"style":134},[3352],{"type":55,"value":2915},{"type":49,"tag":127,"props":3354,"children":3355},{"style":270},[3356],{"type":55,"value":293},{"type":49,"tag":127,"props":3358,"children":3359},{"style":140},[3360],{"type":55,"value":3361},"403 means the app key lacks permission, 429 is rate limiting, 000 is a transport failure, 5xx is",{"type":49,"tag":127,"props":3363,"children":3364},{"style":270},[3365],{"type":55,"value":1001},{"type":49,"tag":127,"props":3367,"children":3368},{"class":129,"line":32},[3369,3373,3377,3382],{"type":49,"tag":127,"props":3370,"children":3371},{"style":134},[3372],{"type":55,"value":2915},{"type":49,"tag":127,"props":3374,"children":3375},{"style":270},[3376],{"type":55,"value":293},{"type":49,"tag":127,"props":3378,"children":3379},{"style":140},[3380],{"type":55,"value":3381},"server-side. None of those mean 'no delegate exists', so a POST here could create one you did not",{"type":49,"tag":127,"props":3383,"children":3384},{"style":270},[3385],{"type":55,"value":1001},{"type":49,"tag":127,"props":3387,"children":3389},{"class":129,"line":3388},20,[3390,3394,3398,3403],{"type":49,"tag":127,"props":3391,"children":3392},{"style":134},[3393],{"type":55,"value":2915},{"type":49,"tag":127,"props":3395,"children":3396},{"style":270},[3397],{"type":55,"value":293},{"type":49,"tag":127,"props":3399,"children":3400},{"style":140},[3401],{"type":55,"value":3402},"intend. Resolve the error, then re-run. If the body says no delegate exists, POST explicitly.",{"type":49,"tag":127,"props":3404,"children":3405},{"style":270},[3406],{"type":55,"value":1001},{"type":49,"tag":127,"props":3408,"children":3410},{"class":129,"line":3409},21,[3411,3416],{"type":49,"tag":127,"props":3412,"children":3413},{"style":134},[3414],{"type":55,"value":3415},"  exit",{"type":49,"tag":127,"props":3417,"children":3418},{"style":920},[3419],{"type":55,"value":3420}," 1\n",{"type":49,"tag":127,"props":3422,"children":3424},{"class":129,"line":3423},22,[3425],{"type":49,"tag":127,"props":3426,"children":3427},{"style":243},[3428],{"type":55,"value":3429},"fi\n",{"type":49,"tag":127,"props":3431,"children":3433},{"class":129,"line":3432},23,[3434,3439,3443,3447,3451,3455,3459,3463,3467,3471,3475,3480,3484,3488,3493,3497,3501,3505,3509,3514,3518,3522,3526,3530,3534,3538,3542,3547,3552,3556],{"type":49,"tag":127,"props":3435,"children":3436},{"style":270},[3437],{"type":55,"value":3438},"[",{"type":49,"tag":127,"props":3440,"children":3441},{"style":270},[3442],{"type":55,"value":293},{"type":49,"tag":127,"props":3444,"children":3445},{"style":249},[3446],{"type":55,"value":2875},{"type":49,"tag":127,"props":3448,"children":3449},{"style":270},[3450],{"type":55,"value":303},{"type":49,"tag":127,"props":3452,"children":3453},{"style":270},[3454],{"type":55,"value":2884},{"type":49,"tag":127,"props":3456,"children":3457},{"style":270},[3458],{"type":55,"value":293},{"type":49,"tag":127,"props":3460,"children":3461},{"style":140},[3462],{"type":55,"value":1192},{"type":49,"tag":127,"props":3464,"children":3465},{"style":270},[3466],{"type":55,"value":303},{"type":49,"tag":127,"props":3468,"children":3469},{"style":270},[3470],{"type":55,"value":308},{"type":49,"tag":127,"props":3472,"children":3473},{"style":270},[3474],{"type":55,"value":313},{"type":49,"tag":127,"props":3476,"children":3477},{"style":270},[3478],{"type":55,"value":3479}," {",{"type":49,"tag":127,"props":3481,"children":3482},{"style":134},[3483],{"type":55,"value":771},{"type":49,"tag":127,"props":3485,"children":3486},{"style":270},[3487],{"type":55,"value":293},{"type":49,"tag":127,"props":3489,"children":3490},{"style":140},[3491],{"type":55,"value":3492},"sts_delegate failed with HTTP ",{"type":49,"tag":127,"props":3494,"children":3495},{"style":249},[3496],{"type":55,"value":2875},{"type":49,"tag":127,"props":3498,"children":3499},{"style":140},[3500],{"type":55,"value":655},{"type":49,"tag":127,"props":3502,"children":3503},{"style":270},[3504],{"type":55,"value":303},{"type":49,"tag":127,"props":3506,"children":3507},{"style":270},[3508],{"type":55,"value":273},{"type":49,"tag":127,"props":3510,"children":3511},{"style":134},[3512],{"type":55,"value":3513}," printf",{"type":49,"tag":127,"props":3515,"children":3516},{"style":270},[3517],{"type":55,"value":522},{"type":49,"tag":127,"props":3519,"children":3520},{"style":140},[3521],{"type":55,"value":3327},{"type":49,"tag":127,"props":3523,"children":3524},{"style":270},[3525],{"type":55,"value":532},{"type":49,"tag":127,"props":3527,"children":3528},{"style":270},[3529],{"type":55,"value":293},{"type":49,"tag":127,"props":3531,"children":3532},{"style":249},[3533],{"type":55,"value":3340},{"type":49,"tag":127,"props":3535,"children":3536},{"style":270},[3537],{"type":55,"value":303},{"type":49,"tag":127,"props":3539,"children":3540},{"style":270},[3541],{"type":55,"value":273},{"type":49,"tag":127,"props":3543,"children":3544},{"style":134},[3545],{"type":55,"value":3546}," exit",{"type":49,"tag":127,"props":3548,"children":3549},{"style":920},[3550],{"type":55,"value":3551}," 1",{"type":49,"tag":127,"props":3553,"children":3554},{"style":270},[3555],{"type":55,"value":273},{"type":49,"tag":127,"props":3557,"children":3558},{"style":270},[3559],{"type":55,"value":3560}," }\n",{"type":49,"tag":127,"props":3562,"children":3564},{"class":129,"line":3563},24,[3565,3570,3574,3578,3582,3586,3590,3594,3598,3602,3606,3610,3615,3619,3624,3628],{"type":49,"tag":127,"props":3566,"children":3567},{"style":249},[3568],{"type":55,"value":3569},"email",{"type":49,"tag":127,"props":3571,"children":3572},{"style":270},[3573],{"type":55,"value":429},{"type":49,"tag":127,"props":3575,"children":3576},{"style":134},[3577],{"type":55,"value":862},{"type":49,"tag":127,"props":3579,"children":3580},{"style":270},[3581],{"type":55,"value":522},{"type":49,"tag":127,"props":3583,"children":3584},{"style":140},[3585],{"type":55,"value":2758},{"type":49,"tag":127,"props":3587,"children":3588},{"style":270},[3589],{"type":55,"value":532},{"type":49,"tag":127,"props":3591,"children":3592},{"style":270},[3593],{"type":55,"value":293},{"type":49,"tag":127,"props":3595,"children":3596},{"style":249},[3597],{"type":55,"value":3340},{"type":49,"tag":127,"props":3599,"children":3600},{"style":270},[3601],{"type":55,"value":303},{"type":49,"tag":127,"props":3603,"children":3604},{"style":270},[3605],{"type":55,"value":479},{"type":49,"tag":127,"props":3607,"children":3608},{"style":432},[3609],{"type":55,"value":1795},{"type":49,"tag":127,"props":3611,"children":3612},{"style":140},[3613],{"type":55,"value":3614}," -r",{"type":49,"tag":127,"props":3616,"children":3617},{"style":270},[3618],{"type":55,"value":522},{"type":49,"tag":127,"props":3620,"children":3621},{"style":140},[3622],{"type":55,"value":3623},".data.attributes.delegate_account_email \u002F\u002F empty",{"type":49,"tag":127,"props":3625,"children":3626},{"style":270},[3627],{"type":55,"value":532},{"type":49,"tag":127,"props":3629,"children":3630},{"style":270},[3631],{"type":55,"value":2734},{"type":49,"tag":127,"props":3633,"children":3635},{"class":129,"line":3634},25,[3636,3641,3645,3650,3654],{"type":49,"tag":127,"props":3637,"children":3638},{"style":243},[3639],{"type":55,"value":3640},"case",{"type":49,"tag":127,"props":3642,"children":3643},{"style":270},[3644],{"type":55,"value":293},{"type":49,"tag":127,"props":3646,"children":3647},{"style":249},[3648],{"type":55,"value":3649},"$email",{"type":49,"tag":127,"props":3651,"children":3652},{"style":270},[3653],{"type":55,"value":303},{"type":49,"tag":127,"props":3655,"children":3656},{"style":243},[3657],{"type":55,"value":3658}," in\n",{"type":49,"tag":127,"props":3660,"children":3662},{"class":129,"line":3661},26,[3663,3668,3673,3677,3681,3685,3690,3694,3698],{"type":49,"tag":127,"props":3664,"children":3665},{"style":270},[3666],{"type":55,"value":3667},"  *@*",{"type":49,"tag":127,"props":3669,"children":3670},{"style":140},[3671],{"type":55,"value":3672},".iam.gserviceaccount.com",{"type":49,"tag":127,"props":3674,"children":3675},{"style":270},[3676],{"type":55,"value":795},{"type":49,"tag":127,"props":3678,"children":3679},{"style":134},[3680],{"type":55,"value":771},{"type":49,"tag":127,"props":3682,"children":3683},{"style":270},[3684],{"type":55,"value":293},{"type":49,"tag":127,"props":3686,"children":3687},{"style":140},[3688],{"type":55,"value":3689},"DATADOG_PRINCIPAL_ID=",{"type":49,"tag":127,"props":3691,"children":3692},{"style":249},[3693],{"type":55,"value":3649},{"type":49,"tag":127,"props":3695,"children":3696},{"style":270},[3697],{"type":55,"value":303},{"type":49,"tag":127,"props":3699,"children":3700},{"style":270},[3701],{"type":55,"value":3702}," ;;\n",{"type":49,"tag":127,"props":3704,"children":3706},{"class":129,"line":3705},27,[3707,3712,3716,3720,3725,3729,3733,3737,3741,3745,3749,3753,3757,3761,3765,3769,3773],{"type":49,"tag":127,"props":3708,"children":3709},{"style":270},[3710],{"type":55,"value":3711},"  *)",{"type":49,"tag":127,"props":3713,"children":3714},{"style":134},[3715],{"type":55,"value":771},{"type":49,"tag":127,"props":3717,"children":3718},{"style":270},[3719],{"type":55,"value":293},{"type":49,"tag":127,"props":3721,"children":3722},{"style":140},[3723],{"type":55,"value":3724},"did not get a delegate service-account email; response was:",{"type":49,"tag":127,"props":3726,"children":3727},{"style":270},[3728],{"type":55,"value":303},{"type":49,"tag":127,"props":3730,"children":3731},{"style":270},[3732],{"type":55,"value":273},{"type":49,"tag":127,"props":3734,"children":3735},{"style":134},[3736],{"type":55,"value":3513},{"type":49,"tag":127,"props":3738,"children":3739},{"style":270},[3740],{"type":55,"value":522},{"type":49,"tag":127,"props":3742,"children":3743},{"style":140},[3744],{"type":55,"value":3327},{"type":49,"tag":127,"props":3746,"children":3747},{"style":270},[3748],{"type":55,"value":532},{"type":49,"tag":127,"props":3750,"children":3751},{"style":270},[3752],{"type":55,"value":293},{"type":49,"tag":127,"props":3754,"children":3755},{"style":249},[3756],{"type":55,"value":3340},{"type":49,"tag":127,"props":3758,"children":3759},{"style":270},[3760],{"type":55,"value":303},{"type":49,"tag":127,"props":3762,"children":3763},{"style":270},[3764],{"type":55,"value":273},{"type":49,"tag":127,"props":3766,"children":3767},{"style":134},[3768],{"type":55,"value":3546},{"type":49,"tag":127,"props":3770,"children":3771},{"style":920},[3772],{"type":55,"value":3551},{"type":49,"tag":127,"props":3774,"children":3775},{"style":270},[3776],{"type":55,"value":3702},{"type":49,"tag":127,"props":3778,"children":3780},{"class":129,"line":3779},28,[3781],{"type":49,"tag":127,"props":3782,"children":3783},{"style":243},[3784],{"type":55,"value":3785},"esac\n",{"type":49,"tag":58,"props":3787,"children":3788},{},[3789,3791,3797],{"type":55,"value":3790},"Remember the printed email as ",{"type":49,"tag":69,"props":3792,"children":3794},{"className":3793},[],[3795],{"type":55,"value":3796},"DATADOG_PRINCIPAL_ID",{"type":55,"value":3798}," - the Terraform below needs it. It is org-specific\nand cannot be hardcoded.",{"type":49,"tag":58,"props":3800,"children":3801},{},[3802,3815,3817,3823,3825,3830,3832,3838],{"type":49,"tag":101,"props":3803,"children":3804},{},[3805,3807,3813],{"type":55,"value":3806},"Never continue on an empty or ",{"type":49,"tag":69,"props":3808,"children":3810},{"className":3809},[],[3811],{"type":55,"value":3812},"null",{"type":55,"value":3814}," email.",{"type":55,"value":3816}," The guards above exist because ",{"type":49,"tag":69,"props":3818,"children":3820},{"className":3819},[],[3821],{"type":55,"value":3822},"curl -s | jq -r",{"type":55,"value":3824}," on an\nerror response prints ",{"type":49,"tag":69,"props":3826,"children":3828},{"className":3827},[],[3829],{"type":55,"value":3812},{"type":55,"value":3831},", which would silently become ",{"type":49,"tag":69,"props":3833,"children":3835},{"className":3834},[],[3836],{"type":55,"value":3837},"member = \"serviceAccount:null\"",{"type":55,"value":3839}," in the\nTerraform and produce an integration that cannot authenticate.",{"type":49,"tag":58,"props":3841,"children":3842},{},[3843,3844,3849,3851,3856,3858,3864,3866,3872,3874,3879,3881,3886,3888,3894],{"type":55,"value":1894},{"type":49,"tag":69,"props":3845,"children":3847},{"className":3846},[],[3848],{"type":55,"value":1702},{"type":55,"value":3850}," is unavailable, run the block exactly as written ",{"type":49,"tag":101,"props":3852,"children":3853},{},[3854],{"type":55,"value":3855},"except",{"type":55,"value":3857}," the ",{"type":49,"tag":69,"props":3859,"children":3861},{"className":3860},[],[3862],{"type":55,"value":3863},"email=$(... | jq -r ...)",{"type":55,"value":3865}," line -\ndo not remove the ",{"type":49,"tag":69,"props":3867,"children":3869},{"className":3868},[],[3870],{"type":55,"value":3871},"printf ... | curl -H @-",{"type":55,"value":3873}," pipeline, which is what supplies authentication. Read\n",{"type":49,"tag":69,"props":3875,"children":3877},{"className":3876},[],[3878],{"type":55,"value":1907},{"type":55,"value":3880}," out of ",{"type":49,"tag":69,"props":3882,"children":3884},{"className":3883},[],[3885],{"type":55,"value":3340},{"type":55,"value":3887}," yourself and apply the same rule: refuse to proceed\nunless it looks like a ",{"type":49,"tag":69,"props":3889,"children":3891},{"className":3890},[],[3892],{"type":55,"value":3893},"...@....iam.gserviceaccount.com",{"type":55,"value":3895}," address.",{"type":49,"tag":91,"props":3897,"children":3899},{"id":3898},"phase-2-determine-scope",[3900],{"type":55,"value":3901},"Phase 2: Determine Scope",{"type":49,"tag":58,"props":3903,"children":3904},{},[3905],{"type":55,"value":3906},"Ask the user if they already know which GCP project IDs and\u002For folder IDs they want Datadog to monitor.",{"type":49,"tag":58,"props":3908,"children":3909},{},[3910],{"type":55,"value":3911},"If they do, collect:",{"type":49,"tag":1568,"props":3913,"children":3914},{},[3915,3920],{"type":49,"tag":1572,"props":3916,"children":3917},{},[3918],{"type":55,"value":3919},"Which GCP project should host the Datadog service account (the \"host project\")?",{"type":49,"tag":1572,"props":3921,"children":3922},{},[3923],{"type":55,"value":3924},"The list of project IDs and\u002For folder IDs to monitor.",{"type":49,"tag":58,"props":3926,"children":3927},{},[3928],{"type":55,"value":3929},"If they don't know or want help figuring it out:",{"type":49,"tag":58,"props":3931,"children":3932},{},[3933,3945,3947,3952],{"type":49,"tag":101,"props":3934,"children":3935},{},[3936,3938,3943],{"type":55,"value":3937},"If the ",{"type":49,"tag":69,"props":3939,"children":3941},{"className":3940},[],[3942],{"type":55,"value":1710},{"type":55,"value":3944}," CLI is available",{"type":55,"value":3946},", offer to discover their GCP\nenvironment. Explain that you will use ",{"type":49,"tag":69,"props":3948,"children":3950},{"className":3949},[],[3951],{"type":55,"value":1710},{"type":55,"value":3953}," to list their organizations, folders, and projects\nso they can pick which ones to monitor. This is best-effort - run each command independently and\nwork with whatever succeeds:",{"type":49,"tag":58,"props":3955,"children":3956},{},[3957],{"type":49,"tag":101,"props":3958,"children":3959},{},[3960],{"type":55,"value":3961},"Organizations:",{"type":49,"tag":116,"props":3963,"children":3965},{"className":118,"code":3964,"language":120,"meta":121,"style":121},"gcloud organizations list --format=\"table(displayName, name)\"\n",[3966],{"type":49,"tag":69,"props":3967,"children":3968},{"__ignoreMap":121},[3969],{"type":49,"tag":127,"props":3970,"children":3971},{"class":129,"line":130},[3972,3976,3981,3986,3991,3995,4000],{"type":49,"tag":127,"props":3973,"children":3974},{"style":432},[3975],{"type":55,"value":1710},{"type":49,"tag":127,"props":3977,"children":3978},{"style":140},[3979],{"type":55,"value":3980}," organizations",{"type":49,"tag":127,"props":3982,"children":3983},{"style":140},[3984],{"type":55,"value":3985}," list",{"type":49,"tag":127,"props":3987,"children":3988},{"style":140},[3989],{"type":55,"value":3990}," --format=",{"type":49,"tag":127,"props":3992,"children":3993},{"style":270},[3994],{"type":55,"value":303},{"type":49,"tag":127,"props":3996,"children":3997},{"style":140},[3998],{"type":55,"value":3999},"table(displayName, name)",{"type":49,"tag":127,"props":4001,"children":4002},{"style":270},[4003],{"type":55,"value":1001},{"type":49,"tag":58,"props":4005,"children":4006},{},[4007,4012,4014,4019],{"type":49,"tag":101,"props":4008,"children":4009},{},[4010],{"type":55,"value":4011},"Folders",{"type":55,"value":4013}," (uses the REST API to search all active folders across the org; also requires ",{"type":49,"tag":69,"props":4015,"children":4017},{"className":4016},[],[4018],{"type":55,"value":1710},{"type":55,"value":4020},"\nfor the access token):",{"type":49,"tag":116,"props":4022,"children":4024},{"className":118,"code":4023,"language":120,"meta":121,"style":121},"printf 'Authorization: Bearer %s\\n' \"$(gcloud auth print-access-token)\" \\\n  | curl -sS -H @- -H \"Content-Type: application\u002Fjson\" \\\n      -d '{\"query\": \"lifecycleState=ACTIVE\"}' \\\n      \"https:\u002F\u002Fcloudresourcemanager.googleapis.com\u002Fv2\u002Ffolders:search\"\n",[4025],{"type":49,"tag":69,"props":4026,"children":4027},{"__ignoreMap":121},[4028,4071,4114,4139],{"type":49,"tag":127,"props":4029,"children":4030},{"class":129,"line":130},[4031,4035,4039,4044,4048,4053,4057,4062,4067],{"type":49,"tag":127,"props":4032,"children":4033},{"style":134},[4034],{"type":55,"value":862},{"type":49,"tag":127,"props":4036,"children":4037},{"style":270},[4038],{"type":55,"value":522},{"type":49,"tag":127,"props":4040,"children":4041},{"style":140},[4042],{"type":55,"value":4043},"Authorization: Bearer %s\\n",{"type":49,"tag":127,"props":4045,"children":4046},{"style":270},[4047],{"type":55,"value":532},{"type":49,"tag":127,"props":4049,"children":4050},{"style":270},[4051],{"type":55,"value":4052}," \"$(",{"type":49,"tag":127,"props":4054,"children":4055},{"style":432},[4056],{"type":55,"value":1710},{"type":49,"tag":127,"props":4058,"children":4059},{"style":140},[4060],{"type":55,"value":4061}," auth print-access-token",{"type":49,"tag":127,"props":4063,"children":4064},{"style":270},[4065],{"type":55,"value":4066},")\"",{"type":49,"tag":127,"props":4068,"children":4069},{"style":249},[4070],{"type":55,"value":893},{"type":49,"tag":127,"props":4072,"children":4073},{"class":129,"line":649},[4074,4078,4082,4086,4090,4094,4098,4102,4106,4110],{"type":49,"tag":127,"props":4075,"children":4076},{"style":270},[4077],{"type":55,"value":902},{"type":49,"tag":127,"props":4079,"children":4080},{"style":432},[4081],{"type":55,"value":907},{"type":49,"tag":127,"props":4083,"children":4084},{"style":140},[4085],{"type":55,"value":912},{"type":49,"tag":127,"props":4087,"children":4088},{"style":140},[4089],{"type":55,"value":3032},{"type":49,"tag":127,"props":4091,"children":4092},{"style":140},[4093],{"type":55,"value":969},{"type":49,"tag":127,"props":4095,"children":4096},{"style":140},[4097],{"type":55,"value":3032},{"type":49,"tag":127,"props":4099,"children":4100},{"style":270},[4101],{"type":55,"value":293},{"type":49,"tag":127,"props":4103,"children":4104},{"style":140},[4105],{"type":55,"value":3041},{"type":49,"tag":127,"props":4107,"children":4108},{"style":270},[4109],{"type":55,"value":303},{"type":49,"tag":127,"props":4111,"children":4112},{"style":249},[4113],{"type":55,"value":893},{"type":49,"tag":127,"props":4115,"children":4116},{"class":129,"line":691},[4117,4122,4126,4131,4135],{"type":49,"tag":127,"props":4118,"children":4119},{"style":140},[4120],{"type":55,"value":4121},"      -d",{"type":49,"tag":127,"props":4123,"children":4124},{"style":270},[4125],{"type":55,"value":522},{"type":49,"tag":127,"props":4127,"children":4128},{"style":140},[4129],{"type":55,"value":4130},"{\"query\": \"lifecycleState=ACTIVE\"}",{"type":49,"tag":127,"props":4132,"children":4133},{"style":270},[4134],{"type":55,"value":532},{"type":49,"tag":127,"props":4136,"children":4137},{"style":249},[4138],{"type":55,"value":893},{"type":49,"tag":127,"props":4140,"children":4141},{"class":129,"line":722},[4142,4147,4152],{"type":49,"tag":127,"props":4143,"children":4144},{"style":270},[4145],{"type":55,"value":4146},"      \"",{"type":49,"tag":127,"props":4148,"children":4149},{"style":140},[4150],{"type":55,"value":4151},"https:\u002F\u002Fcloudresourcemanager.googleapis.com\u002Fv2\u002Ffolders:search",{"type":49,"tag":127,"props":4153,"children":4154},{"style":270},[4155],{"type":55,"value":1001},{"type":49,"tag":58,"props":4157,"children":4158},{},[4159,4161,4167,4169,4175],{"type":55,"value":4160},"If the response contains a ",{"type":49,"tag":69,"props":4162,"children":4164},{"className":4163},[],[4165],{"type":55,"value":4166},"nextPageToken",{"type":55,"value":4168},", paginate by adding ",{"type":49,"tag":69,"props":4170,"children":4172},{"className":4171},[],[4173],{"type":55,"value":4174},"\"pageToken\": \"\u003Ctoken>\"",{"type":55,"value":4176}," to the request body\nuntil all folders are retrieved.",{"type":49,"tag":58,"props":4178,"children":4179},{},[4180,4185,4187,4192,4194,4200],{"type":49,"tag":101,"props":4181,"children":4182},{},[4183],{"type":55,"value":4184},"Expand nested folders yourself.",{"type":55,"value":4186}," The search above returns every active folder in the org, so use it to\nbuild the ",{"type":49,"tag":1518,"props":4188,"children":4189},{},[4190],{"type":55,"value":4191},"full",{"type":55,"value":4193}," descendant set for whatever the user picks: for each chosen folder, collect every folder\nwhose ",{"type":49,"tag":69,"props":4195,"children":4197},{"className":4196},[],[4198],{"type":55,"value":4199},"parent",{"type":55,"value":4201}," chain leads back to it, then list the projects of all of them:",{"type":49,"tag":116,"props":4203,"children":4205},{"className":118,"code":4204,"language":120,"meta":121,"style":121},"# replace these with the chosen folder and every folder nested beneath it\nset -- 123456789012 987654321098\nfor folder do\n  gcloud projects list --filter=\"parent.id=${folder} AND lifecycleState=ACTIVE AND NOT projectId:sys*\" \\\n    --format=\"value(projectId)\"\ndone | sort -u\n",[4206],{"type":49,"tag":69,"props":4207,"children":4208},{"__ignoreMap":121},[4209,4217,4240,4257,4314,4335],{"type":49,"tag":127,"props":4210,"children":4211},{"class":129,"line":130},[4212],{"type":49,"tag":127,"props":4213,"children":4214},{"style":2378},[4215],{"type":55,"value":4216},"# replace these with the chosen folder and every folder nested beneath it\n",{"type":49,"tag":127,"props":4218,"children":4219},{"class":129,"line":649},[4220,4225,4230,4235],{"type":49,"tag":127,"props":4221,"children":4222},{"style":134},[4223],{"type":55,"value":4224},"set",{"type":49,"tag":127,"props":4226,"children":4227},{"style":140},[4228],{"type":55,"value":4229}," --",{"type":49,"tag":127,"props":4231,"children":4232},{"style":920},[4233],{"type":55,"value":4234}," 123456789012",{"type":49,"tag":127,"props":4236,"children":4237},{"style":920},[4238],{"type":55,"value":4239}," 987654321098\n",{"type":49,"tag":127,"props":4241,"children":4242},{"class":129,"line":691},[4243,4247,4252],{"type":49,"tag":127,"props":4244,"children":4245},{"style":243},[4246],{"type":55,"value":246},{"type":49,"tag":127,"props":4248,"children":4249},{"style":249},[4250],{"type":55,"value":4251}," folder ",{"type":49,"tag":127,"props":4253,"children":4254},{"style":243},[4255],{"type":55,"value":4256},"do\n",{"type":49,"tag":127,"props":4258,"children":4259},{"class":129,"line":722},[4260,4265,4270,4274,4279,4283,4288,4292,4297,4301,4306,4310],{"type":49,"tag":127,"props":4261,"children":4262},{"style":432},[4263],{"type":55,"value":4264},"  gcloud",{"type":49,"tag":127,"props":4266,"children":4267},{"style":140},[4268],{"type":55,"value":4269}," projects",{"type":49,"tag":127,"props":4271,"children":4272},{"style":140},[4273],{"type":55,"value":3985},{"type":49,"tag":127,"props":4275,"children":4276},{"style":140},[4277],{"type":55,"value":4278}," --filter=",{"type":49,"tag":127,"props":4280,"children":4281},{"style":270},[4282],{"type":55,"value":303},{"type":49,"tag":127,"props":4284,"children":4285},{"style":140},[4286],{"type":55,"value":4287},"parent.id=",{"type":49,"tag":127,"props":4289,"children":4290},{"style":270},[4291],{"type":55,"value":711},{"type":49,"tag":127,"props":4293,"children":4294},{"style":249},[4295],{"type":55,"value":4296},"folder",{"type":49,"tag":127,"props":4298,"children":4299},{"style":270},[4300],{"type":55,"value":991},{"type":49,"tag":127,"props":4302,"children":4303},{"style":140},[4304],{"type":55,"value":4305}," AND lifecycleState=ACTIVE AND NOT projectId:sys*",{"type":49,"tag":127,"props":4307,"children":4308},{"style":270},[4309],{"type":55,"value":303},{"type":49,"tag":127,"props":4311,"children":4312},{"style":249},[4313],{"type":55,"value":893},{"type":49,"tag":127,"props":4315,"children":4316},{"class":129,"line":856},[4317,4322,4326,4331],{"type":49,"tag":127,"props":4318,"children":4319},{"style":140},[4320],{"type":55,"value":4321},"    --format=",{"type":49,"tag":127,"props":4323,"children":4324},{"style":270},[4325],{"type":55,"value":303},{"type":49,"tag":127,"props":4327,"children":4328},{"style":140},[4329],{"type":55,"value":4330},"value(projectId)",{"type":49,"tag":127,"props":4332,"children":4333},{"style":270},[4334],{"type":55,"value":1001},{"type":49,"tag":127,"props":4336,"children":4337},{"class":129,"line":896},[4338,4343,4347,4352],{"type":49,"tag":127,"props":4339,"children":4340},{"style":243},[4341],{"type":55,"value":4342},"done",{"type":49,"tag":127,"props":4344,"children":4345},{"style":270},[4346],{"type":55,"value":479},{"type":49,"tag":127,"props":4348,"children":4349},{"style":432},[4350],{"type":55,"value":4351}," sort",{"type":49,"tag":127,"props":4353,"children":4354},{"style":140},[4355],{"type":55,"value":4356}," -u\n",{"type":49,"tag":58,"props":4358,"children":4359},{},[4360,4362,4368,4369,4374,4376,4382,4384,4390,4392,4397,4399,4404],{"type":55,"value":4361},"Put that expanded list into the Terraform's ",{"type":49,"tag":69,"props":4363,"children":4365},{"className":4364},[],[4366],{"type":55,"value":4367},"project_ids",{"type":55,"value":1264},{"type":49,"tag":101,"props":4370,"children":4371},{},[4372],{"type":55,"value":4373},"in addition to",{"type":55,"value":4375}," keeping the chosen folders in\n",{"type":49,"tag":69,"props":4377,"children":4379},{"className":4378},[],[4380],{"type":55,"value":4381},"folder_ids",{"type":55,"value":4383},". The reason is in the template: folder-level IAM is inherited by every descendant project, but\nAPI enablement is not, and the ",{"type":49,"tag":69,"props":4385,"children":4387},{"className":4386},[],[4388],{"type":55,"value":4389},"google_projects",{"type":55,"value":4391}," data source matches on immediate parent only. Folders in\n",{"type":49,"tag":69,"props":4393,"children":4395},{"className":4394},[],[4396],{"type":55,"value":4381},{"type":55,"value":4398}," cover IAM (including projects created later); the expanded ",{"type":49,"tag":69,"props":4400,"children":4402},{"className":4401},[],[4403],{"type":55,"value":4367},{"type":55,"value":4405}," is what actually\nenables the required APIs in each existing project. Skipping the expansion produces an integration that\nlooks configured but silently collects nothing from projects in sub-folders.",{"type":49,"tag":58,"props":4407,"children":4408},{},[4409,4414],{"type":49,"tag":101,"props":4410,"children":4411},{},[4412],{"type":55,"value":4413},"Projects",{"type":55,"value":4415}," (active only, excluding system projects):",{"type":49,"tag":116,"props":4417,"children":4419},{"className":118,"code":4418,"language":120,"meta":121,"style":121},"gcloud projects list --filter=\"lifecycleState=ACTIVE AND NOT projectId:sys*\" --format=\"table(projectId, name, parent.id)\"\n",[4420],{"type":49,"tag":69,"props":4421,"children":4422},{"__ignoreMap":121},[4423],{"type":49,"tag":127,"props":4424,"children":4425},{"class":129,"line":130},[4426,4430,4434,4438,4442,4446,4451,4455,4459,4463,4468],{"type":49,"tag":127,"props":4427,"children":4428},{"style":432},[4429],{"type":55,"value":1710},{"type":49,"tag":127,"props":4431,"children":4432},{"style":140},[4433],{"type":55,"value":4269},{"type":49,"tag":127,"props":4435,"children":4436},{"style":140},[4437],{"type":55,"value":3985},{"type":49,"tag":127,"props":4439,"children":4440},{"style":140},[4441],{"type":55,"value":4278},{"type":49,"tag":127,"props":4443,"children":4444},{"style":270},[4445],{"type":55,"value":303},{"type":49,"tag":127,"props":4447,"children":4448},{"style":140},[4449],{"type":55,"value":4450},"lifecycleState=ACTIVE AND NOT projectId:sys*",{"type":49,"tag":127,"props":4452,"children":4453},{"style":270},[4454],{"type":55,"value":303},{"type":49,"tag":127,"props":4456,"children":4457},{"style":140},[4458],{"type":55,"value":3990},{"type":49,"tag":127,"props":4460,"children":4461},{"style":270},[4462],{"type":55,"value":303},{"type":49,"tag":127,"props":4464,"children":4465},{"style":140},[4466],{"type":55,"value":4467},"table(projectId, name, parent.id)",{"type":49,"tag":127,"props":4469,"children":4470},{"style":270},[4471],{"type":55,"value":1001},{"type":49,"tag":58,"props":4473,"children":4474},{},[4475],{"type":55,"value":4476},"If any individual command fails (e.g., the user lacks permission to list organizations or folders),\ninform the user which command failed and why, but continue with whatever information was\nsuccessfully retrieved. For example, if they can list projects but not folders, proceed with\nproject-level setup.",{"type":49,"tag":58,"props":4478,"children":4479},{},[4480,4485,4486,4491],{"type":49,"tag":101,"props":4481,"children":4482},{},[4483],{"type":55,"value":4484},"Otherwise",{"type":55,"value":2437},{"type":49,"tag":69,"props":4487,"children":4489},{"className":4488},[],[4490],{"type":55,"value":1710},{"type":55,"value":4492}," not installed or not authenticated), ask the user to gather the IDs from\nthe GCP Console:",{"type":49,"tag":1568,"props":4494,"children":4495},{},[4496,4506,4530,4553],{"type":49,"tag":1572,"props":4497,"children":4498},{},[4499,4504],{"type":49,"tag":101,"props":4500,"children":4501},{},[4502],{"type":55,"value":4503},"Project IDs",{"type":55,"value":4505},": console.cloud.google.com → project picker (top bar) → each project's ID is shown\nnext to its name.",{"type":49,"tag":1572,"props":4507,"children":4508},{},[4509,4514,4516,4521,4523,4528],{"type":49,"tag":101,"props":4510,"children":4511},{},[4512],{"type":55,"value":4513},"Folder IDs",{"type":55,"value":4515}," (optional): console.cloud.google.com → ",{"type":49,"tag":101,"props":4517,"children":4518},{},[4519],{"type":55,"value":4520},"IAM & Admin",{"type":55,"value":4522}," → ",{"type":49,"tag":101,"props":4524,"children":4525},{},[4526],{"type":55,"value":4527},"Manage Resources",{"type":55,"value":4529}," →\nexpand the org tree; folder IDs are visible in the resource manager.",{"type":49,"tag":1572,"props":4531,"children":4532},{},[4533,4538,4540,4544,4546,4551],{"type":49,"tag":101,"props":4534,"children":4535},{},[4536],{"type":55,"value":4537},"Every project inside those folders, including nested sub-folders",{"type":55,"value":4539}," - expand the whole subtree in\n",{"type":49,"tag":101,"props":4541,"children":4542},{},[4543],{"type":55,"value":4527},{"type":55,"value":4545}," and collect each project ID. This is not optional busywork: the Terraform enables\nthe required APIs per project, so any project you don't list gets folder-inherited IAM and no API\nenablement, and collects nothing. If the user won't enumerate them, tell them folder-scoped setup needs\n",{"type":49,"tag":69,"props":4547,"children":4549},{"className":4548},[],[4550],{"type":55,"value":1710},{"type":55,"value":4552}," (which can expand the subtree automatically) and offer project-scoped setup instead.",{"type":49,"tag":1572,"props":4554,"children":4555},{},[4556,4561],{"type":49,"tag":101,"props":4557,"children":4558},{},[4559],{"type":55,"value":4560},"Host project",{"type":55,"value":4562},": ask which project the Datadog service account should live in.",{"type":49,"tag":58,"props":4564,"children":4565},{},[4566],{"type":55,"value":4567},"Present whatever results were gathered in a readable format and let the user choose:",{"type":49,"tag":1568,"props":4569,"children":4570},{},[4571,4581,4590],{"type":49,"tag":1572,"props":4572,"children":4573},{},[4574,4579],{"type":49,"tag":101,"props":4575,"children":4576},{},[4577],{"type":55,"value":4578},"Specific projects",{"type":55,"value":4580},": list of project IDs",{"type":49,"tag":1572,"props":4582,"children":4583},{},[4584,4588],{"type":49,"tag":101,"props":4585,"children":4586},{},[4587],{"type":55,"value":4011},{"type":55,"value":4589},": list of folder IDs (Datadog will discover all active projects within them)",{"type":49,"tag":1572,"props":4591,"children":4592},{},[4593,4598],{"type":49,"tag":101,"props":4594,"children":4595},{},[4596],{"type":55,"value":4597},"Both",{"type":55,"value":4599},": a combination of explicit projects and folders",{"type":49,"tag":58,"props":4601,"children":4602},{},[4603],{"type":55,"value":4604},"Then ask which project should host the Datadog service account.",{"type":49,"tag":91,"props":4606,"children":4608},{"id":4607},"phase-3-generate-and-apply-terraform",[4609],{"type":55,"value":4610},"Phase 3: Generate and Apply Terraform",{"type":49,"tag":4612,"props":4613,"children":4615},"h3",{"id":4614},"check-what-already-exists-local-terraform-first-then-datadog",[4616],{"type":55,"value":4617},"Check what already exists - local Terraform first, then Datadog",{"type":49,"tag":58,"props":4619,"children":4620},{},[4621,4623,4628],{"type":55,"value":4622},"Do this ",{"type":49,"tag":101,"props":4624,"children":4625},{},[4626],{"type":55,"value":4627},"before",{"type":55,"value":4629}," generating or applying anything, and in this order. Local state first, because it\ndecides whether an existing integration is something you can update or something you must not touch:",{"type":49,"tag":116,"props":4631,"children":4633},{"className":118,"code":4632,"language":120,"meta":121,"style":121},"find . -maxdepth 1 -type f \\( -name '*.tf' -o -name 'terraform.tfstate' \\) -print\n# A project is \"present\" if it has configuration - .terraform\u002F may simply not exist yet on a fresh clone\n# with a remote backend, and terraform.tfstate does not exist at all when state is remote.\nif [ -n \"$(find . -maxdepth 1 -type f \\( -name '*.tf' -o -name '*.tf.json' \\) -print -quit)\" ]; then\n  terraform init -input=false >\u002Fdev\u002Fnull || { echo \"terraform init failed - resolve that before concluding anything about existing state\"; exit 1; }\n  out=$(terraform state list 2>&1); rc=$?\n  if [ \"$rc\" -ne 0 ]; then\n    case $out in\n      *'No state file'*|*'no state'*|*'Backend initialization required'*)\n        echo \"project is initialized but has no state yet - treat as a clean install\" ;;\n      *)\n        printf '%s\\n' \"$out\"\n        echo \"could not read state (backend or credentials problem) - do NOT treat this as 'nothing exists'\"; exit 1 ;;\n    esac\n  elif [ -z \"$out\" ]; then\n    echo \"state is empty - treat as a clean install\"\n  else\n    printf '%s\\n' \"$out\" | grep -F 'datadog_integration_gcp_sts' || echo \"state exists but holds no datadog_integration_gcp_sts resource\"\n  fi\nelse\n  echo \"no Terraform configuration here yet - clean install\"\nfi\n",[4634],{"type":49,"tag":69,"props":4635,"children":4636},{"__ignoreMap":121},[4637,4724,4732,4740,4840,4911,4955,4998,5016,5081,5106,5114,5147,5183,5191,5228,5249,5257,5337,5345,5353,5373],{"type":49,"tag":127,"props":4638,"children":4639},{"class":129,"line":130},[4640,4645,4650,4655,4659,4664,4669,4674,4679,4683,4688,4692,4696,4701,4705,4710,4714,4719],{"type":49,"tag":127,"props":4641,"children":4642},{"style":432},[4643],{"type":55,"value":4644},"find",{"type":49,"tag":127,"props":4646,"children":4647},{"style":140},[4648],{"type":55,"value":4649}," .",{"type":49,"tag":127,"props":4651,"children":4652},{"style":140},[4653],{"type":55,"value":4654}," -maxdepth",{"type":49,"tag":127,"props":4656,"children":4657},{"style":920},[4658],{"type":55,"value":3551},{"type":49,"tag":127,"props":4660,"children":4661},{"style":140},[4662],{"type":55,"value":4663}," -type",{"type":49,"tag":127,"props":4665,"children":4666},{"style":140},[4667],{"type":55,"value":4668}," f",{"type":49,"tag":127,"props":4670,"children":4671},{"style":249},[4672],{"type":55,"value":4673}," \\( ",{"type":49,"tag":127,"props":4675,"children":4676},{"style":140},[4677],{"type":55,"value":4678},"-name",{"type":49,"tag":127,"props":4680,"children":4681},{"style":270},[4682],{"type":55,"value":522},{"type":49,"tag":127,"props":4684,"children":4685},{"style":140},[4686],{"type":55,"value":4687},"*.tf",{"type":49,"tag":127,"props":4689,"children":4690},{"style":270},[4691],{"type":55,"value":532},{"type":49,"tag":127,"props":4693,"children":4694},{"style":140},[4695],{"type":55,"value":928},{"type":49,"tag":127,"props":4697,"children":4698},{"style":140},[4699],{"type":55,"value":4700}," -name",{"type":49,"tag":127,"props":4702,"children":4703},{"style":270},[4704],{"type":55,"value":522},{"type":49,"tag":127,"props":4706,"children":4707},{"style":140},[4708],{"type":55,"value":4709},"terraform.tfstate",{"type":49,"tag":127,"props":4711,"children":4712},{"style":270},[4713],{"type":55,"value":532},{"type":49,"tag":127,"props":4715,"children":4716},{"style":249},[4717],{"type":55,"value":4718}," \\) ",{"type":49,"tag":127,"props":4720,"children":4721},{"style":140},[4722],{"type":55,"value":4723},"-print\n",{"type":49,"tag":127,"props":4725,"children":4726},{"class":129,"line":649},[4727],{"type":49,"tag":127,"props":4728,"children":4729},{"style":2378},[4730],{"type":55,"value":4731},"# A project is \"present\" if it has configuration - .terraform\u002F may simply not exist yet on a fresh clone\n",{"type":49,"tag":127,"props":4733,"children":4734},{"class":129,"line":691},[4735],{"type":49,"tag":127,"props":4736,"children":4737},{"style":2378},[4738],{"type":55,"value":4739},"# with a remote backend, and terraform.tfstate does not exist at all when state is remote.\n",{"type":49,"tag":127,"props":4741,"children":4742},{"class":129,"line":722},[4743,4747,4751,4755,4759,4763,4768,4773,4778,4783,4788,4792,4796,4800,4805,4809,4814,4818,4823,4828,4832,4836],{"type":49,"tag":127,"props":4744,"children":4745},{"style":243},[4746],{"type":55,"value":2862},{"type":49,"tag":127,"props":4748,"children":4749},{"style":270},[4750],{"type":55,"value":283},{"type":49,"tag":127,"props":4752,"children":4753},{"style":270},[4754],{"type":55,"value":581},{"type":49,"tag":127,"props":4756,"children":4757},{"style":270},[4758],{"type":55,"value":4052},{"type":49,"tag":127,"props":4760,"children":4761},{"style":432},[4762],{"type":55,"value":4644},{"type":49,"tag":127,"props":4764,"children":4765},{"style":140},[4766],{"type":55,"value":4767}," . -maxdepth ",{"type":49,"tag":127,"props":4769,"children":4770},{"style":920},[4771],{"type":55,"value":4772},"1",{"type":49,"tag":127,"props":4774,"children":4775},{"style":140},[4776],{"type":55,"value":4777}," -type f ",{"type":49,"tag":127,"props":4779,"children":4780},{"style":249},[4781],{"type":55,"value":4782},"\\(",{"type":49,"tag":127,"props":4784,"children":4785},{"style":140},[4786],{"type":55,"value":4787}," -name ",{"type":49,"tag":127,"props":4789,"children":4790},{"style":270},[4791],{"type":55,"value":532},{"type":49,"tag":127,"props":4793,"children":4794},{"style":140},[4795],{"type":55,"value":4687},{"type":49,"tag":127,"props":4797,"children":4798},{"style":270},[4799],{"type":55,"value":532},{"type":49,"tag":127,"props":4801,"children":4802},{"style":140},[4803],{"type":55,"value":4804}," -o -name ",{"type":49,"tag":127,"props":4806,"children":4807},{"style":270},[4808],{"type":55,"value":532},{"type":49,"tag":127,"props":4810,"children":4811},{"style":140},[4812],{"type":55,"value":4813},"*.tf.json",{"type":49,"tag":127,"props":4815,"children":4816},{"style":270},[4817],{"type":55,"value":532},{"type":49,"tag":127,"props":4819,"children":4820},{"style":249},[4821],{"type":55,"value":4822}," \\)",{"type":49,"tag":127,"props":4824,"children":4825},{"style":140},[4826],{"type":55,"value":4827}," -print -quit",{"type":49,"tag":127,"props":4829,"children":4830},{"style":270},[4831],{"type":55,"value":4066},{"type":49,"tag":127,"props":4833,"children":4834},{"style":270},[4835],{"type":55,"value":2902},{"type":49,"tag":127,"props":4837,"children":4838},{"style":243},[4839],{"type":55,"value":2907},{"type":49,"tag":127,"props":4841,"children":4842},{"class":129,"line":856},[4843,4848,4853,4858,4862,4866,4870,4874,4878,4882,4887,4891,4895,4899,4903,4907],{"type":49,"tag":127,"props":4844,"children":4845},{"style":432},[4846],{"type":55,"value":4847},"  terraform",{"type":49,"tag":127,"props":4849,"children":4850},{"style":140},[4851],{"type":55,"value":4852}," init",{"type":49,"tag":127,"props":4854,"children":4855},{"style":140},[4856],{"type":55,"value":4857}," -input=false",{"type":49,"tag":127,"props":4859,"children":4860},{"style":270},[4861],{"type":55,"value":1837},{"type":49,"tag":127,"props":4863,"children":4864},{"style":140},[4865],{"type":55,"value":1842},{"type":49,"tag":127,"props":4867,"children":4868},{"style":270},[4869],{"type":55,"value":313},{"type":49,"tag":127,"props":4871,"children":4872},{"style":270},[4873],{"type":55,"value":3479},{"type":49,"tag":127,"props":4875,"children":4876},{"style":134},[4877],{"type":55,"value":771},{"type":49,"tag":127,"props":4879,"children":4880},{"style":270},[4881],{"type":55,"value":293},{"type":49,"tag":127,"props":4883,"children":4884},{"style":140},[4885],{"type":55,"value":4886},"terraform init failed - resolve that before concluding anything about existing state",{"type":49,"tag":127,"props":4888,"children":4889},{"style":270},[4890],{"type":55,"value":303},{"type":49,"tag":127,"props":4892,"children":4893},{"style":270},[4894],{"type":55,"value":273},{"type":49,"tag":127,"props":4896,"children":4897},{"style":134},[4898],{"type":55,"value":3546},{"type":49,"tag":127,"props":4900,"children":4901},{"style":920},[4902],{"type":55,"value":3551},{"type":49,"tag":127,"props":4904,"children":4905},{"style":270},[4906],{"type":55,"value":273},{"type":49,"tag":127,"props":4908,"children":4909},{"style":270},[4910],{"type":55,"value":3560},{"type":49,"tag":127,"props":4912,"children":4913},{"class":129,"line":896},[4914,4919,4923,4927,4932,4936,4941,4946,4950],{"type":49,"tag":127,"props":4915,"children":4916},{"style":249},[4917],{"type":55,"value":4918},"  out",{"type":49,"tag":127,"props":4920,"children":4921},{"style":270},[4922],{"type":55,"value":429},{"type":49,"tag":127,"props":4924,"children":4925},{"style":432},[4926],{"type":55,"value":21},{"type":49,"tag":127,"props":4928,"children":4929},{"style":140},[4930],{"type":55,"value":4931}," state",{"type":49,"tag":127,"props":4933,"children":4934},{"style":140},[4935],{"type":55,"value":3985},{"type":49,"tag":127,"props":4937,"children":4938},{"style":270},[4939],{"type":55,"value":4940}," 2>&1);",{"type":49,"tag":127,"props":4942,"children":4943},{"style":249},[4944],{"type":55,"value":4945}," rc",{"type":49,"tag":127,"props":4947,"children":4948},{"style":270},[4949],{"type":55,"value":458},{"type":49,"tag":127,"props":4951,"children":4952},{"style":249},[4953],{"type":55,"value":4954},"$?\n",{"type":49,"tag":127,"props":4956,"children":4957},{"class":129,"line":958},[4958,4963,4967,4971,4976,4980,4985,4990,4994],{"type":49,"tag":127,"props":4959,"children":4960},{"style":243},[4961],{"type":55,"value":4962},"  if",{"type":49,"tag":127,"props":4964,"children":4965},{"style":270},[4966],{"type":55,"value":283},{"type":49,"tag":127,"props":4968,"children":4969},{"style":270},[4970],{"type":55,"value":293},{"type":49,"tag":127,"props":4972,"children":4973},{"style":249},[4974],{"type":55,"value":4975},"$rc",{"type":49,"tag":127,"props":4977,"children":4978},{"style":270},[4979],{"type":55,"value":303},{"type":49,"tag":127,"props":4981,"children":4982},{"style":270},[4983],{"type":55,"value":4984}," -ne",{"type":49,"tag":127,"props":4986,"children":4987},{"style":920},[4988],{"type":55,"value":4989}," 0",{"type":49,"tag":127,"props":4991,"children":4992},{"style":270},[4993],{"type":55,"value":2902},{"type":49,"tag":127,"props":4995,"children":4996},{"style":243},[4997],{"type":55,"value":2907},{"type":49,"tag":127,"props":4999,"children":5000},{"class":129,"line":1004},[5001,5006,5011],{"type":49,"tag":127,"props":5002,"children":5003},{"style":243},[5004],{"type":55,"value":5005},"    case",{"type":49,"tag":127,"props":5007,"children":5008},{"style":249},[5009],{"type":55,"value":5010}," $out ",{"type":49,"tag":127,"props":5012,"children":5013},{"style":243},[5014],{"type":55,"value":5015},"in\n",{"type":49,"tag":127,"props":5017,"children":5018},{"class":129,"line":1054},[5019,5024,5028,5033,5037,5042,5046,5051,5055,5059,5063,5068,5072,5077],{"type":49,"tag":127,"props":5020,"children":5021},{"style":270},[5022],{"type":55,"value":5023},"      *",{"type":49,"tag":127,"props":5025,"children":5026},{"style":270},[5027],{"type":55,"value":532},{"type":49,"tag":127,"props":5029,"children":5030},{"style":140},[5031],{"type":55,"value":5032},"No state file",{"type":49,"tag":127,"props":5034,"children":5035},{"style":270},[5036],{"type":55,"value":532},{"type":49,"tag":127,"props":5038,"children":5039},{"style":270},[5040],{"type":55,"value":5041},"*|*",{"type":49,"tag":127,"props":5043,"children":5044},{"style":270},[5045],{"type":55,"value":532},{"type":49,"tag":127,"props":5047,"children":5048},{"style":140},[5049],{"type":55,"value":5050},"no state",{"type":49,"tag":127,"props":5052,"children":5053},{"style":270},[5054],{"type":55,"value":532},{"type":49,"tag":127,"props":5056,"children":5057},{"style":270},[5058],{"type":55,"value":5041},{"type":49,"tag":127,"props":5060,"children":5061},{"style":270},[5062],{"type":55,"value":532},{"type":49,"tag":127,"props":5064,"children":5065},{"style":140},[5066],{"type":55,"value":5067},"Backend initialization required",{"type":49,"tag":127,"props":5069,"children":5070},{"style":270},[5071],{"type":55,"value":532},{"type":49,"tag":127,"props":5073,"children":5074},{"style":270},[5075],{"type":55,"value":5076},"*",{"type":49,"tag":127,"props":5078,"children":5079},{"style":270},[5080],{"type":55,"value":2734},{"type":49,"tag":127,"props":5082,"children":5083},{"class":129,"line":1107},[5084,5089,5093,5098,5102],{"type":49,"tag":127,"props":5085,"children":5086},{"style":134},[5087],{"type":55,"value":5088},"        echo",{"type":49,"tag":127,"props":5090,"children":5091},{"style":270},[5092],{"type":55,"value":293},{"type":49,"tag":127,"props":5094,"children":5095},{"style":140},[5096],{"type":55,"value":5097},"project is initialized but has no state yet - treat as a clean install",{"type":49,"tag":127,"props":5099,"children":5100},{"style":270},[5101],{"type":55,"value":303},{"type":49,"tag":127,"props":5103,"children":5104},{"style":270},[5105],{"type":55,"value":3702},{"type":49,"tag":127,"props":5107,"children":5108},{"class":129,"line":2931},[5109],{"type":49,"tag":127,"props":5110,"children":5111},{"style":270},[5112],{"type":55,"value":5113},"      *)\n",{"type":49,"tag":127,"props":5115,"children":5116},{"class":129,"line":2988},[5117,5122,5126,5130,5134,5138,5143],{"type":49,"tag":127,"props":5118,"children":5119},{"style":134},[5120],{"type":55,"value":5121},"        printf",{"type":49,"tag":127,"props":5123,"children":5124},{"style":270},[5125],{"type":55,"value":522},{"type":49,"tag":127,"props":5127,"children":5128},{"style":140},[5129],{"type":55,"value":3327},{"type":49,"tag":127,"props":5131,"children":5132},{"style":270},[5133],{"type":55,"value":532},{"type":49,"tag":127,"props":5135,"children":5136},{"style":270},[5137],{"type":55,"value":293},{"type":49,"tag":127,"props":5139,"children":5140},{"style":249},[5141],{"type":55,"value":5142},"$out",{"type":49,"tag":127,"props":5144,"children":5145},{"style":270},[5146],{"type":55,"value":1001},{"type":49,"tag":127,"props":5148,"children":5149},{"class":129,"line":3070},[5150,5154,5158,5163,5167,5171,5175,5179],{"type":49,"tag":127,"props":5151,"children":5152},{"style":134},[5153],{"type":55,"value":5088},{"type":49,"tag":127,"props":5155,"children":5156},{"style":270},[5157],{"type":55,"value":293},{"type":49,"tag":127,"props":5159,"children":5160},{"style":140},[5161],{"type":55,"value":5162},"could not read state (backend or credentials problem) - do NOT treat this as 'nothing exists'",{"type":49,"tag":127,"props":5164,"children":5165},{"style":270},[5166],{"type":55,"value":303},{"type":49,"tag":127,"props":5168,"children":5169},{"style":270},[5170],{"type":55,"value":273},{"type":49,"tag":127,"props":5172,"children":5173},{"style":134},[5174],{"type":55,"value":3546},{"type":49,"tag":127,"props":5176,"children":5177},{"style":920},[5178],{"type":55,"value":3551},{"type":49,"tag":127,"props":5180,"children":5181},{"style":270},[5182],{"type":55,"value":3702},{"type":49,"tag":127,"props":5184,"children":5185},{"class":129,"line":3115},[5186],{"type":49,"tag":127,"props":5187,"children":5188},{"style":243},[5189],{"type":55,"value":5190},"    esac\n",{"type":49,"tag":127,"props":5192,"children":5193},{"class":129,"line":3232},[5194,5199,5203,5208,5212,5216,5220,5224],{"type":49,"tag":127,"props":5195,"children":5196},{"style":243},[5197],{"type":55,"value":5198},"  elif",{"type":49,"tag":127,"props":5200,"children":5201},{"style":270},[5202],{"type":55,"value":283},{"type":49,"tag":127,"props":5204,"children":5205},{"style":270},[5206],{"type":55,"value":5207}," -z",{"type":49,"tag":127,"props":5209,"children":5210},{"style":270},[5211],{"type":55,"value":293},{"type":49,"tag":127,"props":5213,"children":5214},{"style":249},[5215],{"type":55,"value":5142},{"type":49,"tag":127,"props":5217,"children":5218},{"style":270},[5219],{"type":55,"value":303},{"type":49,"tag":127,"props":5221,"children":5222},{"style":270},[5223],{"type":55,"value":2902},{"type":49,"tag":127,"props":5225,"children":5226},{"style":243},[5227],{"type":55,"value":2907},{"type":49,"tag":127,"props":5229,"children":5230},{"class":129,"line":3282},[5231,5236,5240,5245],{"type":49,"tag":127,"props":5232,"children":5233},{"style":134},[5234],{"type":55,"value":5235},"    echo",{"type":49,"tag":127,"props":5237,"children":5238},{"style":270},[5239],{"type":55,"value":293},{"type":49,"tag":127,"props":5241,"children":5242},{"style":140},[5243],{"type":55,"value":5244},"state is empty - treat as a clean install",{"type":49,"tag":127,"props":5246,"children":5247},{"style":270},[5248],{"type":55,"value":1001},{"type":49,"tag":127,"props":5250,"children":5251},{"class":129,"line":3312},[5252],{"type":49,"tag":127,"props":5253,"children":5254},{"style":243},[5255],{"type":55,"value":5256},"  else\n",{"type":49,"tag":127,"props":5258,"children":5259},{"class":129,"line":3347},[5260,5265,5269,5273,5277,5281,5285,5289,5293,5298,5303,5307,5312,5316,5320,5324,5328,5333],{"type":49,"tag":127,"props":5261,"children":5262},{"style":134},[5263],{"type":55,"value":5264},"    printf",{"type":49,"tag":127,"props":5266,"children":5267},{"style":270},[5268],{"type":55,"value":522},{"type":49,"tag":127,"props":5270,"children":5271},{"style":140},[5272],{"type":55,"value":3327},{"type":49,"tag":127,"props":5274,"children":5275},{"style":270},[5276],{"type":55,"value":532},{"type":49,"tag":127,"props":5278,"children":5279},{"style":270},[5280],{"type":55,"value":293},{"type":49,"tag":127,"props":5282,"children":5283},{"style":249},[5284],{"type":55,"value":5142},{"type":49,"tag":127,"props":5286,"children":5287},{"style":270},[5288],{"type":55,"value":303},{"type":49,"tag":127,"props":5290,"children":5291},{"style":270},[5292],{"type":55,"value":479},{"type":49,"tag":127,"props":5294,"children":5295},{"style":432},[5296],{"type":55,"value":5297}," grep",{"type":49,"tag":127,"props":5299,"children":5300},{"style":140},[5301],{"type":55,"value":5302}," -F",{"type":49,"tag":127,"props":5304,"children":5305},{"style":270},[5306],{"type":55,"value":522},{"type":49,"tag":127,"props":5308,"children":5309},{"style":140},[5310],{"type":55,"value":5311},"datadog_integration_gcp_sts",{"type":49,"tag":127,"props":5313,"children":5314},{"style":270},[5315],{"type":55,"value":532},{"type":49,"tag":127,"props":5317,"children":5318},{"style":270},[5319],{"type":55,"value":313},{"type":49,"tag":127,"props":5321,"children":5322},{"style":134},[5323],{"type":55,"value":771},{"type":49,"tag":127,"props":5325,"children":5326},{"style":270},[5327],{"type":55,"value":293},{"type":49,"tag":127,"props":5329,"children":5330},{"style":140},[5331],{"type":55,"value":5332},"state exists but holds no datadog_integration_gcp_sts resource",{"type":49,"tag":127,"props":5334,"children":5335},{"style":270},[5336],{"type":55,"value":1001},{"type":49,"tag":127,"props":5338,"children":5339},{"class":129,"line":32},[5340],{"type":49,"tag":127,"props":5341,"children":5342},{"style":243},[5343],{"type":55,"value":5344},"  fi\n",{"type":49,"tag":127,"props":5346,"children":5347},{"class":129,"line":3388},[5348],{"type":49,"tag":127,"props":5349,"children":5350},{"style":243},[5351],{"type":55,"value":5352},"else\n",{"type":49,"tag":127,"props":5354,"children":5355},{"class":129,"line":3409},[5356,5360,5364,5369],{"type":49,"tag":127,"props":5357,"children":5358},{"style":134},[5359],{"type":55,"value":2915},{"type":49,"tag":127,"props":5361,"children":5362},{"style":270},[5363],{"type":55,"value":293},{"type":49,"tag":127,"props":5365,"children":5366},{"style":140},[5367],{"type":55,"value":5368},"no Terraform configuration here yet - clean install",{"type":49,"tag":127,"props":5370,"children":5371},{"style":270},[5372],{"type":55,"value":1001},{"type":49,"tag":127,"props":5374,"children":5375},{"class":129,"line":3423},[5376],{"type":49,"tag":127,"props":5377,"children":5378},{"style":243},[5379],{"type":55,"value":3429},{"type":49,"tag":58,"props":5381,"children":5382},{},[5383,5385,5390,5392,5397,5399,5405],{"type":55,"value":5384},"Match the ",{"type":49,"tag":101,"props":5386,"children":5387},{},[5388],{"type":55,"value":5389},"exact",{"type":55,"value":5391}," resource address ",{"type":49,"tag":69,"props":5393,"children":5395},{"className":5394},[],[5396],{"type":55,"value":5311},{"type":55,"value":5398},", not a loose ",{"type":49,"tag":69,"props":5400,"children":5402},{"className":5401},[],[5403],{"type":55,"value":5404},"grep -i datadog",{"type":55,"value":5406},": unrelated Datadog\nresources, or cloud IAM left behind by a partial apply, would otherwise read as a managed integration.",{"type":49,"tag":58,"props":5408,"children":5409},{},[5410],{"type":55,"value":5411},"Then ask Datadog what it already has:",{"type":49,"tag":116,"props":5413,"children":5415},{"className":118,"code":5414,"language":120,"meta":121,"style":121},"for f in .env.local .env; do [ -f \"$f\" ] || continue; for k in DD_SITE DD_API_KEY DD_APP_KEY; do eval \"[ -n \\\"\\${$k:-}\\\" ]\" && continue; v=$(grep -E \"^$k=\" \"$f\" | head -1 | cut -d= -f2- | sed 's\u002F^[\"'\\'']\u002F\u002F;s\u002F[\"'\\'']$\u002F\u002F'); [ -n \"$v\" ] && export \"$k=$v\"; done; done\nDD_SITE='datadoghq.com'; export DD_SITE   # \u003C- replace with the site confirmed in Phase 0.\n# Explicit assignment, not ':=': a wrong non-empty DD_SITE in .env would otherwise survive.\n: \"${DD_API_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"; : \"${DD_APP_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"\nresp=$(printf 'DD-API-KEY: %s\\nDD-APPLICATION-KEY: %s\\n' \"$DD_API_KEY\" \"$DD_APP_KEY\" \\\n  | curl -sS -w '\\n%{http_code}' -X GET -H @- \"https:\u002F\u002Fapi.${DD_SITE}\u002Fapi\u002Fv2\u002Fintegration\u002Fgcp\u002Faccounts\")\ncode=$(printf '%s' \"$resp\" | tail -1); body=$(printf '%s' \"$resp\" | sed '$d')\n[ \"$code\" = \"200\" ] || { echo \"lookup failed with HTTP $code - do not assume 'not connected':\"; printf '%s\\n' \"$body\"; exit 1; }\nprintf '%s\\n' \"$body\"\n",[5416],{"type":49,"tag":69,"props":5417,"children":5418},{"__ignoreMap":121},[5419,5770,5809,5816,5999,6054,6134,6249,6374],{"type":49,"tag":127,"props":5420,"children":5421},{"class":129,"line":130},[5422,5426,5430,5434,5438,5442,5446,5450,5454,5458,5462,5466,5470,5474,5478,5482,5486,5490,5494,5498,5502,5506,5510,5514,5518,5522,5526,5530,5534,5538,5542,5546,5550,5554,5558,5562,5566,5570,5574,5578,5582,5586,5590,5594,5598,5602,5606,5610,5614,5618,5622,5626,5630,5634,5638,5642,5646,5650,5654,5658,5662,5666,5670,5674,5678,5682,5686,5690,5694,5698,5702,5706,5710,5714,5718,5722,5726,5730,5734,5738,5742,5746,5750,5754,5758,5762,5766],{"type":49,"tag":127,"props":5423,"children":5424},{"style":243},[5425],{"type":55,"value":246},{"type":49,"tag":127,"props":5427,"children":5428},{"style":249},[5429],{"type":55,"value":252},{"type":49,"tag":127,"props":5431,"children":5432},{"style":243},[5433],{"type":55,"value":257},{"type":49,"tag":127,"props":5435,"children":5436},{"style":140},[5437],{"type":55,"value":262},{"type":49,"tag":127,"props":5439,"children":5440},{"style":140},[5441],{"type":55,"value":267},{"type":49,"tag":127,"props":5443,"children":5444},{"style":270},[5445],{"type":55,"value":273},{"type":49,"tag":127,"props":5447,"children":5448},{"style":243},[5449],{"type":55,"value":278},{"type":49,"tag":127,"props":5451,"children":5452},{"style":270},[5453],{"type":55,"value":283},{"type":49,"tag":127,"props":5455,"children":5456},{"style":270},[5457],{"type":55,"value":288},{"type":49,"tag":127,"props":5459,"children":5460},{"style":270},[5461],{"type":55,"value":293},{"type":49,"tag":127,"props":5463,"children":5464},{"style":249},[5465],{"type":55,"value":298},{"type":49,"tag":127,"props":5467,"children":5468},{"style":270},[5469],{"type":55,"value":303},{"type":49,"tag":127,"props":5471,"children":5472},{"style":270},[5473],{"type":55,"value":308},{"type":49,"tag":127,"props":5475,"children":5476},{"style":270},[5477],{"type":55,"value":313},{"type":49,"tag":127,"props":5479,"children":5480},{"style":243},[5481],{"type":55,"value":318},{"type":49,"tag":127,"props":5483,"children":5484},{"style":270},[5485],{"type":55,"value":273},{"type":49,"tag":127,"props":5487,"children":5488},{"style":243},[5489],{"type":55,"value":327},{"type":49,"tag":127,"props":5491,"children":5492},{"style":249},[5493],{"type":55,"value":332},{"type":49,"tag":127,"props":5495,"children":5496},{"style":243},[5497],{"type":55,"value":257},{"type":49,"tag":127,"props":5499,"children":5500},{"style":140},[5501],{"type":55,"value":341},{"type":49,"tag":127,"props":5503,"children":5504},{"style":140},[5505],{"type":55,"value":346},{"type":49,"tag":127,"props":5507,"children":5508},{"style":140},[5509],{"type":55,"value":351},{"type":49,"tag":127,"props":5511,"children":5512},{"style":270},[5513],{"type":55,"value":273},{"type":49,"tag":127,"props":5515,"children":5516},{"style":243},[5517],{"type":55,"value":278},{"type":49,"tag":127,"props":5519,"children":5520},{"style":134},[5521],{"type":55,"value":364},{"type":49,"tag":127,"props":5523,"children":5524},{"style":270},[5525],{"type":55,"value":293},{"type":49,"tag":127,"props":5527,"children":5528},{"style":140},[5529],{"type":55,"value":373},{"type":49,"tag":127,"props":5531,"children":5532},{"style":249},[5533],{"type":55,"value":378},{"type":49,"tag":127,"props":5535,"children":5536},{"style":140},[5537],{"type":55,"value":383},{"type":49,"tag":127,"props":5539,"children":5540},{"style":249},[5541],{"type":55,"value":388},{"type":49,"tag":127,"props":5543,"children":5544},{"style":140},[5545],{"type":55,"value":393},{"type":49,"tag":127,"props":5547,"children":5548},{"style":249},[5549],{"type":55,"value":398},{"type":49,"tag":127,"props":5551,"children":5552},{"style":140},[5553],{"type":55,"value":308},{"type":49,"tag":127,"props":5555,"children":5556},{"style":270},[5557],{"type":55,"value":303},{"type":49,"tag":127,"props":5559,"children":5560},{"style":270},[5561],{"type":55,"value":411},{"type":49,"tag":127,"props":5563,"children":5564},{"style":243},[5565],{"type":55,"value":318},{"type":49,"tag":127,"props":5567,"children":5568},{"style":270},[5569],{"type":55,"value":273},{"type":49,"tag":127,"props":5571,"children":5572},{"style":249},[5573],{"type":55,"value":424},{"type":49,"tag":127,"props":5575,"children":5576},{"style":270},[5577],{"type":55,"value":429},{"type":49,"tag":127,"props":5579,"children":5580},{"style":432},[5581],{"type":55,"value":435},{"type":49,"tag":127,"props":5583,"children":5584},{"style":140},[5585],{"type":55,"value":440},{"type":49,"tag":127,"props":5587,"children":5588},{"style":270},[5589],{"type":55,"value":293},{"type":49,"tag":127,"props":5591,"children":5592},{"style":140},[5593],{"type":55,"value":449},{"type":49,"tag":127,"props":5595,"children":5596},{"style":249},[5597],{"type":55,"value":388},{"type":49,"tag":127,"props":5599,"children":5600},{"style":140},[5601],{"type":55,"value":458},{"type":49,"tag":127,"props":5603,"children":5604},{"style":270},[5605],{"type":55,"value":303},{"type":49,"tag":127,"props":5607,"children":5608},{"style":270},[5609],{"type":55,"value":293},{"type":49,"tag":127,"props":5611,"children":5612},{"style":249},[5613],{"type":55,"value":298},{"type":49,"tag":127,"props":5615,"children":5616},{"style":270},[5617],{"type":55,"value":303},{"type":49,"tag":127,"props":5619,"children":5620},{"style":270},[5621],{"type":55,"value":479},{"type":49,"tag":127,"props":5623,"children":5624},{"style":432},[5625],{"type":55,"value":484},{"type":49,"tag":127,"props":5627,"children":5628},{"style":140},[5629],{"type":55,"value":489},{"type":49,"tag":127,"props":5631,"children":5632},{"style":270},[5633],{"type":55,"value":479},{"type":49,"tag":127,"props":5635,"children":5636},{"style":432},[5637],{"type":55,"value":498},{"type":49,"tag":127,"props":5639,"children":5640},{"style":140},[5641],{"type":55,"value":503},{"type":49,"tag":127,"props":5643,"children":5644},{"style":140},[5645],{"type":55,"value":508},{"type":49,"tag":127,"props":5647,"children":5648},{"style":270},[5649],{"type":55,"value":479},{"type":49,"tag":127,"props":5651,"children":5652},{"style":432},[5653],{"type":55,"value":517},{"type":49,"tag":127,"props":5655,"children":5656},{"style":270},[5657],{"type":55,"value":522},{"type":49,"tag":127,"props":5659,"children":5660},{"style":140},[5661],{"type":55,"value":527},{"type":49,"tag":127,"props":5663,"children":5664},{"style":270},[5665],{"type":55,"value":532},{"type":49,"tag":127,"props":5667,"children":5668},{"style":249},[5669],{"type":55,"value":537},{"type":49,"tag":127,"props":5671,"children":5672},{"style":270},[5673],{"type":55,"value":532},{"type":49,"tag":127,"props":5675,"children":5676},{"style":140},[5677],{"type":55,"value":546},{"type":49,"tag":127,"props":5679,"children":5680},{"style":270},[5681],{"type":55,"value":532},{"type":49,"tag":127,"props":5683,"children":5684},{"style":249},[5685],{"type":55,"value":537},{"type":49,"tag":127,"props":5687,"children":5688},{"style":270},[5689],{"type":55,"value":532},{"type":49,"tag":127,"props":5691,"children":5692},{"style":140},[5693],{"type":55,"value":563},{"type":49,"tag":127,"props":5695,"children":5696},{"style":270},[5697],{"type":55,"value":532},{"type":49,"tag":127,"props":5699,"children":5700},{"style":270},[5701],{"type":55,"value":572},{"type":49,"tag":127,"props":5703,"children":5704},{"style":270},[5705],{"type":55,"value":283},{"type":49,"tag":127,"props":5707,"children":5708},{"style":270},[5709],{"type":55,"value":581},{"type":49,"tag":127,"props":5711,"children":5712},{"style":270},[5713],{"type":55,"value":293},{"type":49,"tag":127,"props":5715,"children":5716},{"style":249},[5717],{"type":55,"value":590},{"type":49,"tag":127,"props":5719,"children":5720},{"style":270},[5721],{"type":55,"value":303},{"type":49,"tag":127,"props":5723,"children":5724},{"style":270},[5725],{"type":55,"value":308},{"type":49,"tag":127,"props":5727,"children":5728},{"style":270},[5729],{"type":55,"value":411},{"type":49,"tag":127,"props":5731,"children":5732},{"style":605},[5733],{"type":55,"value":608},{"type":49,"tag":127,"props":5735,"children":5736},{"style":270},[5737],{"type":55,"value":293},{"type":49,"tag":127,"props":5739,"children":5740},{"style":249},[5741],{"type":55,"value":388},{"type":49,"tag":127,"props":5743,"children":5744},{"style":140},[5745],{"type":55,"value":458},{"type":49,"tag":127,"props":5747,"children":5748},{"style":249},[5749],{"type":55,"value":590},{"type":49,"tag":127,"props":5751,"children":5752},{"style":270},[5753],{"type":55,"value":303},{"type":49,"tag":127,"props":5755,"children":5756},{"style":270},[5757],{"type":55,"value":273},{"type":49,"tag":127,"props":5759,"children":5760},{"style":243},[5761],{"type":55,"value":637},{"type":49,"tag":127,"props":5763,"children":5764},{"style":270},[5765],{"type":55,"value":273},{"type":49,"tag":127,"props":5767,"children":5768},{"style":243},[5769],{"type":55,"value":646},{"type":49,"tag":127,"props":5771,"children":5772},{"class":129,"line":649},[5773,5777,5781,5785,5789,5793,5797,5801,5805],{"type":49,"tag":127,"props":5774,"children":5775},{"style":249},[5776],{"type":55,"value":198},{"type":49,"tag":127,"props":5778,"children":5779},{"style":270},[5780],{"type":55,"value":458},{"type":49,"tag":127,"props":5782,"children":5783},{"style":270},[5784],{"type":55,"value":532},{"type":49,"tag":127,"props":5786,"children":5787},{"style":140},[5788],{"type":55,"value":2358},{"type":49,"tag":127,"props":5790,"children":5791},{"style":270},[5792],{"type":55,"value":532},{"type":49,"tag":127,"props":5794,"children":5795},{"style":270},[5796],{"type":55,"value":273},{"type":49,"tag":127,"props":5798,"children":5799},{"style":605},[5800],{"type":55,"value":608},{"type":49,"tag":127,"props":5802,"children":5803},{"style":249},[5804],{"type":55,"value":2375},{"type":49,"tag":127,"props":5806,"children":5807},{"style":2378},[5808],{"type":55,"value":2381},{"type":49,"tag":127,"props":5810,"children":5811},{"class":129,"line":691},[5812],{"type":49,"tag":127,"props":5813,"children":5814},{"style":2378},[5815],{"type":55,"value":2389},{"type":49,"tag":127,"props":5817,"children":5818},{"class":129,"line":722},[5819,5823,5827,5831,5835,5839,5843,5847,5851,5855,5859,5863,5867,5871,5875,5879,5883,5887,5891,5895,5899,5903,5907,5911,5915,5919,5923,5927,5931,5935,5939,5943,5947,5951,5955,5959,5963,5967,5971,5975,5979,5983,5987,5991,5995],{"type":49,"tag":127,"props":5820,"children":5821},{"style":134},[5822],{"type":55,"value":655},{"type":49,"tag":127,"props":5824,"children":5825},{"style":270},[5826],{"type":55,"value":660},{"type":49,"tag":127,"props":5828,"children":5829},{"style":249},[5830],{"type":55,"value":206},{"type":49,"tag":127,"props":5832,"children":5833},{"style":270},[5834],{"type":55,"value":1544},{"type":49,"tag":127,"props":5836,"children":5837},{"style":249},[5838],{"type":55,"value":1368},{"type":49,"tag":127,"props":5840,"children":5841},{"style":249},[5842],{"type":55,"value":2417},{"type":49,"tag":127,"props":5844,"children":5845},{"style":249},[5846],{"type":55,"value":2422},{"type":49,"tag":127,"props":5848,"children":5849},{"style":249},[5850],{"type":55,"value":2427},{"type":49,"tag":127,"props":5852,"children":5853},{"style":249},[5854],{"type":55,"value":2432},{"type":49,"tag":127,"props":5856,"children":5857},{"style":140},[5858],{"type":55,"value":2437},{"type":49,"tag":127,"props":5860,"children":5861},{"style":249},[5862],{"type":55,"value":2442},{"type":49,"tag":127,"props":5864,"children":5865},{"style":249},[5866],{"type":55,"value":2447},{"type":49,"tag":127,"props":5868,"children":5869},{"style":140},[5870],{"type":55,"value":2452},{"type":49,"tag":127,"props":5872,"children":5873},{"style":249},[5874],{"type":55,"value":2457},{"type":49,"tag":127,"props":5876,"children":5877},{"style":249},[5878],{"type":55,"value":2462},{"type":49,"tag":127,"props":5880,"children":5881},{"style":249},[5882],{"type":55,"value":2467},{"type":49,"tag":127,"props":5884,"children":5885},{"style":249},[5886],{"type":55,"value":2472},{"type":49,"tag":127,"props":5888,"children":5889},{"style":140},[5890],{"type":55,"value":2437},{"type":49,"tag":127,"props":5892,"children":5893},{"style":249},[5894],{"type":55,"value":2481},{"type":49,"tag":127,"props":5896,"children":5897},{"style":249},[5898],{"type":55,"value":2447},{"type":49,"tag":127,"props":5900,"children":5901},{"style":140},[5902],{"type":55,"value":795},{"type":49,"tag":127,"props":5904,"children":5905},{"style":270},[5906],{"type":55,"value":2494},{"type":49,"tag":127,"props":5908,"children":5909},{"style":270},[5910],{"type":55,"value":273},{"type":49,"tag":127,"props":5912,"children":5913},{"style":134},[5914],{"type":55,"value":2503},{"type":49,"tag":127,"props":5916,"children":5917},{"style":270},[5918],{"type":55,"value":660},{"type":49,"tag":127,"props":5920,"children":5921},{"style":249},[5922],{"type":55,"value":213},{"type":49,"tag":127,"props":5924,"children":5925},{"style":270},[5926],{"type":55,"value":1544},{"type":49,"tag":127,"props":5928,"children":5929},{"style":249},[5930],{"type":55,"value":1368},{"type":49,"tag":127,"props":5932,"children":5933},{"style":249},[5934],{"type":55,"value":2417},{"type":49,"tag":127,"props":5936,"children":5937},{"style":249},[5938],{"type":55,"value":2422},{"type":49,"tag":127,"props":5940,"children":5941},{"style":249},[5942],{"type":55,"value":2427},{"type":49,"tag":127,"props":5944,"children":5945},{"style":249},[5946],{"type":55,"value":2432},{"type":49,"tag":127,"props":5948,"children":5949},{"style":140},[5950],{"type":55,"value":2437},{"type":49,"tag":127,"props":5952,"children":5953},{"style":249},[5954],{"type":55,"value":2442},{"type":49,"tag":127,"props":5956,"children":5957},{"style":249},[5958],{"type":55,"value":2447},{"type":49,"tag":127,"props":5960,"children":5961},{"style":140},[5962],{"type":55,"value":2452},{"type":49,"tag":127,"props":5964,"children":5965},{"style":249},[5966],{"type":55,"value":2457},{"type":49,"tag":127,"props":5968,"children":5969},{"style":249},[5970],{"type":55,"value":2462},{"type":49,"tag":127,"props":5972,"children":5973},{"style":249},[5974],{"type":55,"value":2467},{"type":49,"tag":127,"props":5976,"children":5977},{"style":249},[5978],{"type":55,"value":2472},{"type":49,"tag":127,"props":5980,"children":5981},{"style":140},[5982],{"type":55,"value":2437},{"type":49,"tag":127,"props":5984,"children":5985},{"style":249},[5986],{"type":55,"value":2481},{"type":49,"tag":127,"props":5988,"children":5989},{"style":249},[5990],{"type":55,"value":2447},{"type":49,"tag":127,"props":5992,"children":5993},{"style":140},[5994],{"type":55,"value":795},{"type":49,"tag":127,"props":5996,"children":5997},{"style":270},[5998],{"type":55,"value":688},{"type":49,"tag":127,"props":6000,"children":6001},{"class":129,"line":856},[6002,6006,6010,6014,6018,6022,6026,6030,6034,6038,6042,6046,6050],{"type":49,"tag":127,"props":6003,"children":6004},{"style":249},[6005],{"type":55,"value":2595},{"type":49,"tag":127,"props":6007,"children":6008},{"style":270},[6009],{"type":55,"value":429},{"type":49,"tag":127,"props":6011,"children":6012},{"style":134},[6013],{"type":55,"value":862},{"type":49,"tag":127,"props":6015,"children":6016},{"style":270},[6017],{"type":55,"value":522},{"type":49,"tag":127,"props":6019,"children":6020},{"style":140},[6021],{"type":55,"value":1018},{"type":49,"tag":127,"props":6023,"children":6024},{"style":270},[6025],{"type":55,"value":532},{"type":49,"tag":127,"props":6027,"children":6028},{"style":270},[6029],{"type":55,"value":293},{"type":49,"tag":127,"props":6031,"children":6032},{"style":249},[6033],{"type":55,"value":884},{"type":49,"tag":127,"props":6035,"children":6036},{"style":270},[6037],{"type":55,"value":303},{"type":49,"tag":127,"props":6039,"children":6040},{"style":270},[6041],{"type":55,"value":293},{"type":49,"tag":127,"props":6043,"children":6044},{"style":249},[6045],{"type":55,"value":1043},{"type":49,"tag":127,"props":6047,"children":6048},{"style":270},[6049],{"type":55,"value":303},{"type":49,"tag":127,"props":6051,"children":6052},{"style":249},[6053],{"type":55,"value":893},{"type":49,"tag":127,"props":6055,"children":6056},{"class":129,"line":896},[6057,6061,6065,6069,6073,6077,6081,6085,6089,6093,6097,6101,6105,6109,6113,6117,6121,6126,6130],{"type":49,"tag":127,"props":6058,"children":6059},{"style":270},[6060],{"type":55,"value":902},{"type":49,"tag":127,"props":6062,"children":6063},{"style":432},[6064],{"type":55,"value":907},{"type":49,"tag":127,"props":6066,"children":6067},{"style":140},[6068],{"type":55,"value":912},{"type":49,"tag":127,"props":6070,"children":6071},{"style":140},[6072],{"type":55,"value":938},{"type":49,"tag":127,"props":6074,"children":6075},{"style":270},[6076],{"type":55,"value":522},{"type":49,"tag":127,"props":6078,"children":6079},{"style":140},[6080],{"type":55,"value":2671},{"type":49,"tag":127,"props":6082,"children":6083},{"style":270},[6084],{"type":55,"value":532},{"type":49,"tag":127,"props":6086,"children":6087},{"style":140},[6088],{"type":55,"value":2680},{"type":49,"tag":127,"props":6090,"children":6091},{"style":140},[6092],{"type":55,"value":2685},{"type":49,"tag":127,"props":6094,"children":6095},{"style":140},[6096],{"type":55,"value":3032},{"type":49,"tag":127,"props":6098,"children":6099},{"style":140},[6100],{"type":55,"value":969},{"type":49,"tag":127,"props":6102,"children":6103},{"style":270},[6104],{"type":55,"value":293},{"type":49,"tag":127,"props":6106,"children":6107},{"style":140},[6108],{"type":55,"value":978},{"type":49,"tag":127,"props":6110,"children":6111},{"style":270},[6112],{"type":55,"value":711},{"type":49,"tag":127,"props":6114,"children":6115},{"style":249},[6116],{"type":55,"value":198},{"type":49,"tag":127,"props":6118,"children":6119},{"style":270},[6120],{"type":55,"value":991},{"type":49,"tag":127,"props":6122,"children":6123},{"style":140},[6124],{"type":55,"value":6125},"\u002Fapi\u002Fv2\u002Fintegration\u002Fgcp\u002Faccounts",{"type":49,"tag":127,"props":6127,"children":6128},{"style":270},[6129],{"type":55,"value":303},{"type":49,"tag":127,"props":6131,"children":6132},{"style":270},[6133],{"type":55,"value":2734},{"type":49,"tag":127,"props":6135,"children":6136},{"class":129,"line":958},[6137,6141,6145,6149,6153,6157,6161,6165,6169,6173,6177,6181,6185,6189,6193,6197,6201,6205,6209,6213,6217,6221,6225,6229,6233,6237,6241,6245],{"type":49,"tag":127,"props":6138,"children":6139},{"style":249},[6140],{"type":55,"value":69},{"type":49,"tag":127,"props":6142,"children":6143},{"style":270},[6144],{"type":55,"value":429},{"type":49,"tag":127,"props":6146,"children":6147},{"style":134},[6148],{"type":55,"value":862},{"type":49,"tag":127,"props":6150,"children":6151},{"style":270},[6152],{"type":55,"value":522},{"type":49,"tag":127,"props":6154,"children":6155},{"style":140},[6156],{"type":55,"value":2758},{"type":49,"tag":127,"props":6158,"children":6159},{"style":270},[6160],{"type":55,"value":532},{"type":49,"tag":127,"props":6162,"children":6163},{"style":270},[6164],{"type":55,"value":293},{"type":49,"tag":127,"props":6166,"children":6167},{"style":249},[6168],{"type":55,"value":2771},{"type":49,"tag":127,"props":6170,"children":6171},{"style":270},[6172],{"type":55,"value":303},{"type":49,"tag":127,"props":6174,"children":6175},{"style":270},[6176],{"type":55,"value":479},{"type":49,"tag":127,"props":6178,"children":6179},{"style":432},[6180],{"type":55,"value":2784},{"type":49,"tag":127,"props":6182,"children":6183},{"style":140},[6184],{"type":55,"value":489},{"type":49,"tag":127,"props":6186,"children":6187},{"style":270},[6188],{"type":55,"value":572},{"type":49,"tag":127,"props":6190,"children":6191},{"style":249},[6192],{"type":55,"value":2797},{"type":49,"tag":127,"props":6194,"children":6195},{"style":270},[6196],{"type":55,"value":429},{"type":49,"tag":127,"props":6198,"children":6199},{"style":134},[6200],{"type":55,"value":862},{"type":49,"tag":127,"props":6202,"children":6203},{"style":270},[6204],{"type":55,"value":522},{"type":49,"tag":127,"props":6206,"children":6207},{"style":140},[6208],{"type":55,"value":2758},{"type":49,"tag":127,"props":6210,"children":6211},{"style":270},[6212],{"type":55,"value":532},{"type":49,"tag":127,"props":6214,"children":6215},{"style":270},[6216],{"type":55,"value":293},{"type":49,"tag":127,"props":6218,"children":6219},{"style":249},[6220],{"type":55,"value":2771},{"type":49,"tag":127,"props":6222,"children":6223},{"style":270},[6224],{"type":55,"value":303},{"type":49,"tag":127,"props":6226,"children":6227},{"style":270},[6228],{"type":55,"value":479},{"type":49,"tag":127,"props":6230,"children":6231},{"style":432},[6232],{"type":55,"value":517},{"type":49,"tag":127,"props":6234,"children":6235},{"style":270},[6236],{"type":55,"value":522},{"type":49,"tag":127,"props":6238,"children":6239},{"style":140},[6240],{"type":55,"value":2846},{"type":49,"tag":127,"props":6242,"children":6243},{"style":270},[6244],{"type":55,"value":532},{"type":49,"tag":127,"props":6246,"children":6247},{"style":270},[6248],{"type":55,"value":2734},{"type":49,"tag":127,"props":6250,"children":6251},{"class":129,"line":1004},[6252,6256,6260,6264,6268,6272,6276,6280,6284,6288,6292,6296,6300,6304,6309,6313,6318,6322,6326,6330,6334,6338,6342,6346,6350,6354,6358,6362,6366,6370],{"type":49,"tag":127,"props":6253,"children":6254},{"style":270},[6255],{"type":55,"value":3438},{"type":49,"tag":127,"props":6257,"children":6258},{"style":270},[6259],{"type":55,"value":293},{"type":49,"tag":127,"props":6261,"children":6262},{"style":249},[6263],{"type":55,"value":2875},{"type":49,"tag":127,"props":6265,"children":6266},{"style":270},[6267],{"type":55,"value":303},{"type":49,"tag":127,"props":6269,"children":6270},{"style":270},[6271],{"type":55,"value":2884},{"type":49,"tag":127,"props":6273,"children":6274},{"style":270},[6275],{"type":55,"value":293},{"type":49,"tag":127,"props":6277,"children":6278},{"style":140},[6279],{"type":55,"value":1192},{"type":49,"tag":127,"props":6281,"children":6282},{"style":270},[6283],{"type":55,"value":303},{"type":49,"tag":127,"props":6285,"children":6286},{"style":270},[6287],{"type":55,"value":308},{"type":49,"tag":127,"props":6289,"children":6290},{"style":270},[6291],{"type":55,"value":313},{"type":49,"tag":127,"props":6293,"children":6294},{"style":270},[6295],{"type":55,"value":3479},{"type":49,"tag":127,"props":6297,"children":6298},{"style":134},[6299],{"type":55,"value":771},{"type":49,"tag":127,"props":6301,"children":6302},{"style":270},[6303],{"type":55,"value":293},{"type":49,"tag":127,"props":6305,"children":6306},{"style":140},[6307],{"type":55,"value":6308},"lookup failed with HTTP ",{"type":49,"tag":127,"props":6310,"children":6311},{"style":249},[6312],{"type":55,"value":2875},{"type":49,"tag":127,"props":6314,"children":6315},{"style":140},[6316],{"type":55,"value":6317}," - do not assume 'not connected':",{"type":49,"tag":127,"props":6319,"children":6320},{"style":270},[6321],{"type":55,"value":303},{"type":49,"tag":127,"props":6323,"children":6324},{"style":270},[6325],{"type":55,"value":273},{"type":49,"tag":127,"props":6327,"children":6328},{"style":134},[6329],{"type":55,"value":3513},{"type":49,"tag":127,"props":6331,"children":6332},{"style":270},[6333],{"type":55,"value":522},{"type":49,"tag":127,"props":6335,"children":6336},{"style":140},[6337],{"type":55,"value":3327},{"type":49,"tag":127,"props":6339,"children":6340},{"style":270},[6341],{"type":55,"value":532},{"type":49,"tag":127,"props":6343,"children":6344},{"style":270},[6345],{"type":55,"value":293},{"type":49,"tag":127,"props":6347,"children":6348},{"style":249},[6349],{"type":55,"value":3340},{"type":49,"tag":127,"props":6351,"children":6352},{"style":270},[6353],{"type":55,"value":303},{"type":49,"tag":127,"props":6355,"children":6356},{"style":270},[6357],{"type":55,"value":273},{"type":49,"tag":127,"props":6359,"children":6360},{"style":134},[6361],{"type":55,"value":3546},{"type":49,"tag":127,"props":6363,"children":6364},{"style":920},[6365],{"type":55,"value":3551},{"type":49,"tag":127,"props":6367,"children":6368},{"style":270},[6369],{"type":55,"value":273},{"type":49,"tag":127,"props":6371,"children":6372},{"style":270},[6373],{"type":55,"value":3560},{"type":49,"tag":127,"props":6375,"children":6376},{"class":129,"line":1054},[6377,6381,6385,6389,6393,6397,6401],{"type":49,"tag":127,"props":6378,"children":6379},{"style":134},[6380],{"type":55,"value":862},{"type":49,"tag":127,"props":6382,"children":6383},{"style":270},[6384],{"type":55,"value":522},{"type":49,"tag":127,"props":6386,"children":6387},{"style":140},[6388],{"type":55,"value":3327},{"type":49,"tag":127,"props":6390,"children":6391},{"style":270},[6392],{"type":55,"value":532},{"type":49,"tag":127,"props":6394,"children":6395},{"style":270},[6396],{"type":55,"value":293},{"type":49,"tag":127,"props":6398,"children":6399},{"style":249},[6400],{"type":55,"value":3340},{"type":49,"tag":127,"props":6402,"children":6403},{"style":270},[6404],{"type":55,"value":1001},{"type":49,"tag":58,"props":6406,"children":6407},{},[6408],{"type":55,"value":6409},"Now reconcile the two answers before doing anything:",{"type":49,"tag":1568,"props":6411,"children":6412},{},[6413,6423,6440,6540],{"type":49,"tag":1572,"props":6414,"children":6415},{},[6416,6421],{"type":49,"tag":101,"props":6417,"children":6418},{},[6419],{"type":55,"value":6420},"Not in Datadog, nothing in local state",{"type":55,"value":6422}," - a clean install. Continue.",{"type":49,"tag":1572,"props":6424,"children":6425},{},[6426,6438],{"type":49,"tag":101,"props":6427,"children":6428},{},[6429,6431,6436],{"type":55,"value":6430},"In Datadog ",{"type":49,"tag":1518,"props":6432,"children":6433},{},[6434],{"type":55,"value":6435},"and",{"type":55,"value":6437}," present in local state",{"type":55,"value":6439}," - this is the update\u002Frepair case, not a duplicate.\nContinue into the Terraform below as a change to the existing resources, and let the plan show\nwhat it will alter.",{"type":49,"tag":1572,"props":6441,"children":6442},{},[6443,6455,6457,6463,6465,6471,6473,6478,6480,6486,6488,6493,6495],{"type":49,"tag":101,"props":6444,"children":6445},{},[6446,6448,6453],{"type":55,"value":6447},"In Datadog but ",{"type":49,"tag":1518,"props":6449,"children":6450},{},[6451],{"type":55,"value":6452},"absent",{"type":55,"value":6454}," from local state",{"type":55,"value":6456}," (a service account for the host project from Phase 2 is already registered) - stop. Applying would either create a\nduplicate or fight with whatever manages it. Say so plainly and offer the options: import the existing\nobject into this project (",{"type":49,"tag":69,"props":6458,"children":6460},{"className":6459},[],[6461],{"type":55,"value":6462},"terraform import datadog_integration_gcp_sts.datadog_integration \"\u003Cintegration-uuid>\"",{"type":55,"value":6464}," - the uuid\ncomes from ",{"type":49,"tag":69,"props":6466,"children":6468},{"className":6467},[],[6469],{"type":55,"value":6470},"GET \u002Fapi\u002Fv2\u002Fintegration\u002Fgcp\u002Faccounts",{"type":55,"value":6472},", not the project id or service-account email), manage it where it is already managed, or delete it in Datadog first.\nOnly continue if the user picks one and confirms.\nTwo things about importing, in this order. ",{"type":49,"tag":101,"props":6474,"children":6475},{},[6476],{"type":55,"value":6477},"Generate the configuration first",{"type":55,"value":6479}," (the Terraform below,\nadapted to the identity that already exists - same role\u002Fapp\u002Fservice-account name), because ",{"type":49,"tag":69,"props":6481,"children":6483},{"className":6482},[],[6484],{"type":55,"value":6485},"terraform import",{"type":55,"value":6487}," binds an existing object to a ",{"type":49,"tag":1518,"props":6489,"children":6490},{},[6491],{"type":55,"value":6492},"configured",{"type":55,"value":6494}," resource address and fails without one. And importing\nthe Datadog registration alone is not enough: the cloud-side identity (the IAM role, the app registration,\nthe service account) is still outside state, so either import those too or reference them with data\nsources, or the next apply will try to create them again and collide.",{"type":49,"tag":116,"props":6496,"children":6498},{"className":118,"code":6497,"language":120,"meta":121,"style":121},"# the uuid comes from the accounts listing, not the project id or service-account email\nterraform import datadog_integration_gcp_sts.datadog_integration \"\u003Cintegration-uuid>\"\n",[6499],{"type":49,"tag":69,"props":6500,"children":6501},{"__ignoreMap":121},[6502,6510],{"type":49,"tag":127,"props":6503,"children":6504},{"class":129,"line":130},[6505],{"type":49,"tag":127,"props":6506,"children":6507},{"style":2378},[6508],{"type":55,"value":6509},"# the uuid comes from the accounts listing, not the project id or service-account email\n",{"type":49,"tag":127,"props":6511,"children":6512},{"class":129,"line":649},[6513,6517,6522,6527,6531,6536],{"type":49,"tag":127,"props":6514,"children":6515},{"style":432},[6516],{"type":55,"value":21},{"type":49,"tag":127,"props":6518,"children":6519},{"style":140},[6520],{"type":55,"value":6521}," import",{"type":49,"tag":127,"props":6523,"children":6524},{"style":140},[6525],{"type":55,"value":6526}," datadog_integration_gcp_sts.datadog_integration",{"type":49,"tag":127,"props":6528,"children":6529},{"style":270},[6530],{"type":55,"value":293},{"type":49,"tag":127,"props":6532,"children":6533},{"style":140},[6534],{"type":55,"value":6535},"\u003Cintegration-uuid>",{"type":49,"tag":127,"props":6537,"children":6538},{"style":270},[6539],{"type":55,"value":1001},{"type":49,"tag":1572,"props":6541,"children":6542},{},[6543,6554],{"type":49,"tag":101,"props":6544,"children":6545},{},[6546,6548,6552],{"type":55,"value":6547},"Present in local state but ",{"type":49,"tag":1518,"props":6549,"children":6550},{},[6551],{"type":55,"value":6452},{"type":55,"value":6553}," from Datadog",{"type":55,"value":6555}," - a partial or rolled-back install. The cloud-side\nresources may exist while the registration does not. Do not start from scratch: run the plan and let it\nshow what is missing, and expect it to re-create only the registration.",{"type":49,"tag":4612,"props":6557,"children":6559},{"id":6558},"check-for-existing-terraform",[6560],{"type":55,"value":6561},"Check for Existing Terraform",{"type":49,"tag":58,"props":6563,"children":6564},{},[6565],{"type":55,"value":6566},"Before generating a new Terraform configuration, check if the user already has a Terraform project\nin the current directory or nearby:",{"type":49,"tag":116,"props":6568,"children":6570},{"className":118,"code":6569,"language":120,"meta":121,"style":121},"find . -maxdepth 1 -type f \\( -name '*.tf' -o -name 'terraform.tfstate' \\) -print\n",[6571],{"type":49,"tag":69,"props":6572,"children":6573},{"__ignoreMap":121},[6574],{"type":49,"tag":127,"props":6575,"children":6576},{"class":129,"line":130},[6577,6581,6585,6589,6593,6597,6601,6605,6609,6613,6617,6621,6625,6629,6633,6637,6641,6645],{"type":49,"tag":127,"props":6578,"children":6579},{"style":432},[6580],{"type":55,"value":4644},{"type":49,"tag":127,"props":6582,"children":6583},{"style":140},[6584],{"type":55,"value":4649},{"type":49,"tag":127,"props":6586,"children":6587},{"style":140},[6588],{"type":55,"value":4654},{"type":49,"tag":127,"props":6590,"children":6591},{"style":920},[6592],{"type":55,"value":3551},{"type":49,"tag":127,"props":6594,"children":6595},{"style":140},[6596],{"type":55,"value":4663},{"type":49,"tag":127,"props":6598,"children":6599},{"style":140},[6600],{"type":55,"value":4668},{"type":49,"tag":127,"props":6602,"children":6603},{"style":249},[6604],{"type":55,"value":4673},{"type":49,"tag":127,"props":6606,"children":6607},{"style":140},[6608],{"type":55,"value":4678},{"type":49,"tag":127,"props":6610,"children":6611},{"style":270},[6612],{"type":55,"value":522},{"type":49,"tag":127,"props":6614,"children":6615},{"style":140},[6616],{"type":55,"value":4687},{"type":49,"tag":127,"props":6618,"children":6619},{"style":270},[6620],{"type":55,"value":532},{"type":49,"tag":127,"props":6622,"children":6623},{"style":140},[6624],{"type":55,"value":928},{"type":49,"tag":127,"props":6626,"children":6627},{"style":140},[6628],{"type":55,"value":4700},{"type":49,"tag":127,"props":6630,"children":6631},{"style":270},[6632],{"type":55,"value":522},{"type":49,"tag":127,"props":6634,"children":6635},{"style":140},[6636],{"type":55,"value":4709},{"type":49,"tag":127,"props":6638,"children":6639},{"style":270},[6640],{"type":55,"value":532},{"type":49,"tag":127,"props":6642,"children":6643},{"style":249},[6644],{"type":55,"value":4718},{"type":49,"tag":127,"props":6646,"children":6647},{"style":140},[6648],{"type":55,"value":4723},{"type":49,"tag":58,"props":6650,"children":6651},{},[6652],{"type":49,"tag":101,"props":6653,"children":6654},{},[6655,6657,6663],{"type":55,"value":6656},"If existing ",{"type":49,"tag":69,"props":6658,"children":6660},{"className":6659},[],[6661],{"type":55,"value":6662},".tf",{"type":55,"value":6664}," files are found:",{"type":49,"tag":1568,"props":6666,"children":6667},{},[6668,6673,6685,6696,6715],{"type":49,"tag":1572,"props":6669,"children":6670},{},[6671],{"type":55,"value":6672},"Read them to understand what providers and resources are already configured.",{"type":49,"tag":1572,"props":6674,"children":6675},{},[6676,6678,6683],{"type":55,"value":6677},"If a ",{"type":49,"tag":69,"props":6679,"children":6681},{"className":6680},[],[6682],{"type":55,"value":18},{"type":55,"value":6684}," provider already exists, reuse its configuration - do not create a duplicate.",{"type":49,"tag":1572,"props":6686,"children":6687},{},[6688,6689,6694],{"type":55,"value":6677},{"type":49,"tag":69,"props":6690,"children":6692},{"className":6691},[],[6693],{"type":55,"value":1718},{"type":55,"value":6695}," provider already exists, reuse it.",{"type":49,"tag":1572,"props":6697,"children":6698},{},[6699,6701,6706,6708,6713],{"type":55,"value":6700},"Only add the ",{"type":49,"tag":101,"props":6702,"children":6703},{},[6704],{"type":55,"value":6705},"new resources",{"type":55,"value":6707}," needed (service account, IAM bindings, ",{"type":49,"tag":69,"props":6709,"children":6711},{"className":6710},[],[6712],{"type":55,"value":5311},{"type":55,"value":6714},")\nto the existing project. Do not regenerate providers, variables, or terraform blocks that\nalready exist.",{"type":49,"tag":1572,"props":6716,"children":6717},{},[6718,6720,6726],{"type":55,"value":6719},"If the user has a modular layout, create a new file like ",{"type":49,"tag":69,"props":6721,"children":6723},{"className":6722},[],[6724],{"type":55,"value":6725},"datadog-gcp-integration.tf",{"type":55,"value":6727}," for the\nDatadog resources.",{"type":49,"tag":58,"props":6729,"children":6730},{},[6731,6736],{"type":49,"tag":101,"props":6732,"children":6733},{},[6734],{"type":55,"value":6735},"If no existing Terraform is found",{"type":55,"value":6737},", generate a standalone configuration.",{"type":49,"tag":58,"props":6739,"children":6740},{},[6741,6743,6748,6750,6759],{"type":55,"value":6742},"The full HCL template - providers, API enablement, the service account, the token-creator binding for\nDatadog's delegate, the project and folder role bindings, and the ",{"type":49,"tag":69,"props":6744,"children":6746},{"className":6745},[],[6747],{"type":55,"value":5311},{"type":55,"value":6749},"\nregistration - is in ",{"type":49,"tag":101,"props":6751,"children":6752},{},[6753],{"type":49,"tag":69,"props":6754,"children":6756},{"className":6755},[],[6757],{"type":55,"value":6758},"references\u002Fterraform.md",{"type":55,"value":6760},", along with the projects-only and folders-only\nvariants. Read it now and emit it with the placeholders filled in.",{"type":49,"tag":91,"props":6762,"children":6764},{"id":6763},"applying-the-terraform",[6765],{"type":55,"value":6766},"Applying the Terraform",{"type":49,"tag":6768,"props":6769,"children":6770},"ol",{},[6771,6837,6880,6919,6932,7592,8407],{"type":49,"tag":1572,"props":6772,"children":6773},{},[6774,6776,6782,6784],{"type":55,"value":6775},"Replace all ",{"type":49,"tag":69,"props":6777,"children":6779},{"className":6778},[],[6780],{"type":55,"value":6781},"\u003CPLACEHOLDER>",{"type":55,"value":6783}," values in the template with the actual values gathered:",{"type":49,"tag":1568,"props":6785,"children":6786},{},[6787,6805,6815,6826],{"type":49,"tag":1572,"props":6788,"children":6789},{},[6790,6796,6797,6803],{"type":49,"tag":69,"props":6791,"children":6793},{"className":6792},[],[6794],{"type":55,"value":6795},"\u003CUSER_FOLDER_IDS>",{"type":55,"value":1628},{"type":49,"tag":69,"props":6798,"children":6800},{"className":6799},[],[6801],{"type":55,"value":6802},"\u003CUSER_PROJECT_IDS>",{"type":55,"value":6804}," from Phase 2",{"type":49,"tag":1572,"props":6806,"children":6807},{},[6808,6814],{"type":49,"tag":69,"props":6809,"children":6811},{"className":6810},[],[6812],{"type":55,"value":6813},"\u003CHOST_PROJECT_ID>",{"type":55,"value":6804},{"type":49,"tag":1572,"props":6816,"children":6817},{},[6818,6824],{"type":49,"tag":69,"props":6819,"children":6821},{"className":6820},[],[6822],{"type":55,"value":6823},"\u003CDATADOG_PRINCIPAL_ID>",{"type":55,"value":6825}," from Phase 1",{"type":49,"tag":1572,"props":6827,"children":6828},{},[6829,6835],{"type":49,"tag":69,"props":6830,"children":6832},{"className":6831},[],[6833],{"type":55,"value":6834},"\u003CDD_SITE>",{"type":55,"value":6836}," from Phase 0",{"type":49,"tag":1572,"props":6838,"children":6839},{},[6840,6842,6847,6849,6855,6857,6863,6865,6871,6873,6879],{"type":55,"value":6841},"If the user selected only projects (no folders), remove the ",{"type":49,"tag":69,"props":6843,"children":6845},{"className":6844},[],[6846],{"type":55,"value":4381},{"type":55,"value":6848}," local, the ",{"type":49,"tag":69,"props":6850,"children":6852},{"className":6851},[],[6853],{"type":55,"value":6854},"google_projects.folder_projects",{"type":55,"value":6856}," data source, the ",{"type":49,"tag":69,"props":6858,"children":6860},{"className":6859},[],[6861],{"type":55,"value":6862},"google_folder_iam_member",{"type":55,"value":6864}," resource, and simplify ",{"type":49,"tag":69,"props":6866,"children":6868},{"className":6867},[],[6869],{"type":55,"value":6870},"all_project_ids",{"type":55,"value":6872}," to just ",{"type":49,"tag":69,"props":6874,"children":6876},{"className":6875},[],[6877],{"type":55,"value":6878},"local.project_ids",{"type":55,"value":89},{"type":49,"tag":1572,"props":6881,"children":6882},{},[6883,6885,6895,6897,6903,6905,6910,6912,6917],{"type":55,"value":6884},"If the user selected only folders (no explicit projects), ",{"type":49,"tag":101,"props":6886,"children":6887},{},[6888,6890],{"type":55,"value":6889},"still put the expanded descendant project\nlist from Phase 2 into ",{"type":49,"tag":69,"props":6891,"children":6893},{"className":6892},[],[6894],{"type":55,"value":4367},{"type":55,"value":6896}," - do not set it to ",{"type":49,"tag":69,"props":6898,"children":6900},{"className":6899},[],[6901],{"type":55,"value":6902},"[]",{"type":55,"value":6904},". ",{"type":49,"tag":69,"props":6906,"children":6908},{"className":6907},[],[6909],{"type":55,"value":4381},{"type":55,"value":6911}," grants IAM (and covers\nprojects created later), but API enablement is per-project, so an empty ",{"type":49,"tag":69,"props":6913,"children":6915},{"className":6914},[],[6916],{"type":55,"value":4367},{"type":55,"value":6918}," leaves every\nexisting project in those folders without the required APIs.",{"type":49,"tag":1572,"props":6920,"children":6921},{},[6922,6924,6930],{"type":55,"value":6923},"Run ",{"type":49,"tag":69,"props":6925,"children":6927},{"className":6926},[],[6928],{"type":55,"value":6929},"terraform init",{"type":55,"value":6931}," to install providers.",{"type":49,"tag":1572,"props":6933,"children":6934},{},[6935,6937,6942,6944,6949,6950,6955,6957,6962,6964,7586,7590],{"type":55,"value":6936},"Plan, and ",{"type":49,"tag":101,"props":6938,"children":6939},{},[6940],{"type":55,"value":6941},"save the plan to a file",{"type":55,"value":6943},". The Datadog provider reads ",{"type":49,"tag":69,"props":6945,"children":6947},{"className":6946},[],[6948],{"type":55,"value":206},{"type":55,"value":200},{"type":49,"tag":69,"props":6951,"children":6953},{"className":6952},[],[6954],{"type":55,"value":213},{"type":55,"value":6956},"\nstraight from the environment, so there are no root variables and no ",{"type":49,"tag":69,"props":6958,"children":6960},{"className":6959},[],[6961],{"type":55,"value":1665},{"type":55,"value":6963}," arguments - nothing secret\nends up in the plan file, in state, or on a command line:",{"type":49,"tag":116,"props":6965,"children":6967},{"className":118,"code":6966,"language":120,"meta":121,"style":121},"for f in .env.local .env; do [ -f \"$f\" ] || continue; for k in DD_SITE DD_API_KEY DD_APP_KEY; do eval \"[ -n \\\"\\${$k:-}\\\" ]\" && continue; v=$(grep -E \"^$k=\" \"$f\" | head -1 | cut -d= -f2- | sed 's\u002F^[\"'\\'']\u002F\u002F;s\u002F[\"'\\'']$\u002F\u002F'); [ -n \"$v\" ] && export \"$k=$v\"; done; done\nDD_SITE='datadoghq.com'; export DD_SITE   # \u003C- replace with the site confirmed in Phase 0.\n# Explicit assignment, not ':=': a wrong non-empty DD_SITE in .env would otherwise survive.\n: \"${DD_API_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"; : \"${DD_APP_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"\numask 077          # tighten permissions on the plan file anyway\nterraform plan -out=tfplan\n",[6968],{"type":49,"tag":69,"props":6969,"children":6970},{"__ignoreMap":121},[6971,7322,7361,7368,7551,7569],{"type":49,"tag":127,"props":6972,"children":6973},{"class":129,"line":130},[6974,6978,6982,6986,6990,6994,6998,7002,7006,7010,7014,7018,7022,7026,7030,7034,7038,7042,7046,7050,7054,7058,7062,7066,7070,7074,7078,7082,7086,7090,7094,7098,7102,7106,7110,7114,7118,7122,7126,7130,7134,7138,7142,7146,7150,7154,7158,7162,7166,7170,7174,7178,7182,7186,7190,7194,7198,7202,7206,7210,7214,7218,7222,7226,7230,7234,7238,7242,7246,7250,7254,7258,7262,7266,7270,7274,7278,7282,7286,7290,7294,7298,7302,7306,7310,7314,7318],{"type":49,"tag":127,"props":6975,"children":6976},{"style":243},[6977],{"type":55,"value":246},{"type":49,"tag":127,"props":6979,"children":6980},{"style":249},[6981],{"type":55,"value":252},{"type":49,"tag":127,"props":6983,"children":6984},{"style":243},[6985],{"type":55,"value":257},{"type":49,"tag":127,"props":6987,"children":6988},{"style":140},[6989],{"type":55,"value":262},{"type":49,"tag":127,"props":6991,"children":6992},{"style":140},[6993],{"type":55,"value":267},{"type":49,"tag":127,"props":6995,"children":6996},{"style":270},[6997],{"type":55,"value":273},{"type":49,"tag":127,"props":6999,"children":7000},{"style":243},[7001],{"type":55,"value":278},{"type":49,"tag":127,"props":7003,"children":7004},{"style":270},[7005],{"type":55,"value":283},{"type":49,"tag":127,"props":7007,"children":7008},{"style":270},[7009],{"type":55,"value":288},{"type":49,"tag":127,"props":7011,"children":7012},{"style":270},[7013],{"type":55,"value":293},{"type":49,"tag":127,"props":7015,"children":7016},{"style":249},[7017],{"type":55,"value":298},{"type":49,"tag":127,"props":7019,"children":7020},{"style":270},[7021],{"type":55,"value":303},{"type":49,"tag":127,"props":7023,"children":7024},{"style":270},[7025],{"type":55,"value":308},{"type":49,"tag":127,"props":7027,"children":7028},{"style":270},[7029],{"type":55,"value":313},{"type":49,"tag":127,"props":7031,"children":7032},{"style":243},[7033],{"type":55,"value":318},{"type":49,"tag":127,"props":7035,"children":7036},{"style":270},[7037],{"type":55,"value":273},{"type":49,"tag":127,"props":7039,"children":7040},{"style":243},[7041],{"type":55,"value":327},{"type":49,"tag":127,"props":7043,"children":7044},{"style":249},[7045],{"type":55,"value":332},{"type":49,"tag":127,"props":7047,"children":7048},{"style":243},[7049],{"type":55,"value":257},{"type":49,"tag":127,"props":7051,"children":7052},{"style":140},[7053],{"type":55,"value":341},{"type":49,"tag":127,"props":7055,"children":7056},{"style":140},[7057],{"type":55,"value":346},{"type":49,"tag":127,"props":7059,"children":7060},{"style":140},[7061],{"type":55,"value":351},{"type":49,"tag":127,"props":7063,"children":7064},{"style":270},[7065],{"type":55,"value":273},{"type":49,"tag":127,"props":7067,"children":7068},{"style":243},[7069],{"type":55,"value":278},{"type":49,"tag":127,"props":7071,"children":7072},{"style":134},[7073],{"type":55,"value":364},{"type":49,"tag":127,"props":7075,"children":7076},{"style":270},[7077],{"type":55,"value":293},{"type":49,"tag":127,"props":7079,"children":7080},{"style":140},[7081],{"type":55,"value":373},{"type":49,"tag":127,"props":7083,"children":7084},{"style":249},[7085],{"type":55,"value":378},{"type":49,"tag":127,"props":7087,"children":7088},{"style":140},[7089],{"type":55,"value":383},{"type":49,"tag":127,"props":7091,"children":7092},{"style":249},[7093],{"type":55,"value":388},{"type":49,"tag":127,"props":7095,"children":7096},{"style":140},[7097],{"type":55,"value":393},{"type":49,"tag":127,"props":7099,"children":7100},{"style":249},[7101],{"type":55,"value":398},{"type":49,"tag":127,"props":7103,"children":7104},{"style":140},[7105],{"type":55,"value":308},{"type":49,"tag":127,"props":7107,"children":7108},{"style":270},[7109],{"type":55,"value":303},{"type":49,"tag":127,"props":7111,"children":7112},{"style":270},[7113],{"type":55,"value":411},{"type":49,"tag":127,"props":7115,"children":7116},{"style":243},[7117],{"type":55,"value":318},{"type":49,"tag":127,"props":7119,"children":7120},{"style":270},[7121],{"type":55,"value":273},{"type":49,"tag":127,"props":7123,"children":7124},{"style":249},[7125],{"type":55,"value":424},{"type":49,"tag":127,"props":7127,"children":7128},{"style":270},[7129],{"type":55,"value":429},{"type":49,"tag":127,"props":7131,"children":7132},{"style":432},[7133],{"type":55,"value":435},{"type":49,"tag":127,"props":7135,"children":7136},{"style":140},[7137],{"type":55,"value":440},{"type":49,"tag":127,"props":7139,"children":7140},{"style":270},[7141],{"type":55,"value":293},{"type":49,"tag":127,"props":7143,"children":7144},{"style":140},[7145],{"type":55,"value":449},{"type":49,"tag":127,"props":7147,"children":7148},{"style":249},[7149],{"type":55,"value":388},{"type":49,"tag":127,"props":7151,"children":7152},{"style":140},[7153],{"type":55,"value":458},{"type":49,"tag":127,"props":7155,"children":7156},{"style":270},[7157],{"type":55,"value":303},{"type":49,"tag":127,"props":7159,"children":7160},{"style":270},[7161],{"type":55,"value":293},{"type":49,"tag":127,"props":7163,"children":7164},{"style":249},[7165],{"type":55,"value":298},{"type":49,"tag":127,"props":7167,"children":7168},{"style":270},[7169],{"type":55,"value":303},{"type":49,"tag":127,"props":7171,"children":7172},{"style":270},[7173],{"type":55,"value":479},{"type":49,"tag":127,"props":7175,"children":7176},{"style":432},[7177],{"type":55,"value":484},{"type":49,"tag":127,"props":7179,"children":7180},{"style":140},[7181],{"type":55,"value":489},{"type":49,"tag":127,"props":7183,"children":7184},{"style":270},[7185],{"type":55,"value":479},{"type":49,"tag":127,"props":7187,"children":7188},{"style":432},[7189],{"type":55,"value":498},{"type":49,"tag":127,"props":7191,"children":7192},{"style":140},[7193],{"type":55,"value":503},{"type":49,"tag":127,"props":7195,"children":7196},{"style":140},[7197],{"type":55,"value":508},{"type":49,"tag":127,"props":7199,"children":7200},{"style":270},[7201],{"type":55,"value":479},{"type":49,"tag":127,"props":7203,"children":7204},{"style":432},[7205],{"type":55,"value":517},{"type":49,"tag":127,"props":7207,"children":7208},{"style":270},[7209],{"type":55,"value":522},{"type":49,"tag":127,"props":7211,"children":7212},{"style":140},[7213],{"type":55,"value":527},{"type":49,"tag":127,"props":7215,"children":7216},{"style":270},[7217],{"type":55,"value":532},{"type":49,"tag":127,"props":7219,"children":7220},{"style":249},[7221],{"type":55,"value":537},{"type":49,"tag":127,"props":7223,"children":7224},{"style":270},[7225],{"type":55,"value":532},{"type":49,"tag":127,"props":7227,"children":7228},{"style":140},[7229],{"type":55,"value":546},{"type":49,"tag":127,"props":7231,"children":7232},{"style":270},[7233],{"type":55,"value":532},{"type":49,"tag":127,"props":7235,"children":7236},{"style":249},[7237],{"type":55,"value":537},{"type":49,"tag":127,"props":7239,"children":7240},{"style":270},[7241],{"type":55,"value":532},{"type":49,"tag":127,"props":7243,"children":7244},{"style":140},[7245],{"type":55,"value":563},{"type":49,"tag":127,"props":7247,"children":7248},{"style":270},[7249],{"type":55,"value":532},{"type":49,"tag":127,"props":7251,"children":7252},{"style":270},[7253],{"type":55,"value":572},{"type":49,"tag":127,"props":7255,"children":7256},{"style":270},[7257],{"type":55,"value":283},{"type":49,"tag":127,"props":7259,"children":7260},{"style":270},[7261],{"type":55,"value":581},{"type":49,"tag":127,"props":7263,"children":7264},{"style":270},[7265],{"type":55,"value":293},{"type":49,"tag":127,"props":7267,"children":7268},{"style":249},[7269],{"type":55,"value":590},{"type":49,"tag":127,"props":7271,"children":7272},{"style":270},[7273],{"type":55,"value":303},{"type":49,"tag":127,"props":7275,"children":7276},{"style":270},[7277],{"type":55,"value":308},{"type":49,"tag":127,"props":7279,"children":7280},{"style":270},[7281],{"type":55,"value":411},{"type":49,"tag":127,"props":7283,"children":7284},{"style":605},[7285],{"type":55,"value":608},{"type":49,"tag":127,"props":7287,"children":7288},{"style":270},[7289],{"type":55,"value":293},{"type":49,"tag":127,"props":7291,"children":7292},{"style":249},[7293],{"type":55,"value":388},{"type":49,"tag":127,"props":7295,"children":7296},{"style":140},[7297],{"type":55,"value":458},{"type":49,"tag":127,"props":7299,"children":7300},{"style":249},[7301],{"type":55,"value":590},{"type":49,"tag":127,"props":7303,"children":7304},{"style":270},[7305],{"type":55,"value":303},{"type":49,"tag":127,"props":7307,"children":7308},{"style":270},[7309],{"type":55,"value":273},{"type":49,"tag":127,"props":7311,"children":7312},{"style":243},[7313],{"type":55,"value":637},{"type":49,"tag":127,"props":7315,"children":7316},{"style":270},[7317],{"type":55,"value":273},{"type":49,"tag":127,"props":7319,"children":7320},{"style":243},[7321],{"type":55,"value":646},{"type":49,"tag":127,"props":7323,"children":7324},{"class":129,"line":649},[7325,7329,7333,7337,7341,7345,7349,7353,7357],{"type":49,"tag":127,"props":7326,"children":7327},{"style":249},[7328],{"type":55,"value":198},{"type":49,"tag":127,"props":7330,"children":7331},{"style":270},[7332],{"type":55,"value":458},{"type":49,"tag":127,"props":7334,"children":7335},{"style":270},[7336],{"type":55,"value":532},{"type":49,"tag":127,"props":7338,"children":7339},{"style":140},[7340],{"type":55,"value":2358},{"type":49,"tag":127,"props":7342,"children":7343},{"style":270},[7344],{"type":55,"value":532},{"type":49,"tag":127,"props":7346,"children":7347},{"style":270},[7348],{"type":55,"value":273},{"type":49,"tag":127,"props":7350,"children":7351},{"style":605},[7352],{"type":55,"value":608},{"type":49,"tag":127,"props":7354,"children":7355},{"style":249},[7356],{"type":55,"value":2375},{"type":49,"tag":127,"props":7358,"children":7359},{"style":2378},[7360],{"type":55,"value":2381},{"type":49,"tag":127,"props":7362,"children":7363},{"class":129,"line":691},[7364],{"type":49,"tag":127,"props":7365,"children":7366},{"style":2378},[7367],{"type":55,"value":2389},{"type":49,"tag":127,"props":7369,"children":7370},{"class":129,"line":722},[7371,7375,7379,7383,7387,7391,7395,7399,7403,7407,7411,7415,7419,7423,7427,7431,7435,7439,7443,7447,7451,7455,7459,7463,7467,7471,7475,7479,7483,7487,7491,7495,7499,7503,7507,7511,7515,7519,7523,7527,7531,7535,7539,7543,7547],{"type":49,"tag":127,"props":7372,"children":7373},{"style":134},[7374],{"type":55,"value":655},{"type":49,"tag":127,"props":7376,"children":7377},{"style":270},[7378],{"type":55,"value":660},{"type":49,"tag":127,"props":7380,"children":7381},{"style":249},[7382],{"type":55,"value":206},{"type":49,"tag":127,"props":7384,"children":7385},{"style":270},[7386],{"type":55,"value":1544},{"type":49,"tag":127,"props":7388,"children":7389},{"style":249},[7390],{"type":55,"value":1368},{"type":49,"tag":127,"props":7392,"children":7393},{"style":249},[7394],{"type":55,"value":2417},{"type":49,"tag":127,"props":7396,"children":7397},{"style":249},[7398],{"type":55,"value":2422},{"type":49,"tag":127,"props":7400,"children":7401},{"style":249},[7402],{"type":55,"value":2427},{"type":49,"tag":127,"props":7404,"children":7405},{"style":249},[7406],{"type":55,"value":2432},{"type":49,"tag":127,"props":7408,"children":7409},{"style":140},[7410],{"type":55,"value":2437},{"type":49,"tag":127,"props":7412,"children":7413},{"style":249},[7414],{"type":55,"value":2442},{"type":49,"tag":127,"props":7416,"children":7417},{"style":249},[7418],{"type":55,"value":2447},{"type":49,"tag":127,"props":7420,"children":7421},{"style":140},[7422],{"type":55,"value":2452},{"type":49,"tag":127,"props":7424,"children":7425},{"style":249},[7426],{"type":55,"value":2457},{"type":49,"tag":127,"props":7428,"children":7429},{"style":249},[7430],{"type":55,"value":2462},{"type":49,"tag":127,"props":7432,"children":7433},{"style":249},[7434],{"type":55,"value":2467},{"type":49,"tag":127,"props":7436,"children":7437},{"style":249},[7438],{"type":55,"value":2472},{"type":49,"tag":127,"props":7440,"children":7441},{"style":140},[7442],{"type":55,"value":2437},{"type":49,"tag":127,"props":7444,"children":7445},{"style":249},[7446],{"type":55,"value":2481},{"type":49,"tag":127,"props":7448,"children":7449},{"style":249},[7450],{"type":55,"value":2447},{"type":49,"tag":127,"props":7452,"children":7453},{"style":140},[7454],{"type":55,"value":795},{"type":49,"tag":127,"props":7456,"children":7457},{"style":270},[7458],{"type":55,"value":2494},{"type":49,"tag":127,"props":7460,"children":7461},{"style":270},[7462],{"type":55,"value":273},{"type":49,"tag":127,"props":7464,"children":7465},{"style":134},[7466],{"type":55,"value":2503},{"type":49,"tag":127,"props":7468,"children":7469},{"style":270},[7470],{"type":55,"value":660},{"type":49,"tag":127,"props":7472,"children":7473},{"style":249},[7474],{"type":55,"value":213},{"type":49,"tag":127,"props":7476,"children":7477},{"style":270},[7478],{"type":55,"value":1544},{"type":49,"tag":127,"props":7480,"children":7481},{"style":249},[7482],{"type":55,"value":1368},{"type":49,"tag":127,"props":7484,"children":7485},{"style":249},[7486],{"type":55,"value":2417},{"type":49,"tag":127,"props":7488,"children":7489},{"style":249},[7490],{"type":55,"value":2422},{"type":49,"tag":127,"props":7492,"children":7493},{"style":249},[7494],{"type":55,"value":2427},{"type":49,"tag":127,"props":7496,"children":7497},{"style":249},[7498],{"type":55,"value":2432},{"type":49,"tag":127,"props":7500,"children":7501},{"style":140},[7502],{"type":55,"value":2437},{"type":49,"tag":127,"props":7504,"children":7505},{"style":249},[7506],{"type":55,"value":2442},{"type":49,"tag":127,"props":7508,"children":7509},{"style":249},[7510],{"type":55,"value":2447},{"type":49,"tag":127,"props":7512,"children":7513},{"style":140},[7514],{"type":55,"value":2452},{"type":49,"tag":127,"props":7516,"children":7517},{"style":249},[7518],{"type":55,"value":2457},{"type":49,"tag":127,"props":7520,"children":7521},{"style":249},[7522],{"type":55,"value":2462},{"type":49,"tag":127,"props":7524,"children":7525},{"style":249},[7526],{"type":55,"value":2467},{"type":49,"tag":127,"props":7528,"children":7529},{"style":249},[7530],{"type":55,"value":2472},{"type":49,"tag":127,"props":7532,"children":7533},{"style":140},[7534],{"type":55,"value":2437},{"type":49,"tag":127,"props":7536,"children":7537},{"style":249},[7538],{"type":55,"value":2481},{"type":49,"tag":127,"props":7540,"children":7541},{"style":249},[7542],{"type":55,"value":2447},{"type":49,"tag":127,"props":7544,"children":7545},{"style":140},[7546],{"type":55,"value":795},{"type":49,"tag":127,"props":7548,"children":7549},{"style":270},[7550],{"type":55,"value":688},{"type":49,"tag":127,"props":7552,"children":7553},{"class":129,"line":856},[7554,7559,7564],{"type":49,"tag":127,"props":7555,"children":7556},{"style":134},[7557],{"type":55,"value":7558},"umask",{"type":49,"tag":127,"props":7560,"children":7561},{"style":920},[7562],{"type":55,"value":7563}," 077",{"type":49,"tag":127,"props":7565,"children":7566},{"style":2378},[7567],{"type":55,"value":7568},"          # tighten permissions on the plan file anyway\n",{"type":49,"tag":127,"props":7570,"children":7571},{"class":129,"line":896},[7572,7576,7581],{"type":49,"tag":127,"props":7573,"children":7574},{"style":432},[7575],{"type":55,"value":21},{"type":49,"tag":127,"props":7577,"children":7578},{"style":140},[7579],{"type":55,"value":7580}," plan",{"type":49,"tag":127,"props":7582,"children":7583},{"style":140},[7584],{"type":55,"value":7585}," -out=tfplan\n",{"type":49,"tag":7587,"props":7588,"children":7589},"br",{},[],{"type":55,"value":7591},"Show the plan output to the user and wait for explicit confirmation.",{"type":49,"tag":1572,"props":7593,"children":7594},{},[7595,7597,7602,7604,7609,7611,7617,7619,8346,8349,8350,8355,8357,8362,8364,8370,8372,8377,8379,8385,8386,8392,8394,8397,8399,8405],{"type":55,"value":7596},"Apply ",{"type":49,"tag":101,"props":7598,"children":7599},{},[7600],{"type":55,"value":7601},"that saved plan",{"type":55,"value":7603},", only after the user confirms it. Applying the file is what makes the\napproval meaningful: ",{"type":49,"tag":69,"props":7605,"children":7607},{"className":7606},[],[7608],{"type":55,"value":87},{"type":55,"value":7610}," with no plan file computes a brand-new plan, and ",{"type":49,"tag":69,"props":7612,"children":7614},{"className":7613},[],[7615],{"type":55,"value":7616},"-auto-approve",{"type":55,"value":7618},"\nwould execute it without anyone seeing it, so anything changed since the plan would go in unreviewed:",{"type":49,"tag":116,"props":7620,"children":7622},{"className":118,"code":7621,"language":120,"meta":121,"style":121},"for f in .env.local .env; do [ -f \"$f\" ] || continue; for k in DD_SITE DD_API_KEY DD_APP_KEY; do eval \"[ -n \\\"\\${$k:-}\\\" ]\" && continue; v=$(grep -E \"^$k=\" \"$f\" | head -1 | cut -d= -f2- | sed 's\u002F^[\"'\\'']\u002F\u002F;s\u002F[\"'\\'']$\u002F\u002F'); [ -n \"$v\" ] && export \"$k=$v\"; done; done\nDD_SITE='datadoghq.com'; export DD_SITE   # \u003C- replace with the site confirmed in Phase 0.\n# Explicit assignment, not ':=': a wrong non-empty DD_SITE in .env would otherwise survive.\n: \"${DD_API_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"; : \"${DD_APP_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"\ntrap 'rm -f tfplan' EXIT HUP INT TERM   # the plan file goes away even if this is interrupted\nif terraform apply tfplan; then\n  echo \"apply complete\"\nelse\n  echo \"terraform apply FAILED - do NOT verify or report success\"\n  exit 1\nfi\n",[7623],{"type":49,"tag":69,"props":7624,"children":7625},{"__ignoreMap":121},[7626,7977,8016,8023,8206,8252,8281,8301,8308,8328,8339],{"type":49,"tag":127,"props":7627,"children":7628},{"class":129,"line":130},[7629,7633,7637,7641,7645,7649,7653,7657,7661,7665,7669,7673,7677,7681,7685,7689,7693,7697,7701,7705,7709,7713,7717,7721,7725,7729,7733,7737,7741,7745,7749,7753,7757,7761,7765,7769,7773,7777,7781,7785,7789,7793,7797,7801,7805,7809,7813,7817,7821,7825,7829,7833,7837,7841,7845,7849,7853,7857,7861,7865,7869,7873,7877,7881,7885,7889,7893,7897,7901,7905,7909,7913,7917,7921,7925,7929,7933,7937,7941,7945,7949,7953,7957,7961,7965,7969,7973],{"type":49,"tag":127,"props":7630,"children":7631},{"style":243},[7632],{"type":55,"value":246},{"type":49,"tag":127,"props":7634,"children":7635},{"style":249},[7636],{"type":55,"value":252},{"type":49,"tag":127,"props":7638,"children":7639},{"style":243},[7640],{"type":55,"value":257},{"type":49,"tag":127,"props":7642,"children":7643},{"style":140},[7644],{"type":55,"value":262},{"type":49,"tag":127,"props":7646,"children":7647},{"style":140},[7648],{"type":55,"value":267},{"type":49,"tag":127,"props":7650,"children":7651},{"style":270},[7652],{"type":55,"value":273},{"type":49,"tag":127,"props":7654,"children":7655},{"style":243},[7656],{"type":55,"value":278},{"type":49,"tag":127,"props":7658,"children":7659},{"style":270},[7660],{"type":55,"value":283},{"type":49,"tag":127,"props":7662,"children":7663},{"style":270},[7664],{"type":55,"value":288},{"type":49,"tag":127,"props":7666,"children":7667},{"style":270},[7668],{"type":55,"value":293},{"type":49,"tag":127,"props":7670,"children":7671},{"style":249},[7672],{"type":55,"value":298},{"type":49,"tag":127,"props":7674,"children":7675},{"style":270},[7676],{"type":55,"value":303},{"type":49,"tag":127,"props":7678,"children":7679},{"style":270},[7680],{"type":55,"value":308},{"type":49,"tag":127,"props":7682,"children":7683},{"style":270},[7684],{"type":55,"value":313},{"type":49,"tag":127,"props":7686,"children":7687},{"style":243},[7688],{"type":55,"value":318},{"type":49,"tag":127,"props":7690,"children":7691},{"style":270},[7692],{"type":55,"value":273},{"type":49,"tag":127,"props":7694,"children":7695},{"style":243},[7696],{"type":55,"value":327},{"type":49,"tag":127,"props":7698,"children":7699},{"style":249},[7700],{"type":55,"value":332},{"type":49,"tag":127,"props":7702,"children":7703},{"style":243},[7704],{"type":55,"value":257},{"type":49,"tag":127,"props":7706,"children":7707},{"style":140},[7708],{"type":55,"value":341},{"type":49,"tag":127,"props":7710,"children":7711},{"style":140},[7712],{"type":55,"value":346},{"type":49,"tag":127,"props":7714,"children":7715},{"style":140},[7716],{"type":55,"value":351},{"type":49,"tag":127,"props":7718,"children":7719},{"style":270},[7720],{"type":55,"value":273},{"type":49,"tag":127,"props":7722,"children":7723},{"style":243},[7724],{"type":55,"value":278},{"type":49,"tag":127,"props":7726,"children":7727},{"style":134},[7728],{"type":55,"value":364},{"type":49,"tag":127,"props":7730,"children":7731},{"style":270},[7732],{"type":55,"value":293},{"type":49,"tag":127,"props":7734,"children":7735},{"style":140},[7736],{"type":55,"value":373},{"type":49,"tag":127,"props":7738,"children":7739},{"style":249},[7740],{"type":55,"value":378},{"type":49,"tag":127,"props":7742,"children":7743},{"style":140},[7744],{"type":55,"value":383},{"type":49,"tag":127,"props":7746,"children":7747},{"style":249},[7748],{"type":55,"value":388},{"type":49,"tag":127,"props":7750,"children":7751},{"style":140},[7752],{"type":55,"value":393},{"type":49,"tag":127,"props":7754,"children":7755},{"style":249},[7756],{"type":55,"value":398},{"type":49,"tag":127,"props":7758,"children":7759},{"style":140},[7760],{"type":55,"value":308},{"type":49,"tag":127,"props":7762,"children":7763},{"style":270},[7764],{"type":55,"value":303},{"type":49,"tag":127,"props":7766,"children":7767},{"style":270},[7768],{"type":55,"value":411},{"type":49,"tag":127,"props":7770,"children":7771},{"style":243},[7772],{"type":55,"value":318},{"type":49,"tag":127,"props":7774,"children":7775},{"style":270},[7776],{"type":55,"value":273},{"type":49,"tag":127,"props":7778,"children":7779},{"style":249},[7780],{"type":55,"value":424},{"type":49,"tag":127,"props":7782,"children":7783},{"style":270},[7784],{"type":55,"value":429},{"type":49,"tag":127,"props":7786,"children":7787},{"style":432},[7788],{"type":55,"value":435},{"type":49,"tag":127,"props":7790,"children":7791},{"style":140},[7792],{"type":55,"value":440},{"type":49,"tag":127,"props":7794,"children":7795},{"style":270},[7796],{"type":55,"value":293},{"type":49,"tag":127,"props":7798,"children":7799},{"style":140},[7800],{"type":55,"value":449},{"type":49,"tag":127,"props":7802,"children":7803},{"style":249},[7804],{"type":55,"value":388},{"type":49,"tag":127,"props":7806,"children":7807},{"style":140},[7808],{"type":55,"value":458},{"type":49,"tag":127,"props":7810,"children":7811},{"style":270},[7812],{"type":55,"value":303},{"type":49,"tag":127,"props":7814,"children":7815},{"style":270},[7816],{"type":55,"value":293},{"type":49,"tag":127,"props":7818,"children":7819},{"style":249},[7820],{"type":55,"value":298},{"type":49,"tag":127,"props":7822,"children":7823},{"style":270},[7824],{"type":55,"value":303},{"type":49,"tag":127,"props":7826,"children":7827},{"style":270},[7828],{"type":55,"value":479},{"type":49,"tag":127,"props":7830,"children":7831},{"style":432},[7832],{"type":55,"value":484},{"type":49,"tag":127,"props":7834,"children":7835},{"style":140},[7836],{"type":55,"value":489},{"type":49,"tag":127,"props":7838,"children":7839},{"style":270},[7840],{"type":55,"value":479},{"type":49,"tag":127,"props":7842,"children":7843},{"style":432},[7844],{"type":55,"value":498},{"type":49,"tag":127,"props":7846,"children":7847},{"style":140},[7848],{"type":55,"value":503},{"type":49,"tag":127,"props":7850,"children":7851},{"style":140},[7852],{"type":55,"value":508},{"type":49,"tag":127,"props":7854,"children":7855},{"style":270},[7856],{"type":55,"value":479},{"type":49,"tag":127,"props":7858,"children":7859},{"style":432},[7860],{"type":55,"value":517},{"type":49,"tag":127,"props":7862,"children":7863},{"style":270},[7864],{"type":55,"value":522},{"type":49,"tag":127,"props":7866,"children":7867},{"style":140},[7868],{"type":55,"value":527},{"type":49,"tag":127,"props":7870,"children":7871},{"style":270},[7872],{"type":55,"value":532},{"type":49,"tag":127,"props":7874,"children":7875},{"style":249},[7876],{"type":55,"value":537},{"type":49,"tag":127,"props":7878,"children":7879},{"style":270},[7880],{"type":55,"value":532},{"type":49,"tag":127,"props":7882,"children":7883},{"style":140},[7884],{"type":55,"value":546},{"type":49,"tag":127,"props":7886,"children":7887},{"style":270},[7888],{"type":55,"value":532},{"type":49,"tag":127,"props":7890,"children":7891},{"style":249},[7892],{"type":55,"value":537},{"type":49,"tag":127,"props":7894,"children":7895},{"style":270},[7896],{"type":55,"value":532},{"type":49,"tag":127,"props":7898,"children":7899},{"style":140},[7900],{"type":55,"value":563},{"type":49,"tag":127,"props":7902,"children":7903},{"style":270},[7904],{"type":55,"value":532},{"type":49,"tag":127,"props":7906,"children":7907},{"style":270},[7908],{"type":55,"value":572},{"type":49,"tag":127,"props":7910,"children":7911},{"style":270},[7912],{"type":55,"value":283},{"type":49,"tag":127,"props":7914,"children":7915},{"style":270},[7916],{"type":55,"value":581},{"type":49,"tag":127,"props":7918,"children":7919},{"style":270},[7920],{"type":55,"value":293},{"type":49,"tag":127,"props":7922,"children":7923},{"style":249},[7924],{"type":55,"value":590},{"type":49,"tag":127,"props":7926,"children":7927},{"style":270},[7928],{"type":55,"value":303},{"type":49,"tag":127,"props":7930,"children":7931},{"style":270},[7932],{"type":55,"value":308},{"type":49,"tag":127,"props":7934,"children":7935},{"style":270},[7936],{"type":55,"value":411},{"type":49,"tag":127,"props":7938,"children":7939},{"style":605},[7940],{"type":55,"value":608},{"type":49,"tag":127,"props":7942,"children":7943},{"style":270},[7944],{"type":55,"value":293},{"type":49,"tag":127,"props":7946,"children":7947},{"style":249},[7948],{"type":55,"value":388},{"type":49,"tag":127,"props":7950,"children":7951},{"style":140},[7952],{"type":55,"value":458},{"type":49,"tag":127,"props":7954,"children":7955},{"style":249},[7956],{"type":55,"value":590},{"type":49,"tag":127,"props":7958,"children":7959},{"style":270},[7960],{"type":55,"value":303},{"type":49,"tag":127,"props":7962,"children":7963},{"style":270},[7964],{"type":55,"value":273},{"type":49,"tag":127,"props":7966,"children":7967},{"style":243},[7968],{"type":55,"value":637},{"type":49,"tag":127,"props":7970,"children":7971},{"style":270},[7972],{"type":55,"value":273},{"type":49,"tag":127,"props":7974,"children":7975},{"style":243},[7976],{"type":55,"value":646},{"type":49,"tag":127,"props":7978,"children":7979},{"class":129,"line":649},[7980,7984,7988,7992,7996,8000,8004,8008,8012],{"type":49,"tag":127,"props":7981,"children":7982},{"style":249},[7983],{"type":55,"value":198},{"type":49,"tag":127,"props":7985,"children":7986},{"style":270},[7987],{"type":55,"value":458},{"type":49,"tag":127,"props":7989,"children":7990},{"style":270},[7991],{"type":55,"value":532},{"type":49,"tag":127,"props":7993,"children":7994},{"style":140},[7995],{"type":55,"value":2358},{"type":49,"tag":127,"props":7997,"children":7998},{"style":270},[7999],{"type":55,"value":532},{"type":49,"tag":127,"props":8001,"children":8002},{"style":270},[8003],{"type":55,"value":273},{"type":49,"tag":127,"props":8005,"children":8006},{"style":605},[8007],{"type":55,"value":608},{"type":49,"tag":127,"props":8009,"children":8010},{"style":249},[8011],{"type":55,"value":2375},{"type":49,"tag":127,"props":8013,"children":8014},{"style":2378},[8015],{"type":55,"value":2381},{"type":49,"tag":127,"props":8017,"children":8018},{"class":129,"line":691},[8019],{"type":49,"tag":127,"props":8020,"children":8021},{"style":2378},[8022],{"type":55,"value":2389},{"type":49,"tag":127,"props":8024,"children":8025},{"class":129,"line":722},[8026,8030,8034,8038,8042,8046,8050,8054,8058,8062,8066,8070,8074,8078,8082,8086,8090,8094,8098,8102,8106,8110,8114,8118,8122,8126,8130,8134,8138,8142,8146,8150,8154,8158,8162,8166,8170,8174,8178,8182,8186,8190,8194,8198,8202],{"type":49,"tag":127,"props":8027,"children":8028},{"style":134},[8029],{"type":55,"value":655},{"type":49,"tag":127,"props":8031,"children":8032},{"style":270},[8033],{"type":55,"value":660},{"type":49,"tag":127,"props":8035,"children":8036},{"style":249},[8037],{"type":55,"value":206},{"type":49,"tag":127,"props":8039,"children":8040},{"style":270},[8041],{"type":55,"value":1544},{"type":49,"tag":127,"props":8043,"children":8044},{"style":249},[8045],{"type":55,"value":1368},{"type":49,"tag":127,"props":8047,"children":8048},{"style":249},[8049],{"type":55,"value":2417},{"type":49,"tag":127,"props":8051,"children":8052},{"style":249},[8053],{"type":55,"value":2422},{"type":49,"tag":127,"props":8055,"children":8056},{"style":249},[8057],{"type":55,"value":2427},{"type":49,"tag":127,"props":8059,"children":8060},{"style":249},[8061],{"type":55,"value":2432},{"type":49,"tag":127,"props":8063,"children":8064},{"style":140},[8065],{"type":55,"value":2437},{"type":49,"tag":127,"props":8067,"children":8068},{"style":249},[8069],{"type":55,"value":2442},{"type":49,"tag":127,"props":8071,"children":8072},{"style":249},[8073],{"type":55,"value":2447},{"type":49,"tag":127,"props":8075,"children":8076},{"style":140},[8077],{"type":55,"value":2452},{"type":49,"tag":127,"props":8079,"children":8080},{"style":249},[8081],{"type":55,"value":2457},{"type":49,"tag":127,"props":8083,"children":8084},{"style":249},[8085],{"type":55,"value":2462},{"type":49,"tag":127,"props":8087,"children":8088},{"style":249},[8089],{"type":55,"value":2467},{"type":49,"tag":127,"props":8091,"children":8092},{"style":249},[8093],{"type":55,"value":2472},{"type":49,"tag":127,"props":8095,"children":8096},{"style":140},[8097],{"type":55,"value":2437},{"type":49,"tag":127,"props":8099,"children":8100},{"style":249},[8101],{"type":55,"value":2481},{"type":49,"tag":127,"props":8103,"children":8104},{"style":249},[8105],{"type":55,"value":2447},{"type":49,"tag":127,"props":8107,"children":8108},{"style":140},[8109],{"type":55,"value":795},{"type":49,"tag":127,"props":8111,"children":8112},{"style":270},[8113],{"type":55,"value":2494},{"type":49,"tag":127,"props":8115,"children":8116},{"style":270},[8117],{"type":55,"value":273},{"type":49,"tag":127,"props":8119,"children":8120},{"style":134},[8121],{"type":55,"value":2503},{"type":49,"tag":127,"props":8123,"children":8124},{"style":270},[8125],{"type":55,"value":660},{"type":49,"tag":127,"props":8127,"children":8128},{"style":249},[8129],{"type":55,"value":213},{"type":49,"tag":127,"props":8131,"children":8132},{"style":270},[8133],{"type":55,"value":1544},{"type":49,"tag":127,"props":8135,"children":8136},{"style":249},[8137],{"type":55,"value":1368},{"type":49,"tag":127,"props":8139,"children":8140},{"style":249},[8141],{"type":55,"value":2417},{"type":49,"tag":127,"props":8143,"children":8144},{"style":249},[8145],{"type":55,"value":2422},{"type":49,"tag":127,"props":8147,"children":8148},{"style":249},[8149],{"type":55,"value":2427},{"type":49,"tag":127,"props":8151,"children":8152},{"style":249},[8153],{"type":55,"value":2432},{"type":49,"tag":127,"props":8155,"children":8156},{"style":140},[8157],{"type":55,"value":2437},{"type":49,"tag":127,"props":8159,"children":8160},{"style":249},[8161],{"type":55,"value":2442},{"type":49,"tag":127,"props":8163,"children":8164},{"style":249},[8165],{"type":55,"value":2447},{"type":49,"tag":127,"props":8167,"children":8168},{"style":140},[8169],{"type":55,"value":2452},{"type":49,"tag":127,"props":8171,"children":8172},{"style":249},[8173],{"type":55,"value":2457},{"type":49,"tag":127,"props":8175,"children":8176},{"style":249},[8177],{"type":55,"value":2462},{"type":49,"tag":127,"props":8179,"children":8180},{"style":249},[8181],{"type":55,"value":2467},{"type":49,"tag":127,"props":8183,"children":8184},{"style":249},[8185],{"type":55,"value":2472},{"type":49,"tag":127,"props":8187,"children":8188},{"style":140},[8189],{"type":55,"value":2437},{"type":49,"tag":127,"props":8191,"children":8192},{"style":249},[8193],{"type":55,"value":2481},{"type":49,"tag":127,"props":8195,"children":8196},{"style":249},[8197],{"type":55,"value":2447},{"type":49,"tag":127,"props":8199,"children":8200},{"style":140},[8201],{"type":55,"value":795},{"type":49,"tag":127,"props":8203,"children":8204},{"style":270},[8205],{"type":55,"value":688},{"type":49,"tag":127,"props":8207,"children":8208},{"class":129,"line":856},[8209,8214,8218,8223,8227,8232,8237,8242,8247],{"type":49,"tag":127,"props":8210,"children":8211},{"style":134},[8212],{"type":55,"value":8213},"trap",{"type":49,"tag":127,"props":8215,"children":8216},{"style":270},[8217],{"type":55,"value":522},{"type":49,"tag":127,"props":8219,"children":8220},{"style":140},[8221],{"type":55,"value":8222},"rm -f tfplan",{"type":49,"tag":127,"props":8224,"children":8225},{"style":270},[8226],{"type":55,"value":532},{"type":49,"tag":127,"props":8228,"children":8229},{"style":140},[8230],{"type":55,"value":8231}," EXIT",{"type":49,"tag":127,"props":8233,"children":8234},{"style":140},[8235],{"type":55,"value":8236}," HUP",{"type":49,"tag":127,"props":8238,"children":8239},{"style":140},[8240],{"type":55,"value":8241}," INT",{"type":49,"tag":127,"props":8243,"children":8244},{"style":140},[8245],{"type":55,"value":8246}," TERM",{"type":49,"tag":127,"props":8248,"children":8249},{"style":2378},[8250],{"type":55,"value":8251},"   # the plan file goes away even if this is interrupted\n",{"type":49,"tag":127,"props":8253,"children":8254},{"class":129,"line":896},[8255,8259,8263,8268,8273,8277],{"type":49,"tag":127,"props":8256,"children":8257},{"style":243},[8258],{"type":55,"value":2862},{"type":49,"tag":127,"props":8260,"children":8261},{"style":432},[8262],{"type":55,"value":148},{"type":49,"tag":127,"props":8264,"children":8265},{"style":140},[8266],{"type":55,"value":8267}," apply",{"type":49,"tag":127,"props":8269,"children":8270},{"style":140},[8271],{"type":55,"value":8272}," tfplan",{"type":49,"tag":127,"props":8274,"children":8275},{"style":270},[8276],{"type":55,"value":273},{"type":49,"tag":127,"props":8278,"children":8279},{"style":243},[8280],{"type":55,"value":2907},{"type":49,"tag":127,"props":8282,"children":8283},{"class":129,"line":958},[8284,8288,8292,8297],{"type":49,"tag":127,"props":8285,"children":8286},{"style":134},[8287],{"type":55,"value":2915},{"type":49,"tag":127,"props":8289,"children":8290},{"style":270},[8291],{"type":55,"value":293},{"type":49,"tag":127,"props":8293,"children":8294},{"style":140},[8295],{"type":55,"value":8296},"apply complete",{"type":49,"tag":127,"props":8298,"children":8299},{"style":270},[8300],{"type":55,"value":1001},{"type":49,"tag":127,"props":8302,"children":8303},{"class":129,"line":1004},[8304],{"type":49,"tag":127,"props":8305,"children":8306},{"style":243},[8307],{"type":55,"value":5352},{"type":49,"tag":127,"props":8309,"children":8310},{"class":129,"line":1054},[8311,8315,8319,8324],{"type":49,"tag":127,"props":8312,"children":8313},{"style":134},[8314],{"type":55,"value":2915},{"type":49,"tag":127,"props":8316,"children":8317},{"style":270},[8318],{"type":55,"value":293},{"type":49,"tag":127,"props":8320,"children":8321},{"style":140},[8322],{"type":55,"value":8323},"terraform apply FAILED - do NOT verify or report success",{"type":49,"tag":127,"props":8325,"children":8326},{"style":270},[8327],{"type":55,"value":1001},{"type":49,"tag":127,"props":8329,"children":8330},{"class":129,"line":1107},[8331,8335],{"type":49,"tag":127,"props":8332,"children":8333},{"style":134},[8334],{"type":55,"value":3415},{"type":49,"tag":127,"props":8336,"children":8337},{"style":920},[8338],{"type":55,"value":3420},{"type":49,"tag":127,"props":8340,"children":8341},{"class":129,"line":2931},[8342],{"type":49,"tag":127,"props":8343,"children":8344},{"style":243},[8345],{"type":55,"value":3429},{"type":49,"tag":7587,"props":8347,"children":8348},{},[],{"type":55,"value":1227},{"type":49,"tag":69,"props":8351,"children":8353},{"className":8352},[],[8354],{"type":55,"value":8213},{"type":55,"value":8356}," removes the plan file on every exit path, including Ctrl-C while the user is deciding. The\n",{"type":49,"tag":69,"props":8358,"children":8360},{"className":8359},[],[8361],{"type":55,"value":2862},{"type":55,"value":8363},"\u002F",{"type":49,"tag":69,"props":8365,"children":8367},{"className":8366},[],[8368],{"type":55,"value":8369},"else",{"type":55,"value":8371}," around the apply matters because a cleanup command as the block's last line would make a\nfailed apply exit 0, and the agent would go on to \"verify\" a deployment that never happened. (It is an\n",{"type":49,"tag":69,"props":8373,"children":8375},{"className":8374},[],[8376],{"type":55,"value":2862},{"type":55,"value":8378}," rather than ",{"type":49,"tag":69,"props":8380,"children":8382},{"className":8381},[],[8383],{"type":55,"value":8384},"status=$?",{"type":55,"value":1509},{"type":49,"tag":69,"props":8387,"children":8389},{"className":8388},[],[8390],{"type":55,"value":8391},"status",{"type":55,"value":8393}," is a read-only variable in zsh.)",{"type":49,"tag":7587,"props":8395,"children":8396},{},[],{"type":55,"value":8398},"The plan file holds no key material at all, because the keys never become Terraform values - the provider\nreads them from the environment. That is what makes ",{"type":49,"tag":69,"props":8400,"children":8402},{"className":8401},[],[8403],{"type":55,"value":8404},"-out",{"type":55,"value":8406}," safe here, on any Terraform version, and it is\nwhy an existing project needs no variable changes either.",{"type":49,"tag":1572,"props":8408,"children":8409},{},[8410,8412,8417,8419,9408,9411],{"type":55,"value":8411},"After ",{"type":49,"tag":69,"props":8413,"children":8415},{"className":8414},[],[8416],{"type":55,"value":87},{"type":55,"value":8418}," succeeds, verify the integration registered with Datadog:",{"type":49,"tag":116,"props":8420,"children":8421},{"className":118,"code":5414,"language":120,"meta":121,"style":121},[8422],{"type":49,"tag":69,"props":8423,"children":8424},{"__ignoreMap":121},[8425,8776,8815,8822,9005,9060,9139,9254,9377],{"type":49,"tag":127,"props":8426,"children":8427},{"class":129,"line":130},[8428,8432,8436,8440,8444,8448,8452,8456,8460,8464,8468,8472,8476,8480,8484,8488,8492,8496,8500,8504,8508,8512,8516,8520,8524,8528,8532,8536,8540,8544,8548,8552,8556,8560,8564,8568,8572,8576,8580,8584,8588,8592,8596,8600,8604,8608,8612,8616,8620,8624,8628,8632,8636,8640,8644,8648,8652,8656,8660,8664,8668,8672,8676,8680,8684,8688,8692,8696,8700,8704,8708,8712,8716,8720,8724,8728,8732,8736,8740,8744,8748,8752,8756,8760,8764,8768,8772],{"type":49,"tag":127,"props":8429,"children":8430},{"style":243},[8431],{"type":55,"value":246},{"type":49,"tag":127,"props":8433,"children":8434},{"style":249},[8435],{"type":55,"value":252},{"type":49,"tag":127,"props":8437,"children":8438},{"style":243},[8439],{"type":55,"value":257},{"type":49,"tag":127,"props":8441,"children":8442},{"style":140},[8443],{"type":55,"value":262},{"type":49,"tag":127,"props":8445,"children":8446},{"style":140},[8447],{"type":55,"value":267},{"type":49,"tag":127,"props":8449,"children":8450},{"style":270},[8451],{"type":55,"value":273},{"type":49,"tag":127,"props":8453,"children":8454},{"style":243},[8455],{"type":55,"value":278},{"type":49,"tag":127,"props":8457,"children":8458},{"style":270},[8459],{"type":55,"value":283},{"type":49,"tag":127,"props":8461,"children":8462},{"style":270},[8463],{"type":55,"value":288},{"type":49,"tag":127,"props":8465,"children":8466},{"style":270},[8467],{"type":55,"value":293},{"type":49,"tag":127,"props":8469,"children":8470},{"style":249},[8471],{"type":55,"value":298},{"type":49,"tag":127,"props":8473,"children":8474},{"style":270},[8475],{"type":55,"value":303},{"type":49,"tag":127,"props":8477,"children":8478},{"style":270},[8479],{"type":55,"value":308},{"type":49,"tag":127,"props":8481,"children":8482},{"style":270},[8483],{"type":55,"value":313},{"type":49,"tag":127,"props":8485,"children":8486},{"style":243},[8487],{"type":55,"value":318},{"type":49,"tag":127,"props":8489,"children":8490},{"style":270},[8491],{"type":55,"value":273},{"type":49,"tag":127,"props":8493,"children":8494},{"style":243},[8495],{"type":55,"value":327},{"type":49,"tag":127,"props":8497,"children":8498},{"style":249},[8499],{"type":55,"value":332},{"type":49,"tag":127,"props":8501,"children":8502},{"style":243},[8503],{"type":55,"value":257},{"type":49,"tag":127,"props":8505,"children":8506},{"style":140},[8507],{"type":55,"value":341},{"type":49,"tag":127,"props":8509,"children":8510},{"style":140},[8511],{"type":55,"value":346},{"type":49,"tag":127,"props":8513,"children":8514},{"style":140},[8515],{"type":55,"value":351},{"type":49,"tag":127,"props":8517,"children":8518},{"style":270},[8519],{"type":55,"value":273},{"type":49,"tag":127,"props":8521,"children":8522},{"style":243},[8523],{"type":55,"value":278},{"type":49,"tag":127,"props":8525,"children":8526},{"style":134},[8527],{"type":55,"value":364},{"type":49,"tag":127,"props":8529,"children":8530},{"style":270},[8531],{"type":55,"value":293},{"type":49,"tag":127,"props":8533,"children":8534},{"style":140},[8535],{"type":55,"value":373},{"type":49,"tag":127,"props":8537,"children":8538},{"style":249},[8539],{"type":55,"value":378},{"type":49,"tag":127,"props":8541,"children":8542},{"style":140},[8543],{"type":55,"value":383},{"type":49,"tag":127,"props":8545,"children":8546},{"style":249},[8547],{"type":55,"value":388},{"type":49,"tag":127,"props":8549,"children":8550},{"style":140},[8551],{"type":55,"value":393},{"type":49,"tag":127,"props":8553,"children":8554},{"style":249},[8555],{"type":55,"value":398},{"type":49,"tag":127,"props":8557,"children":8558},{"style":140},[8559],{"type":55,"value":308},{"type":49,"tag":127,"props":8561,"children":8562},{"style":270},[8563],{"type":55,"value":303},{"type":49,"tag":127,"props":8565,"children":8566},{"style":270},[8567],{"type":55,"value":411},{"type":49,"tag":127,"props":8569,"children":8570},{"style":243},[8571],{"type":55,"value":318},{"type":49,"tag":127,"props":8573,"children":8574},{"style":270},[8575],{"type":55,"value":273},{"type":49,"tag":127,"props":8577,"children":8578},{"style":249},[8579],{"type":55,"value":424},{"type":49,"tag":127,"props":8581,"children":8582},{"style":270},[8583],{"type":55,"value":429},{"type":49,"tag":127,"props":8585,"children":8586},{"style":432},[8587],{"type":55,"value":435},{"type":49,"tag":127,"props":8589,"children":8590},{"style":140},[8591],{"type":55,"value":440},{"type":49,"tag":127,"props":8593,"children":8594},{"style":270},[8595],{"type":55,"value":293},{"type":49,"tag":127,"props":8597,"children":8598},{"style":140},[8599],{"type":55,"value":449},{"type":49,"tag":127,"props":8601,"children":8602},{"style":249},[8603],{"type":55,"value":388},{"type":49,"tag":127,"props":8605,"children":8606},{"style":140},[8607],{"type":55,"value":458},{"type":49,"tag":127,"props":8609,"children":8610},{"style":270},[8611],{"type":55,"value":303},{"type":49,"tag":127,"props":8613,"children":8614},{"style":270},[8615],{"type":55,"value":293},{"type":49,"tag":127,"props":8617,"children":8618},{"style":249},[8619],{"type":55,"value":298},{"type":49,"tag":127,"props":8621,"children":8622},{"style":270},[8623],{"type":55,"value":303},{"type":49,"tag":127,"props":8625,"children":8626},{"style":270},[8627],{"type":55,"value":479},{"type":49,"tag":127,"props":8629,"children":8630},{"style":432},[8631],{"type":55,"value":484},{"type":49,"tag":127,"props":8633,"children":8634},{"style":140},[8635],{"type":55,"value":489},{"type":49,"tag":127,"props":8637,"children":8638},{"style":270},[8639],{"type":55,"value":479},{"type":49,"tag":127,"props":8641,"children":8642},{"style":432},[8643],{"type":55,"value":498},{"type":49,"tag":127,"props":8645,"children":8646},{"style":140},[8647],{"type":55,"value":503},{"type":49,"tag":127,"props":8649,"children":8650},{"style":140},[8651],{"type":55,"value":508},{"type":49,"tag":127,"props":8653,"children":8654},{"style":270},[8655],{"type":55,"value":479},{"type":49,"tag":127,"props":8657,"children":8658},{"style":432},[8659],{"type":55,"value":517},{"type":49,"tag":127,"props":8661,"children":8662},{"style":270},[8663],{"type":55,"value":522},{"type":49,"tag":127,"props":8665,"children":8666},{"style":140},[8667],{"type":55,"value":527},{"type":49,"tag":127,"props":8669,"children":8670},{"style":270},[8671],{"type":55,"value":532},{"type":49,"tag":127,"props":8673,"children":8674},{"style":249},[8675],{"type":55,"value":537},{"type":49,"tag":127,"props":8677,"children":8678},{"style":270},[8679],{"type":55,"value":532},{"type":49,"tag":127,"props":8681,"children":8682},{"style":140},[8683],{"type":55,"value":546},{"type":49,"tag":127,"props":8685,"children":8686},{"style":270},[8687],{"type":55,"value":532},{"type":49,"tag":127,"props":8689,"children":8690},{"style":249},[8691],{"type":55,"value":537},{"type":49,"tag":127,"props":8693,"children":8694},{"style":270},[8695],{"type":55,"value":532},{"type":49,"tag":127,"props":8697,"children":8698},{"style":140},[8699],{"type":55,"value":563},{"type":49,"tag":127,"props":8701,"children":8702},{"style":270},[8703],{"type":55,"value":532},{"type":49,"tag":127,"props":8705,"children":8706},{"style":270},[8707],{"type":55,"value":572},{"type":49,"tag":127,"props":8709,"children":8710},{"style":270},[8711],{"type":55,"value":283},{"type":49,"tag":127,"props":8713,"children":8714},{"style":270},[8715],{"type":55,"value":581},{"type":49,"tag":127,"props":8717,"children":8718},{"style":270},[8719],{"type":55,"value":293},{"type":49,"tag":127,"props":8721,"children":8722},{"style":249},[8723],{"type":55,"value":590},{"type":49,"tag":127,"props":8725,"children":8726},{"style":270},[8727],{"type":55,"value":303},{"type":49,"tag":127,"props":8729,"children":8730},{"style":270},[8731],{"type":55,"value":308},{"type":49,"tag":127,"props":8733,"children":8734},{"style":270},[8735],{"type":55,"value":411},{"type":49,"tag":127,"props":8737,"children":8738},{"style":605},[8739],{"type":55,"value":608},{"type":49,"tag":127,"props":8741,"children":8742},{"style":270},[8743],{"type":55,"value":293},{"type":49,"tag":127,"props":8745,"children":8746},{"style":249},[8747],{"type":55,"value":388},{"type":49,"tag":127,"props":8749,"children":8750},{"style":140},[8751],{"type":55,"value":458},{"type":49,"tag":127,"props":8753,"children":8754},{"style":249},[8755],{"type":55,"value":590},{"type":49,"tag":127,"props":8757,"children":8758},{"style":270},[8759],{"type":55,"value":303},{"type":49,"tag":127,"props":8761,"children":8762},{"style":270},[8763],{"type":55,"value":273},{"type":49,"tag":127,"props":8765,"children":8766},{"style":243},[8767],{"type":55,"value":637},{"type":49,"tag":127,"props":8769,"children":8770},{"style":270},[8771],{"type":55,"value":273},{"type":49,"tag":127,"props":8773,"children":8774},{"style":243},[8775],{"type":55,"value":646},{"type":49,"tag":127,"props":8777,"children":8778},{"class":129,"line":649},[8779,8783,8787,8791,8795,8799,8803,8807,8811],{"type":49,"tag":127,"props":8780,"children":8781},{"style":249},[8782],{"type":55,"value":198},{"type":49,"tag":127,"props":8784,"children":8785},{"style":270},[8786],{"type":55,"value":458},{"type":49,"tag":127,"props":8788,"children":8789},{"style":270},[8790],{"type":55,"value":532},{"type":49,"tag":127,"props":8792,"children":8793},{"style":140},[8794],{"type":55,"value":2358},{"type":49,"tag":127,"props":8796,"children":8797},{"style":270},[8798],{"type":55,"value":532},{"type":49,"tag":127,"props":8800,"children":8801},{"style":270},[8802],{"type":55,"value":273},{"type":49,"tag":127,"props":8804,"children":8805},{"style":605},[8806],{"type":55,"value":608},{"type":49,"tag":127,"props":8808,"children":8809},{"style":249},[8810],{"type":55,"value":2375},{"type":49,"tag":127,"props":8812,"children":8813},{"style":2378},[8814],{"type":55,"value":2381},{"type":49,"tag":127,"props":8816,"children":8817},{"class":129,"line":691},[8818],{"type":49,"tag":127,"props":8819,"children":8820},{"style":2378},[8821],{"type":55,"value":2389},{"type":49,"tag":127,"props":8823,"children":8824},{"class":129,"line":722},[8825,8829,8833,8837,8841,8845,8849,8853,8857,8861,8865,8869,8873,8877,8881,8885,8889,8893,8897,8901,8905,8909,8913,8917,8921,8925,8929,8933,8937,8941,8945,8949,8953,8957,8961,8965,8969,8973,8977,8981,8985,8989,8993,8997,9001],{"type":49,"tag":127,"props":8826,"children":8827},{"style":134},[8828],{"type":55,"value":655},{"type":49,"tag":127,"props":8830,"children":8831},{"style":270},[8832],{"type":55,"value":660},{"type":49,"tag":127,"props":8834,"children":8835},{"style":249},[8836],{"type":55,"value":206},{"type":49,"tag":127,"props":8838,"children":8839},{"style":270},[8840],{"type":55,"value":1544},{"type":49,"tag":127,"props":8842,"children":8843},{"style":249},[8844],{"type":55,"value":1368},{"type":49,"tag":127,"props":8846,"children":8847},{"style":249},[8848],{"type":55,"value":2417},{"type":49,"tag":127,"props":8850,"children":8851},{"style":249},[8852],{"type":55,"value":2422},{"type":49,"tag":127,"props":8854,"children":8855},{"style":249},[8856],{"type":55,"value":2427},{"type":49,"tag":127,"props":8858,"children":8859},{"style":249},[8860],{"type":55,"value":2432},{"type":49,"tag":127,"props":8862,"children":8863},{"style":140},[8864],{"type":55,"value":2437},{"type":49,"tag":127,"props":8866,"children":8867},{"style":249},[8868],{"type":55,"value":2442},{"type":49,"tag":127,"props":8870,"children":8871},{"style":249},[8872],{"type":55,"value":2447},{"type":49,"tag":127,"props":8874,"children":8875},{"style":140},[8876],{"type":55,"value":2452},{"type":49,"tag":127,"props":8878,"children":8879},{"style":249},[8880],{"type":55,"value":2457},{"type":49,"tag":127,"props":8882,"children":8883},{"style":249},[8884],{"type":55,"value":2462},{"type":49,"tag":127,"props":8886,"children":8887},{"style":249},[8888],{"type":55,"value":2467},{"type":49,"tag":127,"props":8890,"children":8891},{"style":249},[8892],{"type":55,"value":2472},{"type":49,"tag":127,"props":8894,"children":8895},{"style":140},[8896],{"type":55,"value":2437},{"type":49,"tag":127,"props":8898,"children":8899},{"style":249},[8900],{"type":55,"value":2481},{"type":49,"tag":127,"props":8902,"children":8903},{"style":249},[8904],{"type":55,"value":2447},{"type":49,"tag":127,"props":8906,"children":8907},{"style":140},[8908],{"type":55,"value":795},{"type":49,"tag":127,"props":8910,"children":8911},{"style":270},[8912],{"type":55,"value":2494},{"type":49,"tag":127,"props":8914,"children":8915},{"style":270},[8916],{"type":55,"value":273},{"type":49,"tag":127,"props":8918,"children":8919},{"style":134},[8920],{"type":55,"value":2503},{"type":49,"tag":127,"props":8922,"children":8923},{"style":270},[8924],{"type":55,"value":660},{"type":49,"tag":127,"props":8926,"children":8927},{"style":249},[8928],{"type":55,"value":213},{"type":49,"tag":127,"props":8930,"children":8931},{"style":270},[8932],{"type":55,"value":1544},{"type":49,"tag":127,"props":8934,"children":8935},{"style":249},[8936],{"type":55,"value":1368},{"type":49,"tag":127,"props":8938,"children":8939},{"style":249},[8940],{"type":55,"value":2417},{"type":49,"tag":127,"props":8942,"children":8943},{"style":249},[8944],{"type":55,"value":2422},{"type":49,"tag":127,"props":8946,"children":8947},{"style":249},[8948],{"type":55,"value":2427},{"type":49,"tag":127,"props":8950,"children":8951},{"style":249},[8952],{"type":55,"value":2432},{"type":49,"tag":127,"props":8954,"children":8955},{"style":140},[8956],{"type":55,"value":2437},{"type":49,"tag":127,"props":8958,"children":8959},{"style":249},[8960],{"type":55,"value":2442},{"type":49,"tag":127,"props":8962,"children":8963},{"style":249},[8964],{"type":55,"value":2447},{"type":49,"tag":127,"props":8966,"children":8967},{"style":140},[8968],{"type":55,"value":2452},{"type":49,"tag":127,"props":8970,"children":8971},{"style":249},[8972],{"type":55,"value":2457},{"type":49,"tag":127,"props":8974,"children":8975},{"style":249},[8976],{"type":55,"value":2462},{"type":49,"tag":127,"props":8978,"children":8979},{"style":249},[8980],{"type":55,"value":2467},{"type":49,"tag":127,"props":8982,"children":8983},{"style":249},[8984],{"type":55,"value":2472},{"type":49,"tag":127,"props":8986,"children":8987},{"style":140},[8988],{"type":55,"value":2437},{"type":49,"tag":127,"props":8990,"children":8991},{"style":249},[8992],{"type":55,"value":2481},{"type":49,"tag":127,"props":8994,"children":8995},{"style":249},[8996],{"type":55,"value":2447},{"type":49,"tag":127,"props":8998,"children":8999},{"style":140},[9000],{"type":55,"value":795},{"type":49,"tag":127,"props":9002,"children":9003},{"style":270},[9004],{"type":55,"value":688},{"type":49,"tag":127,"props":9006,"children":9007},{"class":129,"line":856},[9008,9012,9016,9020,9024,9028,9032,9036,9040,9044,9048,9052,9056],{"type":49,"tag":127,"props":9009,"children":9010},{"style":249},[9011],{"type":55,"value":2595},{"type":49,"tag":127,"props":9013,"children":9014},{"style":270},[9015],{"type":55,"value":429},{"type":49,"tag":127,"props":9017,"children":9018},{"style":134},[9019],{"type":55,"value":862},{"type":49,"tag":127,"props":9021,"children":9022},{"style":270},[9023],{"type":55,"value":522},{"type":49,"tag":127,"props":9025,"children":9026},{"style":140},[9027],{"type":55,"value":1018},{"type":49,"tag":127,"props":9029,"children":9030},{"style":270},[9031],{"type":55,"value":532},{"type":49,"tag":127,"props":9033,"children":9034},{"style":270},[9035],{"type":55,"value":293},{"type":49,"tag":127,"props":9037,"children":9038},{"style":249},[9039],{"type":55,"value":884},{"type":49,"tag":127,"props":9041,"children":9042},{"style":270},[9043],{"type":55,"value":303},{"type":49,"tag":127,"props":9045,"children":9046},{"style":270},[9047],{"type":55,"value":293},{"type":49,"tag":127,"props":9049,"children":9050},{"style":249},[9051],{"type":55,"value":1043},{"type":49,"tag":127,"props":9053,"children":9054},{"style":270},[9055],{"type":55,"value":303},{"type":49,"tag":127,"props":9057,"children":9058},{"style":249},[9059],{"type":55,"value":893},{"type":49,"tag":127,"props":9061,"children":9062},{"class":129,"line":896},[9063,9067,9071,9075,9079,9083,9087,9091,9095,9099,9103,9107,9111,9115,9119,9123,9127,9131,9135],{"type":49,"tag":127,"props":9064,"children":9065},{"style":270},[9066],{"type":55,"value":902},{"type":49,"tag":127,"props":9068,"children":9069},{"style":432},[9070],{"type":55,"value":907},{"type":49,"tag":127,"props":9072,"children":9073},{"style":140},[9074],{"type":55,"value":912},{"type":49,"tag":127,"props":9076,"children":9077},{"style":140},[9078],{"type":55,"value":938},{"type":49,"tag":127,"props":9080,"children":9081},{"style":270},[9082],{"type":55,"value":522},{"type":49,"tag":127,"props":9084,"children":9085},{"style":140},[9086],{"type":55,"value":2671},{"type":49,"tag":127,"props":9088,"children":9089},{"style":270},[9090],{"type":55,"value":532},{"type":49,"tag":127,"props":9092,"children":9093},{"style":140},[9094],{"type":55,"value":2680},{"type":49,"tag":127,"props":9096,"children":9097},{"style":140},[9098],{"type":55,"value":2685},{"type":49,"tag":127,"props":9100,"children":9101},{"style":140},[9102],{"type":55,"value":3032},{"type":49,"tag":127,"props":9104,"children":9105},{"style":140},[9106],{"type":55,"value":969},{"type":49,"tag":127,"props":9108,"children":9109},{"style":270},[9110],{"type":55,"value":293},{"type":49,"tag":127,"props":9112,"children":9113},{"style":140},[9114],{"type":55,"value":978},{"type":49,"tag":127,"props":9116,"children":9117},{"style":270},[9118],{"type":55,"value":711},{"type":49,"tag":127,"props":9120,"children":9121},{"style":249},[9122],{"type":55,"value":198},{"type":49,"tag":127,"props":9124,"children":9125},{"style":270},[9126],{"type":55,"value":991},{"type":49,"tag":127,"props":9128,"children":9129},{"style":140},[9130],{"type":55,"value":6125},{"type":49,"tag":127,"props":9132,"children":9133},{"style":270},[9134],{"type":55,"value":303},{"type":49,"tag":127,"props":9136,"children":9137},{"style":270},[9138],{"type":55,"value":2734},{"type":49,"tag":127,"props":9140,"children":9141},{"class":129,"line":958},[9142,9146,9150,9154,9158,9162,9166,9170,9174,9178,9182,9186,9190,9194,9198,9202,9206,9210,9214,9218,9222,9226,9230,9234,9238,9242,9246,9250],{"type":49,"tag":127,"props":9143,"children":9144},{"style":249},[9145],{"type":55,"value":69},{"type":49,"tag":127,"props":9147,"children":9148},{"style":270},[9149],{"type":55,"value":429},{"type":49,"tag":127,"props":9151,"children":9152},{"style":134},[9153],{"type":55,"value":862},{"type":49,"tag":127,"props":9155,"children":9156},{"style":270},[9157],{"type":55,"value":522},{"type":49,"tag":127,"props":9159,"children":9160},{"style":140},[9161],{"type":55,"value":2758},{"type":49,"tag":127,"props":9163,"children":9164},{"style":270},[9165],{"type":55,"value":532},{"type":49,"tag":127,"props":9167,"children":9168},{"style":270},[9169],{"type":55,"value":293},{"type":49,"tag":127,"props":9171,"children":9172},{"style":249},[9173],{"type":55,"value":2771},{"type":49,"tag":127,"props":9175,"children":9176},{"style":270},[9177],{"type":55,"value":303},{"type":49,"tag":127,"props":9179,"children":9180},{"style":270},[9181],{"type":55,"value":479},{"type":49,"tag":127,"props":9183,"children":9184},{"style":432},[9185],{"type":55,"value":2784},{"type":49,"tag":127,"props":9187,"children":9188},{"style":140},[9189],{"type":55,"value":489},{"type":49,"tag":127,"props":9191,"children":9192},{"style":270},[9193],{"type":55,"value":572},{"type":49,"tag":127,"props":9195,"children":9196},{"style":249},[9197],{"type":55,"value":2797},{"type":49,"tag":127,"props":9199,"children":9200},{"style":270},[9201],{"type":55,"value":429},{"type":49,"tag":127,"props":9203,"children":9204},{"style":134},[9205],{"type":55,"value":862},{"type":49,"tag":127,"props":9207,"children":9208},{"style":270},[9209],{"type":55,"value":522},{"type":49,"tag":127,"props":9211,"children":9212},{"style":140},[9213],{"type":55,"value":2758},{"type":49,"tag":127,"props":9215,"children":9216},{"style":270},[9217],{"type":55,"value":532},{"type":49,"tag":127,"props":9219,"children":9220},{"style":270},[9221],{"type":55,"value":293},{"type":49,"tag":127,"props":9223,"children":9224},{"style":249},[9225],{"type":55,"value":2771},{"type":49,"tag":127,"props":9227,"children":9228},{"style":270},[9229],{"type":55,"value":303},{"type":49,"tag":127,"props":9231,"children":9232},{"style":270},[9233],{"type":55,"value":479},{"type":49,"tag":127,"props":9235,"children":9236},{"style":432},[9237],{"type":55,"value":517},{"type":49,"tag":127,"props":9239,"children":9240},{"style":270},[9241],{"type":55,"value":522},{"type":49,"tag":127,"props":9243,"children":9244},{"style":140},[9245],{"type":55,"value":2846},{"type":49,"tag":127,"props":9247,"children":9248},{"style":270},[9249],{"type":55,"value":532},{"type":49,"tag":127,"props":9251,"children":9252},{"style":270},[9253],{"type":55,"value":2734},{"type":49,"tag":127,"props":9255,"children":9256},{"class":129,"line":1004},[9257,9261,9265,9269,9273,9277,9281,9285,9289,9293,9297,9301,9305,9309,9313,9317,9321,9325,9329,9333,9337,9341,9345,9349,9353,9357,9361,9365,9369,9373],{"type":49,"tag":127,"props":9258,"children":9259},{"style":270},[9260],{"type":55,"value":3438},{"type":49,"tag":127,"props":9262,"children":9263},{"style":270},[9264],{"type":55,"value":293},{"type":49,"tag":127,"props":9266,"children":9267},{"style":249},[9268],{"type":55,"value":2875},{"type":49,"tag":127,"props":9270,"children":9271},{"style":270},[9272],{"type":55,"value":303},{"type":49,"tag":127,"props":9274,"children":9275},{"style":270},[9276],{"type":55,"value":2884},{"type":49,"tag":127,"props":9278,"children":9279},{"style":270},[9280],{"type":55,"value":293},{"type":49,"tag":127,"props":9282,"children":9283},{"style":140},[9284],{"type":55,"value":1192},{"type":49,"tag":127,"props":9286,"children":9287},{"style":270},[9288],{"type":55,"value":303},{"type":49,"tag":127,"props":9290,"children":9291},{"style":270},[9292],{"type":55,"value":308},{"type":49,"tag":127,"props":9294,"children":9295},{"style":270},[9296],{"type":55,"value":313},{"type":49,"tag":127,"props":9298,"children":9299},{"style":270},[9300],{"type":55,"value":3479},{"type":49,"tag":127,"props":9302,"children":9303},{"style":134},[9304],{"type":55,"value":771},{"type":49,"tag":127,"props":9306,"children":9307},{"style":270},[9308],{"type":55,"value":293},{"type":49,"tag":127,"props":9310,"children":9311},{"style":140},[9312],{"type":55,"value":6308},{"type":49,"tag":127,"props":9314,"children":9315},{"style":249},[9316],{"type":55,"value":2875},{"type":49,"tag":127,"props":9318,"children":9319},{"style":140},[9320],{"type":55,"value":6317},{"type":49,"tag":127,"props":9322,"children":9323},{"style":270},[9324],{"type":55,"value":303},{"type":49,"tag":127,"props":9326,"children":9327},{"style":270},[9328],{"type":55,"value":273},{"type":49,"tag":127,"props":9330,"children":9331},{"style":134},[9332],{"type":55,"value":3513},{"type":49,"tag":127,"props":9334,"children":9335},{"style":270},[9336],{"type":55,"value":522},{"type":49,"tag":127,"props":9338,"children":9339},{"style":140},[9340],{"type":55,"value":3327},{"type":49,"tag":127,"props":9342,"children":9343},{"style":270},[9344],{"type":55,"value":532},{"type":49,"tag":127,"props":9346,"children":9347},{"style":270},[9348],{"type":55,"value":293},{"type":49,"tag":127,"props":9350,"children":9351},{"style":249},[9352],{"type":55,"value":3340},{"type":49,"tag":127,"props":9354,"children":9355},{"style":270},[9356],{"type":55,"value":303},{"type":49,"tag":127,"props":9358,"children":9359},{"style":270},[9360],{"type":55,"value":273},{"type":49,"tag":127,"props":9362,"children":9363},{"style":134},[9364],{"type":55,"value":3546},{"type":49,"tag":127,"props":9366,"children":9367},{"style":920},[9368],{"type":55,"value":3551},{"type":49,"tag":127,"props":9370,"children":9371},{"style":270},[9372],{"type":55,"value":273},{"type":49,"tag":127,"props":9374,"children":9375},{"style":270},[9376],{"type":55,"value":3560},{"type":49,"tag":127,"props":9378,"children":9379},{"class":129,"line":1054},[9380,9384,9388,9392,9396,9400,9404],{"type":49,"tag":127,"props":9381,"children":9382},{"style":134},[9383],{"type":55,"value":862},{"type":49,"tag":127,"props":9385,"children":9386},{"style":270},[9387],{"type":55,"value":522},{"type":49,"tag":127,"props":9389,"children":9390},{"style":140},[9391],{"type":55,"value":3327},{"type":49,"tag":127,"props":9393,"children":9394},{"style":270},[9395],{"type":55,"value":532},{"type":49,"tag":127,"props":9397,"children":9398},{"style":270},[9399],{"type":55,"value":293},{"type":49,"tag":127,"props":9401,"children":9402},{"style":249},[9403],{"type":55,"value":3340},{"type":49,"tag":127,"props":9405,"children":9406},{"style":270},[9407],{"type":55,"value":1001},{"type":49,"tag":7587,"props":9409,"children":9410},{},[],{"type":55,"value":9412},"Confirm the response includes the service account email just provisioned. If it's missing, surface the response to the user so they can debug.",{"type":49,"tag":91,"props":9414,"children":9416},{"id":9415},"getting-the-most-out-of-your-integration",[9417],{"type":55,"value":9418},"Getting the Most Out of Your Integration",{"type":49,"tag":58,"props":9420,"children":9421},{},[9422,9424,9429],{"type":55,"value":9423},"Once ",{"type":49,"tag":69,"props":9425,"children":9427},{"className":9426},[],[9428],{"type":55,"value":87},{"type":55,"value":9430}," completes successfully, congratulate the user and let them know metrics typically\narrive within 5-10 minutes. Then check for early metrics and show a widget.",{"type":49,"tag":4612,"props":9432,"children":9434},{"id":9433},"checking-for-metrics",[9435],{"type":55,"value":9436},"Checking for Metrics",{"type":49,"tag":58,"props":9438,"children":9439},{},[9440,9442,9448],{"type":55,"value":9441},"Give it a few seconds, then make a single query to the metrics API - substitute a project you actually put in\nmonitoring scope for ",{"type":49,"tag":69,"props":9443,"children":9445},{"className":9444},[],[9446],{"type":55,"value":9447},"\u003CMONITORED_PROJECT_ID>",{"type":55,"value":9449}," - not necessarily the host project, which the template\nallows to be out of scope:",{"type":49,"tag":116,"props":9451,"children":9453},{"className":118,"code":9452,"language":120,"meta":121,"style":121},"for f in .env.local .env; do [ -f \"$f\" ] || continue; for k in DD_SITE DD_API_KEY DD_APP_KEY; do eval \"[ -n \\\"\\${$k:-}\\\" ]\" && continue; v=$(grep -E \"^$k=\" \"$f\" | head -1 | cut -d= -f2- | sed 's\u002F^[\"'\\'']\u002F\u002F;s\u002F[\"'\\'']$\u002F\u002F'); [ -n \"$v\" ] && export \"$k=$v\"; done; done\nDD_SITE='datadoghq.com'; export DD_SITE   # \u003C- replace with the site confirmed in Phase 0.\n# Explicit assignment, not ':=': a wrong non-empty DD_SITE in .env would otherwise survive.\n: \"${DD_API_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"; : \"${DD_APP_KEY:?not set - run dd-account-setup (commercial sites) or supply it directly (government sites)}\"\nsleep 10\nresp=$(printf 'DD-API-KEY: %s\\nDD-APPLICATION-KEY: %s\\n' \"$DD_API_KEY\" \"$DD_APP_KEY\" \\\n  | curl -sS -w '\\n%{http_code}' -G -H @- \"https:\u002F\u002Fapi.${DD_SITE}\u002Fapi\u002Fv1\u002Fquery\" \\\n  --data-urlencode \"from=$(($(date +%s) - 900))\" \\\n  --data-urlencode \"to=$(date +%s)\" \\\n  --data-urlencode \"query=avg:gcp.gce.instance.cpu.utilization{project_id:\u003CMONITORED_PROJECT_ID>} by {instance_name}\")\ncode=$(printf '%s' \"$resp\" | tail -1); body=$(printf '%s' \"$resp\" | sed '$d')\n[ \"$code\" = \"200\" ] || { echo \"metric query failed with HTTP $code - that is NOT 'metrics still propagating':\"; printf '%s\\n' \"$body\"; exit 1; }\nprintf '%s\\n' \"$body\"\n",[9454],{"type":49,"tag":69,"props":9455,"children":9456},{"__ignoreMap":121},[9457,9808,9847,9854,10037,10050,10105,10182,10232,10269,10293,10408,10533],{"type":49,"tag":127,"props":9458,"children":9459},{"class":129,"line":130},[9460,9464,9468,9472,9476,9480,9484,9488,9492,9496,9500,9504,9508,9512,9516,9520,9524,9528,9532,9536,9540,9544,9548,9552,9556,9560,9564,9568,9572,9576,9580,9584,9588,9592,9596,9600,9604,9608,9612,9616,9620,9624,9628,9632,9636,9640,9644,9648,9652,9656,9660,9664,9668,9672,9676,9680,9684,9688,9692,9696,9700,9704,9708,9712,9716,9720,9724,9728,9732,9736,9740,9744,9748,9752,9756,9760,9764,9768,9772,9776,9780,9784,9788,9792,9796,9800,9804],{"type":49,"tag":127,"props":9461,"children":9462},{"style":243},[9463],{"type":55,"value":246},{"type":49,"tag":127,"props":9465,"children":9466},{"style":249},[9467],{"type":55,"value":252},{"type":49,"tag":127,"props":9469,"children":9470},{"style":243},[9471],{"type":55,"value":257},{"type":49,"tag":127,"props":9473,"children":9474},{"style":140},[9475],{"type":55,"value":262},{"type":49,"tag":127,"props":9477,"children":9478},{"style":140},[9479],{"type":55,"value":267},{"type":49,"tag":127,"props":9481,"children":9482},{"style":270},[9483],{"type":55,"value":273},{"type":49,"tag":127,"props":9485,"children":9486},{"style":243},[9487],{"type":55,"value":278},{"type":49,"tag":127,"props":9489,"children":9490},{"style":270},[9491],{"type":55,"value":283},{"type":49,"tag":127,"props":9493,"children":9494},{"style":270},[9495],{"type":55,"value":288},{"type":49,"tag":127,"props":9497,"children":9498},{"style":270},[9499],{"type":55,"value":293},{"type":49,"tag":127,"props":9501,"children":9502},{"style":249},[9503],{"type":55,"value":298},{"type":49,"tag":127,"props":9505,"children":9506},{"style":270},[9507],{"type":55,"value":303},{"type":49,"tag":127,"props":9509,"children":9510},{"style":270},[9511],{"type":55,"value":308},{"type":49,"tag":127,"props":9513,"children":9514},{"style":270},[9515],{"type":55,"value":313},{"type":49,"tag":127,"props":9517,"children":9518},{"style":243},[9519],{"type":55,"value":318},{"type":49,"tag":127,"props":9521,"children":9522},{"style":270},[9523],{"type":55,"value":273},{"type":49,"tag":127,"props":9525,"children":9526},{"style":243},[9527],{"type":55,"value":327},{"type":49,"tag":127,"props":9529,"children":9530},{"style":249},[9531],{"type":55,"value":332},{"type":49,"tag":127,"props":9533,"children":9534},{"style":243},[9535],{"type":55,"value":257},{"type":49,"tag":127,"props":9537,"children":9538},{"style":140},[9539],{"type":55,"value":341},{"type":49,"tag":127,"props":9541,"children":9542},{"style":140},[9543],{"type":55,"value":346},{"type":49,"tag":127,"props":9545,"children":9546},{"style":140},[9547],{"type":55,"value":351},{"type":49,"tag":127,"props":9549,"children":9550},{"style":270},[9551],{"type":55,"value":273},{"type":49,"tag":127,"props":9553,"children":9554},{"style":243},[9555],{"type":55,"value":278},{"type":49,"tag":127,"props":9557,"children":9558},{"style":134},[9559],{"type":55,"value":364},{"type":49,"tag":127,"props":9561,"children":9562},{"style":270},[9563],{"type":55,"value":293},{"type":49,"tag":127,"props":9565,"children":9566},{"style":140},[9567],{"type":55,"value":373},{"type":49,"tag":127,"props":9569,"children":9570},{"style":249},[9571],{"type":55,"value":378},{"type":49,"tag":127,"props":9573,"children":9574},{"style":140},[9575],{"type":55,"value":383},{"type":49,"tag":127,"props":9577,"children":9578},{"style":249},[9579],{"type":55,"value":388},{"type":49,"tag":127,"props":9581,"children":9582},{"style":140},[9583],{"type":55,"value":393},{"type":49,"tag":127,"props":9585,"children":9586},{"style":249},[9587],{"type":55,"value":398},{"type":49,"tag":127,"props":9589,"children":9590},{"style":140},[9591],{"type":55,"value":308},{"type":49,"tag":127,"props":9593,"children":9594},{"style":270},[9595],{"type":55,"value":303},{"type":49,"tag":127,"props":9597,"children":9598},{"style":270},[9599],{"type":55,"value":411},{"type":49,"tag":127,"props":9601,"children":9602},{"style":243},[9603],{"type":55,"value":318},{"type":49,"tag":127,"props":9605,"children":9606},{"style":270},[9607],{"type":55,"value":273},{"type":49,"tag":127,"props":9609,"children":9610},{"style":249},[9611],{"type":55,"value":424},{"type":49,"tag":127,"props":9613,"children":9614},{"style":270},[9615],{"type":55,"value":429},{"type":49,"tag":127,"props":9617,"children":9618},{"style":432},[9619],{"type":55,"value":435},{"type":49,"tag":127,"props":9621,"children":9622},{"style":140},[9623],{"type":55,"value":440},{"type":49,"tag":127,"props":9625,"children":9626},{"style":270},[9627],{"type":55,"value":293},{"type":49,"tag":127,"props":9629,"children":9630},{"style":140},[9631],{"type":55,"value":449},{"type":49,"tag":127,"props":9633,"children":9634},{"style":249},[9635],{"type":55,"value":388},{"type":49,"tag":127,"props":9637,"children":9638},{"style":140},[9639],{"type":55,"value":458},{"type":49,"tag":127,"props":9641,"children":9642},{"style":270},[9643],{"type":55,"value":303},{"type":49,"tag":127,"props":9645,"children":9646},{"style":270},[9647],{"type":55,"value":293},{"type":49,"tag":127,"props":9649,"children":9650},{"style":249},[9651],{"type":55,"value":298},{"type":49,"tag":127,"props":9653,"children":9654},{"style":270},[9655],{"type":55,"value":303},{"type":49,"tag":127,"props":9657,"children":9658},{"style":270},[9659],{"type":55,"value":479},{"type":49,"tag":127,"props":9661,"children":9662},{"style":432},[9663],{"type":55,"value":484},{"type":49,"tag":127,"props":9665,"children":9666},{"style":140},[9667],{"type":55,"value":489},{"type":49,"tag":127,"props":9669,"children":9670},{"style":270},[9671],{"type":55,"value":479},{"type":49,"tag":127,"props":9673,"children":9674},{"style":432},[9675],{"type":55,"value":498},{"type":49,"tag":127,"props":9677,"children":9678},{"style":140},[9679],{"type":55,"value":503},{"type":49,"tag":127,"props":9681,"children":9682},{"style":140},[9683],{"type":55,"value":508},{"type":49,"tag":127,"props":9685,"children":9686},{"style":270},[9687],{"type":55,"value":479},{"type":49,"tag":127,"props":9689,"children":9690},{"style":432},[9691],{"type":55,"value":517},{"type":49,"tag":127,"props":9693,"children":9694},{"style":270},[9695],{"type":55,"value":522},{"type":49,"tag":127,"props":9697,"children":9698},{"style":140},[9699],{"type":55,"value":527},{"type":49,"tag":127,"props":9701,"children":9702},{"style":270},[9703],{"type":55,"value":532},{"type":49,"tag":127,"props":9705,"children":9706},{"style":249},[9707],{"type":55,"value":537},{"type":49,"tag":127,"props":9709,"children":9710},{"style":270},[9711],{"type":55,"value":532},{"type":49,"tag":127,"props":9713,"children":9714},{"style":140},[9715],{"type":55,"value":546},{"type":49,"tag":127,"props":9717,"children":9718},{"style":270},[9719],{"type":55,"value":532},{"type":49,"tag":127,"props":9721,"children":9722},{"style":249},[9723],{"type":55,"value":537},{"type":49,"tag":127,"props":9725,"children":9726},{"style":270},[9727],{"type":55,"value":532},{"type":49,"tag":127,"props":9729,"children":9730},{"style":140},[9731],{"type":55,"value":563},{"type":49,"tag":127,"props":9733,"children":9734},{"style":270},[9735],{"type":55,"value":532},{"type":49,"tag":127,"props":9737,"children":9738},{"style":270},[9739],{"type":55,"value":572},{"type":49,"tag":127,"props":9741,"children":9742},{"style":270},[9743],{"type":55,"value":283},{"type":49,"tag":127,"props":9745,"children":9746},{"style":270},[9747],{"type":55,"value":581},{"type":49,"tag":127,"props":9749,"children":9750},{"style":270},[9751],{"type":55,"value":293},{"type":49,"tag":127,"props":9753,"children":9754},{"style":249},[9755],{"type":55,"value":590},{"type":49,"tag":127,"props":9757,"children":9758},{"style":270},[9759],{"type":55,"value":303},{"type":49,"tag":127,"props":9761,"children":9762},{"style":270},[9763],{"type":55,"value":308},{"type":49,"tag":127,"props":9765,"children":9766},{"style":270},[9767],{"type":55,"value":411},{"type":49,"tag":127,"props":9769,"children":9770},{"style":605},[9771],{"type":55,"value":608},{"type":49,"tag":127,"props":9773,"children":9774},{"style":270},[9775],{"type":55,"value":293},{"type":49,"tag":127,"props":9777,"children":9778},{"style":249},[9779],{"type":55,"value":388},{"type":49,"tag":127,"props":9781,"children":9782},{"style":140},[9783],{"type":55,"value":458},{"type":49,"tag":127,"props":9785,"children":9786},{"style":249},[9787],{"type":55,"value":590},{"type":49,"tag":127,"props":9789,"children":9790},{"style":270},[9791],{"type":55,"value":303},{"type":49,"tag":127,"props":9793,"children":9794},{"style":270},[9795],{"type":55,"value":273},{"type":49,"tag":127,"props":9797,"children":9798},{"style":243},[9799],{"type":55,"value":637},{"type":49,"tag":127,"props":9801,"children":9802},{"style":270},[9803],{"type":55,"value":273},{"type":49,"tag":127,"props":9805,"children":9806},{"style":243},[9807],{"type":55,"value":646},{"type":49,"tag":127,"props":9809,"children":9810},{"class":129,"line":649},[9811,9815,9819,9823,9827,9831,9835,9839,9843],{"type":49,"tag":127,"props":9812,"children":9813},{"style":249},[9814],{"type":55,"value":198},{"type":49,"tag":127,"props":9816,"children":9817},{"style":270},[9818],{"type":55,"value":458},{"type":49,"tag":127,"props":9820,"children":9821},{"style":270},[9822],{"type":55,"value":532},{"type":49,"tag":127,"props":9824,"children":9825},{"style":140},[9826],{"type":55,"value":2358},{"type":49,"tag":127,"props":9828,"children":9829},{"style":270},[9830],{"type":55,"value":532},{"type":49,"tag":127,"props":9832,"children":9833},{"style":270},[9834],{"type":55,"value":273},{"type":49,"tag":127,"props":9836,"children":9837},{"style":605},[9838],{"type":55,"value":608},{"type":49,"tag":127,"props":9840,"children":9841},{"style":249},[9842],{"type":55,"value":2375},{"type":49,"tag":127,"props":9844,"children":9845},{"style":2378},[9846],{"type":55,"value":2381},{"type":49,"tag":127,"props":9848,"children":9849},{"class":129,"line":691},[9850],{"type":49,"tag":127,"props":9851,"children":9852},{"style":2378},[9853],{"type":55,"value":2389},{"type":49,"tag":127,"props":9855,"children":9856},{"class":129,"line":722},[9857,9861,9865,9869,9873,9877,9881,9885,9889,9893,9897,9901,9905,9909,9913,9917,9921,9925,9929,9933,9937,9941,9945,9949,9953,9957,9961,9965,9969,9973,9977,9981,9985,9989,9993,9997,10001,10005,10009,10013,10017,10021,10025,10029,10033],{"type":49,"tag":127,"props":9858,"children":9859},{"style":134},[9860],{"type":55,"value":655},{"type":49,"tag":127,"props":9862,"children":9863},{"style":270},[9864],{"type":55,"value":660},{"type":49,"tag":127,"props":9866,"children":9867},{"style":249},[9868],{"type":55,"value":206},{"type":49,"tag":127,"props":9870,"children":9871},{"style":270},[9872],{"type":55,"value":1544},{"type":49,"tag":127,"props":9874,"children":9875},{"style":249},[9876],{"type":55,"value":1368},{"type":49,"tag":127,"props":9878,"children":9879},{"style":249},[9880],{"type":55,"value":2417},{"type":49,"tag":127,"props":9882,"children":9883},{"style":249},[9884],{"type":55,"value":2422},{"type":49,"tag":127,"props":9886,"children":9887},{"style":249},[9888],{"type":55,"value":2427},{"type":49,"tag":127,"props":9890,"children":9891},{"style":249},[9892],{"type":55,"value":2432},{"type":49,"tag":127,"props":9894,"children":9895},{"style":140},[9896],{"type":55,"value":2437},{"type":49,"tag":127,"props":9898,"children":9899},{"style":249},[9900],{"type":55,"value":2442},{"type":49,"tag":127,"props":9902,"children":9903},{"style":249},[9904],{"type":55,"value":2447},{"type":49,"tag":127,"props":9906,"children":9907},{"style":140},[9908],{"type":55,"value":2452},{"type":49,"tag":127,"props":9910,"children":9911},{"style":249},[9912],{"type":55,"value":2457},{"type":49,"tag":127,"props":9914,"children":9915},{"style":249},[9916],{"type":55,"value":2462},{"type":49,"tag":127,"props":9918,"children":9919},{"style":249},[9920],{"type":55,"value":2467},{"type":49,"tag":127,"props":9922,"children":9923},{"style":249},[9924],{"type":55,"value":2472},{"type":49,"tag":127,"props":9926,"children":9927},{"style":140},[9928],{"type":55,"value":2437},{"type":49,"tag":127,"props":9930,"children":9931},{"style":249},[9932],{"type":55,"value":2481},{"type":49,"tag":127,"props":9934,"children":9935},{"style":249},[9936],{"type":55,"value":2447},{"type":49,"tag":127,"props":9938,"children":9939},{"style":140},[9940],{"type":55,"value":795},{"type":49,"tag":127,"props":9942,"children":9943},{"style":270},[9944],{"type":55,"value":2494},{"type":49,"tag":127,"props":9946,"children":9947},{"style":270},[9948],{"type":55,"value":273},{"type":49,"tag":127,"props":9950,"children":9951},{"style":134},[9952],{"type":55,"value":2503},{"type":49,"tag":127,"props":9954,"children":9955},{"style":270},[9956],{"type":55,"value":660},{"type":49,"tag":127,"props":9958,"children":9959},{"style":249},[9960],{"type":55,"value":213},{"type":49,"tag":127,"props":9962,"children":9963},{"style":270},[9964],{"type":55,"value":1544},{"type":49,"tag":127,"props":9966,"children":9967},{"style":249},[9968],{"type":55,"value":1368},{"type":49,"tag":127,"props":9970,"children":9971},{"style":249},[9972],{"type":55,"value":2417},{"type":49,"tag":127,"props":9974,"children":9975},{"style":249},[9976],{"type":55,"value":2422},{"type":49,"tag":127,"props":9978,"children":9979},{"style":249},[9980],{"type":55,"value":2427},{"type":49,"tag":127,"props":9982,"children":9983},{"style":249},[9984],{"type":55,"value":2432},{"type":49,"tag":127,"props":9986,"children":9987},{"style":140},[9988],{"type":55,"value":2437},{"type":49,"tag":127,"props":9990,"children":9991},{"style":249},[9992],{"type":55,"value":2442},{"type":49,"tag":127,"props":9994,"children":9995},{"style":249},[9996],{"type":55,"value":2447},{"type":49,"tag":127,"props":9998,"children":9999},{"style":140},[10000],{"type":55,"value":2452},{"type":49,"tag":127,"props":10002,"children":10003},{"style":249},[10004],{"type":55,"value":2457},{"type":49,"tag":127,"props":10006,"children":10007},{"style":249},[10008],{"type":55,"value":2462},{"type":49,"tag":127,"props":10010,"children":10011},{"style":249},[10012],{"type":55,"value":2467},{"type":49,"tag":127,"props":10014,"children":10015},{"style":249},[10016],{"type":55,"value":2472},{"type":49,"tag":127,"props":10018,"children":10019},{"style":140},[10020],{"type":55,"value":2437},{"type":49,"tag":127,"props":10022,"children":10023},{"style":249},[10024],{"type":55,"value":2481},{"type":49,"tag":127,"props":10026,"children":10027},{"style":249},[10028],{"type":55,"value":2447},{"type":49,"tag":127,"props":10030,"children":10031},{"style":140},[10032],{"type":55,"value":795},{"type":49,"tag":127,"props":10034,"children":10035},{"style":270},[10036],{"type":55,"value":688},{"type":49,"tag":127,"props":10038,"children":10039},{"class":129,"line":856},[10040,10045],{"type":49,"tag":127,"props":10041,"children":10042},{"style":432},[10043],{"type":55,"value":10044},"sleep",{"type":49,"tag":127,"props":10046,"children":10047},{"style":920},[10048],{"type":55,"value":10049}," 10\n",{"type":49,"tag":127,"props":10051,"children":10052},{"class":129,"line":896},[10053,10057,10061,10065,10069,10073,10077,10081,10085,10089,10093,10097,10101],{"type":49,"tag":127,"props":10054,"children":10055},{"style":249},[10056],{"type":55,"value":2595},{"type":49,"tag":127,"props":10058,"children":10059},{"style":270},[10060],{"type":55,"value":429},{"type":49,"tag":127,"props":10062,"children":10063},{"style":134},[10064],{"type":55,"value":862},{"type":49,"tag":127,"props":10066,"children":10067},{"style":270},[10068],{"type":55,"value":522},{"type":49,"tag":127,"props":10070,"children":10071},{"style":140},[10072],{"type":55,"value":1018},{"type":49,"tag":127,"props":10074,"children":10075},{"style":270},[10076],{"type":55,"value":532},{"type":49,"tag":127,"props":10078,"children":10079},{"style":270},[10080],{"type":55,"value":293},{"type":49,"tag":127,"props":10082,"children":10083},{"style":249},[10084],{"type":55,"value":884},{"type":49,"tag":127,"props":10086,"children":10087},{"style":270},[10088],{"type":55,"value":303},{"type":49,"tag":127,"props":10090,"children":10091},{"style":270},[10092],{"type":55,"value":293},{"type":49,"tag":127,"props":10094,"children":10095},{"style":249},[10096],{"type":55,"value":1043},{"type":49,"tag":127,"props":10098,"children":10099},{"style":270},[10100],{"type":55,"value":303},{"type":49,"tag":127,"props":10102,"children":10103},{"style":249},[10104],{"type":55,"value":893},{"type":49,"tag":127,"props":10106,"children":10107},{"class":129,"line":958},[10108,10112,10116,10120,10124,10128,10132,10136,10141,10145,10149,10153,10157,10161,10165,10169,10174,10178],{"type":49,"tag":127,"props":10109,"children":10110},{"style":270},[10111],{"type":55,"value":902},{"type":49,"tag":127,"props":10113,"children":10114},{"style":432},[10115],{"type":55,"value":907},{"type":49,"tag":127,"props":10117,"children":10118},{"style":140},[10119],{"type":55,"value":912},{"type":49,"tag":127,"props":10121,"children":10122},{"style":140},[10123],{"type":55,"value":938},{"type":49,"tag":127,"props":10125,"children":10126},{"style":270},[10127],{"type":55,"value":522},{"type":49,"tag":127,"props":10129,"children":10130},{"style":140},[10131],{"type":55,"value":2671},{"type":49,"tag":127,"props":10133,"children":10134},{"style":270},[10135],{"type":55,"value":532},{"type":49,"tag":127,"props":10137,"children":10138},{"style":140},[10139],{"type":55,"value":10140}," -G",{"type":49,"tag":127,"props":10142,"children":10143},{"style":140},[10144],{"type":55,"value":3032},{"type":49,"tag":127,"props":10146,"children":10147},{"style":140},[10148],{"type":55,"value":969},{"type":49,"tag":127,"props":10150,"children":10151},{"style":270},[10152],{"type":55,"value":293},{"type":49,"tag":127,"props":10154,"children":10155},{"style":140},[10156],{"type":55,"value":978},{"type":49,"tag":127,"props":10158,"children":10159},{"style":270},[10160],{"type":55,"value":711},{"type":49,"tag":127,"props":10162,"children":10163},{"style":249},[10164],{"type":55,"value":198},{"type":49,"tag":127,"props":10166,"children":10167},{"style":270},[10168],{"type":55,"value":991},{"type":49,"tag":127,"props":10170,"children":10171},{"style":140},[10172],{"type":55,"value":10173},"\u002Fapi\u002Fv1\u002Fquery",{"type":49,"tag":127,"props":10175,"children":10176},{"style":270},[10177],{"type":55,"value":303},{"type":49,"tag":127,"props":10179,"children":10180},{"style":249},[10181],{"type":55,"value":893},{"type":49,"tag":127,"props":10183,"children":10184},{"class":129,"line":1004},[10185,10190,10194,10199,10204,10209,10214,10218,10223,10228],{"type":49,"tag":127,"props":10186,"children":10187},{"style":140},[10188],{"type":55,"value":10189},"  --data-urlencode",{"type":49,"tag":127,"props":10191,"children":10192},{"style":270},[10193],{"type":55,"value":293},{"type":49,"tag":127,"props":10195,"children":10196},{"style":140},[10197],{"type":55,"value":10198},"from=",{"type":49,"tag":127,"props":10200,"children":10201},{"style":270},[10202],{"type":55,"value":10203},"$(($(",{"type":49,"tag":127,"props":10205,"children":10206},{"style":432},[10207],{"type":55,"value":10208},"date",{"type":49,"tag":127,"props":10210,"children":10211},{"style":140},[10212],{"type":55,"value":10213}," +%s",{"type":49,"tag":127,"props":10215,"children":10216},{"style":270},[10217],{"type":55,"value":795},{"type":49,"tag":127,"props":10219,"children":10220},{"style":140},[10221],{"type":55,"value":10222}," - 900",{"type":49,"tag":127,"props":10224,"children":10225},{"style":270},[10226],{"type":55,"value":10227},"))\"",{"type":49,"tag":127,"props":10229,"children":10230},{"style":249},[10231],{"type":55,"value":893},{"type":49,"tag":127,"props":10233,"children":10234},{"class":129,"line":1054},[10235,10239,10243,10248,10253,10257,10261,10265],{"type":49,"tag":127,"props":10236,"children":10237},{"style":140},[10238],{"type":55,"value":10189},{"type":49,"tag":127,"props":10240,"children":10241},{"style":270},[10242],{"type":55,"value":293},{"type":49,"tag":127,"props":10244,"children":10245},{"style":140},[10246],{"type":55,"value":10247},"to=",{"type":49,"tag":127,"props":10249,"children":10250},{"style":270},[10251],{"type":55,"value":10252},"$(",{"type":49,"tag":127,"props":10254,"children":10255},{"style":432},[10256],{"type":55,"value":10208},{"type":49,"tag":127,"props":10258,"children":10259},{"style":140},[10260],{"type":55,"value":10213},{"type":49,"tag":127,"props":10262,"children":10263},{"style":270},[10264],{"type":55,"value":4066},{"type":49,"tag":127,"props":10266,"children":10267},{"style":249},[10268],{"type":55,"value":893},{"type":49,"tag":127,"props":10270,"children":10271},{"class":129,"line":1107},[10272,10276,10280,10285,10289],{"type":49,"tag":127,"props":10273,"children":10274},{"style":140},[10275],{"type":55,"value":10189},{"type":49,"tag":127,"props":10277,"children":10278},{"style":270},[10279],{"type":55,"value":293},{"type":49,"tag":127,"props":10281,"children":10282},{"style":140},[10283],{"type":55,"value":10284},"query=avg:gcp.gce.instance.cpu.utilization{project_id:\u003CMONITORED_PROJECT_ID>} by {instance_name}",{"type":49,"tag":127,"props":10286,"children":10287},{"style":270},[10288],{"type":55,"value":303},{"type":49,"tag":127,"props":10290,"children":10291},{"style":270},[10292],{"type":55,"value":2734},{"type":49,"tag":127,"props":10294,"children":10295},{"class":129,"line":2931},[10296,10300,10304,10308,10312,10316,10320,10324,10328,10332,10336,10340,10344,10348,10352,10356,10360,10364,10368,10372,10376,10380,10384,10388,10392,10396,10400,10404],{"type":49,"tag":127,"props":10297,"children":10298},{"style":249},[10299],{"type":55,"value":69},{"type":49,"tag":127,"props":10301,"children":10302},{"style":270},[10303],{"type":55,"value":429},{"type":49,"tag":127,"props":10305,"children":10306},{"style":134},[10307],{"type":55,"value":862},{"type":49,"tag":127,"props":10309,"children":10310},{"style":270},[10311],{"type":55,"value":522},{"type":49,"tag":127,"props":10313,"children":10314},{"style":140},[10315],{"type":55,"value":2758},{"type":49,"tag":127,"props":10317,"children":10318},{"style":270},[10319],{"type":55,"value":532},{"type":49,"tag":127,"props":10321,"children":10322},{"style":270},[10323],{"type":55,"value":293},{"type":49,"tag":127,"props":10325,"children":10326},{"style":249},[10327],{"type":55,"value":2771},{"type":49,"tag":127,"props":10329,"children":10330},{"style":270},[10331],{"type":55,"value":303},{"type":49,"tag":127,"props":10333,"children":10334},{"style":270},[10335],{"type":55,"value":479},{"type":49,"tag":127,"props":10337,"children":10338},{"style":432},[10339],{"type":55,"value":2784},{"type":49,"tag":127,"props":10341,"children":10342},{"style":140},[10343],{"type":55,"value":489},{"type":49,"tag":127,"props":10345,"children":10346},{"style":270},[10347],{"type":55,"value":572},{"type":49,"tag":127,"props":10349,"children":10350},{"style":249},[10351],{"type":55,"value":2797},{"type":49,"tag":127,"props":10353,"children":10354},{"style":270},[10355],{"type":55,"value":429},{"type":49,"tag":127,"props":10357,"children":10358},{"style":134},[10359],{"type":55,"value":862},{"type":49,"tag":127,"props":10361,"children":10362},{"style":270},[10363],{"type":55,"value":522},{"type":49,"tag":127,"props":10365,"children":10366},{"style":140},[10367],{"type":55,"value":2758},{"type":49,"tag":127,"props":10369,"children":10370},{"style":270},[10371],{"type":55,"value":532},{"type":49,"tag":127,"props":10373,"children":10374},{"style":270},[10375],{"type":55,"value":293},{"type":49,"tag":127,"props":10377,"children":10378},{"style":249},[10379],{"type":55,"value":2771},{"type":49,"tag":127,"props":10381,"children":10382},{"style":270},[10383],{"type":55,"value":303},{"type":49,"tag":127,"props":10385,"children":10386},{"style":270},[10387],{"type":55,"value":479},{"type":49,"tag":127,"props":10389,"children":10390},{"style":432},[10391],{"type":55,"value":517},{"type":49,"tag":127,"props":10393,"children":10394},{"style":270},[10395],{"type":55,"value":522},{"type":49,"tag":127,"props":10397,"children":10398},{"style":140},[10399],{"type":55,"value":2846},{"type":49,"tag":127,"props":10401,"children":10402},{"style":270},[10403],{"type":55,"value":532},{"type":49,"tag":127,"props":10405,"children":10406},{"style":270},[10407],{"type":55,"value":2734},{"type":49,"tag":127,"props":10409,"children":10410},{"class":129,"line":2988},[10411,10415,10419,10423,10427,10431,10435,10439,10443,10447,10451,10455,10459,10463,10468,10472,10477,10481,10485,10489,10493,10497,10501,10505,10509,10513,10517,10521,10525,10529],{"type":49,"tag":127,"props":10412,"children":10413},{"style":270},[10414],{"type":55,"value":3438},{"type":49,"tag":127,"props":10416,"children":10417},{"style":270},[10418],{"type":55,"value":293},{"type":49,"tag":127,"props":10420,"children":10421},{"style":249},[10422],{"type":55,"value":2875},{"type":49,"tag":127,"props":10424,"children":10425},{"style":270},[10426],{"type":55,"value":303},{"type":49,"tag":127,"props":10428,"children":10429},{"style":270},[10430],{"type":55,"value":2884},{"type":49,"tag":127,"props":10432,"children":10433},{"style":270},[10434],{"type":55,"value":293},{"type":49,"tag":127,"props":10436,"children":10437},{"style":140},[10438],{"type":55,"value":1192},{"type":49,"tag":127,"props":10440,"children":10441},{"style":270},[10442],{"type":55,"value":303},{"type":49,"tag":127,"props":10444,"children":10445},{"style":270},[10446],{"type":55,"value":308},{"type":49,"tag":127,"props":10448,"children":10449},{"style":270},[10450],{"type":55,"value":313},{"type":49,"tag":127,"props":10452,"children":10453},{"style":270},[10454],{"type":55,"value":3479},{"type":49,"tag":127,"props":10456,"children":10457},{"style":134},[10458],{"type":55,"value":771},{"type":49,"tag":127,"props":10460,"children":10461},{"style":270},[10462],{"type":55,"value":293},{"type":49,"tag":127,"props":10464,"children":10465},{"style":140},[10466],{"type":55,"value":10467},"metric query failed with HTTP ",{"type":49,"tag":127,"props":10469,"children":10470},{"style":249},[10471],{"type":55,"value":2875},{"type":49,"tag":127,"props":10473,"children":10474},{"style":140},[10475],{"type":55,"value":10476}," - that is NOT 'metrics still propagating':",{"type":49,"tag":127,"props":10478,"children":10479},{"style":270},[10480],{"type":55,"value":303},{"type":49,"tag":127,"props":10482,"children":10483},{"style":270},[10484],{"type":55,"value":273},{"type":49,"tag":127,"props":10486,"children":10487},{"style":134},[10488],{"type":55,"value":3513},{"type":49,"tag":127,"props":10490,"children":10491},{"style":270},[10492],{"type":55,"value":522},{"type":49,"tag":127,"props":10494,"children":10495},{"style":140},[10496],{"type":55,"value":3327},{"type":49,"tag":127,"props":10498,"children":10499},{"style":270},[10500],{"type":55,"value":532},{"type":49,"tag":127,"props":10502,"children":10503},{"style":270},[10504],{"type":55,"value":293},{"type":49,"tag":127,"props":10506,"children":10507},{"style":249},[10508],{"type":55,"value":3340},{"type":49,"tag":127,"props":10510,"children":10511},{"style":270},[10512],{"type":55,"value":303},{"type":49,"tag":127,"props":10514,"children":10515},{"style":270},[10516],{"type":55,"value":273},{"type":49,"tag":127,"props":10518,"children":10519},{"style":134},[10520],{"type":55,"value":3546},{"type":49,"tag":127,"props":10522,"children":10523},{"style":920},[10524],{"type":55,"value":3551},{"type":49,"tag":127,"props":10526,"children":10527},{"style":270},[10528],{"type":55,"value":273},{"type":49,"tag":127,"props":10530,"children":10531},{"style":270},[10532],{"type":55,"value":3560},{"type":49,"tag":127,"props":10534,"children":10535},{"class":129,"line":3070},[10536,10540,10544,10548,10552,10556,10560],{"type":49,"tag":127,"props":10537,"children":10538},{"style":134},[10539],{"type":55,"value":862},{"type":49,"tag":127,"props":10541,"children":10542},{"style":270},[10543],{"type":55,"value":522},{"type":49,"tag":127,"props":10545,"children":10546},{"style":140},[10547],{"type":55,"value":3327},{"type":49,"tag":127,"props":10549,"children":10550},{"style":270},[10551],{"type":55,"value":532},{"type":49,"tag":127,"props":10553,"children":10554},{"style":270},[10555],{"type":55,"value":293},{"type":49,"tag":127,"props":10557,"children":10558},{"style":249},[10559],{"type":55,"value":3340},{"type":49,"tag":127,"props":10561,"children":10562},{"style":270},[10563],{"type":55,"value":1001},{"type":49,"tag":4612,"props":10565,"children":10567},{"id":10566},"rendering-the-widget",[10568],{"type":55,"value":10569},"Rendering the Widget",{"type":49,"tag":58,"props":10571,"children":10572},{},[10573,10585],{"type":49,"tag":101,"props":10574,"children":10575},{},[10576,10577,10583],{"type":55,"value":3937},{"type":49,"tag":69,"props":10578,"children":10580},{"className":10579},[],[10581],{"type":55,"value":10582},"series",{"type":55,"value":10584}," array is non-empty",{"type":55,"value":10586},", render an ASCII chart from the real data:",{"type":49,"tag":1568,"props":10588,"children":10589},{},[10590,10603,10644,10657],{"type":49,"tag":1572,"props":10591,"children":10592},{},[10593,10595,10601],{"type":55,"value":10594},"Use the ",{"type":49,"tag":69,"props":10596,"children":10598},{"className":10597},[],[10599],{"type":55,"value":10600},"pointlist",{"type":55,"value":10602}," values to plot the line, scaling Y-axis to actual min\u002Fmax.",{"type":49,"tag":1572,"props":10604,"children":10605},{},[10606,10608,10614,10615,10621,10622,10628,10629,10635,10636,10642],{"type":55,"value":10607},"Use box-drawing characters (",{"type":49,"tag":69,"props":10609,"children":10611},{"className":10610},[],[10612],{"type":55,"value":10613},"╭",{"type":55,"value":1271},{"type":49,"tag":69,"props":10616,"children":10618},{"className":10617},[],[10619],{"type":55,"value":10620},"╰",{"type":55,"value":1271},{"type":49,"tag":69,"props":10623,"children":10625},{"className":10624},[],[10626],{"type":55,"value":10627},"─",{"type":55,"value":1271},{"type":49,"tag":69,"props":10630,"children":10632},{"className":10631},[],[10633],{"type":55,"value":10634},"│",{"type":55,"value":1271},{"type":49,"tag":69,"props":10637,"children":10639},{"className":10638},[],[10640],{"type":55,"value":10641},"┤",{"type":55,"value":10643},") for the line.",{"type":49,"tag":1572,"props":10645,"children":10646},{},[10647,10649,10655],{"type":55,"value":10648},"List the instance names from each series ",{"type":49,"tag":69,"props":10650,"children":10652},{"className":10651},[],[10653],{"type":55,"value":10654},"scope",{"type":55,"value":10656}," at the bottom.",{"type":49,"tag":1572,"props":10658,"children":10659},{},[10660],{"type":55,"value":10661},"Show the top 3 series by average value if multiple are returned.",{"type":49,"tag":58,"props":10663,"children":10664},{},[10665,10676],{"type":49,"tag":101,"props":10666,"children":10667},{},[10668,10669,10674],{"type":55,"value":3937},{"type":49,"tag":69,"props":10670,"children":10672},{"className":10671},[],[10673],{"type":55,"value":10582},{"type":55,"value":10675}," array is empty",{"type":55,"value":10677},", show this static preview instead and let the user know\nmetrics are still propagating:",{"type":49,"tag":116,"props":10679,"children":10683},{"className":10680,"code":10682,"language":55},[10681],"language-text","┌─────────────────────────────────────────────────────────┐\n│  gcp.gce.instance.cpu.utilization   ▂▃▅▆▇▆▅▃▂▁▂▃▅  │\n│  100% ┤                                          ╭──╮   │\n│   75% ┤                    ╭───╮              ╭──╯  │   │\n│   50% ┤              ╭────╯   ╰──╮     ╭────╯     │   │\n│   25% ┤    ╭────────╯            ╰────╯           │   │\n│    0% ┤────╯                                       │   │\n│       └────────────────────────────────────────────┘   │\n│                                                         │\n│  Metrics are on their way - check back in a few minutes │\n└─────────────────────────────────────────────────────────┘\nMetrics Explorer: \u003CAPP_BASE>\u002Fmetric\u002Fexplorer?exp_metric=gcp.gce.instance.cpu.utilization\n",[10684],{"type":49,"tag":69,"props":10685,"children":10686},{"__ignoreMap":121},[10687],{"type":55,"value":10682},{"type":49,"tag":58,"props":10689,"children":10690},{},[10691,10693,10698,10700,10706],{"type":55,"value":10692},"Confirm to the user that their integration is configured and data will appear shortly. All links use ",{"type":49,"tag":69,"props":10694,"children":10696},{"className":10695},[],[10697],{"type":55,"value":198},{"type":55,"value":10699}," - construct them as ",{"type":49,"tag":69,"props":10701,"children":10703},{"className":10702},[],[10704],{"type":55,"value":10705},"\u003CAPP_BASE>\u002F...",{"type":55,"value":89},{"type":49,"tag":1568,"props":10708,"children":10709},{},[10710,10728,10745],{"type":49,"tag":1572,"props":10711,"children":10712},{},[10713,10718,10720,10726],{"type":49,"tag":101,"props":10714,"children":10715},{},[10716],{"type":55,"value":10717},"GCP Integration tile",{"type":55,"value":10719},": ",{"type":49,"tag":69,"props":10721,"children":10723},{"className":10722},[],[10724],{"type":55,"value":10725},"\u003CAPP_BASE>\u002Fintegrations\u002Fgoogle-cloud-platform",{"type":55,"value":10727}," - access the pre-built dashboard and verify the integration is active.",{"type":49,"tag":1572,"props":10729,"children":10730},{},[10731,10736,10737,10743],{"type":49,"tag":101,"props":10732,"children":10733},{},[10734],{"type":55,"value":10735},"Metrics Explorer",{"type":55,"value":10719},{"type":49,"tag":69,"props":10738,"children":10740},{"className":10739},[],[10741],{"type":55,"value":10742},"\u003CAPP_BASE>\u002Fmetric\u002Fexplorer?exp_metric=gcp.gce.instance.cpu.utilization",{"type":55,"value":10744}," - confirm data is flowing.",{"type":49,"tag":1572,"props":10746,"children":10747},{},[10748],{"type":55,"value":10749},"Each GCP sub-integration (Cloud SQL, Cloud Run, Pub\u002FSub, GKE, etc.) has its own dashboard that activates automatically when metrics for that service are detected.",{"type":49,"tag":58,"props":10751,"children":10752},{},[10753,10758,10760,10766],{"type":49,"tag":101,"props":10754,"children":10755},{},[10756],{"type":55,"value":10757},"Recommended Monitors",{"type":55,"value":10759}," - suggest creating monitors for common GCP health signals at ",{"type":49,"tag":69,"props":10761,"children":10763},{"className":10762},[],[10764],{"type":55,"value":10765},"\u003CAPP_BASE>\u002Fmonitors\u002Fcreate",{"type":55,"value":655},{"type":49,"tag":1568,"props":10768,"children":10769},{},[10770,10775,10780,10785],{"type":49,"tag":1572,"props":10771,"children":10772},{},[10773],{"type":55,"value":10774},"Compute Engine CPU exceeding a threshold",{"type":49,"tag":1572,"props":10776,"children":10777},{},[10778],{"type":55,"value":10779},"Cloud SQL connection counts approaching limits",{"type":49,"tag":1572,"props":10781,"children":10782},{},[10783],{"type":55,"value":10784},"GKE nodes entering NotReady state",{"type":49,"tag":1572,"props":10786,"children":10787},{},[10788],{"type":55,"value":10789},"Pub\u002FSub dead-letter queue growth",{"type":49,"tag":58,"props":10791,"children":10792},{},[10793],{"type":49,"tag":101,"props":10794,"children":10795},{},[10796],{"type":55,"value":10797},"If resource collection was enabled:",{"type":49,"tag":1568,"props":10799,"children":10800},{},[10801,10818],{"type":49,"tag":1572,"props":10802,"children":10803},{},[10804,10809,10810,10816],{"type":49,"tag":101,"props":10805,"children":10806},{},[10807],{"type":55,"value":10808},"Resource Catalog",{"type":55,"value":10719},{"type":49,"tag":69,"props":10811,"children":10813},{"className":10812},[],[10814],{"type":55,"value":10815},"\u003CAPP_BASE>\u002Finfrastructure\u002Fcatalog",{"type":55,"value":10817}," - browse Compute instances, Cloud SQL databases, GKE clusters, and more.",{"type":49,"tag":1572,"props":10819,"children":10820},{},[10821,10826,10827,10833],{"type":49,"tag":101,"props":10822,"children":10823},{},[10824],{"type":55,"value":10825},"Infrastructure Map",{"type":55,"value":10719},{"type":49,"tag":69,"props":10828,"children":10830},{"className":10829},[],[10831],{"type":55,"value":10832},"\u003CAPP_BASE>\u002Finfrastructure\u002Fmap",{"type":55,"value":10834}," - visualize GCP infrastructure.",{"type":49,"tag":58,"props":10836,"children":10837},{},[10838],{"type":49,"tag":101,"props":10839,"children":10840},{},[10841],{"type":55,"value":10842},"Explore more Datadog products:",{"type":49,"tag":1568,"props":10844,"children":10845},{},[10846,10869,10886],{"type":49,"tag":1572,"props":10847,"children":10848},{},[10849,10854,10855,10861,10863],{"type":49,"tag":101,"props":10850,"children":10851},{},[10852],{"type":55,"value":10853},"Log Management",{"type":55,"value":10719},{"type":49,"tag":69,"props":10856,"children":10858},{"className":10857},[],[10859],{"type":55,"value":10860},"\u003CAPP_BASE>\u002Flogs",{"type":55,"value":10862}," - stream GCP logs for centralized search and alerting. Setup: ",{"type":49,"tag":1456,"props":10864,"children":10867},{"href":10865,"rel":10866},"https:\u002F\u002Fdocs.datadoghq.com\u002Fintegrations\u002Fgoogle_cloud_platform\u002F#log-collection",[1460],[10868],{"type":55,"value":10865},{"type":49,"tag":1572,"props":10870,"children":10871},{},[10872,10877,10878,10884],{"type":49,"tag":101,"props":10873,"children":10874},{},[10875],{"type":55,"value":10876},"APM & Traces",{"type":55,"value":10719},{"type":49,"tag":69,"props":10879,"children":10881},{"className":10880},[],[10882],{"type":55,"value":10883},"\u003CAPP_BASE>\u002Fapm\u002Fgetting-started",{"type":55,"value":10885}," - distributed tracing for applications on Cloud Run, GKE, or Compute Engine.",{"type":49,"tag":1572,"props":10887,"children":10888},{},[10889,10894,10895,10901],{"type":49,"tag":101,"props":10890,"children":10891},{},[10892],{"type":55,"value":10893},"Notebooks",{"type":55,"value":10719},{"type":49,"tag":69,"props":10896,"children":10898},{"className":10897},[],[10899],{"type":55,"value":10900},"\u003CAPP_BASE>\u002Fnotebook",{"type":55,"value":10902}," - shareable investigations combining metrics, logs, and events.",{"type":49,"tag":91,"props":10904,"children":10906},{"id":10905},"important-notes",[10907],{"type":55,"value":10908},"Important Notes",{"type":49,"tag":1568,"props":10910,"children":10911},{},[10912,10917,10983,10988,11027],{"type":49,"tag":1572,"props":10913,"children":10914},{},[10915],{"type":55,"value":10916},"Always confirm project IDs, folder IDs, and the host project with the user before generating Terraform.",{"type":49,"tag":1572,"props":10918,"children":10919},{},[10920,10922,10928,10930,10936,10937,10943,10945,10951,10953,10959,10960,10966,10968,10974,10976,10981],{"type":55,"value":10921},"The user needs permission to create service accounts, enable services, and set IAM policy on every\nproject and folder in scope: ",{"type":49,"tag":69,"props":10923,"children":10925},{"className":10924},[],[10926],{"type":55,"value":10927},"roles\u002Fresourcemanager.projectIamAdmin",{"type":55,"value":10929}," \u002F\n",{"type":49,"tag":69,"props":10931,"children":10933},{"className":10932},[],[10934],{"type":55,"value":10935},"roles\u002Fresourcemanager.folderIamAdmin",{"type":55,"value":1271},{"type":49,"tag":69,"props":10938,"children":10940},{"className":10939},[],[10941],{"type":55,"value":10942},"roles\u002Fiam.serviceAccountAdmin",{"type":55,"value":10944}," on the host project, and\n",{"type":49,"tag":69,"props":10946,"children":10948},{"className":10947},[],[10949],{"type":55,"value":10950},"roles\u002Fserviceusage.serviceUsageAdmin",{"type":55,"value":10952}," on every project where the config enables an API (the host\nproject included - it gets ",{"type":49,"tag":69,"props":10954,"children":10956},{"className":10955},[],[10957],{"type":55,"value":10958},"iam.googleapis.com",{"type":55,"value":1628},{"type":49,"tag":69,"props":10961,"children":10963},{"className":10962},[],[10964],{"type":55,"value":10965},"iamcredentials.googleapis.com",{"type":55,"value":10967},").\n",{"type":49,"tag":69,"props":10969,"children":10971},{"className":10970},[],[10972],{"type":55,"value":10973},"roles\u002Fserviceusage.serviceUsageConsumer",{"type":55,"value":10975},", which the service account itself receives, is not enough to\n",{"type":49,"tag":1518,"props":10977,"children":10978},{},[10979],{"type":55,"value":10980},"enable",{"type":55,"value":10982}," an API.",{"type":49,"tag":1572,"props":10984,"children":10985},{},[10986],{"type":55,"value":10987},"The Datadog delegate principal ID is org-specific and must be fetched from the API - it cannot be hardcoded.",{"type":49,"tag":1572,"props":10989,"children":10990},{},[10991,10993,10998,11000,11005,11006,11011,11012,11017,11019,11025],{"type":55,"value":10992},"The Datadog API and app keys are never passed to Terraform as values: the ",{"type":49,"tag":69,"props":10994,"children":10996},{"className":10995},[],[10997],{"type":55,"value":18},{"type":55,"value":10999}," provider reads\n",{"type":49,"tag":69,"props":11001,"children":11003},{"className":11002},[],[11004],{"type":55,"value":206},{"type":55,"value":1628},{"type":49,"tag":69,"props":11007,"children":11009},{"className":11008},[],[11010],{"type":55,"value":213},{"type":55,"value":1659},{"type":49,"tag":69,"props":11013,"children":11015},{"className":11014},[],[11016],{"type":55,"value":1665},{"type":55,"value":11018}," arguments,\nand nothing for Terraform to record in state or a saved plan. Don't declare key variables, and don't\nwrite the keys into a committed ",{"type":49,"tag":69,"props":11020,"children":11022},{"className":11021},[],[11023],{"type":55,"value":11024},".tfvars",{"type":55,"value":11026}," file or any other persistent file.",{"type":49,"tag":1572,"props":11028,"children":11029},{},[11030,11032,11037],{"type":55,"value":11031},"Never run ",{"type":49,"tag":69,"props":11033,"children":11035},{"className":11034},[],[11036],{"type":55,"value":87},{"type":55,"value":11038}," without showing the plan to the user first.",{"type":49,"tag":11040,"props":11041,"children":11042},"style",{},[11043],{"type":55,"value":11044},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":11046,"total":11216},[11047,11064,11082,11093,11109,11123,11137,11151,11163,11175,11185,11205],{"slug":11048,"name":11048,"fn":11049,"description":11050,"org":11051,"tags":11052,"stars":28,"repoUrl":29,"updatedAt":11063},"agent-install","install Datadog Agent on Kubernetes","Install the Datadog Agent on Kubernetes using the Datadog Operator — required before enabling Single Step Instrumentation (SSI), which automatically instruments applications for APM without code changes. Only use if no Datadog Agent is deployed on the cluster yet.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11053,11054,11057,11060],{"name":17,"slug":18,"type":15},{"name":11055,"slug":11056,"type":15},"Deployment","deployment",{"name":11058,"slug":11059,"type":15},"Kubernetes","kubernetes",{"name":11061,"slug":11062,"type":15},"Observability","observability","2026-04-15T04:57:27.489805",{"slug":11065,"name":11065,"fn":11066,"description":11067,"org":11068,"tags":11069,"stars":28,"repoUrl":29,"updatedAt":11081},"agent-observability-auto-experiment","run iterative code improvements using Datadog data","Run an iterative code-improvement hill-climb against real Datadog LLM-Obs data, locally, with Claude Code as the agent. Establishes a baseline eval, makes one focused change, re-scores with the same harness, keeps the change if it improves the score in the goal's direction (labeling within-noise gains tentative), and repeats. Use when the user says \"run an auto experiment\", \"hill-climb this code\", \"iteratively improve X and measure the delta\", \"optimize this prompt\u002Ffile against my traces\", \"auto-optimize against LLM-Obs\", or wants the local equivalent of the auto_experiments worker. Works from a local dataset file, an ml_app, a dataset_id, or a list of trace_ids.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11070,11071,11074,11077,11080],{"name":17,"slug":18,"type":15},{"name":11072,"slug":11073,"type":15},"Debugging","debugging",{"name":11075,"slug":11076,"type":15},"Evals","evals",{"name":11078,"slug":11079,"type":15},"LLM","llm",{"name":11061,"slug":11062,"type":15},"2026-08-19T03:27:28.037126",{"slug":11083,"name":11083,"fn":11084,"description":11085,"org":11086,"tags":11087,"stars":28,"repoUrl":29,"updatedAt":11092},"agent-observability-eval-bootstrap","bootstrap evaluators from production traces","Bootstrap evaluators from production traces — by default propose online LLM-judge evaluators and, after you confirm, create them in Datadog as disabled drafts (never auto-enabled); on request emit Python SDK code or a framework-agnostic JSON spec instead. Use when user says \"bootstrap evaluators\", \"generate evaluators\", \"create evals from traces\", \"eval bootstrap\", \"write evaluators\", \"build eval suite\", \"publish evaluators\", or wants to generate BaseEvaluator\u002FLLMJudge code or online judge configs from production LLM trace data. Works with ml_app and optional RCA report or failure hypothesis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11088,11089,11090,11091],{"name":17,"slug":18,"type":15},{"name":11075,"slug":11076,"type":15},{"name":11078,"slug":11079,"type":15},{"name":11061,"slug":11062,"type":15},"2026-08-22T03:24:04.870382",{"slug":11094,"name":11094,"fn":11095,"description":11096,"org":11097,"tags":11098,"stars":28,"repoUrl":29,"updatedAt":11108},"agent-observability-eval-pipeline","run agent observability and evaluation pipelines","End-to-end Agent Observability pipeline for an instrumented ml_app — classify production traces, root-cause failures, bootstrap evaluators, then (optionally) sample + publish a dataset, generate + run an experiment, and analyze results. Six narrated phases with a standardized banner and a \"continue\" checkpoint between each. Pure orchestration over the agent-observability sub-skills (`agent-observability-session-classify`, `agent-observability-trace-rca`, `agent-observability-eval-bootstrap`, `agent-observability-experiment-bootstrap`, `agent-observability-experiment-analyzer`). Use when user says \"run the eval pipeline\", \"go from traces to evals\", \"bootstrap evals end to end\", \"classify then RCA then bootstrap\", \"build an eval set from scratch\", \"onboard me to datasets and experiments\", \"walk me through experiments\", \"I have an ml_app, now what\", \"Agent Observability onboarding\", \"guided experiment setup\", \"from traces to experiments\", or wants a deterministic, narrated tour from production data through evaluators, datasets, and experiments. Stop early with `--stop-after \u003Cphase>` to short-circuit at evaluators or dataset, or resume mid-flow with `--start-at \u003Cphase>`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11099,11102,11105,11106,11107],{"name":11100,"slug":11101,"type":15},"Agents","agents",{"name":11103,"slug":11104,"type":15},"Data Pipeline","data-pipeline",{"name":17,"slug":18,"type":15},{"name":11075,"slug":11076,"type":15},{"name":11061,"slug":11062,"type":15},"2026-08-22T03:24:05.862875",{"slug":11110,"name":11110,"fn":11111,"description":11112,"org":11113,"tags":11114,"stars":28,"repoUrl":29,"updatedAt":11122},"agent-observability-experiment-analyzer","analyze LLM experiment results","Analyze LLM experiment results. Handles single or comparative experiments, exploratory or Q&A modes. Use when user says \"analyze experiment\", \"compare experiments\", \"analyze against baseline\", or provides one or two experiment IDs for analysis.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11115,11118,11119,11120,11121],{"name":11116,"slug":11117,"type":15},"Analytics","analytics",{"name":17,"slug":18,"type":15},{"name":11075,"slug":11076,"type":15},{"name":11078,"slug":11079,"type":15},{"name":11061,"slug":11062,"type":15},"2026-06-19T09:04:21.212498",{"slug":11124,"name":11124,"fn":11125,"description":11126,"org":11127,"tags":11128,"stars":28,"repoUrl":29,"updatedAt":11136},"agent-observability-experiment-bootstrap","bootstrap LLM observability experiments","Bootstrap a reproducible LLM Observability experiment through the Python ddtrace SDK or the Node dd-trace SDK. Use for experiment, dataset, evaluator, benchmark, regression, or LLM-as-a-judge scaffolding. The legacy Python invocation remains supported.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11129,11130,11131,11134,11135],{"name":17,"slug":18,"type":15},{"name":11075,"slug":11076,"type":15},{"name":11132,"slug":11133,"type":15},"Experiments","experiments",{"name":11078,"slug":11079,"type":15},{"name":11061,"slug":11062,"type":15},"2026-08-22T03:56:54.562327",{"slug":11138,"name":11138,"fn":11139,"description":11140,"org":11141,"tags":11142,"stars":28,"repoUrl":29,"updatedAt":11150},"agent-observability-replay-trace","iterate on LLM traces with local code","Use when a developer wants to iterate on ONE specific Agent Observability \u002F LLM Obs trace whose output they didn't like — re-running that trace against their LOCAL code, seeing a concise diff of the old vs new output, and looping (change code → replay → diff) until satisfied. Invoked as \u002Fagent-observability-replay-trace \u003Ctrace-id> [changes to test]. Signals: \"replay this trace\"; \"iterate on a trace\"; \"this trace's output is wrong, fix it and re-run\"; \"re-run trace \u003Cid> with \u003Cchange>\"; pasting a trace id from the Agent Observability UI with a description of what to fix. It fetches the trace via the datadog-llmo MCP or the pup CLI, edits code, re-runs the app to emit a NEW trace, and diffs the two — no local server, no browser. For agents traced with ddtrace \u002F LLM Obs (Python first-class), with JSON-serializable entry input. Do NOT use for: scored Experiments or the browser \"Replay\" button (that's agent-observability-replay-experiment), building an experiment from a dataset\u002FCSV, writing evaluators, root-causing failed traces, or RUM\u002FHTTP session replay.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11143,11144,11145,11146,11147],{"name":17,"slug":18,"type":15},{"name":11072,"slug":11073,"type":15},{"name":11078,"slug":11079,"type":15},{"name":11061,"slug":11062,"type":15},{"name":11148,"slug":11149,"type":15},"Tracing","tracing","2026-08-06T05:38:08.57055",{"slug":11152,"name":11152,"fn":11153,"description":11154,"org":11155,"tags":11156,"stars":28,"repoUrl":29,"updatedAt":11162},"agent-observability-session-classify","evaluate user intent satisfaction in sessions","Classify whether user intent was satisfied in a Datadog Agent Observability trace or session. Three modes: (1) session_id — classify a single CMD+I assistant session with RUM; (2) trace_id — classify a single Agent Observability trace without RUM; (3) ml_app — sample and classify multiple sessions or traces from a given LLM app. Output is compact by default (verdict + one-sentence reason). Use when evaluating satisfaction, classifying sessions\u002Ftraces, labeling data, or generating signal for agent-observability-eval-pipeline or agent-observability-trace-rca.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11157,11158,11159,11160,11161],{"name":11116,"slug":11117,"type":15},{"name":17,"slug":18,"type":15},{"name":11075,"slug":11076,"type":15},{"name":11078,"slug":11079,"type":15},{"name":11061,"slug":11062,"type":15},"2026-06-19T09:04:26.341497",{"slug":11164,"name":11164,"fn":11165,"description":11166,"org":11167,"tags":11168,"stars":28,"repoUrl":29,"updatedAt":11174},"agent-observability-trace-rca","diagnose LLM application failures from traces","Root cause analysis on production LLM traces. Diagnoses why an LLM application is failing — works from eval judge verdicts, runtime errors, or structural anomalies depending on what signals are present. Walks the span tree from symptom to root cause. Use when user says \"what's wrong with my app\", \"why is my eval failing\", \"analyze errors\", \"root cause analysis\", \"diagnose failures\", or wants to understand production failure patterns.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11169,11170,11171,11172,11173],{"name":17,"slug":18,"type":15},{"name":11072,"slug":11073,"type":15},{"name":11075,"slug":11076,"type":15},{"name":11078,"slug":11079,"type":15},{"name":11061,"slug":11062,"type":15},"2026-06-19T09:04:24.316244",{"slug":11176,"name":11176,"fn":11177,"description":11178,"org":11179,"tags":11180,"stars":28,"repoUrl":29,"updatedAt":11184},"agent-skills","use Datadog observability skills","Datadog skills for AI agents. Essential monitoring, logging, tracing and observability.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11181,11182,11183],{"name":17,"slug":18,"type":15},{"name":13,"slug":14,"type":15},{"name":11061,"slug":11062,"type":15},"2026-08-29T09:21:41.362479",{"slug":11186,"name":11186,"fn":11187,"description":11188,"org":11189,"tags":11190,"stars":28,"repoUrl":29,"updatedAt":11204},"datadog-app","build and manage Datadog applications","Guides developers building Datadog Apps with TypeScript, React, the @datadog\u002Fapps scaffolder, and @datadog\u002Fvite-plugin. Use when a user wants to scaffold, run, debug, upgrade, build, upload, publish, upload without publishing (draft upload), add an upload-no-publish script, set up CI\u002FCD, use OAuth or API\u002Fapplication key auth, trigger\u002Fpoll Workflow Automation, choose DDSQL or Action Catalog for backend data access, or query app datastores with DDSQL, including backend function troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11191,11192,11195,11198,11201],{"name":17,"slug":18,"type":15},{"name":11193,"slug":11194,"type":15},"Frontend","frontend",{"name":11196,"slug":11197,"type":15},"React","react",{"name":11199,"slug":11200,"type":15},"TypeScript","typescript",{"name":11202,"slug":11203,"type":15},"Vite","vite","2026-06-18T08:01:32.562331",{"slug":1328,"name":1328,"fn":11206,"description":11207,"org":11208,"tags":11209,"stars":28,"repoUrl":29,"updatedAt":11215},"configure Datadog account authentication","Ensure the user has an authenticated Datadog account with a valid DD_API_KEY on the right region before any Datadog setup or instrumentation. Detects existing DD_API_KEY \u002F DD_APP_KEY \u002F DD_SITE, validates them against the Datadog API, and fixes the common wrong-region 403. If no usable key exists, signs the user in (OAuth) or creates a new account, then obtains and validates a key. Use this whenever a user needs a Datadog account or API key, hits a 403 \u002F wrong-region error, or is about to run any Datadog *-setup or instrumentation skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11210,11213,11214],{"name":11211,"slug":11212,"type":15},"Configuration","configuration",{"name":17,"slug":18,"type":15},{"name":11061,"slug":11062,"type":15},"2026-08-16T04:01:04.151248",43,{"items":11218,"total":11273},[11219,11226,11234,11241,11249,11257,11265],{"slug":11048,"name":11048,"fn":11049,"description":11050,"org":11220,"tags":11221,"stars":28,"repoUrl":29,"updatedAt":11063},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11222,11223,11224,11225],{"name":17,"slug":18,"type":15},{"name":11055,"slug":11056,"type":15},{"name":11058,"slug":11059,"type":15},{"name":11061,"slug":11062,"type":15},{"slug":11065,"name":11065,"fn":11066,"description":11067,"org":11227,"tags":11228,"stars":28,"repoUrl":29,"updatedAt":11081},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11229,11230,11231,11232,11233],{"name":17,"slug":18,"type":15},{"name":11072,"slug":11073,"type":15},{"name":11075,"slug":11076,"type":15},{"name":11078,"slug":11079,"type":15},{"name":11061,"slug":11062,"type":15},{"slug":11083,"name":11083,"fn":11084,"description":11085,"org":11235,"tags":11236,"stars":28,"repoUrl":29,"updatedAt":11092},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11237,11238,11239,11240],{"name":17,"slug":18,"type":15},{"name":11075,"slug":11076,"type":15},{"name":11078,"slug":11079,"type":15},{"name":11061,"slug":11062,"type":15},{"slug":11094,"name":11094,"fn":11095,"description":11096,"org":11242,"tags":11243,"stars":28,"repoUrl":29,"updatedAt":11108},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11244,11245,11246,11247,11248],{"name":11100,"slug":11101,"type":15},{"name":11103,"slug":11104,"type":15},{"name":17,"slug":18,"type":15},{"name":11075,"slug":11076,"type":15},{"name":11061,"slug":11062,"type":15},{"slug":11110,"name":11110,"fn":11111,"description":11112,"org":11250,"tags":11251,"stars":28,"repoUrl":29,"updatedAt":11122},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11252,11253,11254,11255,11256],{"name":11116,"slug":11117,"type":15},{"name":17,"slug":18,"type":15},{"name":11075,"slug":11076,"type":15},{"name":11078,"slug":11079,"type":15},{"name":11061,"slug":11062,"type":15},{"slug":11124,"name":11124,"fn":11125,"description":11126,"org":11258,"tags":11259,"stars":28,"repoUrl":29,"updatedAt":11136},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11260,11261,11262,11263,11264],{"name":17,"slug":18,"type":15},{"name":11075,"slug":11076,"type":15},{"name":11132,"slug":11133,"type":15},{"name":11078,"slug":11079,"type":15},{"name":11061,"slug":11062,"type":15},{"slug":11138,"name":11138,"fn":11139,"description":11140,"org":11266,"tags":11267,"stars":28,"repoUrl":29,"updatedAt":11150},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[11268,11269,11270,11271,11272],{"name":17,"slug":18,"type":15},{"name":11072,"slug":11073,"type":15},{"name":11078,"slug":11079,"type":15},{"name":11061,"slug":11062,"type":15},{"name":11148,"slug":11149,"type":15},41]