Summary

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

API Stability Long-Term

Syntax

graphql
createIPFilter(
      input: IPFilterInput!
   ): IPFilter!

For the input, you'll have to give the name of the IP filter, and the IP filter itself. See the Input Parameters section for details.

For the results, you can get plenty on the IP filter. See the Returned Values section for what's available.

Example

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": "abc123"
    }
  }
}

Input Parameters

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

Table: IPFilterInput Input Datatype

ParameterTypeRequiredDefaultStabilityDescription
Some input parameters may be required, as indicated in the Required column. For return values, this indicates that you are assured a value if the field is requested for the results.
Table last updated: Sep 18, 2024
ipFilterstringyes Long-TermThe IP filter to use.
namestringyes Long-TermThe name of the IP filter.

Returned Values

For the results, 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 Datatype

ParameterTypeRequiredDefaultStabilityDescription
Some input parameters may be required, as indicated in the Required column. For return values, this indicates that you are assured a value if the field is requested for 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.