Cancels a data deletion request

PUT https://api.ap1.datadoghq.com/api/v2/deletion/requests/{id}/cancelhttps://api.ap2.datadoghq.com/api/v2/deletion/requests/{id}/cancelhttps://api.datadoghq.eu/api/v2/deletion/requests/{id}/cancelhttps://api.ddog-gov.com/api/v2/deletion/requests/{id}/cancelhttps://api.us2.ddog-gov.com/api/v2/deletion/requests/{id}/cancelhttps://api.uk1.datadoghq.com/api/v2/deletion/requests/{id}/cancelhttps://api.datadoghq.com/api/v2/deletion/requests/{id}/cancelhttps://api.us3.datadoghq.com/api/v2/deletion/requests/{id}/cancelhttps://api.us5.datadoghq.com/api/v2/deletion/requests/{id}/cancel

Overview

Cancels a data deletion request by providing its ID. This endpoint requires the logs_delete_data permission.

Arguments

Path Parameters

Name

Type

Description

id [required]

string

ID of the deletion request.

Response

OK

The response from the cancel data deletion request endpoint.

Expand All

Field

Type

Description

data

object

The created data deletion request information.

attributes [required]

object

Deletion attribute for data deletion response.

created_at [required]

string

Creation time of the deletion request.

created_by [required]

string

User who created the deletion request.

customer_message

string

A message for the customer regarding the deletion request, if any.

displayed_total [required]

int64

Total number of elements to be deleted as displayed to the user.

error_category

string

The category of the error for the deletion request, if any.

from_time [required]

int64

Start of requested time window, milliseconds since Unix epoch.

indexes

[string]

List of indexes for the search. If not provided, the search is performed in all indexes.

is_created [required]

boolean

Whether the deletion request is fully created or not. It can take several minutes to fully create a deletion request depending on the target query and timeframe.

org_id [required]

int64

Organization ID.

product [required]

string

Product name.

query [required]

string

Query for creating a data deletion request.

starting_at [required]

string

Starting time of the process to delete the requested data.

status [required]

string

Status of the deletion request.

to_time [required]

int64

End of requested time window, milliseconds since Unix epoch.

total_unrestricted [required]

int64

Total number of elements to be deleted. Only the data accessible to the current user that matches the query and timeframe provided will be deleted.

updated_at [required]

string

Update time of the deletion request.

id [required]

string

The ID of the created data deletion request.

type [required]

string

The type of the request created.

meta

object

The metadata of the data deletion response.

count_product

object

The total deletion requests created by product.

<any-key>

int64

count_status

object

The total deletion requests created by status.

<any-key>

int64

next_page

string

The next page when searching deletion requests created in the current organization.

product

string

The product of the deletion request.

request_status

string

The status of the executed request.

{
  "data": {
    "attributes": {
      "created_at": "2024-01-01T00:00:00.000000Z",
      "created_by": "test.user@datadoghq.com",
      "customer_message": "Your deletion request is being processed.",
      "displayed_total": 100,
      "error_category": "validation_error",
      "from_time": 1672527600000,
      "indexes": [
        "test-index",
        "test-index-2"
      ],
      "is_created": true,
      "org_id": 321813,
      "product": "logs",
      "query": "service:xyz host:abc",
      "starting_at": "2024-01-01T02:00:00.000000Z",
      "status": "pending",
      "to_time": 1704063600000,
      "total_unrestricted": 100,
      "updated_at": "2024-01-01T00:00:00.000000Z"
    },
    "id": "1",
    "type": "deletion_request"
  },
  "meta": {
    "count_product": {
      "<any-key>": "integer"
    },
    "count_status": {
      "<any-key>": "integer"
    },
    "next_page": "cGFnZTI=",
    "product": "logs",
    "request_status": "canceled"
  }
}

Bad Request

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Forbidden

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Precondition failed error

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Too many requests

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Internal server error

API error response.

Expand All

Field

Type

Description

errors [required]

[string]

A list of errors.

{
  "errors": [
    "Bad Request"
  ]
}

Code Example

                  # Path parameters
export id="CHANGE_ME"
# Curl command
curl -X PUT "https://api.ap1.datadoghq.com"https://api.ap2.datadoghq.com"https://api.datadoghq.eu"https://api.ddog-gov.com"https://api.us2.ddog-gov.com"https://api.uk1.datadoghq.com"https://api.datadoghq.com"https://api.us3.datadoghq.com"https://api.us5.datadoghq.com/api/v2/deletion/requests/${id}/cancel" \ -H "Accept: application/json" \ -H "DD-API-KEY: ${DD_API_KEY}" \ -H "DD-APPLICATION-KEY: ${DD_APP_KEY}"
"""
Cancels a data deletion request returns "OK" response
"""

from os import environ
from datadog_api_client import ApiClient, Configuration
from datadog_api_client.v2.api.data_deletion_api import DataDeletionApi

# there is a valid "deletion_request" in the system
DELETION_REQUEST_DATA_ID = environ["DELETION_REQUEST_DATA_ID"]

configuration = Configuration()
with ApiClient(configuration) as api_client:
    api_instance = DataDeletionApi(api_client)
    response = api_instance.cancel_data_deletion_request(
        id=DELETION_REQUEST_DATA_ID,
    )

    print(response)

Instructions

First install the library and its dependencies and then save the example to example.py and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" python3 "example.py"
# Cancels a data deletion request returns "OK" response

require "datadog_api_client"
api_instance = DatadogAPIClient::V2::DataDeletionAPI.new

# there is a valid "deletion_request" in the system
DELETION_REQUEST_DATA_ID = ENV["DELETION_REQUEST_DATA_ID"]
p api_instance.cancel_data_deletion_request(DELETION_REQUEST_DATA_ID)

Instructions

First install the library and its dependencies and then save the example to example.rb and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" rb "example.rb"
// Cancels a data deletion request returns "OK" response

package main

import (
	"context"
	"encoding/json"
	"fmt"
	"os"

	"github.com/DataDog/datadog-api-client-go/v2/api/datadog"
	"github.com/DataDog/datadog-api-client-go/v2/api/datadogV2"
)

func main() {
	// there is a valid "deletion_request" in the system
	DeletionRequestDataID := os.Getenv("DELETION_REQUEST_DATA_ID")

	ctx := datadog.NewDefaultContext(context.Background())
	configuration := datadog.NewConfiguration()
	apiClient := datadog.NewAPIClient(configuration)
	api := datadogV2.NewDataDeletionApi(apiClient)
	resp, r, err := api.CancelDataDeletionRequest(ctx, DeletionRequestDataID)

	if err != nil {
		fmt.Fprintf(os.Stderr, "Error when calling `DataDeletionApi.CancelDataDeletionRequest`: %v\n", err)
		fmt.Fprintf(os.Stderr, "Full HTTP response: %v\n", r)
	}

	responseContent, _ := json.MarshalIndent(resp, "", "  ")
	fmt.Fprintf(os.Stdout, "Response from `DataDeletionApi.CancelDataDeletionRequest`:\n%s\n", responseContent)
}

Instructions

First install the library and its dependencies and then save the example to main.go and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" go run "main.go"
// Cancels a data deletion request returns "OK" response

import com.datadog.api.client.ApiClient;
import com.datadog.api.client.ApiException;
import com.datadog.api.client.v2.api.DataDeletionApi;
import com.datadog.api.client.v2.model.CancelDataDeletionResponseBody;

public class Example {
  public static void main(String[] args) {
    ApiClient defaultClient = ApiClient.getDefaultApiClient();
    DataDeletionApi apiInstance = new DataDeletionApi(defaultClient);

    // there is a valid "deletion_request" in the system
    String DELETION_REQUEST_DATA_ID = System.getenv("DELETION_REQUEST_DATA_ID");

    try {
      CancelDataDeletionResponseBody result =
          apiInstance.cancelDataDeletionRequest(DELETION_REQUEST_DATA_ID);
      System.out.println(result);
    } catch (ApiException e) {
      System.err.println("Exception when calling DataDeletionApi#cancelDataDeletionRequest");
      System.err.println("Status code: " + e.getCode());
      System.err.println("Reason: " + e.getResponseBody());
      System.err.println("Response headers: " + e.getResponseHeaders());
      e.printStackTrace();
    }
  }
}

Instructions

First install the library and its dependencies and then save the example to Example.java and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" java "Example.java"
// Cancels a data deletion request returns "OK" response
use datadog_api_client::datadog;
use datadog_api_client::datadogV2::api_data_deletion::DataDeletionAPI;

#[tokio::main]
async fn main() {
    // there is a valid "deletion_request" in the system
    let deletion_request_data_id = std::env::var("DELETION_REQUEST_DATA_ID").unwrap();
    let configuration = datadog::Configuration::new();
    let api = DataDeletionAPI::with_config(configuration);
    let resp = api
        .cancel_data_deletion_request(deletion_request_data_id.clone())
        .await;
    if let Ok(value) = resp {
        println!("{:#?}", value);
    } else {
        println!("{:#?}", resp.unwrap_err());
    }
}

Instructions

First install the library and its dependencies and then save the example to src/main.rs and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" cargo run
/**
 * Cancels a data deletion request returns "OK" response
 */

import { client, v2 } from "@datadog/datadog-api-client";

const configuration = client.createConfiguration();
const apiInstance = new v2.DataDeletionApi(configuration);

// there is a valid "deletion_request" in the system
const DELETION_REQUEST_DATA_ID = process.env.DELETION_REQUEST_DATA_ID as string;

const params: v2.DataDeletionApiCancelDataDeletionRequestRequest = {
  id: DELETION_REQUEST_DATA_ID,
};

apiInstance
  .cancelDataDeletionRequest(params)
  .then((data: v2.CancelDataDeletionResponseBody) => {
    console.log(
      "API called successfully. Returned data: " + JSON.stringify(data)
    );
  })
  .catch((error: any) => console.error(error));

Instructions

First install the library and its dependencies and then save the example to example.ts and run following commands:

    
DD_SITE="datadoghq.comus3.datadoghq.comus5.datadoghq.comdatadoghq.euap1.datadoghq.comap2.datadoghq.comuk1.datadoghq.comddog-gov.comus2.ddog-gov.com" DD_API_KEY="<DD_API_KEY>" DD_APP_KEY="<DD_APP_KEY>" tsc "example.ts"