The languageRestrictions() GraphQL query used to get language restrictions for language version. This field is not yet available. It's described here as a preview and is used only for internal testing.

Syntax

Below is the syntax for the languageRestrictions() query field:

graphql
languageRestrictions(
     version: LanguageVersionEnum!
   ): QueryLanguageRestriction!

For the LanguageVersionEnum, you'd enter the language version you want to check from the list in the Given Datatype section further down this page. For the return values you'd list the parameters you want like you can see in the example here:

Raw
graphql
query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}
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" : "query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}
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" : "query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}
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" : "query { ^
  languageRestrictions(version: legacy)  ^
  {version { ^
    name ^
    futureName ^
  }, enabled, allowedFunctions} ^
}" ^
} '
Windows Powershell and curl
powershell
curl.exe -X POST 
    -H "Authorization: Bearer $TOKEN"
    -H "Content-Type: application/json"
    -d '{"query" : "query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}'
    "$YOUR_LOGSCALE_URL/graphql"
Perl
perl
#!/usr/bin/perl

use HTTP::Request;
use LWP;

my $INGEST_TOKEN = "TOKEN";

my $uri = '$YOUR_LOGSCALE_URL/graphql';

my $json = '{"query" : "query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}';
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" : "query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}'''

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" : "query {
  languageRestrictions(version: legacy) 
  {version {
    name
    futureName
  }, enabled, allowedFunctions}
}"
}
);


const options = {
  hostname: '$YOUR_LOGSCALE_URL/graphql',
  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": {
    "languageRestrictions": {
      "version": {
        "name": "legacy",
        "futureName": null
      },
      "enabled": false,
      "allowedFunctions": []
    }
  }
}

In the results shown here, you can see that enabled returns false, meaning there are no language restrictions for the legacy version.

Given Datatypes

The returned datatype LanguageVersionEnum has a few choices. They're listed below:

Table: LanguageVersionEnum

ParameterTypeRequiredDefaultDescription
Some arguments may be required, as indicated in the Required column. For some fields, this column indicates that a result will always be returned for this column.
Table last updated: Sep 13, 2024
federated1booleanyes Indicates if Federated1 version of the LogScale query is used.
legacybooleanyes Whether legacy LogScale query language is used.
xdr1booleanyes Whether XDR1 is used.
xdrdetects1booleanyes Whether XDR Dectects1 query language is used.

Returned Datatypes

The returned datatype QueryLanguageRestriction has a few parameters. Below is a list of them along with a description of each:

Table: QueryLanguageRestriction

ParameterTypeRequiredDefaultDescription
Some arguments may be required, as indicated in the Required column. For some fields, this column indicates that a result will always be returned for this column.
Table last updated: Oct 2, 2024
allowedFunctions[string]yes The list of functions allowed in the language version.
enabledbooleanyes Whether the query language restriction is enabled.
versionLanguageVersionyes The query language version used. See LanguageVersion.