2018-02-01 11:45:53 -05:00
|
|
|
package models
|
|
|
|
|
2018-02-15 12:02:50 -05:00
|
|
|
// DNSProvider is an interface for DNS Provider plug-ins.
|
2018-02-01 11:45:53 -05:00
|
|
|
type DNSProvider interface {
|
|
|
|
GetNameservers(domain string) ([]*Nameserver, error)
|
|
|
|
GetDomainCorrections(dc *DomainConfig) ([]*Correction, error)
|
|
|
|
}
|
|
|
|
|
2020-01-20 14:13:32 -05:00
|
|
|
// DNSProvider3 will replace DNSProvider in 3.0.
|
|
|
|
// If you want to future-proof your code, implement these
|
|
|
|
// functions and implement GetDomainCorrections() as in
|
|
|
|
// providers/gandi_v5/gandi_v5Provider.go
|
|
|
|
//type DNSProvider3 interface {
|
|
|
|
// GetNameservers(domain string) ([]*Nameserver, error)
|
|
|
|
// GetZoneRecords(domain string) (Records, error)
|
|
|
|
// PrepFoundRecords(recs Records) Records
|
|
|
|
// PrepDesiredRecords(dc *DomainConfig)
|
|
|
|
// GenerateDomainCorrections(dc *DomainConfig, existing Records) ([]*Correction, error)
|
|
|
|
//}
|
|
|
|
|
2018-02-15 12:02:50 -05:00
|
|
|
// Registrar is an interface for Registrar plug-ins.
|
2018-02-01 11:45:53 -05:00
|
|
|
type Registrar interface {
|
|
|
|
GetRegistrarCorrections(dc *DomainConfig) ([]*Correction, error)
|
|
|
|
}
|
|
|
|
|
2018-02-15 12:02:50 -05:00
|
|
|
// ProviderBase describes providers.
|
2018-02-01 11:45:53 -05:00
|
|
|
type ProviderBase struct {
|
|
|
|
Name string
|
|
|
|
IsDefault bool
|
|
|
|
ProviderType string
|
|
|
|
}
|
|
|
|
|
2018-02-15 12:02:50 -05:00
|
|
|
// RegistrarInstance is a single registrar.
|
2018-02-01 11:45:53 -05:00
|
|
|
type RegistrarInstance struct {
|
|
|
|
ProviderBase
|
|
|
|
Driver Registrar
|
|
|
|
}
|
|
|
|
|
2018-02-15 12:02:50 -05:00
|
|
|
// DNSProviderInstance is a single DNS provider.
|
2018-02-01 11:45:53 -05:00
|
|
|
type DNSProviderInstance struct {
|
|
|
|
ProviderBase
|
|
|
|
Driver DNSProvider
|
|
|
|
NumberOfNameservers int
|
|
|
|
}
|