Documentation
¶
Overview ¶
Package inwx provides easy access to the official INWX JSON-RPC API.
Index ¶
Constants ¶
const ( A = "A" AAAA = "AAAA" AFSDB = "AFSDB" ALIAS = "ALIAS" CAA = "CAA" Cert = "CERT" CNAME = "CNAME" HINFO = "HINFO" KEY = "KEY" LOC = "LOC" MX = "MX" NAPTR = "NAPTR" NS = "NS" OpenPGPKey = "OPENPGPKEY" PTR = "PTR" RP = "RP" SMIMEA = "SMIMEA" SOA = "SOA" SRV = "SRV" SSHFP = "SSHFP" TLSA = "TLSA" TXT = "TXT" URI = "URI" URL = "URL" )
const ( Permanent URLRdrType = "HEADER301" Temporary = "HEADER302" Frame = "FRAME" )
const ( Success Status = 1000 SuccessPending = 1001 SuccessNoMsgs = 1300 SuccessDequeue = 1301 SuccessClosing = 1500 WrongPasswd = 1200 UnknownCall = 2000 SyntaxErr = 2001 UseErr = 2002 MissingParam = 2003 WrongParamRange = 2004 ParamSyntaxErr = 2005 UnimplementedCall = 2101 UnimplementedOpt = 2102 UnimplementedExt = 2103 BillingErr = 2104 DenyRenewal = 2105 DenyTransfer = 2106 AuthError = 2200 AuthzError = 2201 InvalidAuthzInfo = 2202 PendingTransfer = 2300 NotPendingTransfer = 2301 Exists = 2302 NotExist = 2303 StatusProhibitsOp = 2304 AssocProhibitsOp = 2305 ParamPolicyErr = 2306 UnimplementedService = 2307 DataMgmtPolicyErr = 2308 CmdErr = 2400 CmdErrClosing = 2500 AuthErrClosing = 2501 SessionOverClosing = 2502 )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Call ¶
type Call interface {
// contains filtered or unexported methods
}
A Call is anything that provides a method name and a list of status codes that indicate basic success. It can be executed through a Client.
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
A Client is a session handle for the API.
func Login ¶
Login creates a new Client and attempts to start a session with the given credentials.
Two-factor authentication is currently not supported, contributions are welcome.
func (*Client) Call ¶
Call sends a Call to the API endpoint and waits for a response or an error. It returns net.ErrClosed if the Client is closed.
func (*Client) Closed ¶
func (c *Client) Closed() <-chan struct{}
Closed returns a channel which is closed when the Client is closed.
type Endpoint ¶
type Endpoint string
An Endpoint is the server to communicate with.
const ( // Production is the JSON-RPC production endpoint. // Calls can modify real zones. Only use this if you really need it. Production Endpoint = "https://api.domrobot.com/jsonrpc/" // Sandbox is the JSON-RPC sandbox endpoint. // Use this endpoint for experiments or testing of any kind. Sandbox = "https://api.ote.domrobot.com/jsonrpc/" )
type ErrUnexpectedStatus ¶
ErrUnexpectedStatus indicates that a Call was responded to but the Status doesn't match any of the expected Statuses of the Call.
func (*ErrUnexpectedStatus) Error ¶
func (e *ErrUnexpectedStatus) Error() string
type NSRecord ¶
type NSRecord struct {
ID int `json:"id"`
RecordInfo
}
A NSRecord consists of an ID and RecordInfo.
type NSRecordInfoCall ¶
type NSRecordInfoCall struct {
DomainName string `json:"domain,omitempty"`
DomainID int `json:"roId,omitempty"`
RecordID int `json:"recordId,omitempty"`
Type RecordType `json:"type,omitempty"`
Name string `json:"name,omitempty"`
Content string `json:"content,omitempty"`
TTL int `json:"ttl,omitempty"`
Priority int `json:"prio,omitempty"`
}
A NSRecordInfoCall returns detailed information about a DNS record.
type NSRecordInfoResponse ¶
type NSRecordInfoResponse struct {
DomainID int `json:"roId"`
DomainName string `json:"domain"`
DomainType NSType `json:"type"`
MasterAddr string `json:"masterIp"`
LastZoneCheck time.Time `json:"lastZoneCheck"`
SlaveDNS SlaveInfo `json:"slaveDns"`
SOASerial string `json:"SOAserial"`
RecordCount int `json:"count"`
Records []NSRecord `json:"record"`
}
A NSRecordInfoResponse contains all NSRecords that match the search.
type NSType ¶
type NSType string
A NSType is either Master or Slave.
const ( Master NSType = "MASTER" Slave = "SLAVE" )
type NSUpdateRecordsCall ¶
type NSUpdateRecordsCall struct {
IDs []int `json:"id"`
RecordInfo
TestingMode bool `json:"testing"`
}
A NSUpdateRecordsCall updates one or more DNS records.
type RecordInfo ¶
type RecordInfo struct {
Name string `json:"name,omitempty"`
Type RecordType `json:"type,omitempty"`
Content string `json:"content,omitempty"`
TTL int `json:"ttl,omitempty"`
Priority int `json:"prio,omitempty"`
URLRedirectType URLRdrType `json:"urlRedirectType,omitempty"`
URLRedirectTitle string `json:"urlRedirectTitle,omitempty"`
URLRedirectDesc string `json:"urlRedirectDescription,omitempty"`
URLRedirectKeywords string `json:"urlRedirectKeywords,omitempty"`
URLRedirectFavIcon string `json:"urlRedirectFavIcon,omitempty"`
URLAppend bool `json:"urlAppend,omitempty"`
}
A RecordInfo contains DNS as well as INWX specific record information.
type Response ¶
type Response struct {
StatusCode Status `json:"code"`
Data *json.RawMessage `json:"resData"`
}
A Response contains the Status of a response to a Call as well as the response parameters. Data is nil if there are no response parameters.
type Status ¶
type Status int
A Status contains basic information about whether and how a Call was processed. See https://www.inwx.com/en/help/apidoc/f/ch04.html for descriptions.
type URLRdrType ¶
type URLRdrType string
A URLRdrType specifies which method of HTTP redirection to use.