1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92
|
'''Partial class to handle Vultr DNS API calls'''
from .utils import VultrBase, update_params
class VultrDNS(VultrBase):
'''Handles Vultr DNS API calls'''
def __init__(self, api_key):
VultrBase.__init__(self, api_key)
def create_domain(self, domain, ipaddr, params=None):
''' /v1/dns/create_domain
POST - account
Create a domain name in DNS
Link: https://www.vultr.com/api/#dns_create_domain
'''
params = update_params(params, {
'domain': domain,
'ip': ipaddr
})
return self.request('/v1/dns/create_domain', params, 'POST')
def create_record(self, domain, name, _type, data, params=None):
''' /v1/dns/create_domain
POST - account
Add a DNS record
Link: https://www.vultr.com/api/#dns_create_record
'''
params = update_params(params, {
'domain': domain,
'name': name,
'type': _type,
'data': data
})
return self.request('/v1/dns/create_record', params, 'POST')
def delete_domain(self, domain, params=None):
''' /v1/dns/delete_domain
POST - account
Delete a domain name (and all associated records)
Link: https://www.vultr.com/api/#dns_delete_domain
'''
params = update_params(params, {'domain': domain})
return self.request('/v1/dns/delete_domain', params, 'POST')
def delete_record(self, domain, recordid, params=None):
''' /v1/dns/delete_record
POST - account
Deletes an individual DNS record
Link: https://www.vultr.com/api/#dns_delete_record
'''
params = update_params(params, {
'domain': domain,
'RECORDID': recordid
})
return self.request('/v1/dns/delete_record', params, 'POST')
def list(self, params=None):
''' /v1/dns/list
GET - account
List all domains associated with the current account
Link: https://www.vultr.com/api/#dns_dns_list
'''
params = params if params else dict()
return self.request('/v1/dns/list', params, 'GET')
def records(self, domain, params=None):
''' /v1/dns/records
GET - account
List all the records associated with a particular domain
Link: https://www.vultr.com/api/#dns_records
'''
params = update_params(params, {'domain': domain})
return self.request('/v1/dns/records', params, 'GET')
def update_record(self, domain, recordid, params=None):
''' /v1/dns/update_record
POST - account
Update a DNS record
Link: https://www.vultr.com/api/#dns_update_record
'''
params = update_params(params, {
'domain': domain,
'RECORDID': recordid
})
return self.request('/v1/dns/update_record', params, 'POST')
|