API Stability Preview

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

ParameterTypeRequiredDefaultStabilityDescription
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
federated1boolean  PreviewIndicates if Federated1 version of the LogScale query is used.
legacyboolean  PreviewWhether legacy LogScale query language is used.
xdr1boolean  PreviewWhether XDR1 is used.
xdrdetects1boolean  PreviewWhether XDR Detects 1 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

ParameterTypeRequiredDefaultStabilityDescription
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 PreviewThe list of functions allowed in the language version.
enabledbooleanyes PreviewWhether the query language restriction is enabled.
versionLanguageVersionyes PreviewThe query language version used. See LanguageVersion.