API Stability Long-Term

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

Related to this mutation, There is the mutation, updateIPFilter() for changing one, and deleteIPFilter() for deleting an IP filter. There is also the ipFilters() query field for getting a list of IP filters in the system.

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

Syntax

graphql
createIPFilter(
      input: IPFilterInput!
   ): IPFilter!

Example

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 Datatype

For this input datatype, you would provide the name of the IP filter, and the IP filter itself. These are explained in the table below:

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 Datatype

With this returned datatype, you can get information on an IP filter. Since you will have just created one with this mutation, you may only want the unique identifier generated. You can also get the string used for filtering to confirm what was recorded.

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.