mirror of
https://github.com/StackExchange/dnscontrol.git
synced 2025-01-13 10:58:17 +08:00
ccb582b278
* Remove deprecated io/ioutil * fixup! * staticcheck and linting * revert models/provider.go * Fix imports to new style * linting
71 lines
2.1 KiB
Go
71 lines
2.1 KiB
Go
package autodns
|
|
|
|
import (
|
|
"github.com/StackExchange/dnscontrol/v3/models"
|
|
"github.com/StackExchange/dnscontrol/v3/providers/bind"
|
|
)
|
|
|
|
// ResourceRecord represents DNS records in API calls.
|
|
type ResourceRecord struct {
|
|
|
|
// The name of the record.
|
|
// Required: true
|
|
Name string `json:"name"`
|
|
|
|
// Preference of the record, need for some record types e.g. MX
|
|
// Maximum: 65535
|
|
Pref int32 `json:"pref,omitempty"`
|
|
|
|
// The bind notation of the record. Only used by the zone stream task!
|
|
Raw string `json:"raw,omitempty"`
|
|
|
|
// TTL of the record (Optionally if not set then Default SOA TTL is used)
|
|
TTL int64 `json:"ttl,omitempty"`
|
|
|
|
// The type of the record, e.g. A
|
|
// Permitted values: A, AAAA, CAA, CNAME, HINFO, MX, NAPTR, NS, PTR, SRV, TXT, ALIAS
|
|
Type string `json:"type,omitempty"`
|
|
|
|
// The value of the record.
|
|
Value string `json:"value,omitempty"`
|
|
}
|
|
|
|
// MainAddressRecord represents an address record in API calls.
|
|
type MainAddressRecord struct {
|
|
|
|
// TTL of the record (Optionally if not set then Default SOA TTL is used)
|
|
TTL int64 `json:"ttl,omitempty"`
|
|
|
|
// The value of the record.
|
|
Value string `json:"address,omitempty"`
|
|
}
|
|
|
|
// Zone represents the Zone in API calls.
|
|
type Zone struct {
|
|
Origin string `json:"origin"`
|
|
|
|
Soa *bind.SoaDefaults `json:"soa,omitempty"`
|
|
|
|
// List of name servers
|
|
NameServers []*models.Nameserver `json:"nameServers,omitempty"`
|
|
|
|
// The resource records.
|
|
// Max Items: 10000
|
|
// Min Items: 0
|
|
ResourceRecords []*ResourceRecord `json:"resourceRecords,omitempty"`
|
|
|
|
// Might be set if we fetch a zone for the first time, should be migrated to ResourceRecords
|
|
MainRecord *MainAddressRecord `json:"main,omitempty"`
|
|
|
|
IncludeWwwForMain bool `json:"wwwInclude"`
|
|
|
|
// Primary NameServer, needs to be passed to the system to fetch further zone info
|
|
SystemNameServer string `json:"virtualNameServer,omitempty"`
|
|
}
|
|
|
|
// JSONResponseDataZone represents the response to the DataZone call.
|
|
type JSONResponseDataZone struct {
|
|
|
|
// The data for the response. The type of the objects are depending on the request and are also specified in the responseObject value of the response.
|
|
Data []*Zone `json:"data"`
|
|
}
|