DnsProviderOptions

DNS / ACME provider options for the dns VM (coredns + lego/security.acme + ddns-updater). Provider name MUST match a string supported by both lego (security.acme dnsProvider) AND services.ddns-updater. Examples: cloudflare, duckdns, porkbun, namecheap, gandi, hetzner, godaddy, ovh, dyn, noip. CredentialsFile is an env-format file (KEY=value lines) decrypted by SOPS at runtime; provider-specific env-var contract per lego docs (e.g. CF_DNS_API_TOKEN= for cloudflare, DUCKDNS_TOKEN= for duckdns, NAMECHEAP_API_USER= + NAMECHEAP_API_KEY= for namecheap). CredentialsAttrs carries provider-specific extras not covered by the env file (account IDs, zone IDs, etc.) and is passed verbatim into the ddns-updater settings attrset.

public sealed record DnsProviderOptions : IEquatable<DnsProviderOptions>

1. Properties

1.1. CredentialsAttrs

Provider-specific extras (account IDs, zone IDs, …​). Null/empty ⇒ no extras.

public IReadOnlyDictionary<string, string> CredentialsAttrs { get; init; }

1.2. CredentialsFile

Path on the dns VM to a SOPS-decrypted env-format file (KEY=value lines). String (not AbsolutePath) because Nuke’s AbsolutePath serializes as a nested object graph (Name/Parent/…​) that NETSetup’s Json deserializer cannot reconstruct.

public string CredentialsFile { get; init; }

1.3. Provider

Provider identifier shared by lego + ddns-updater.

public string Provider { get; init; }

2. Operators

2.1. operator !=(DnsProviderOptions, DnsProviderOptions)

public static bool operator !=(DnsProviderOptions left, DnsProviderOptions right)
Table 1. Parameters
Name Type Description

left

DnsProviderOptions

right

DnsProviderOptions

Returns: bool

2.2. operator ==(DnsProviderOptions, DnsProviderOptions)

public static bool operator ==(DnsProviderOptions left, DnsProviderOptions right)
Table 2. Parameters
Name Type Description

left

DnsProviderOptions

right

DnsProviderOptions

Returns: bool