- name Clients should provide FQDN. Providers should handle both
FQDN and relative names.
- ttl Reasonable default is 6 hours since it’s supported by most
services. Any service that does not support this must be explicitly
mentioned somewhere.
- record All provider/API records must be translated to the
following format:
{
'id': string, // optional, provider specified unique id. Clients to treat this as opaque.
'type': string, // upper case, valid record type. eg. A, CNAME, TXT
'name': string, // lowercase, FQDN. eg. test.record.example.com
'ttl': integer, // positive integer, in seconds. eg. 3600
'content': string, //double quoted/escaped values should be unescaped. eg. "\"TXT content\"" should become "TXT content"
'options': {
'mx': { // MX options
'priority': integer
}
}
}
- Normal Behavior Create a new DNS record. Return a boolean
True
if successful.
- If Record Already Exists Do nothing. DO NOT throw exception.
- TTL If not specified or set to
0
, use reasonable default.
- Record Sets If service supports record sets, create new record
set or append value to existing record set as required.
- Normal Behaviour List all records. If filters are provided, send
to the API if possible, else apply filter locally. Return value
should be a list of records.
- Record Sets Ungroup record sets into individual records. Eg: If a
record set contains 3 values, provider ungroup them into 3 different
records.
- Linked Records For services that support some form of linked
record, do not resolve, treat as CNAME.
- Normal Behaviour Update a record. Record to be updated can be
specified by providing id OR name, type and content. Return a boolean
True
if successful.
- Record Sets If matched record is part of a record set, only
update the record that matches. Update the record set so that records
other than the matched one are unmodified.
- TTL
- If not specified, do not modify ttl.
- If set to
0
, reset to reasonable default.
- No Match Throw exception?
- Normal Behaviour Remove a record. Record to be deleted can be
specified by providing id OR name, type and content. Return a boolean
True
if successful.
- Record sets Remove only the record that matches all the filters.
- If content is not specified, remove the record set.
- If length of record set becomes 0 after removing record, remove
the record set.
- Otherwise, remove only the value that matches and leave other
records as-is.
- No Match Do nothing. DO NOT throw exception