DNS.Zone.Manager (DNS v0.4.1)

View Source

Zone management system for DNS zones.

Provides CRUD operations for zone management, zone lifecycle operations, and zone coordination across the DNS system.

Summary

Functions

Create a new zone with basic configuration.

Delete a zone.

Get a zone by name.

Initialize the zone management system.

List all zones.

Load a zone from a file.

Load a zone from string content.

Reload a zone from its source file.

Update zone configuration.

Validate zone configuration.

Types

zone_data()

@type zone_data() :: map()

zone_name()

@type zone_name() :: String.t()

zone_type()

@type zone_type() :: :authoritative | :stub | :forward | :cache

Functions

create_zone(name, type \\ :authoritative, options \\ [])

@spec create_zone(zone_name(), zone_type(), keyword()) ::
  {:ok, DNS.Zone.t()} | {:error, String.t()}

Create a new zone with basic configuration.

delete_zone(name)

@spec delete_zone(zone_name()) :: :ok | {:error, String.t()}

Delete a zone.

get_zone(name)

@spec get_zone(zone_name()) :: {:ok, DNS.Zone.t()} | {:error, :not_found}

Get a zone by name.

init()

@spec init() :: :ok

Initialize the zone management system.

This function initializes the zone store and clears any existing zones. It is primarily used for testing to ensure a clean state.

list_zones()

@spec list_zones() :: [DNS.Zone.t()]

List all zones.

load_zone_from_file(name, file_path)

@spec load_zone_from_file(zone_name(), String.t()) ::
  {:ok, DNS.Zone.t()} | {:error, String.t()}

Load a zone from a file.

load_zone_from_string(name, content)

@spec load_zone_from_string(zone_name(), String.t()) ::
  {:ok, DNS.Zone.t()} | {:error, String.t()}

Load a zone from string content.

reload_zone(name)

@spec reload_zone(zone_name()) :: {:ok, DNS.Zone.t()} | {:error, String.t()}

Reload a zone from its source file.

update_zone(name, options)

@spec update_zone(
  zone_name(),
  keyword()
) :: {:ok, DNS.Zone.t()} | {:error, String.t()}

Update zone configuration.

validate_zone(zone)

@spec validate_zone(DNS.Zone.t()) :: {:ok, DNS.Zone.t()} | {:error, [String.t()]}

Validate zone configuration.