nomilo/src/dns/api.rs

24 lines
701 B
Rust
Raw Normal View History

use crate::dns;
// TODO: Use model types instead of dns types as input / output and only convert internaly?
// Zone content api
// E.g.: DNS update + axfr, zone file read + write
#[async_trait]
pub trait RecordApi {
type Error;
async fn get_records(&mut self, zone: dns::Name, class: dns::DNSClass) -> Result<Vec<dns::Record>, Self::Error>;
async fn add_records(&mut self, zone: dns::Name, class: dns::DNSClass, new_records: Vec<dns::Record>) -> Result<(), Self::Error>;
// update_records
// delete_records
}
// Zone management api, todo
// E.g.: Manage catalog zone, dynamically generate knot / bind / nsd config...
pub trait ZoneApi {
// get_zones
// add_zone
// delete_zone
// exists
}