#!/bin/bash TOKEN= ORG_NAME=azure-sandbox-pd BACKUP_DIR=$(date +"%y%m%d-%H%M") mkdir -p $BACKUP_DIR WORKSPACE_ID=$(curl \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/vnd.api+json" \ "https://app.terraform.io/api/v2/organizations/$ORG_NAME/workspaces" | jq -r '.data [].id') for ID in $WORKSPACE_ID; do OBJECT_ID=$(curl \ -H "Authorization: Bearer $TOKEN" \ -H "Content-Type: application/vnd.api+json" \ "https://app.terraform.io/api/v2/workspaces/$ID/current-state-version" | jq -r '.data.attributes."hosted-state-download-url"') curl -H "Authorization: Bearer $TOKEN" "$OBJECT_ID" -o $BACKUP_DIR/$ID.tfstate done