NAME

WebService::OPNsense::Dnsmasq::Settings - Dnsmasq settings controller

VERSION

version 0.001

SYNOPSIS

my $settings = $opn->dnsmasq_settings;

# Get current settings
my $config = $settings->get;

# Update settings
$settings->set({ dnsmasq => { enabled => 1 } });

# Search hosts
my $hosts = $settings->search_host(current => 1, rowCount => 50);

# Add a host override
$settings->add_host({
    host => {
        host => 'myserver',
        domain => 'example.com',
        ip => '192.0.2.10',
    },
});

DESCRIPTION

Dnsmasq settings, including host overrides, domain overrides, DHCP options, ranges, tags, and boot settings.

NAME

WebService::OPNsense::Dnsmasq::Settings - Dnsmasq settings controller

METHODS

get

my $config = $settings->get;

Returns the current Dnsmasq configuration.

set_settings

my $result = $settings->set_settings($settings_data);

Updates Dnsmasq configuration.

search_host

my $results = $settings->search_host(%params);

Searches for host overrides.

get_host

my $host = $settings->get_host($uuid);

Returns a single host override by UUID.

add_host

my $result = $settings->add_host($host_data);

Creates a new host override.

set_host

my $result = $settings->set_host($uuid, $host_data);

Updates an existing host override.

del_host

my $result = $settings->del_host($uuid);

Deletes a host override by UUID.

search_domain

my $results = $settings->search_domain(%params);

Searches for domain overrides.

get_domain

my $domain = $settings->get_domain($uuid);

Returns a single domain override by UUID.

add_domain

my $result = $settings->add_domain($domain_data);

Creates a new domain override.

set_domain

my $result = $settings->set_domain($uuid, $domain_data);

Updates an existing domain override.

del_domain

my $result = $settings->del_domain($uuid);

Deletes a domain override by UUID.

search_option

my $results = $settings->search_option(%params);

Searches for DHCP options.

get_option

my $option = $settings->get_option($uuid);

Returns a single DHCP option by UUID.

add_option

my $result = $settings->add_option($option_data);

Creates a new DHCP option.

set_option

my $result = $settings->set_option($uuid, $option_data);

Updates an existing DHCP option.

del_option

my $result = $settings->del_option($uuid);

Deletes a DHCP option by UUID.

search_range

my $results = $settings->search_range(%params);

Searches for DHCP ranges.

get_range

my $range = $settings->get_range($uuid);

Returns a single DHCP range by UUID.

add_range

my $result = $settings->add_range($range_data);

Creates a new DHCP range.

set_range

my $result = $settings->set_range($uuid, $range_data);

Updates an existing DHCP range.

del_range

my $result = $settings->del_range($uuid);

Deletes a DHCP range by UUID.

search_tag

my $results = $settings->search_tag(%params);

Searches for tags.

get_tag

my $tag = $settings->get_tag($uuid);

Returns a single tag by UUID.

add_tag

my $result = $settings->add_tag($tag_data);

Creates a new tag.

set_tag

my $result = $settings->set_tag($uuid, $tag_data);

Updates an existing tag.

del_tag

my $result = $settings->del_tag($uuid);

Deletes a tag by UUID.

search_boot

my $results = $settings->search_boot(%params);

Searches for boot settings.

get_boot

my $boot = $settings->get_boot($uuid);

Returns a single boot setting by UUID.

add_boot

my $result = $settings->add_boot($boot_data);

Creates a new boot setting.

set_boot

my $result = $settings->set_boot($uuid, $boot_data);

Updates an existing boot setting.

del_boot

my $result = $settings->del_boot($uuid);

Deletes a boot setting by UUID.

download_hosts

my $data = $settings->download_hosts;

Downloads host overrides as a data structure.

upload_hosts

my $result = $settings->upload_hosts($hosts_data);

Uploads host overrides from a data structure.

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