File: v1_dns.py

package info (click to toggle)
python-vultr 1.0.1-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 184 kB
  • sloc: python: 1,004; makefile: 5
file content (92 lines) | stat: -rw-r--r-- 2,933 bytes parent folder | download
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')