EQTY LabDocs

Remove a declaration from an assessment's draft

Remove a declaration from an assessment's draft, so it no longer covers its controls. A submission keeps the declarations it froze, and their files stay downloadable through it, so a frozen declaration is locked in and can't be removed until a reviewer finds a control it covers not satisfied in the newest submission. One added since the newest submission can always be removed. The declaration's statement stays in the Integrity Service. Only the member who started the assessment may remove declarations; an integration's API key bound to no project acts as its owner with full access or the submit_agent_assessments scope

deletehttps://localhost:10001/api/v1/organizations/{orgId}/assessments/{assessmentId}/declarations/{declarationId}
bash
curl --request DELETE \
  --url 'https://localhost:10001/api/v1/organizations/{orgId}/assessments/{assessmentId}/declarations/{declarationId}' \
  --header 'Authorization: Bearer <token>'
javascript
const response = await fetch("https://localhost:10001/api/v1/organizations/{orgId}/assessments/{assessmentId}/declarations/{declarationId}", {
  method: "DELETE",
  headers: {
    "Authorization": "Bearer <token>"
  }
});

console.log(response.status);
typescript
const response = await fetch("https://localhost:10001/api/v1/organizations/{orgId}/assessments/{assessmentId}/declarations/{declarationId}", {
  method: "DELETE",
  headers: {
    "Authorization": "Bearer <token>"
  }
});
if (!response.ok) throw new Error(`${response.status} ${response.statusText}`);

console.log(response.status);
python
import requests

response = requests.delete(
    "https://localhost:10001/api/v1/organizations/{orgId}/assessments/{assessmentId}/declarations/{declarationId}",
    headers={
        "Authorization": "Bearer <token>",
    },
)
response.raise_for_status()
print(response.status_code)
go
package main

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

func main() {
	req, err := http.NewRequest(http.MethodDelete, "https://localhost:10001/api/v1/organizations/{orgId}/assessments/{assessmentId}/declarations/{declarationId}", nil)
	if err != nil {
		panic(err)
	}
	req.Header.Set("Authorization", "Bearer <token>")

	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://localhost:10001/api/v1/organizations/{orgId}/assessments/{assessmentId}/declarations/{declarationId}"))
            .header("Authorization", "Bearer <token>")
            .method("DELETE", HttpRequest.BodyPublishers.noBody())
            .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 var client = new HttpClient();
using var request = new HttpRequestMessage(HttpMethod.Delete, "https://localhost:10001/api/v1/organizations/{orgId}/assessments/{assessmentId}/declarations/{declarationId}");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", "<token>");

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

$ch = curl_init('https://localhost:10001/api/v1/organizations/{orgId}/assessments/{assessmentId}/declarations/{declarationId}');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'DELETE',
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer <token>',
    ],
    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://localhost:10001/api/v1/organizations/{orgId}/assessments/{assessmentId}/declarations/{declarationId}")
request = Net::HTTP::Delete.new(uri)
request["Authorization"] = "Bearer <token>"

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, tokio (features "full")

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let response = reqwest::Client::new()
        .delete("https://localhost:10001/api/v1/organizations/{orgId}/assessments/{assessmentId}/declarations/{declarationId}")
        .header("Authorization", "Bearer <token>")
        .send()
        .await?;

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

Authorizations

  • BearerAuth · API key in header "Authorization" — Type "Bearer" followed by a space and JWT token.

Parameters

Path parameters

NameTypeDescription
orgId
required
string

Organization ID or UUID (urn:uuid optional)

assessmentId
required
string

Assessment UUID (urn:uuid optional)

declarationId
required
string

Declaration UUID (urn:uuid optional)

Responses

204Removed

400Bad request - Invalid declaration ID

application/json
  • errorstring
Examplejson
{
  "error": "Invalid request body"
}

401Unauthorized - Authentication required

application/json
  • errorstring
Examplejson
{
  "error": "Invalid request body"
}

403Forbidden - Not the assessment's starter, an API key with neither full access nor submit_agent_assessments, or a project-bound key

application/json
  • errorstring
Examplejson
{
  "error": "Invalid request body"
}

404Assessment, or declaration in its draft, not found

application/json
  • errorstring
Examplejson
{
  "error": "Invalid request body"
}

409A submission froze the declaration, and no reviewer has found a control it covers not satisfied in the newest submission

application/json
  • errorstring
Examplejson
{
  "error": "Invalid request body"
}

500Internal server error

application/json
  • errorstring
Examplejson
{
  "error": "Invalid request body"
}