Source code for dxaws_dns.providers.base

"""Provider interfaces for dxaws-dns record management."""

from __future__ import annotations

from typing import Protocol

from ..models import DnsRecordCurrent


[docs] class DnsRecordProvider(Protocol):
[docs] def get_record_current( self, *, zone_id: str, record_fqdn: str, record_type: str, ) -> DnsRecordCurrent: """Return the current record state for a zone/name/type."""
[docs] def upsert_record( self, *, zone_id: str, record_fqdn: str, record_type: str, ttl: int, values: list[str], ) -> str | None: """Upsert a record set and return a provider change id, if available."""
[docs] def delete_record( self, *, zone_id: str, record_fqdn: str, record_type: str, ttl: int, values: list[str], ) -> str | None: """Delete a record set and return a provider change id, if available."""