NAME

WebService::OPNsense::Firewall::Alias - Firewall alias controller

VERSION

version 0.003

SYNOPSIS

use WebService::OPNsense::Constants qw( $ALIAS_HOST $OPN_ENABLED );

my $alias = $opn->firewall_alias;

# Search aliases
my $results = $alias->search_item;

# Create an alias
$alias->add_item({
    alias => {
        name        => 'web-servers',
        type        => $ALIAS_HOST,
        content     => "192.0.2.10\n192.0.2.11",
        description => 'My web servers',
    },
});

# Toggle an alias
$alias->toggle_item($uuid, $OPN_ENABLED);

DESCRIPTION

Manages firewall aliases.

METHODS

toggle_item

my $result = $alias->toggle_item($uuid, $enabled);

reconfigure

my $result = $alias->reconfigure;

Reconfigures aliases after changes.

get_alias_uuid

my $uuid = $alias->get_alias_uuid($name);

Returns the UUID for an alias by name.

export

my $data = $alias->export($uuid);

Exports an alias by UUID.

import_alias

my $result = $alias->import_alias($import_data);

Imports an alias from data.

get_table_size

my $size = $alias->get_table_size;

Returns alias table size.

list_categories

my $categories = $alias->list_categories;

Returns a list of available alias categories.

list_countries

my $countries = $alias->list_countries;

Returns a list of country codes for geo-based aliases.

list_network_aliases

my $aliases = $alias->list_network_aliases;

Returns a list of network aliases available for nesting.

list_user_groups

my $groups = $alias->list_user_groups;

Returns a list of user groups.

update

my $result = $alias->update($action);

Updates aliases. Optionally specify an action (e.g. 'flush').

set_alias

my $result = $alias->set_alias($alias_data);

Sets alias configuration (bulk operation).

get

my $aliases = $alias->get;

Returns all alias configuration.

CONSTANTS

Alias type constants are available from WebService::OPNsense::Constants:

$ALIAS_HOST
$ALIAS_NETWORK
$ALIAS_PORT
$ALIAS_URL
$ALIAS_URL_TABLE
$ALIAS_ASN
$ALIAS_GEOIP
$ALIAS_MAC
$ALIAS_INTERNAL
$ALIAS_EXTERNAL
$ALIAS_DYNIPV6HOST
$ALIAS_AUTHGROUP
$ALIAS_NETWORK_GROUP
$ALIAS_URL_JSON

Use them when setting the type field in an alias.

SEE ALSO

WebService::OPNsense::Role::ItemCrud

PROVIDED METHODS

The following methods are inherited from consumed roles.

search_item

my $results = $ctrl->search_item( %params );

Searches for aliases.

get_item

my $alias = $ctrl->get_item( $uuid );

Returns a single alias by UUID. Throws if $uuid is not a valid UUID.

add_item

my $result = $ctrl->add_item( $alias_data );

Creates alias.

set_item

my $result = $ctrl->set_item( $uuid, $alias_data );

Updates alias. Throws if $uuid is not a valid UUID.

del_item

my $result = $ctrl->del_item( $uuid );

Deletes an alias by UUID. Throws if $uuid is not a valid UUID.

client

my $http_client = $ctrl->client;

Returns the underlying HTTP client object used for API requests.

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