DNS API Proposal
libcloud DNS API allows users to manage DNS as a service offered by different providers.
Naming
Zone - represents a DNS zone. It can contain one or more records (records).
Record - represents a DNS record / resource / host.
RecordType - DNS record type (A, AAAA, MX, ....).
Base API
DNSDriver
list_zones() - Return a list of zones.
list_records() - Return a list of records for the provided zone.
get_zone(zone_id) - Return Zone instance
get_record(zone_id, record_id) - Return Record instance
create_zone(type='master', ttl=None, extra=None) - Create a new zone.
create_record(name, type, data, extra=None) - Create a new record record.
update_record(record, name, type, data, extra) - Update an existing record record.
delete_zone(zone) - Delete a zone.
delete_record(record) - Delete a record record.
Zone
list_records() - List record for this zone.
delete() - Delete a zone.
Record
update(name, type, data, extra) - Update record.
delete() - Delete a record.
https://svn.apache.org/viewvc/libcloud/trunk/libcloud/dns/base.py?view=markup
Documentation for existing DNS APIs
Linode DNS - http://www.linode.com/api/dns
Amazon Route 53 - http://docs.amazonwebservices.com/Route53/2011-05-05/APIReference/
Zerigo DNS - http://www.zerigo.com/docs/apis/dns/1.1
Rackspace Cloud DNS - http://docs.rackspace.com/cdns/api/v1.0/cdns-devguide/content/index.html