dnsimple 2.0.0.alpha3 → 2.0.0.alpha4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +3 -2
- data/CHANGELOG.markdown +5 -3
- data/lib/dnsimple/client.rb +6 -55
- data/lib/dnsimple/client/{certificates_service.rb → certificates.rb} +1 -1
- data/lib/dnsimple/client/clients.rb +121 -0
- data/lib/dnsimple/client/{contacts_service.rb → contacts.rb} +1 -1
- data/lib/dnsimple/client/domains.rb +65 -0
- data/lib/dnsimple/client/domains_autorenewals.rb +35 -0
- data/lib/dnsimple/client/domains_forwards.rb +70 -0
- data/lib/dnsimple/client/domains_privacy.rb +35 -0
- data/lib/dnsimple/client/domains_records.rb +89 -0
- data/lib/dnsimple/client/domains_sharing.rb +53 -0
- data/lib/dnsimple/client/domains_zones.rb +22 -0
- data/lib/dnsimple/client/{name_servers_service.rb → name_servers.rb} +1 -1
- data/lib/dnsimple/client/{registrars_service.rb → registrar.rb} +1 -1
- data/lib/dnsimple/client/services.rb +34 -0
- data/lib/dnsimple/client/{services_service.rb → services_domains.rb} +1 -28
- data/lib/dnsimple/client/templates.rb +98 -0
- data/lib/dnsimple/client/{templates_service.rb → templates_records.rb} +1 -93
- data/lib/dnsimple/client/{users_service.rb → users.rb} +1 -1
- data/lib/dnsimple/version.rb +1 -1
- data/spec/dnsimple/client/{certificates_service_spec.rb → certificates_spec.rb} +0 -0
- data/spec/dnsimple/client/{contacts_service_spec.rb → contacts_spec.rb} +0 -0
- data/spec/dnsimple/client/domains_autorenewals_spec.rb +72 -0
- data/spec/dnsimple/client/domains_forwards_spec.rb +146 -0
- data/spec/dnsimple/client/domains_privacy_spec.rb +74 -0
- data/spec/dnsimple/client/domains_records_spec.rb +191 -0
- data/spec/dnsimple/client/domains_sharing_spec.rb +109 -0
- data/spec/dnsimple/client/domains_spec.rb +139 -0
- data/spec/dnsimple/client/domains_zones_spec.rb +40 -0
- data/spec/dnsimple/client/{name_servers_service_spec.rb → name_servers_spec.rb} +0 -0
- data/spec/dnsimple/client/{registrars_service_spec.rb → registrar_spec.rb} +9 -9
- data/spec/dnsimple/client/{services_service_spec.rb → services_domains_spec.rb} +1 -62
- data/spec/dnsimple/client/services_spec.rb +69 -0
- data/spec/dnsimple/client/{templates_service_spec.rb → templates_records_spec.rb} +1 -192
- data/spec/dnsimple/client/templates_spec.rb +198 -0
- data/spec/dnsimple/client/{users_service_spec.rb → users_spec.rb} +0 -0
- data/spec/files/{domains_whois_privacy → domains_privacy}/disable/success.http +0 -0
- data/spec/files/{domains_whois_privacy → domains_privacy}/enable/success.http +0 -0
- data/spec/files/domains_privacy/notfound-domain.http +19 -0
- data/spec/files/{registrars → registrar}/check/available.http +0 -0
- data/spec/files/{registrars → registrar}/check/registered.http +0 -0
- data/spec/files/{registrars → registrar}/register/badrequest-missingdomain.http +0 -0
- data/spec/files/{registrars → registrar}/register/badrequest-missingregistrant.http +0 -0
- data/spec/files/{registrars → registrar}/register/success.http +0 -0
- data/spec/files/{registrars → registrar}/renew/badrequest-missingrenewal.http +0 -0
- data/spec/files/{registrars → registrar}/renew/badrequest-unable.http +0 -0
- data/spec/files/{registrars → registrar}/renew/success.http +0 -0
- data/spec/files/{registrars → registrar}/transfer/success.http +0 -0
- data/spec/files/{registrars_extended_attributes → registrar_extended_attributes}/list/success.http +0 -0
- data/spec/files/{registrars_prices → registrar_prices}/list/success.http +0 -0
- data/spec/files/{subscription → subscriptions}/show/success.http +0 -0
- metadata +82 -56
- data/lib/dnsimple/client/client_service.rb +0 -8
- data/lib/dnsimple/client/domains_service.rb +0 -333
- data/spec/dnsimple/client/domains_service_spec.rb +0 -662
@@ -0,0 +1,35 @@
|
|
1
|
+
module Dnsimple
|
2
|
+
class Client
|
3
|
+
module DomainsPrivacy
|
4
|
+
|
5
|
+
# Enables WHOIS privacy for a domain.
|
6
|
+
#
|
7
|
+
# @see http://developer.dnsimple.com/domains/privacy/#enable
|
8
|
+
#
|
9
|
+
# @param [#to_s] domain The domain id or domain name.
|
10
|
+
#
|
11
|
+
# @return [Struct::WhoisPrivacy]
|
12
|
+
# @raise [RequestError] When the request fails.
|
13
|
+
def enable_whois_privacy(domain)
|
14
|
+
response = client.post("v1/domains/#{domain}/whois_privacy")
|
15
|
+
|
16
|
+
Struct::WhoisPrivacy.new(response["whois_privacy"])
|
17
|
+
end
|
18
|
+
|
19
|
+
# Disables WHOIS privacy for a domain.
|
20
|
+
#
|
21
|
+
# @see http://developer.dnsimple.com/domains/privacy/#disable
|
22
|
+
#
|
23
|
+
# @param [#to_s] domain The domain id or domain name.
|
24
|
+
#
|
25
|
+
# @return [Struct::WhoisPrivacy]
|
26
|
+
# @raise [RequestError] When the request fails.
|
27
|
+
def disable_whois_privacy(domain)
|
28
|
+
response = client.delete("v1/domains/#{domain}/whois_privacy")
|
29
|
+
|
30
|
+
Struct::WhoisPrivacy.new(response["whois_privacy"])
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,89 @@
|
|
1
|
+
module Dnsimple
|
2
|
+
class Client
|
3
|
+
module DomainsRecords
|
4
|
+
|
5
|
+
# Lists the records for a domain.
|
6
|
+
#
|
7
|
+
# @see http://developer.dnsimple.com/domains/records/#list
|
8
|
+
#
|
9
|
+
# @param [#to_s] domain The domain id or domain name.
|
10
|
+
# @param [Hash] options
|
11
|
+
#
|
12
|
+
# @return [Array<Struct::Record>]
|
13
|
+
# @raise [RecordNotFound]
|
14
|
+
# @raise [RequestError] When the request fails.
|
15
|
+
def list_records(domain, options = {})
|
16
|
+
response = client.get("v1/domains/#{domain}/records", options)
|
17
|
+
|
18
|
+
response.map { |r| Struct::Record.new(r["record"]) }
|
19
|
+
end
|
20
|
+
|
21
|
+
# Creates a record for a domain.
|
22
|
+
#
|
23
|
+
# @see http://developer.dnsimple.com/domains/records/#create
|
24
|
+
#
|
25
|
+
# @param [#to_s] domain The domain id or domain name.
|
26
|
+
# @param [Hash] attributes
|
27
|
+
#
|
28
|
+
# @return [Struct::Record]
|
29
|
+
# @raise [RecordNotFound]
|
30
|
+
# @raise [RequestError] When the request fails.
|
31
|
+
def create_record(domain, attributes = {})
|
32
|
+
Extra.validate_mandatory_attributes(attributes, [:name, :record_type, :content])
|
33
|
+
options = { record: attributes }
|
34
|
+
response = client.post("v1/domains/#{domain}/records", options)
|
35
|
+
|
36
|
+
Struct::Record.new(response["record"])
|
37
|
+
end
|
38
|
+
|
39
|
+
# Gets a record for a domain.
|
40
|
+
#
|
41
|
+
# @see http://developer.dnsimple.com/domains/records/#get
|
42
|
+
#
|
43
|
+
# @param [#to_s] domain The domain id or domain name.
|
44
|
+
# @param [Fixnum] record The record id.
|
45
|
+
#
|
46
|
+
# @return [Struct::Record]
|
47
|
+
# @raise [RecordNotFound]
|
48
|
+
# @raise [RequestError] When the request fails.
|
49
|
+
def find_record(domain, record)
|
50
|
+
response = client.get("v1/domains/#{domain}/records/#{record}")
|
51
|
+
|
52
|
+
Struct::Record.new(response["record"])
|
53
|
+
end
|
54
|
+
|
55
|
+
# Updates a record for a domain.
|
56
|
+
#
|
57
|
+
# @see http://developer.dnsimple.com/domains/records/#update
|
58
|
+
#
|
59
|
+
# @param [#to_s] domain The domain id or domain name.
|
60
|
+
# @param [Fixnum] record The record id.
|
61
|
+
# @param [Hash] attributes
|
62
|
+
#
|
63
|
+
# @return [Struct::Record]
|
64
|
+
# @raise [RecordNotFound]
|
65
|
+
# @raise [RequestError] When the request fails.
|
66
|
+
def update_record(domain, record, attributes = {})
|
67
|
+
options = { record: attributes }
|
68
|
+
response = client.put("v1/domains/#{domain}/records/#{record}", options)
|
69
|
+
|
70
|
+
Struct::Record.new(response["record"])
|
71
|
+
end
|
72
|
+
|
73
|
+
# Deletes a record for a domain.
|
74
|
+
#
|
75
|
+
# @see http://developer.dnsimple.com/domains/records/#delete
|
76
|
+
#
|
77
|
+
# @param [#to_s] domain The domain id or domain name.
|
78
|
+
# @param [Fixnum] record The record id.
|
79
|
+
#
|
80
|
+
# @return [void]
|
81
|
+
# @raise [RecordNotFound]
|
82
|
+
# @raise [RequestError] When the request fails.
|
83
|
+
def delete_record(domain, record)
|
84
|
+
client.delete("v1/domains/#{domain}/records/#{record}")
|
85
|
+
end
|
86
|
+
|
87
|
+
end
|
88
|
+
end
|
89
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
module Dnsimple
|
2
|
+
class Client
|
3
|
+
module DomainsSharing
|
4
|
+
|
5
|
+
# Lists the memberships.
|
6
|
+
#
|
7
|
+
# @see http://developer.dnsimple.com/domains/sharing/#list
|
8
|
+
#
|
9
|
+
# @param [#to_s] domain The domain id or domain name.
|
10
|
+
#
|
11
|
+
# @return [Array<Struct::Membership>]
|
12
|
+
# @raise [RecordNotFound]
|
13
|
+
# @raise [RequestError] When the request fails.
|
14
|
+
def list_memberships(domain)
|
15
|
+
response = client.get("v1/domains/#{domain}/memberships")
|
16
|
+
|
17
|
+
response.map { |r| Struct::Membership.new(r["membership"]) }
|
18
|
+
end
|
19
|
+
|
20
|
+
# Shares a domain.
|
21
|
+
#
|
22
|
+
# @see http://developer.dnsimple.com/domains/sharing/#create
|
23
|
+
#
|
24
|
+
# @param [#to_s] domain The domain id or domain name.
|
25
|
+
# @param [String] email
|
26
|
+
#
|
27
|
+
# @return [Struct::Membership]
|
28
|
+
# @raise [RecordNotFound]
|
29
|
+
# @raise [RequestError] When the request fails.
|
30
|
+
def create_membership(domain, email)
|
31
|
+
options = { membership: { email: email }}
|
32
|
+
response = client.post("v1/domains/#{domain}/memberships", options)
|
33
|
+
|
34
|
+
Struct::Membership.new(response["membership"])
|
35
|
+
end
|
36
|
+
|
37
|
+
# Un-shares a domain.
|
38
|
+
#
|
39
|
+
# @see http://developer.dnsimple.com/domains/sharing/#delete
|
40
|
+
#
|
41
|
+
# @param [#to_s] domain The domain id or domain name.
|
42
|
+
# @param [Fixnum] membership The membership id.
|
43
|
+
#
|
44
|
+
# @return [void]
|
45
|
+
# @raise [RecordNotFound]
|
46
|
+
# @raise [RequestError] When the request fails.
|
47
|
+
def delete_membership(domain, membership)
|
48
|
+
client.delete("v1/domains/#{domain}/memberships/#{membership}")
|
49
|
+
end
|
50
|
+
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Dnsimple
|
2
|
+
class Client
|
3
|
+
module DomainsZones
|
4
|
+
|
5
|
+
# Gets a domain zone as zone file.
|
6
|
+
#
|
7
|
+
# @see http://developer.dnsimple.com/domains/zones/#get
|
8
|
+
#
|
9
|
+
# @param [#to_s] domain The domain id or domain name.
|
10
|
+
#
|
11
|
+
# @return [String]
|
12
|
+
# @raise [RecordNotFound]
|
13
|
+
# @raise [RequestError] When the request fails.
|
14
|
+
def zone(domain)
|
15
|
+
response = client.get("v1/domains/#{domain}/zone")
|
16
|
+
|
17
|
+
response["zone"]
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,34 @@
|
|
1
|
+
module Dnsimple
|
2
|
+
class Client
|
3
|
+
module Services
|
4
|
+
|
5
|
+
# Lists the supported services.
|
6
|
+
#
|
7
|
+
# @see http://developer.dnsimple.com/services/#list
|
8
|
+
#
|
9
|
+
# @return [Array<Struct::Service>]
|
10
|
+
# @raise [RequestError] When the request fails.
|
11
|
+
def list
|
12
|
+
response = client.get("v1/services")
|
13
|
+
|
14
|
+
response.map { |r| Struct::Service.new(r["service"]) }
|
15
|
+
end
|
16
|
+
|
17
|
+
# Gets a service.
|
18
|
+
#
|
19
|
+
# @see http://developer.dnsimple.com/services/#get
|
20
|
+
#
|
21
|
+
# @param [Fixnum] service The service id.
|
22
|
+
#
|
23
|
+
# @return [Struct::Service]
|
24
|
+
# @raise [RecordNotFound]
|
25
|
+
# @raise [RequestError] When the request fails.
|
26
|
+
def find(service)
|
27
|
+
response = client.get("v1/services/#{service}")
|
28
|
+
|
29
|
+
Struct::Service.new(response["service"])
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
@@ -1,33 +1,6 @@
|
|
1
1
|
module Dnsimple
|
2
2
|
class Client
|
3
|
-
|
4
|
-
|
5
|
-
# Lists the supported services.
|
6
|
-
#
|
7
|
-
# @see http://developer.dnsimple.com/services/#list
|
8
|
-
#
|
9
|
-
# @return [Array<Struct::Service>]
|
10
|
-
# @raise [RequestError] When the request fails.
|
11
|
-
def list
|
12
|
-
response = client.get("v1/services")
|
13
|
-
|
14
|
-
response.map { |r| Struct::Service.new(r["service"]) }
|
15
|
-
end
|
16
|
-
|
17
|
-
# Gets a service.
|
18
|
-
#
|
19
|
-
# @see http://developer.dnsimple.com/services/#get
|
20
|
-
#
|
21
|
-
# @param [Fixnum] service The service id.
|
22
|
-
#
|
23
|
-
# @return [Struct::Service]
|
24
|
-
# @raise [RecordNotFound]
|
25
|
-
# @raise [RequestError] When the request fails.
|
26
|
-
def find(service)
|
27
|
-
response = client.get("v1/services/#{service}")
|
28
|
-
|
29
|
-
Struct::Service.new(response["service"])
|
30
|
-
end
|
3
|
+
module ServicesDomains
|
31
4
|
|
32
5
|
# Lists the services applied to a domain.
|
33
6
|
#
|
@@ -0,0 +1,98 @@
|
|
1
|
+
module Dnsimple
|
2
|
+
class Client
|
3
|
+
module Templates
|
4
|
+
|
5
|
+
# Lists the templates in the account.
|
6
|
+
#
|
7
|
+
# @see http://developer.dnsimple.com/templates/#list
|
8
|
+
#
|
9
|
+
# @return [Array<Struct::Template>]
|
10
|
+
# @raise [RequestError] When the request fails.
|
11
|
+
def list
|
12
|
+
response = client.get("v1/templates")
|
13
|
+
|
14
|
+
response.map { |r| Struct::Template.new(r["dns_template"]) }
|
15
|
+
end
|
16
|
+
|
17
|
+
# Creates a template in the account.
|
18
|
+
#
|
19
|
+
# @see http://developer.dnsimple.com/templates/#create
|
20
|
+
#
|
21
|
+
# @param [Hash] attributes
|
22
|
+
#
|
23
|
+
# @return [Struct::Template]
|
24
|
+
# @raise [RequestError] When the request fails.
|
25
|
+
def create(attributes = {})
|
26
|
+
Extra.validate_mandatory_attributes(attributes, [:name, :short_name])
|
27
|
+
options = { dns_template: attributes }
|
28
|
+
response = client.post("v1/templates", options)
|
29
|
+
|
30
|
+
Struct::Template.new(response["dns_template"])
|
31
|
+
end
|
32
|
+
|
33
|
+
# Gets a template from the account.
|
34
|
+
#
|
35
|
+
# @see http://developer.dnsimple.com/templates/#get
|
36
|
+
#
|
37
|
+
# @param [#to_s] template The template id or short-name.
|
38
|
+
#
|
39
|
+
# @return [Struct::Template]
|
40
|
+
# @raise [RecordNotFound]
|
41
|
+
# @raise [RequestError] When the request fails.
|
42
|
+
def find(template)
|
43
|
+
response = client.get("v1/templates/#{template}")
|
44
|
+
|
45
|
+
Struct::Template.new(response["dns_template"])
|
46
|
+
end
|
47
|
+
|
48
|
+
# Updates a template in the account.
|
49
|
+
#
|
50
|
+
# @see http://developer.dnsimple.com/templates/#update
|
51
|
+
#
|
52
|
+
# @param [#to_s] template The template id or short-name.
|
53
|
+
# @param [Hash] attributes
|
54
|
+
#
|
55
|
+
# @return [Struct::Template]
|
56
|
+
# @raise [RecordNotFound]
|
57
|
+
# @raise [RequestError] When the request fails.
|
58
|
+
def update(template, attributes = {})
|
59
|
+
options = { dns_template: attributes }
|
60
|
+
response = client.put("v1/templates/#{template}", options)
|
61
|
+
|
62
|
+
Struct::Template.new(response["dns_template"])
|
63
|
+
end
|
64
|
+
|
65
|
+
# Deletes a template from the account.
|
66
|
+
#
|
67
|
+
# WARNING: this cannot be undone.
|
68
|
+
#
|
69
|
+
# @see http://developer.dnsimple.com/templates/#delete
|
70
|
+
#
|
71
|
+
# @param [#to_s] template The template id or short-name.
|
72
|
+
#
|
73
|
+
# @return [void]
|
74
|
+
# @raise [RecordNotFound]
|
75
|
+
# @raise [RequestError] When the request fails.
|
76
|
+
def delete(template)
|
77
|
+
client.delete("v1/templates/#{template}")
|
78
|
+
end
|
79
|
+
|
80
|
+
|
81
|
+
# Applies the template to the domain.
|
82
|
+
#
|
83
|
+
# @see http://developer.dnsimple.com/templates/#apply
|
84
|
+
#
|
85
|
+
# @param [#to_s] domain The domain id or domain name.
|
86
|
+
# @param [#to_s] template The template id or short-name.
|
87
|
+
#
|
88
|
+
# @return [void]
|
89
|
+
# @raise [RecordNotFound]
|
90
|
+
# @raise [RequestError] When the request fails.
|
91
|
+
def apply(domain, template)
|
92
|
+
response = client.post("v1/domains/#{domain}/templates/#{template}/apply")
|
93
|
+
response.code == 200
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
@@ -1,98 +1,6 @@
|
|
1
1
|
module Dnsimple
|
2
2
|
class Client
|
3
|
-
|
4
|
-
|
5
|
-
# Lists the templates in the account.
|
6
|
-
#
|
7
|
-
# @see http://developer.dnsimple.com/templates/#list
|
8
|
-
#
|
9
|
-
# @return [Array<Struct::Template>]
|
10
|
-
# @raise [RequestError] When the request fails.
|
11
|
-
def list
|
12
|
-
response = client.get("v1/templates")
|
13
|
-
|
14
|
-
response.map { |r| Struct::Template.new(r["dns_template"]) }
|
15
|
-
end
|
16
|
-
|
17
|
-
# Creates a template in the account.
|
18
|
-
#
|
19
|
-
# @see http://developer.dnsimple.com/templates/#create
|
20
|
-
#
|
21
|
-
# @param [Hash] attributes
|
22
|
-
#
|
23
|
-
# @return [Struct::Template]
|
24
|
-
# @raise [RequestError] When the request fails.
|
25
|
-
def create(attributes = {})
|
26
|
-
Extra.validate_mandatory_attributes(attributes, [:name, :short_name])
|
27
|
-
options = { dns_template: attributes }
|
28
|
-
response = client.post("v1/templates", options)
|
29
|
-
|
30
|
-
Struct::Template.new(response["dns_template"])
|
31
|
-
end
|
32
|
-
|
33
|
-
# Gets a template from the account.
|
34
|
-
#
|
35
|
-
# @see http://developer.dnsimple.com/templates/#get
|
36
|
-
#
|
37
|
-
# @param [#to_s] template The template id or short-name.
|
38
|
-
#
|
39
|
-
# @return [Struct::Template]
|
40
|
-
# @raise [RecordNotFound]
|
41
|
-
# @raise [RequestError] When the request fails.
|
42
|
-
def find(template)
|
43
|
-
response = client.get("v1/templates/#{template}")
|
44
|
-
|
45
|
-
Struct::Template.new(response["dns_template"])
|
46
|
-
end
|
47
|
-
|
48
|
-
# Updates a template in the account.
|
49
|
-
#
|
50
|
-
# @see http://developer.dnsimple.com/templates/#update
|
51
|
-
#
|
52
|
-
# @param [#to_s] template The template id or short-name.
|
53
|
-
# @param [Hash] attributes
|
54
|
-
#
|
55
|
-
# @return [Struct::Template]
|
56
|
-
# @raise [RecordNotFound]
|
57
|
-
# @raise [RequestError] When the request fails.
|
58
|
-
def update(template, attributes = {})
|
59
|
-
options = { dns_template: attributes }
|
60
|
-
response = client.put("v1/templates/#{template}", options)
|
61
|
-
|
62
|
-
Struct::Template.new(response["dns_template"])
|
63
|
-
end
|
64
|
-
|
65
|
-
# Deletes a template from the account.
|
66
|
-
#
|
67
|
-
# WARNING: this cannot be undone.
|
68
|
-
#
|
69
|
-
# @see http://developer.dnsimple.com/templates/#delete
|
70
|
-
#
|
71
|
-
# @param [#to_s] template The template id or short-name.
|
72
|
-
#
|
73
|
-
# @return [void]
|
74
|
-
# @raise [RecordNotFound]
|
75
|
-
# @raise [RequestError] When the request fails.
|
76
|
-
def delete(template)
|
77
|
-
client.delete("v1/templates/#{template}")
|
78
|
-
end
|
79
|
-
|
80
|
-
|
81
|
-
# Applies the template to the domain.
|
82
|
-
#
|
83
|
-
# @see http://developer.dnsimple.com/templates/#apply
|
84
|
-
#
|
85
|
-
# @param [#to_s] domain The domain id or domain name.
|
86
|
-
# @param [#to_s] template The template id or short-name.
|
87
|
-
#
|
88
|
-
# @return [void]
|
89
|
-
# @raise [RecordNotFound]
|
90
|
-
# @raise [RequestError] When the request fails.
|
91
|
-
def apply(domain, template)
|
92
|
-
response = client.post("v1/domains/#{domain}/templates/#{template}/apply")
|
93
|
-
response.code == 200
|
94
|
-
end
|
95
|
-
|
3
|
+
module TemplatesRecords
|
96
4
|
|
97
5
|
# Lists the records for a template.
|
98
6
|
#
|