Documentation
¶
Index ¶
Constants ¶
View Source
const ( REC_A = DNSRecordType("A") REC_AAAA = DNSRecordType("AAAA") REC_CNAME = DNSRecordType("CNAME") REC_MX = DNSRecordType("MX") REC_NS = DNSRecordType("NS") REC_SOA = DNSRecordType("SOA") REC_SRV = DNSRecordType("SRV") REC_TXT = DNSRecordType("TXT") REC_PTR = DNSRecordType("PTR") REC_NAPTR = DNSRecordType("NAPTR") REC_DNAME = DNSRecordType("DNAME") REC_DS = DNSRecordType("DS") REC_SSHFP = DNSRecordType("SSHFP") REC_TLSA = DNSRecordType("TLSA") REC_SVCB = DNSRecordType("SVCB") REC_HTTPS = DNSRecordType("HTTPS") REC_URI = DNSRecordType("URI") REC_CAA = DNSRecordType("CAA") REC_ANAME = DNSRecordType("ANAME") REC_FWD = DNSRecordType("FWD") REC_APP = DNSRecordType("APP") )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type DNSApiClient ¶
type DNSApiClient interface {
GetRecords(ctx context.Context, domain DNSRecordName) ([]DNSRecord, error)
AddRecord(ctx context.Context, record DNSRecord) error
UpdateRecord(ctx context.Context, oldRecord DNSRecord, newRecord DNSRecord) error
DeleteRecord(ctx context.Context, record DNSRecord) error
}
client API interface
type DNSRecord ¶
type DNSRecord struct {
Type DNSRecordType // from the enum above
Domain DNSRecordName // @ for top-level TXT/MX/A/NS...
TTL DNSRecordTTL // min 600, def 3600
Comments string // comment for the added resource
ExpiryTTL DNSRecordTTL // automatically delete the record when the value in seconds elapses
IPAddress string // ip address, required for A or AAAA record
Ptr bool // This option is used only for A and AAAA records.
CreatePtrZone bool // This option is used for A and AAAA records.
UpdateSvcbHints bool // This option is used for A and AAAA records.
NameServer string // This option is required for adding NS record.
Glue string // This optional parameter is used for adding NS record.
CName string // This option is required for adding CNAME record.
PtrName string // This option is required for adding PTR record.
Exchange string // This option is required for adding MX record.
Preference DNSRecordPrio // This option is required for adding MX record.
Text string // This option is required for adding TXT record.
SplitText bool // Set to true for using new line char to split text into multiple character-strings for adding TXT record.
Mailbox string // for adding RP record.
TxtDomain string // Set a TXT record's domain name for adding RP record.
Priority DNSRecordPrio // This parameter is required for adding the SRV record.
Weight DNSRecordSRVWeight // This parameter is required for adding the SRV record.
Port DNSRecordSRVPort // This parameter is required for adding the SRV record.
Target DNSRecordSRVService // This parameter is required for adding the SRV record.
NaptrOrder uint16 // This parameter is required for adding the NAPTR record.
NaptrPreference uint16 // This parameter is required for adding the NAPTR record.
NaptrFlags string // This parameter is required for adding the NAPTR record.
NaptrServices string // This parameter is required for adding the NAPTR record.
NaptrRegexp string // This parameter is required for adding the NAPTR record.
NaptrReplacement string // This parameter is required for adding the NAPTR record.
DName string // This parameter is required for adding DNAME record.
KeyTag uint16 // This parameter is required for adding DS record.
Algorithm string // This parameter is required for adding DS record.
DigestType string // This parameter is required for adding DS record.
Digest string // This parameter is required for adding DS record.
SshfpAlgorithm string // This parameter is required for adding SSHFP record.
SshfpFingerprintType string // This parameter is required for adding SSHFP record.
SshfpFingerprint string // This parameter is required for adding SSHFP record.
TlsaCertificateUsage string // This parameter is required for adding TLSA record.
TlsaSelector string // This parameter is required for adding TLSA record.
TlsaMatchingType string // This parameter is required for adding TLSA record.
TlsaCertificateAssociationData string // This parameter is required for adding TLSA record.
SvcPriority uint16 // This parameter is required for adding SCVB or HTTPS record.
SvcTargetName string // This parameter is required for adding SCVB or HTTPS record.
SvcParams string // This parameter is required for adding SCVB or HTTPS record.
AutoIpv4Hint bool // This parameter is optional for adding SCVB or HTTPS record.
AutoIpv6Hint bool // This parameter is optional for adding SCVB or HTTPS record.
UriPriority uint16 // This parameter is required for adding URI record.
UriWeight uint16 // This parameter is required for adding URI record.
Uri string // This parameter is required for adding URI record.
Flags string // This parameter is required for adding the CAA record.
Tag string // This parameter is required for adding the CAA record.
Value string // This parameter is required for adding the CAA record.
AName string // This parameter is required for adding the ANAME record.
Forwarder string // This parameter is required for adding the FWD record.
ForwarderPriority uint16 // This parameter is required for adding the FWD record.
DnssecValidation bool // This parameter is optional for adding the FWD record.
ProxyType string // This parameter is optional for adding the FWD record.
ProxyAddress string // This parameter is optional for adding the FWD record.
ProxyPort uint16 // This parameter is optional for adding the FWD record.
ProxyUsername string // This parameter is optional for adding the FWD record.
ProxyPassword string // This parameter is optional for adding the FWD record.
AppName string // This parameter is required for adding the APP record.
ClassPath string // This parameter is required for adding the APP record.
RecordData string // This parameter is required for adding the APP record.
}
func (DNSRecord) SameKey ¶
compare key field to determine if two records refer to the same object
- for CNAME there could be only 1 RR with the same name, TTL is the only value
- for A, TXT and NS there could be several (so need to match by data),
- MX matches the same way, value is ttl + prio (in theory, MX 0 and MX 10 could point to the same host in "data", but lets think that it is a perversion and replace it with one record
- and SRV same if Port and Target are matched
...
type DNSRecordData ¶
type DNSRecordData string
type DNSRecordName ¶
type DNSRecordName string
type DNSRecordPrio ¶
type DNSRecordPrio uint16
type DNSRecordSRVPort ¶
type DNSRecordSRVPort uint16
type DNSRecordSRVProto ¶
type DNSRecordSRVProto string // _tcp or _udp
type DNSRecordSRVService ¶
type DNSRecordSRVService string // _ldap
type DNSRecordSRVWeight ¶
type DNSRecordSRVWeight uint16
type DNSRecordTTL ¶
type DNSRecordTTL uint32 // formally int32, but [0, 604800]
type DNSRecordType ¶
type DNSRecordType string
Click to show internal directories.
Click to hide internal directories.