pub struct SOARecord {
pub primary_ns: String,
pub admin_email: String,
pub serial: i64,
pub refresh: i32,
pub retry: i32,
pub expire: i32,
pub negative_ttl: i32,
}Expand description
SOA (Start of Authority) Record specification.
The SOA record defines authoritative information about a DNS zone, including the primary nameserver, responsible party’s email, and timing parameters for zone transfers and caching.
§Example
use bindy::crd::SOARecord;
let soa = SOARecord {
primary_ns: "ns1.example.com.".to_string(),
admin_email: "admin.example.com.".to_string(), // Note: @ replaced with .
serial: 2024010101,
refresh: 3600, // Check for updates every hour
retry: 600, // Retry after 10 minutes on failure
expire: 604800, // Expire after 1 week
negative_ttl: 86400, // Cache negative responses for 1 day
};Fields§
§primary_ns: StringPrimary nameserver for this zone (must be a FQDN ending with .).
Example: ns1.example.com.
admin_email: StringEmail address of the zone administrator (@ replaced with ., must end with .).
Example: admin.example.com. for admin@example.com
serial: i64Serial number for this zone. Typically in YYYYMMDDNN format. Secondaries use this to determine if they need to update.
Must be a 32-bit unsigned integer (0 to 4294967295). The field is i64 to accommodate the full u32 range.
refresh: i32Refresh interval in seconds. How often secondaries should check for updates.
Typical values: 3600-86400 (1 hour to 1 day).
retry: i32Retry interval in seconds. How long to wait before retrying a failed refresh.
Should be less than refresh. Typical values: 600-7200 (10 minutes to 2 hours).
expire: i32Expire time in seconds. After this time, secondaries stop serving the zone if they can’t contact the primary.
Should be much larger than refresh+retry. Typical values: 604800-2419200 (1-4 weeks).
negative_ttl: i32Negative caching TTL in seconds. How long to cache NXDOMAIN responses.
Typical values: 300-86400 (5 minutes to 1 day).
Trait Implementations§
Source§impl<'de> Deserialize<'de> for SOARecord
impl<'de> Deserialize<'de> for SOARecord
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for SOARecord
impl JsonSchema for SOARecord
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreAuto Trait Implementations§
impl Freeze for SOARecord
impl RefUnwindSafe for SOARecord
impl Send for SOARecord
impl Sync for SOARecord
impl Unpin for SOARecord
impl UnwindSafe for SOARecord
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more