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