EQTY LabDocs

Restore agent

Admin only. Restores a revoked agent and the signing keys its revocation disabled.

posthttps://<host>/api/v1/agents/{agentId}/restore
bash
curl --request POST \
  --url 'https://<host>/api/v1/agents/{agentId}/restore' \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{"reason":"string"}'
javascript
const response = await fetch("https://<host>/api/v1/agents/{agentId}/restore", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "reason": "string"
  })
});

const data = await response.json();
typescript
interface AgentStatusActionResponse {
  correlation_id?: string;
  item?: Record<string, unknown>;
}

const response = await fetch("https://<host>/api/v1/agents/{agentId}/restore", {
  method: "POST",
  headers: {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    "reason": "string"
  })
});
if (!response.ok) throw new Error(`${response.status} ${response.statusText}`);

const data: AgentStatusActionResponse = await response.json();
python
import requests

response = requests.post(
    "https://<host>/api/v1/agents/{agentId}/restore",
    headers={
        "Authorization": "Bearer <token>",
        "Content-Type": "application/json",
    },
    json={
        "reason": "string",
    },
)
response.raise_for_status()
print(response.json())
go
package main

import (
	"fmt"
	"io"
	"net/http"
	"strings"
)

func main() {
	body := strings.NewReader(`{
	  "reason": "string"
	}`)
	req, err := http.NewRequest(http.MethodPost, "https://<host>/api/v1/agents/{agentId}/restore", body)
	if err != nil {
		panic(err)
	}
	req.Header.Set("Authorization", "Bearer <token>")
	req.Header.Set("Content-Type", "application/json")

	res, err := http.DefaultClient.Do(req)
	if err != nil {
		panic(err)
	}
	defer res.Body.Close()

	data, err := io.ReadAll(res.Body)
	if err != nil {
		panic(err)
	}
	fmt.Println(res.Status, string(data))
}
java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;

public class Example {
    public static void main(String[] args) throws Exception {
        HttpRequest request = HttpRequest.newBuilder()
            .uri(URI.create("https://<host>/api/v1/agents/{agentId}/restore"))
            .header("Authorization", "Bearer <token>")
            .header("Content-Type", "application/json")
            .method("POST", HttpRequest.BodyPublishers.ofString("""
                {
                  "reason": "string"
                }
                """))
            .build();

        HttpResponse<String> response = HttpClient.newHttpClient()
            .send(request, HttpResponse.BodyHandlers.ofString());
        System.out.println(response.statusCode() + " " + response.body());
    }
}
csharp
using System.Net.Http.Headers;
using System.Text;

using var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Post, "https://<host>/api/v1/agents/{agentId}/restore");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "<token>");
request.Content = new StringContent("""
    {
      "reason": "string"
    }
    """, Encoding.UTF8, "application/json");

using var response = await client.SendAsync(request);
Console.WriteLine($"{(int)response.StatusCode} {await response.Content.ReadAsStringAsync()}");
php
<?php

$ch = curl_init('https://<host>/api/v1/agents/{agentId}/restore');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer <token>',
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => <<<'JSON'
    {
      "reason": "string"
    }
    JSON,
    CURLOPT_RETURNTRANSFER => true,
]);

$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_RESPONSE_CODE);
echo $status . " " . $response . PHP_EOL;
ruby
require "net/http"

uri = URI("https://<host>/api/v1/agents/{agentId}/restore")
request = Net::HTTP::Post.new(uri)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = <<~'JSON'
  {
    "reason": "string"
  }
JSON

response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
  http.request(request)
end
puts "#{response.code} #{response.body}"
rust
// Cargo.toml dependencies: reqwest (features "json"), serde_json, tokio (features "full")
use serde_json::json;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let response = reqwest::Client::new()
        .post("https://<host>/api/v1/agents/{agentId}/restore")
        .header("Authorization", "Bearer <token>")
        .json(&json!({
            "reason": "string"
        }))
        .send()
        .await?;

    println!("{} {}", response.status(), response.text().await?);
    Ok(())
}

Authorizations

  • BearerAuth · API key in header "Authorization" — Type "Bearer" followed by a space and a sign-in token: a Guardian Platform JWT, or an OIDC ID token in a standalone deployment.

Parameters

Path parameters

NameTypeDescription
agentId
required
string

Agent ID

Request body

Restore reason

application/json
  • reasonstring
Examplejson
{
  "reason": "string"
}

Responses

200OK

application/json
  • correlation_idstring
  • itemgithub_com_eqtylab_gateway_control-plane_service_internal_discovery.AgentSummary
    Show github_com_eqtylab_gateway_control-plane_service_internal_discovery.AgentSummary
    • active_key_countinteger
    • active_user_binding_countinteger
    • agent_idstring
    • app_typestring
    • badgesgithub_com_eqtylab_gateway_control-plane_service_internal_discovery.AgentBadge[]
      Show properties

      Array of github_com_eqtylab_gateway_control-plane_service_internal_discovery.AgentBadge

      • descriptionstring
      • first_observed_atstring
      • keystring
      • labelstring
      • last_observed_atstring
      • metadataobject
        Show properties

        Map of any

      • metadata_typestring
      • plugin_idstring
      • statusstring
      • subject_didstring
    • created_atstring
    • did_sourcestring
    • display_namestring
    • frameworkobject

      Framework is the framework named by the definition the agent's newest state names, as the definition gives it, read from the verified state rather than the app type a request declares. It is nil when the newest state names no definition (another app type, or recorded before the gateway recorded definitions) or the gateway couldn't record the definition's framework.

      Show properties
      • namestring
      • packagesobject
        Show properties

        Map of string

    • last_audit_atstring
    • primary_didstring
    • primary_user_display_namestring
    • statusstring
    • throughputinteger[]
    • total_audit_eventsinteger
    • updated_atstring
Examplejson
{
  "correlation_id": "string",
  "item": {
    "active_key_count": 0,
    "active_user_binding_count": 0,
    "agent_id": "string",
    "app_type": "string",
    "badges": [
      {
        "description": "string",
        "first_observed_at": "string",
        "key": "string",
        "label": "string",
        "last_observed_at": "string",
        "metadata": {
          "key": null
        },
        "metadata_type": "string",
        "plugin_id": "string",
        "status": "string",
        "subject_did": "string"
      }
    ],
    "created_at": "string",
    "did_source": "string",
    "display_name": "string",
    "framework": {
      "name": "string",
      "packages": {
        "key": "string"
      }
    },
    "last_audit_at": "string",
    "primary_did": "string",
    "primary_user_display_name": "string",
    "status": "string",
    "throughput": [
      0
    ],
    "total_audit_events": 0,
    "updated_at": "string"
  }
}

400Bad Request

application/json
  • codestring
  • correlation_idstring
  • messagestring
Examplejson
{
  "code": "string",
  "correlation_id": "string",
  "message": "string"
}

401Unauthorized

application/json
  • codestring
  • correlation_idstring
  • messagestring
Examplejson
{
  "code": "string",
  "correlation_id": "string",
  "message": "string"
}

403Forbidden

application/json
  • codestring
  • correlation_idstring
  • messagestring
Examplejson
{
  "code": "string",
  "correlation_id": "string",
  "message": "string"
}

404Not Found

application/json
  • codestring
  • correlation_idstring
  • messagestring
Examplejson
{
  "code": "string",
  "correlation_id": "string",
  "message": "string"
}

409Conflict

application/json
  • codestring
  • correlation_idstring
  • messagestring
Examplejson
{
  "code": "string",
  "correlation_id": "string",
  "message": "string"
}

500Internal Server Error

application/json
  • codestring
  • correlation_idstring
  • messagestring
Examplejson
{
  "code": "string",
  "correlation_id": "string",
  "message": "string"
}