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."""