Hi all,

I have finally started working on support for DNS as a service. My proposal
is attached bellow.
I have also created a wiki page for proposal so it's easier to iterate on it
- http://wiki.apache.org/libcloud/DNS%20API%20proposal.

_____________________________________________

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 hosts (records).
Host - represents a DNS host / resource / record.
RecordType - DNS record type (A, AAAA, MX, ....).
I'm not totally sure about "Host", better generic name would probably be
"Record". Opinions?

Base API

DNSDriver

list_zones() - Return a list of zones.
list_hosts() - Return a list of hosts for the provided zone.
create_zone(type='master', ttl=None, extra=None) - Create a new zone.
create_host(name, type, data, extra=None) - Create a new host record.
update_host(host, name, type, data, extra) - Update an existing host record.
delete_zone(zone) - Delete a zone.
delete_host(host) - Delete a host record.

Zone

list_hosts() - List host records for this zone.
delete() - Delete a zone.

Host

update(name, type, data, extra) - Update host record.
delete() - Delete a host record.

https://svn.apache.org/viewvc/libcloud/trunk/libcloud/dns/base.py?view=markup&pathrev=1169490

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

Reply via email to