Summary

The deleteExternalFunction() mutation permanently removes an external function specification from LogScale. External functions extend the LogScale query language with custom logic defined outside the platform. After deletion, the function is immediately unavailable; any saved searches, parsers, or alerts that reference it will produce errors. Before deleting, remove the function from all relevant language version allowlists using removeFunctionsFromAllowList(). If you plan to replace the function with a revised definition, use createOrUpdateExternalFunction() to register the new version before deleting the existing one.

Syntax

graphql
deleteExternalFunction(
      input: deleteExternalFunctionInput!
   ): Boolean!

The mutation takes a required input argument of type deleteExternalFunctionInput. The input specifies the name of the external function to delete. The name must exactly match the registered function name, including case. See the Input Parameters section for the full field reference.

The mutation returns a non-null Boolean. A value of true indicates successful deletion. If the specified function does not exist, the server returns an error rather than false.

Example

Raw
graphql
mutation {
  deleteExternalFunction( input: {
         name: "cool_function"
  } )
}
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 {
  deleteExternalFunction( input: {
         name: \"cool_function\"
  } )
}"
}
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 {
  deleteExternalFunction( input: {
         name: \"cool_function\"
  } )
}"
}
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 { ^
  deleteExternalFunction( input: { ^
         name: \"cool_function\" ^
  } ) ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "mutation {
  deleteExternalFunction( input: {
         name: \"cool_function\"
  } )
}"
}'
    "$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 {
  deleteExternalFunction( input: {
         name: \"cool_function\"
  } )
}";
$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 {
  deleteExternalFunction( input: {
         name: \"cool_function\"
  } )
}"
}'''

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 {
  deleteExternalFunction( input: {
         name: \"cool_function\"
  } )
}"
}
);


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": {
    "deleteExternalFunction": true
  }
}

Input Parameters

The input argument accepts a deleteExternalFunctionInput object with a single required field: the name of the external function to delete. Provide the exact registered name of the function; the value is case-sensitive. The following table describes the field:

Table: deleteExternalFunctionInput Input Datatype

ParameterTypeRequiredDefaultStabilityAvailabilityDescription
nameStringyesย Previewย The name of the external function to delete.