hetzner 1.0.0

A Rust library for managing DNS records and zones on Hetzner's platform, providing tools for networking and DNS management.
Documentation
use crate::HetznerClient;

pub mod records;
pub mod zones;

#[derive(Debug, Clone, Copy)]
pub struct DnsApi<'a> {
    pub(crate) client: &'a HetznerClient,
}

impl<'a> DnsApi<'a> {
    pub fn records(self, zone_id: &'a str) -> records::RecordsApi<'a> {
        records::RecordsApi {
            client: self.client,
            zone_id,
        }
    }

    pub fn record(self, record_id: &'a str) -> records::RecordApi<'a> {
        records::RecordApi {
            client: self.client,
            record_id,
        }
    }

    pub async fn list_zones(self) -> crate::error::Result<Vec<crate::types::Zone>> {
        zones::list_zones(self.client).await
    }
}