#!/usr/bin/env bash
set -euo pipefail

privatelink="$(terraform output -json privatelink)"
subscription_id="$(terraform output -raw azure_subscription_id)"
if [[ "$(jq -r '.enabled' <<<"$privatelink")" != "true" ]]; then
  exit 0
fi

blocked=0
while IFS= read -r service_id; do
  connections="$(az network private-link-service show \
    --ids "$service_id" \
    --subscription "$subscription_id" \
    --query 'privateEndpointConnections[].{id:privateEndpoint.id,status:privateLinkServiceConnectionState.status}' \
    -o tsv)"
  if [[ -n "$connections" ]]; then
    printf '%s\n' "$connections" >&2
    blocked=1
  fi
done < <(jq -r '[.mysql.resource_id, .kafka.resource_id] | unique[]' <<<"$privatelink")

if ((blocked)); then
  echo "Remove the listed Azure Private Endpoint connections before deep sleep." >&2
  exit 1
fi
