Summary

The deleteSearchDomainById() mutation permanently deletes a repository or view identified by its unique ID. Deleting a repository removes all stored events and associated metadata. Deleting a view removes only the query definition; the underlying repository data is not affected. Use this mutation when you already have the search domain ID and do not need to look it up by name first. To delete a search domain by name instead, use deleteSearchDomain().

Syntax

graphql
deleteSearchDomainById(
      input: DeleteSearchDomainByIdInput!
   ): Boolean!

The mutation takes a required input argument of type DeleteSearchDomainByIdInput. The input requires the id of the search domain to delete. Use the searchDomains() query to retrieve the ID before calling this mutation. You can also provide an optional deleteMessage to record a reason in the audit log. This message is stored with the deletion event and is visible to administrators reviewing audit history.

The mutation returns a non-null Boolean!. A value of true confirms the deletion succeeded. To recover a deleted search domain, use restoreDeletedSearchDomain().

Example

Raw
graphql
mutation {
  deleteSearchDomainById( input: {
       id: "abc123",
       deleteMessage: "Sorry: Had to be deleted."
  } )
}
Mac OS or Linux (curl)
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation {
  deleteSearchDomainById( input: {
       id: \"abc123\",
       deleteMessage: \"Sorry: Had to be deleted.\"
  } )
}"
}
EOF
Mac OS or Linux (curl) One-line
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql \
    -H "Authorization: Bearer $TOKEN" \
    -H "Content-Type: application/json" \
    -d @- << EOF
{"query" : "mutation {
  deleteSearchDomainById( input: {
       id: \"abc123\",
       deleteMessage: \"Sorry: Had to be deleted.\"
  } )
}"
}
EOF
Windows Cmd and curl
shell
curl -v -X POST $YOUR_LOGSCALE_URL/graphql ^
    -H "Authorization: Bearer $TOKEN" ^
    -H "Content-Type: application/json" ^
    -d @'{"query" : "mutation { ^
  deleteSearchDomainById( input: { ^
       id: \"abc123\", ^
       deleteMessage: \"Sorry: Had to be deleted.\" ^
  } ) ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  deleteSearchDomainById( input: {
       id: \"abc123\",
       deleteMessage: \"Sorry: Had to be deleted.\"
  } )
}"
}'
    "$YOUR_LOGSCALE_URL/graphql"
Perl
perl
#!/usr/bin/perl

use HTTP::Request;
use LWP;

my $TOKEN = "TOKEN";

my $uri = '$YOUR_LOGSCALE_URL/graphql';

my $query = "mutation {
  deleteSearchDomainById( input: {
       id: \"abc123\",
       deleteMessage: \"Sorry: Had to be deleted.\"
  } )
}";
$query =~ s/\n/ /g;
my $json = sprintf('{"query" : "%s"}',$query);
my $req = HTTP::Request->new("POST", $uri );

$req->header("Authorization" => "Bearer $TOKEN");
$req->header("Content-Type" => "application/json");

$req->content( $json );

my $lwp = LWP::UserAgent->new;

my $result = $lwp->request( $req );

print $result->{"_content"},"\n";
Python
python
#! /usr/local/bin/python3

import requests

url = '$YOUR_LOGSCALE_URL/graphql'
mydata = r'''{"query" : "mutation {
  deleteSearchDomainById( input: {
       id: \"abc123\",
       deleteMessage: \"Sorry: Had to be deleted.\"
  } )
}"
}'''

resp = requests.post(url,
                     data = mydata,
                     headers = {
   "Authorization" : "Bearer $TOKEN",
   "Content-Type" : "application/json"
}
)

print(resp.text)
Node.js
javascript
const https = require('https');

const data = JSON.stringify(
    {"query" : "mutation {
  deleteSearchDomainById( input: {
       id: \"abc123\",
       deleteMessage: \"Sorry: Had to be deleted.\"
  } )
}"
}
);


const options = {
  hostname: '$YOUR_LOGSCALE_URL',
  path: 'graphql',
  port: 443,
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'Content-Length': data.length,
    Authorization: 'BEARER ' + process.env.TOKEN,
    'User-Agent': 'Node',
  },
};

const req = https.request(options, (res) => {
  let data = '';
  console.log(`statusCode: ${res.statusCode}`);

  res.on('data', (d) => {
    data += d;
  });
  res.on('end', () => {
    console.log(JSON.parse(data).data);
  });
});

req.on('error', (error) => {
  console.error(error);
});

req.write(data);
req.end();
Example Responses
Success (HTTP Response Code 200 OK)
json
{
  "data": {
    "deleteSearchDomainById": true
  }
}

Input Parameters

The DeleteSearchDomainByIdInput type requires the unique ID of the search domain to delete. The optional deleteMessage field records a human-readable reason for the deletion in the audit log, which helps administrators trace why a domain was removed. The following table describes each field.

Table: DeleteSearchDomainByIdInput Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
deleteMessageString  Long-Term Optional message to why the search domain was deleted. Will be added to the audit log.
idStringyes Long-Term The unique identifier of the search domain.