NAME
WebService::OPNsense::Firewall::Role::NAT - Role for NAT controller shared rule methods
VERSION
version 0.003
DESCRIPTION
Provides shared rule CRUD and utility methods used by the NAT controller classes. All methods in this section are called on the consuming object, not on the role directly.
This role is consumed by WebService::OPNsense::Firewall::DNat, WebService::OPNsense::Firewall::OneToOne, WebService::OPNsense::Firewall::SourceNat, WebService::OPNsense::Firewall::Npt, and WebService::OPNsense::Firewall::Filter.
PROVIDED METHODS
add_rule
my $result = $ctrl->add_rule( $rule_data );
Creates NAT rule.
apply
my $result = $ctrl->apply;
my $result = $ctrl->apply( $rollback_revision );
Applies pending NAT rule changes. Optionally specify a rollback revision.
cancel_rollback
my $result = $ctrl->cancel_rollback( $revision );
Cancels a pending rollback by revision number.
del_rule
my $result = $ctrl->del_rule( $uuid );
Deletes a NAT rule by UUID. Throws if $uuid is not a valid UUID.
get
my $config = $ctrl->get;
Returns the full NAT configuration.
get_rule
my $rule = $ctrl->get_rule( $uuid );
Returns a single NAT rule by UUID. Throws if $uuid is not a valid UUID.
list_categories
my $categories = $ctrl->list_categories;
Returns a list of available rule categories.
list_network_select_options
my $options = $ctrl->list_network_select_options;
Returns selectable network options for rule creation.
list_port_select_options
my $options = $ctrl->list_port_select_options;
Returns selectable port options for rule creation.
move_rule_before
my $result = $ctrl->move_rule_before( $selected_uuid, $target_uuid );
Moves a NAT rule before another rule in the rule order. Throws if either $selected_uuid or $target_uuid is not a valid UUID.
revert
my $result = $ctrl->revert( $revision );
Reverts to a previous configuration revision.
savepoint
my $result = $ctrl->savepoint;
Creates a configuration savepoint for rollback.
search_rule
my $results = $ctrl->search_rule( %params );
Searches for NAT rules. Returns a hashref with rows and total keys.
set_rule
my $result = $ctrl->set_rule( $uuid, $rule_data );
Updates NAT rule. Throws if $uuid is not a valid UUID.
set_settings
my $result = $ctrl->set_settings( $settings );
Updates the NAT configuration.
toggle_rule
my $result = $ctrl->toggle_rule( $uuid, $enabled );
Enables or disables a NAT rule. Throws if $uuid is not a valid UUID.
toggle_rule_log
my $result = $ctrl->toggle_rule_log( $uuid, $log );
Enables or disables logging for a NAT rule. Throws if $uuid is not a valid UUID. $log should be 0 or 1.
client
my $http_client = $ctrl->client;
Returns the underlying HTTP client object used for API requests.
SEE ALSO
WebService::OPNsense::Firewall::DNat, WebService::OPNsense::Firewall::OneToOne, WebService::OPNsense::Firewall::SourceNat, WebService::OPNsense::Firewall::Npt, WebService::OPNsense::Firewall::Filter
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