NAME
WebService::OPNsense::Firewall::Filter - Firewall filter rule controller
VERSION
version 0.001
SYNOPSIS
my $filter = $opn->firewall_filter;
# Search for rules
my $rules = $filter->search_rule(
current => 1,
rowCount => 50,
);
# Add a new rule
my $result = $filter->add_rule({
rule => {
description => 'Allow HTTP',
action => 'pass',
protocol => 'TCP',
source_net => 'any',
destination_port => '80',
},
});
DESCRIPTION
Manages firewall filter rules.
NAME
WebService::OPNsense::Firewall::Filter - Firewall filter rule controller
CONSTANTS
SNAT mode constants are available from WebService::OPNsense::Constants:
Use them when setting the SNAT mode via the snat_mode field.
METHODS
search_rule
my $results = $filter->search_rule(%params);
Searches for firewall rules. Returns the raw API response hashref.
get_rule
my $rule = $filter->get_rule($uuid);
Returns a single rule by UUID.
add_rule
my $result = $filter->add_rule($rule_data);
Creates a new firewall rule. $rule_data should be a hashref matching the OPNsense API format (e.g. { rule => { ... } }).
set_rule
my $result = $filter->set_rule($uuid, $rule_data);
Updates an existing rule.
del_rule
my $result = $filter->del_rule($uuid);
Deletes a rule by UUID.
toggle_rule
my $result = $filter->toggle_rule($uuid, $enabled);
Enables or disables a rule.
apply
my $result = $filter->apply;
my $result = $filter->apply($rollback_revision);
Applies pending changes. Optionally specify a rollback revision.
savepoint
my $result = $filter->savepoint;
Creates a configuration savepoint for rollback.
cancel_rollback
my $result = $filter->cancel_rollback($revision);
Cancels a pending rollback.
move_rule_before
my $result = $filter->move_rule_before($selected_uuid, $target_uuid);
Moves a rule before another rule in the rule order.
toggle_rule_log
my $result = $filter->toggle_rule_log($uuid, $log);
Toggles the log flag for a rule. $log should be 0 or 1.
download_rules
my $rules = $filter->download_rules;
Downloads all firewall rules.
upload_rules
my $result = $filter->upload_rules($rules_data);
Uploads firewall rules from a data structure.
get_interface_list
my $interfaces = $filter->get_interface_list;
Returns a list of available network interfaces.
list_categories
my $categories = $filter->list_categories;
Returns a list of available rule categories.
list_network_select_options
my $options = $filter->list_network_select_options;
Returns selectable network options for rule creation.
list_port_select_options
my $options = $filter->list_port_select_options;
Returns selectable port options for rule creation.
AUTHOR
Dean Hamstead <dean@fragfest.com.au>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2026 by Dean Hamstead.
This is free software, licensed under:
The MIT (X11) License