# Définir les variables de configuration
$jsonKeyFile      = "d6cd222549da.json"   # Modifier le chemin vers votre fichier JSON d'authentification
$projectId        = "abc-prj-np-mdf-001"                         # Remplacez par l'ID de votre projet GCP
$subscriptionName = "alerte:pull"                # Remplacez par le nom de la subscription Pub/Sub
$APIUrl           = "https://pubsub.googleapis.com/v1"

# Activer le compte de service avec le fichier JSON
Write-Output "Activation du compte de service..."
gcloud auth activate-service-account --key-file $jsonKeyFile

# Récupérer le token d'accès
Write-Output "Récupération du token d'accès..."
$accessToken = gcloud auth print-access-token

# Définir l'URL de l'API Pub/Sub pour une opération de pull (récupération de messages)
$uri = "$APIUrl/projects/$projectId/subscriptions/$subscriptionName"

$Headers = @{
    Authorization = "Bearer $accessToken"
    "accept"         = "application/json"
    "Content-Type"   = "application/json"
}

# Préparer le corps de la requête (ici, on demande jusqu'à 10 messages)
$payloadPull = @{
     maxMessages = 10
} | ConvertTo-Json -Depth 10

Write-Output "Interrogation de l'API Pub/Sub..."
# Appeler l'API Pub/Sub avec une requête POST
$responsePull = Invoke-RestMethod -Uri $uri -Method POST -Headers $Headers -Body $payloadPull

# Afficher la réponse
Write-Output "Réponse de l'API :" $responsePull | ConvertTo-Json -Depth 10
