API Stability Long-Term

The createIPFilter() GraphQL mutation may be used to create a new IP filter.

For more information on IP filters, see the IP Filter reference page.

Syntax

Below is the syntax for the createIPFilter() mutation field:

graphql
createIPFilter(
      input: IPFilterInput!
   ): IPFilter!

Below is an example of how this mutation field might be used:

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

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 {
  createIPFilter(input:
       { name: \"no-local-filter\"
         ipFilter: \"deny 127.0.0.1\" } )
  { id }
}"
}
);


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": {
    "createIPFilter": {
      "id": "Qh1jpLGO2jfN0uSvla53FlyPlO1gqtVb"
    }
  }
}

Given Datatypes

For IPFilterInput, there are a couple of parameters that may be given. Below is a list of them:

Table: IPFilterInput

ParameterTypeRequiredDefaultStabilityDescription
Some arguments may be required, as indicated in the Required column. For return datatypes, this indicates that you must specify which fields you want returned in the results.
Table last updated: Sep 18, 2024
ipFilterstringyes Long-TermThe IP filter to use.
namestringyes Long-TermThe name of the IP filter.

Returned Datatypes

For IPFilter, there are a few parameters. Below is a list of them along with descriptions of each:

Table: IPFilter

ParameterTypeRequiredDefaultStabilityDescription
Some arguments may be required, as indicated in the Required column. For return datatypes, this indicates that you must specify which fields you want returned in the results.
Table last updated: Sep 25, 2024
idstringyes Long-TermThe unique identifier for the IP filter.
ipFilterstringyes Long-TermThe IP filter itself.
namestringyes Long-TermThe name for the IP filter.