{ "info": { "author": "", "author_email": "", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.6", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "Python DNSimple\n===============\n\n[![Build Status](https://travis-ci.org/onlyhavecans/dnsimple-python.svg?branch=master)](https://travis-ci.org/onlyhavecans/dnsimple-python)\n\n## Introduction\n\nThis is a client for the [DNSimple REST API](https://developer.dnsimple.com/). It currently allows you to fetch existing domain info, as well as register new domains and manage domain records.\n\n`dnsimple-python` works for both python 2 & 3.\n\n**Note:** As of 1.0.0 this now uses [DNSimple's APIv2](https://blog.dnsimple.com/2016/12/api-v2-stable/). This is incompatible with older versions of the library because of authentication changes. Please review the docs and tests before deploying to production.\n\n### Getting started\n\nYou'll need the `json` module that is included with python version 2.6 and later, or the `simplejson` module if you are using an earlier version.\n\n`dnsimple-python` also depends on the `requests` library.\n\nImport the module:\n\n```python\nfrom dnsimple import DNSimple\n```\n\nYou can provide your DNSimple credentials in one of two ways:\n\n#### Provide email/password or api\\_token credentials programmatically:\n\n```python\n# Use email/password authentication: HTTP Basic\ndns = DNSimple(email=YOUR_USERNAME, password=YOUR_PASSWORD)\n\n# Use api_token credentials\ndns = DNSimple(api_token=YOUR_API_TOKEN)\n\n# If you have many accounts you can provide account_id (661 is an example)\n# You can find your account id in url (https://sandbox.dnsimple.com/a/661/account)\ndns = DNSimple(email=YOUR_USERNAME, password=YOUR_PASSWORD, account_id=661)\n```\n\n##### Store you email/password or api\\_token credentials in a file called `.dnsimple` in the current directory with the following data:\n\n```\n[DNSimple]\nemail: email@domain.com\npassword: yourpassword\n```\n\nOr:\n\n```\n[DNSimple]\napi_token: yourapitoken\n```\n\nOr (assuming `$DNSIMPLE_EMAIL` and `$DNSIMPLE_TOKEN` are environment variables):\n\n```\n[DNSimple]\nemail: %(DNSIMPLE_EMAIL)s\napi_token: %(DNSIMPLE_TOKEN)s\n```\n\nYou then need not provide any credentials when constructing `DNSimple`:\n\n```python\ndns = DNSimple()\n```\n\n## Domain Operations\n\n### Check out your existing domains:\n\nJust run:\n\n```python\ndomains = dns.domains()\n```\n\nResults appear as a Python dict:\n\n```python\n{'domain': {'created_at': '2010-10-14T09:45:32Z',\n 'expires_at': '10/14/2011 5:45:00 AM',\n 'id': 999,\n 'last_enom_order_id': None,\n 'name': 'yourdomain.com',\n 'name_server_status': 'active',\n 'registrant_id': 99,\n 'registration_status': 'registered',\n 'updated_at': '2010-10-14T10:00:14Z',\n 'user_id': 99}},\n{'domain': {'created_at': '2010-10-15T16:02:34Z',\n 'expires_at': '10/15/2011 12:02:00 PM',\n 'id': 999,\n 'last_enom_order_id': None,\n 'name': 'anotherdomain.com',\n 'name_server_status': 'active',\n 'registrant_id': 99,\n 'registration_status': 'registered',\n 'updated_at': '2010-10-15T16:30:16Z',\n 'user_id': 99}}]\n```\n\n### Get details for a specific domain\n\n```python\ndns.domain('mikemaccana.com')\n```\n\nResults are the same as `domains()` above, but only show the domain specified.\n\n### Check whether a domain is available\n\n```python\ndns.check('google.com')\n\n# Hmm, looks like I'm too late to get that one...\n{u'currency': u'USD',\nu'currency_symbol': u'$',\nu'minimum_number_of_years': 1,\nu'name': u'google.com',\nu'price': u'14.00',\nu'status': u'unavailable'}\n```\n\n### Register a new domain\n\n```python\ndns.register('newdomain.com')\n```\n\nThis will register 'newdomain.com', automatically picking the registrant\\_id from your first domain. To specify a particularly `registrant_id`, just run:\n\n```python\ndns.register('newdomain.com', 99)\n```\n\nResponses will be in a dictionary describing the newly created domain, same as the `domain()` call above.\n\n### Delete a domain\n\nCareful with this one!\n\n```python\ndns.delete('domain-to-die.com')\n```\n\n## Record operations\n\nAll operations on domain records are now supported:\n\n* List records: `records(id_or_domainname)`\n* Get record details: `record(id_or_domainname, record_id)`\n* Add record: `add_record(id_or_domainname, data)`\n* Update record: `update_record(id_or_domainname, record_id, data)`\n* Delete record: `delete_record(id_or_domainname, record_id)`\n\n## SSL Certificates\n\nAll read-only operations around ssl certificates are supported:\n\n* [List certificates](https://developer.dnsimple.com/v2/certificates/#listCertificates): `certificates(id_or_domainname)`\n* [Get certificate details](https://developer.dnsimple.com/v2/certificates/#getCertificate): `certificate(id_or_domainname, certificate_id)`\n* [Download a certificate](https://developer.dnsimple.com/v2/certificates/#downloadCertificate): `download_certificate(id_or_domainname, certificate_id)`\n* [Get a certificate's private key](https://developer.dnsimple.com/v2/certificates/#getCertificatePrivateKey): `certificate_private_key(id_or_domainname, certificate_id)`\n\n## Running Tests\n\nBefore running tests, you'll need to ensure your environment is set up correctly.\nCurrently we do live tests against DNSimple's sandbox so you will need to set that up. This also means that running tests concurrently will cause failures.\n\n### Set up DNSimple Sandbox account\n1. If you don't already have a DNSimple sandbox account, [create one](https://sandbox.dnsimple.com/signup) and make sure to have your email address, password, and API token handy.\n1. Copy the file `tests/.env.example` to `tests/.env` and supply your sandbox credentials\n\n### Setup Python\nIf you don't wish to use pyenv you will want to skip this and run `tox` manually after setting up your environment\n\n1. install [pyenv](https://github.com/pyenv/pyenv) using homebrew or git\n1. `make test` to run all tests\n\n## License\n\nLicensed under the [MIT license](http://www.opensource.org/licenses/mit-license.php)\n\n## Authors\n\n* Original Author [Mike MacCana](https://github.com/mikemaccana/)\n* APIv2 Support [Kirill Motkov](https://github.com/lcd1232)\n* Maintainer [David Aronsohn](https://github.com/onlyhavecans)", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/onlyhavecans/dnsimple-python/", "keywords": "", "license": "", "maintainer": "David Aronsohn", "maintainer_email": "WagThatTail@Me.com", "name": "dnsimple", "package_url": "https://pypi.org/project/dnsimple/", "platform": "", "project_url": "https://pypi.org/project/dnsimple/", "project_urls": { "Homepage": "https://github.com/onlyhavecans/dnsimple-python/" }, "release_url": "https://pypi.org/project/dnsimple/1.2.0/", "requires_dist": null, "requires_python": "", "summary": "Python API client for Domain Management Automation with DNSimple https://developer.dnsimple.com", "version": "1.2.0" }, "last_serial": 4107284, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "ab454cbba685b4c9e85fe4a0204ad6da", "sha256": "cdce4d897acab35caeac517dc9dfde34d03f3d1d02beb9ad7c8f7f438672c43a" }, "downloads": -1, "filename": "dnsimple-0.1.0.tar.gz", "has_sig": false, "md5_digest": "ab454cbba685b4c9e85fe4a0204ad6da", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5893, "upload_time": "2013-12-09T22:05:14", "url": "https://files.pythonhosted.org/packages/ae/a8/136696be0cb8f3d3eebb67a56ebc59cd9a7d4f0d6aa78ceef4ff039064db/dnsimple-0.1.0.tar.gz" } ], "0.3.6": [ { "comment_text": "", "digests": { "md5": "6e20ea3f9dcf52396483d5018ce503a7", "sha256": "6ebbb3105e5232f14524680d4154a23daf3e36c20af97fe51bd61061b9d98731" }, "downloads": -1, "filename": "dnsimple-0.3.6.tar.gz", "has_sig": true, "md5_digest": "6e20ea3f9dcf52396483d5018ce503a7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5713, "upload_time": "2016-09-01T03:28:34", "url": "https://files.pythonhosted.org/packages/7a/df/3e8331918d636bda6eb441a52126458c403387fc4b9e86d00cc1be562ebe/dnsimple-0.3.6.tar.gz" } ], "1.0.0": [ { "comment_text": "", "digests": { "md5": "5dd6d91bc3e6e97a0d346c55fc380e8b", "sha256": "9c8de6b2f7f6b4b311b5dee315daf6fc27d4347bd4f88a41eb18edd084603a9a" }, "downloads": -1, "filename": "dnsimple-1.0.0.tar.gz", "has_sig": true, "md5_digest": "5dd6d91bc3e6e97a0d346c55fc380e8b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11389, "upload_time": "2018-02-22T00:07:16", "url": "https://files.pythonhosted.org/packages/c4/ba/8b010be2dece86a0d78e85f7c774a76a8be13b3b96e8195d8d36a1af2fa5/dnsimple-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "f5c25d6860aaf8f4274ca95b662f2c9a", "sha256": "608f5caffd991859ea373e6b2e2dae6c40f9f99cde4f0df7a5bf0d57def33e22" }, "downloads": -1, "filename": "dnsimple-1.0.1.tar.gz", "has_sig": true, "md5_digest": "f5c25d6860aaf8f4274ca95b662f2c9a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11612, "upload_time": "2018-02-22T02:50:27", "url": "https://files.pythonhosted.org/packages/1f/57/f4afb98cdb048406c21cb922c95ba583709612ba9888909d72363a63d9c5/dnsimple-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "fb4d1365712215289e3601584b9d2bfd", "sha256": "acb0ab1dff52101e423817d8100c7e45210754674d3896169ffea534670da442" }, "downloads": -1, "filename": "dnsimple-1.0.2.tar.gz", "has_sig": true, "md5_digest": "fb4d1365712215289e3601584b9d2bfd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11638, "upload_time": "2018-02-27T19:59:24", "url": "https://files.pythonhosted.org/packages/f2/12/1b8804136b5c562df9c6df790b9b65a082dcddfb07f11dedd69386296c50/dnsimple-1.0.2.tar.gz" } ], "1.1.0": [ { "comment_text": "", "digests": { "md5": "35199f8236703c7a5b08afa1d73bd145", "sha256": "16de826b31af59e963de873eaf420836a56c0d431901563b46ebfbc408bd0b79" }, "downloads": -1, "filename": "dnsimple-1.1.0.tar.gz", "has_sig": true, "md5_digest": "35199f8236703c7a5b08afa1d73bd145", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 28367, "upload_time": "2018-06-07T22:40:34", "url": "https://files.pythonhosted.org/packages/43/f0/1dde5f7bfb67e616176a9385750a461acb78193fc1113ba16747bb90a597/dnsimple-1.1.0.tar.gz" } ], "1.2.0": [ { "comment_text": "", "digests": { "md5": "5760e1b082a7ef6761eaee099388b835", "sha256": "740bdced6b48f837b0e99cacdabd9788500d9ca4fe25ca9f6ae875b75a071583" }, "downloads": -1, "filename": "dnsimple-1.2.0.tar.gz", "has_sig": true, "md5_digest": "5760e1b082a7ef6761eaee099388b835", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26957, "upload_time": "2018-07-27T04:34:37", "url": "https://files.pythonhosted.org/packages/33/fc/8114e80ecc8f62980df6f134d42f14670d53423a2431f95c6089ebfba1ad/dnsimple-1.2.0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5760e1b082a7ef6761eaee099388b835", "sha256": "740bdced6b48f837b0e99cacdabd9788500d9ca4fe25ca9f6ae875b75a071583" }, "downloads": -1, "filename": "dnsimple-1.2.0.tar.gz", "has_sig": true, "md5_digest": "5760e1b082a7ef6761eaee099388b835", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 26957, "upload_time": "2018-07-27T04:34:37", "url": "https://files.pythonhosted.org/packages/33/fc/8114e80ecc8f62980df6f134d42f14670d53423a2431f95c6089ebfba1ad/dnsimple-1.2.0.tar.gz" } ] }