Passing parameters to a custom action script
Sample scripts in Bash, Python, and Perl show how to pass parameters to custom action scripts.
The following simple sample scripts show how to query the asset model API for an asset with the supplied offense source IP address. For the sake of this example, the scripts output the JSON that is returned by the endpoint.
The scripts require three parameters:
- Console IP address
- API token
- Offense source IP address
These parameters are configured in the Define Custom Action window Script Parameters area:

Each parameter is passed to the script in the order in which it was added in the Define Custom Action window. In this case:
- console_ip
- api_token
- offense_source_ip
Important: This example contains a network event property. For the example script to be
executed successfully on the test page, you must assign a source IP address (xx.xx.xx.xx) as a fixed
property value to the offense_source_ip.
The variables that are defined at the beginning of each of the sample scripts use the sample parameter names that were added in the Define Custom Action window.
#!/bin/bash
console_ip=$1
api_token=$2
offense_source_ip=$3
auth_header="SEC:$api_token"
output=$(curl -k -H $auth_header https://$console_ip/console/restapi/api/
asset_model/assets?filter=interfaces%20contains%20%28%20ip_addresses
%20contains%20%28%20value%20%3D%20%22$offense_source_ip%22%29%29)
# Basic print out of the output of the command
echo $output
#!/usr/bin/python
import sys
import requests
console_ip = sys.argv[1]
api_token = sys.argv[2]
offense_source_ip = sys.argv[3]
auth_header = {'SEC' : api_token }
endpoint = "https://{0}/console/restapi/api/asset_model/
assets?filter=interfaces%20contains%20%28%20ip_addresses
%20contains%20%28%20value%20%3D%20%22{1}%22%29%29"
.format(console_ip, offense_source_ip)
response = requests.get(endpoint, headers=auth_header, verify=False)
# Basic print out of the output of the command
print(response.json())
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
my $console_ip = $ARGV[0];
my $api_token = $ARGV[1];
my $offense_source_ip = $ARGV[2];
my $endpoint = "https://$console_ip/console/restapi/api/asset_model/
assets?filter=interfaces%20contains%20%28%20ip_addresses
%20contains%20%28%20value%20%3D%20%22$offense_source_ip%22%29%29";
my $client = LWP::UserAgent -> new(ssl_opts => { verify_hostname => 0 });
my $response = $client -> get($endpoint, "SEC" => $api_token);
# Basic print out of the output of the command
print $response -> decoded_content;