blob: 50b4be0b49af083f678389369f38f1d0fbaf3fc7 [file] [log] [blame]
GoDaddy DNS Driver Documentation
================================
`GoDaddy`_ provide domain name registration and are the worlds largest with over 13 million customers. They also provide nameservers and DNS hosting as
well as cloud and website hosting.
.. figure:: /_static/images/provider_logos/godaddy.png
:align: center
:width: 300
:target: https://www.godaddy.com/
Further information on `GoDaddy`_ API is available on the `GoDaddy API Website`_
Driver features
---------------
* Manage the records for GoDaddy hosted domains
* Price and purchase domains with an existing GoDaddy account
* Fetch legal agreements required to register and purchase domains for a range of TLDs
* Submit completed agreements to purchase domains
Instantiating the driver
------------------------
Before you instantiate a driver, you will need a GoDaddy account.
Once you have an account you need to request a Production key on the GoDaddy API website:
https://developer.godaddy.com/getstarted#access
You can then use these details to instantiate a driver with the arguments:
* `shopper_id` - Your customer ID
* `key` - An API key
* `secret` - The matching secret for the API key
.. literalinclude:: /examples/dns/godaddy/instantiate_driver.py
:language: python
Listing zones
-------------
.. literalinclude:: /examples/dns/godaddy/listing_zones.py
:language: python
Returns
::
Zone : wassle-layer.com
Expires: 2018-09-30T18:22:00Z
Zone : wizzle-wobble.org
Expires: 2017-01-04T04:02:07Z
Listing records
---------------
.. literalinclude:: /examples/dns/godaddy/listing_records.py
:language: python
Returns
::
Type : CNAME
Data: @
TTL: 3600
Type : CNAME
Data: @
TTL: 3600
Type : MX
Data: mailstore1.secureserver.net
TTL: 3600
Type : MX
Data: smtp.secureserver.net
TTL: 3600
Adding records
--------------
.. literalinclude:: /examples/dns/godaddy/adding_records.py
:language: python
Updating records
----------------
.. literalinclude:: /examples/dns/godaddy/updating_records.py
:language: python
It is important to note that the GoDaddy API does not give records a unique identifier.
So if you have multiple existing records for a single data and type, e.g. 2 A records for www, they will both be replaced with 1 record if you run the update_records method
Pricing a domain
----------------
The driver supports checking the availability of a domain that you would like to purchase.
.. literalinclude:: /examples/dns/godaddy/pricing_domain.py
:language: python
Purchasing a domain
-------------------
Domains can be purchased by requesting the agreement schema, which is a JSON schema and submitted a completed document.
.. literalinclude:: /examples/dns/godaddy/purchasing_domain.py
:language: python
API Docs
--------
.. autoclass:: libcloud.dns.drivers.godaddy.GoDaddyDNSDriver
:members:
:inherited-members:
.. _`GoDaddy`: https://godaddy.com/
.. _`GoDaddy API Website`: https://developer.godaddy.com/doc