Source code for netbird.models.dns
"""
DNS models for NetBird API.
"""
from typing import List, Optional
from pydantic import Field, IPvAnyAddress
from .common import BaseModel, ResourceId
[docs]
class DNSNameserverGroup(BaseModel):
"""DNS nameserver group model.
Attributes:
id: Unique nameserver group identifier
name: Nameserver group name
description: Nameserver group description
nameservers: List of nameserver IP addresses
enabled: Whether the nameserver group is enabled
groups: Group IDs that use this nameserver group
domains: Domain list for this nameserver group
search_domains_enabled: Whether search domains are enabled
"""
id: ResourceId = Field(..., description="Unique nameserver group identifier")
name: str = Field(..., description="Nameserver group name")
description: Optional[str] = Field(None, description="Nameserver group description")
nameservers: List[IPvAnyAddress] = Field(..., description="Nameserver IP addresses")
enabled: bool = Field(True, description="Nameserver group enabled status")
groups: Optional[List[ResourceId]] = Field(
None, description="Group IDs using this nameserver"
)
domains: Optional[List[str]] = Field(None, description="Domain list")
search_domains_enabled: bool = Field(False, description="Search domains enabled")
[docs]
class DNSSettings(BaseModel):
"""DNS settings model.
Attributes:
disabled_management_groups: Groups with disabled DNS management
"""
disabled_management_groups: Optional[List[ResourceId]] = Field(
None, description="Groups with disabled DNS management"
)