dnsimple-ruby 1.7.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (124) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +3 -9
  4. data/{CHANGELOG.markdown → CHANGELOG.md} +4 -0
  5. data/Gemfile +0 -2
  6. data/LICENSE +1 -1
  7. data/README.md +5 -0
  8. data/Rakefile +0 -15
  9. data/dnsimple-ruby.gemspec +11 -19
  10. data/lib/dnsimple-ruby.rb +2 -0
  11. metadata +20 -288
  12. data/README.markdown +0 -159
  13. data/bin/dnsimple +0 -4
  14. data/bin/dnsimple.rb +0 -156
  15. data/features/README.md +0 -9
  16. data/features/cli/certificates/purchase_certificate.feature +0 -10
  17. data/features/cli/contacts/create_contact.feature +0 -10
  18. data/features/cli/domains/check_domain.feature +0 -10
  19. data/features/cli/domains/create_domain.feature +0 -10
  20. data/features/cli/domains/delete_domain.feature +0 -11
  21. data/features/cli/domains/register_domain.feature +0 -10
  22. data/features/cli/records/create_ptr_record.feature +0 -11
  23. data/features/cli/records/create_record.feature +0 -12
  24. data/features/cli/records/delete_record.feature +0 -14
  25. data/features/cli/templates/apply_template.feature +0 -11
  26. data/features/step_definitions/certificate_steps.rb +0 -3
  27. data/features/step_definitions/cli_steps.rb +0 -8
  28. data/features/step_definitions/domain_steps.rb +0 -32
  29. data/features/step_definitions/record_steps.rb +0 -38
  30. data/features/step_definitions/template_steps.rb +0 -9
  31. data/features/support/env.rb +0 -19
  32. data/lib/dnsimple.rb +0 -33
  33. data/lib/dnsimple/base.rb +0 -10
  34. data/lib/dnsimple/certificate.rb +0 -140
  35. data/lib/dnsimple/cli.rb +0 -121
  36. data/lib/dnsimple/client.rb +0 -128
  37. data/lib/dnsimple/commands/certificate_describe.rb +0 -34
  38. data/lib/dnsimple/commands/certificate_list.rb +0 -15
  39. data/lib/dnsimple/commands/certificate_purchase.rb +0 -17
  40. data/lib/dnsimple/commands/certificate_submit.rb +0 -17
  41. data/lib/dnsimple/commands/contact_create.rb +0 -23
  42. data/lib/dnsimple/commands/contact_delete.rb +0 -14
  43. data/lib/dnsimple/commands/contact_describe.rb +0 -25
  44. data/lib/dnsimple/commands/contact_list.rb +0 -13
  45. data/lib/dnsimple/commands/contact_update.rb +0 -25
  46. data/lib/dnsimple/commands/domain_apply_template.rb +0 -15
  47. data/lib/dnsimple/commands/domain_check.rb +0 -11
  48. data/lib/dnsimple/commands/domain_clear.rb +0 -16
  49. data/lib/dnsimple/commands/domain_create.rb +0 -16
  50. data/lib/dnsimple/commands/domain_delete.rb +0 -14
  51. data/lib/dnsimple/commands/domain_describe.rb +0 -14
  52. data/lib/dnsimple/commands/domain_list.rb +0 -13
  53. data/lib/dnsimple/commands/domain_register.rb +0 -33
  54. data/lib/dnsimple/commands/domain_transfer.rb +0 -21
  55. data/lib/dnsimple/commands/extended_attribute_list.rb +0 -25
  56. data/lib/dnsimple/commands/me.rb +0 -18
  57. data/lib/dnsimple/commands/record_create.rb +0 -18
  58. data/lib/dnsimple/commands/record_delete.rb +0 -16
  59. data/lib/dnsimple/commands/record_describe.rb +0 -16
  60. data/lib/dnsimple/commands/record_list.rb +0 -19
  61. data/lib/dnsimple/commands/record_update.rb +0 -23
  62. data/lib/dnsimple/commands/service_add.rb +0 -14
  63. data/lib/dnsimple/commands/service_describe.rb +0 -12
  64. data/lib/dnsimple/commands/service_list.rb +0 -14
  65. data/lib/dnsimple/commands/service_list_applied.rb +0 -16
  66. data/lib/dnsimple/commands/service_list_available.rb +0 -16
  67. data/lib/dnsimple/commands/service_remove.rb +0 -14
  68. data/lib/dnsimple/commands/template_create.rb +0 -14
  69. data/lib/dnsimple/commands/template_delete.rb +0 -13
  70. data/lib/dnsimple/commands/template_list.rb +0 -13
  71. data/lib/dnsimple/commands/template_record_create.rb +0 -18
  72. data/lib/dnsimple/commands/template_record_delete.rb +0 -16
  73. data/lib/dnsimple/commands/template_record_list.rb +0 -17
  74. data/lib/dnsimple/contact.rb +0 -154
  75. data/lib/dnsimple/domain.rb +0 -217
  76. data/lib/dnsimple/error.rb +0 -32
  77. data/lib/dnsimple/extended_attribute.rb +0 -52
  78. data/lib/dnsimple/record.rb +0 -94
  79. data/lib/dnsimple/service.rb +0 -42
  80. data/lib/dnsimple/template.rb +0 -63
  81. data/lib/dnsimple/template_record.rb +0 -80
  82. data/lib/dnsimple/transfer_order.rb +0 -34
  83. data/lib/dnsimple/user.rb +0 -51
  84. data/lib/dnsimple/version.rb +0 -3
  85. data/spec/ci/.dnsimple.test +0 -3
  86. data/spec/commands/certificate_purchase_spec.rb +0 -25
  87. data/spec/commands/certificate_submit_spec.rb +0 -18
  88. data/spec/commands/record_create_spec.rb +0 -23
  89. data/spec/commands/record_list_spec.rb +0 -23
  90. data/spec/commands/service_add_spec.rb +0 -20
  91. data/spec/dnsimple/certificate_spec.rb +0 -59
  92. data/spec/dnsimple/client_spec.rb +0 -154
  93. data/spec/dnsimple/contact_spec.rb +0 -45
  94. data/spec/dnsimple/domain_spec.rb +0 -133
  95. data/spec/dnsimple/extended_attributes_spec.rb +0 -54
  96. data/spec/dnsimple/record_spec.rb +0 -51
  97. data/spec/dnsimple/template_spec.rb +0 -31
  98. data/spec/dnsimple/user_spec.rb +0 -70
  99. data/spec/files/2fa/error-badtoken.http +0 -22
  100. data/spec/files/2fa/error-required.http +0 -23
  101. data/spec/files/2fa/exchange-token.http +0 -25
  102. data/spec/files/account/user/success.http +0 -19
  103. data/spec/files/certificates/index/success.http +0 -19
  104. data/spec/files/certificates/show/notfound.http +0 -17
  105. data/spec/files/certificates/show/success.http +0 -19
  106. data/spec/files/contacts/show/notfound.http +0 -17
  107. data/spec/files/contacts/show/success.http +0 -19
  108. data/spec/files/domains/auto_renewal_disable/notfound.http +0 -21
  109. data/spec/files/domains/auto_renewal_disable/success.http +0 -23
  110. data/spec/files/domains/auto_renewal_enable/notfound.http +0 -21
  111. data/spec/files/domains/auto_renewal_enable/success.http +0 -23
  112. data/spec/files/domains/show/notfound.http +0 -17
  113. data/spec/files/domains/show/success.http +0 -19
  114. data/spec/files/extended_attributes/ca.http +0 -19
  115. data/spec/files/extended_attributes/com.http +0 -19
  116. data/spec/files/extended_attributes/success.http +0 -19
  117. data/spec/files/records/index/success.http +0 -19
  118. data/spec/files/records/show/notfound.http +0 -17
  119. data/spec/files/records/show/success.http +0 -19
  120. data/spec/files/templates/show/notfound.http +0 -17
  121. data/spec/files/templates/show/success.http +0 -19
  122. data/spec/spec_helper.rb +0 -39
  123. data/spec/support/helpers.rb +0 -15
  124. data/spec/support/webmock.rb +0 -11
@@ -1,16 +0,0 @@
1
- module DNSimple
2
- module Commands
3
- class RecordDescribe
4
- def execute(args, options = {})
5
- name = args.shift
6
- id = args.shift
7
- record = Record.find(name, id)
8
- puts "Record #{record.fqdn}:"
9
- puts "\tID: #{record.id}"
10
- puts "\tTTL: #{record.ttl}"
11
- puts "\tPrio: #{record.prio}"
12
- puts "\tContent: #{record.content}"
13
- end
14
- end
15
- end
16
- end
@@ -1,19 +0,0 @@
1
- module DNSimple
2
- module Commands
3
- class RecordList
4
- def execute(args, options = {})
5
- domain_name = args.shift
6
-
7
- records = Record.all(DNSimple::Domain.new(:name => domain_name))
8
-
9
- puts "Found #{records.length} records for #{domain_name}"
10
- records.each do |record|
11
- extra = ["ttl:#{record.ttl}", "id:#{record.id}"]
12
- extra << "prio:#{record.prio}" if record.record_type == "MX"
13
- extra = "(#{extra.join(', ')})"
14
- puts "\t#{record.name}.#{record.domain.name} (#{record.record_type})-> #{record.content} #{extra}"
15
- end
16
- end
17
- end
18
- end
19
- end
@@ -1,23 +0,0 @@
1
- module DNSimple
2
- module Commands
3
- class RecordUpdate
4
- def execute(args, options = {})
5
- attributes = {}
6
- domain_name = args.shift
7
- id = args.shift
8
- args.each do |arg|
9
- name, value = arg.split(":")
10
- attributes[Record.resolve(name)] = value
11
- end
12
-
13
- domain = Domain.find(domain_name)
14
- record = Record.find(domain, id)
15
- attributes.each do |name, value|
16
- record.send("#{name}=", value)
17
- end
18
- record.save
19
- puts "Updated record #{record.fqdn} (id: #{record.id})"
20
- end
21
- end
22
- end
23
- end
@@ -1,14 +0,0 @@
1
- module DNSimple
2
- module Commands
3
- class ServiceAdd
4
- def execute(args, options = {})
5
- domain_name = args.shift
6
- domain = Domain.find(domain_name)
7
- short_name = args.shift
8
- service = Service.find(short_name)
9
- domain.add_service(short_name)
10
- puts "Added #{service.name} to #{domain_name}"
11
- end
12
- end
13
- end
14
- end
@@ -1,12 +0,0 @@
1
- module DNSimple
2
- module Commands
3
- class ServiceDescribe
4
- def execute(args, options = {})
5
- short_name = args.shift
6
- service = Service.find(short_name)
7
- puts "\t#{service.name} (short: #{service.short_name}, id: #{service.id})"
8
- puts "\t\t#{service.description}"
9
- end
10
- end
11
- end
12
- end
@@ -1,14 +0,0 @@
1
- module DNSimple
2
- module Commands
3
- class ServiceList
4
- def execute(args, options = {})
5
- services = Service.all
6
- puts "Found #{services.length} services:"
7
- services.each do |service|
8
- puts "\t#{service.name} (short: #{service.short_name}, id: #{service.id})"
9
- puts "\t\t#{service.description}"
10
- end
11
- end
12
- end
13
- end
14
- end
@@ -1,16 +0,0 @@
1
- module DNSimple
2
- module Commands
3
- class ServiceListApplied
4
- def execute(args, options = {})
5
- domain_name = args.shift
6
- domain = Domain.find(domain_name)
7
- services = domain.applied_services
8
- puts "Found #{services.length} applied services for #{domain_name}"
9
- services.each do |service|
10
- puts "\t#{service.name} (short: #{service.short_name}, id: #{service.id})"
11
- puts "\t\t#{service.description}"
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,16 +0,0 @@
1
- module DNSimple
2
- module Commands
3
- class ServiceListAvailable
4
- def execute(args, options = {})
5
- domain_name = args.shift
6
- domain = Domain.find(domain_name)
7
- services = domain.available_services
8
- puts "Found #{services.length} available services for #{domain_name}"
9
- services.each do |service|
10
- puts "\t#{service.name} (short: #{service.short_name}, id: #{service.id})"
11
- puts "\t\t#{service.description}"
12
- end
13
- end
14
- end
15
- end
16
- end
@@ -1,14 +0,0 @@
1
- module DNSimple
2
- module Commands
3
- class ServiceRemove
4
- def execute(args, options = {})
5
- domain_name = args.shift
6
- domain = Domain.find(domain_name)
7
- short_name = args.shift
8
- service = Service.find(short_name)
9
- domain.remove_service(service.id)
10
- puts "Removed #{service.name} from #{domain_name}"
11
- end
12
- end
13
- end
14
- end
@@ -1,14 +0,0 @@
1
- module DNSimple
2
- module Commands
3
- class TemplateCreate
4
- def execute(args, options = {})
5
- name = args.shift
6
- short_name = args.shift
7
- description = args.shift unless args.empty?
8
-
9
- template = Template.create(name, short_name, description)
10
- puts "Created #{template.name} (short_name:#{template.short_name})"
11
- end
12
- end
13
- end
14
- end
@@ -1,13 +0,0 @@
1
- module DNSimple
2
- module Commands
3
- class TemplateDelete
4
- def execute(args, options = {})
5
- short_name = args.shift
6
- template = Template.find(short_name)
7
- template.delete
8
-
9
- puts "Deleted template #{short_name}"
10
- end
11
- end
12
- end
13
- end
@@ -1,13 +0,0 @@
1
- module DNSimple
2
- module Commands
3
- class TemplateList
4
- def execute(args, options = {})
5
- templates = Template.all
6
- puts "Found #{templates.length} templates:"
7
- templates.each do |template|
8
- puts "\t#{template.name} (short_name:#{template.short_name})"
9
- end
10
- end
11
- end
12
- end
13
- end
@@ -1,18 +0,0 @@
1
- module DNSimple
2
- module Commands
3
- class TemplateRecordCreate
4
- def execute(args, options = {})
5
- short_name = args.shift
6
- record_name = args.shift
7
- record_type = args.shift
8
- content = args.shift
9
- ttl = args.shift
10
-
11
- template = Template.find(short_name)
12
- record = TemplateRecord.create(template.short_name, record_name, record_type, content, :ttl => ttl, :prio => options[:prio])
13
-
14
- puts "Created #{record.record_type} with content '#{record.content}' record for template #{template.name}"
15
- end
16
- end
17
- end
18
- end
@@ -1,16 +0,0 @@
1
- module DNSimple
2
- module Commands
3
- class TemplateRecordDelete
4
- def execute(args, options = {})
5
- short_name = args.shift
6
- id = args.shift
7
-
8
- template = Template.find(short_name)
9
- record = TemplateRecord.find(template.short_name, id)
10
- record.delete
11
-
12
- puts "Deleted #{record.id} from template #{short_name}"
13
- end
14
- end
15
- end
16
- end
@@ -1,17 +0,0 @@
1
- module DNSimple
2
- module Commands
3
- class TemplateRecordList
4
- def execute(args, options = {})
5
- short_name = args.shift
6
- template_records = TemplateRecord.all(short_name)
7
- puts "Found #{template_records.length} records for #{short_name}"
8
- template_records.each do |record|
9
- extra = ["ttl:#{record.ttl}", "id:#{record.id}"]
10
- extra << "prio:#{record.prio}" if record.record_type == "MX"
11
- extra = "(#{extra.join(', ')})"
12
- puts "\t#{record.name} (#{record.record_type})-> #{record.content} #{extra}"
13
- end
14
- end
15
- end
16
- end
17
- end
@@ -1,154 +0,0 @@
1
- module DNSimple
2
-
3
- # Represents a contact.
4
- class Contact < Base
5
-
6
- Aliases = {
7
- 'first' => 'first_name',
8
- 'last' => 'last_name',
9
- 'state' => 'state_province',
10
- 'province' => 'state_province',
11
- 'state_or_province' => 'state_province',
12
- 'email' => 'email_address',
13
- }
14
-
15
- # The contact ID in DNSimple
16
- attr_accessor :id
17
-
18
- # The contact first name
19
- attr_accessor :first_name
20
-
21
- # The contact last name
22
- attr_accessor :last_name
23
-
24
- # The contact's job title
25
- attr_accessor :job_title
26
-
27
- # The name of the organization in which the contact works
28
- attr_accessor :organization_name
29
-
30
- # The contact email address
31
- attr_accessor :email_address
32
-
33
- # The contact phone number
34
- attr_accessor :phone
35
-
36
- # The contact phone extension (may be omitted)
37
- attr_accessor :phone_ext
38
-
39
- # The contact fax number (may be omitted)
40
- attr_accessor :fax
41
-
42
- # The contact street address
43
- attr_accessor :address1
44
-
45
- # Apartment or suite number
46
- attr_accessor :address2
47
-
48
- # The city name
49
- attr_accessor :city
50
-
51
- # The state or province name
52
- attr_accessor :state_province
53
-
54
- # The contact postal code
55
- attr_accessor :postal_code
56
-
57
- # The contact country (as a 2-character country code)
58
- attr_accessor :country
59
-
60
- # When the contact was created in DNSimple
61
- attr_accessor :created_at
62
-
63
- # When the contact was last updated in DNSimple
64
- attr_accessor :updated_at
65
-
66
-
67
- # Map an aliased field name to it's real name. For example, if you
68
- # pass "first" it will be resolved to "first_name", "email" is resolved
69
- # to "email_address" and so on.
70
- def self.resolve(name)
71
- DNSimple::Contact::Aliases[name.to_s] || name
72
- end
73
-
74
- def self.resolve_attributes(attributes)
75
- resolved_attributes = {}
76
- attributes.each do |k, v|
77
- resolved_attributes[resolve(k)] = v
78
- end
79
- resolved_attributes
80
- end
81
-
82
- # Create the contact with the given attributes in DNSimple.
83
- # This method returns a Contact instance of the contact is created
84
- # and raises an error otherwise.
85
- def self.create(attributes, options={})
86
- contact_hash = resolve_attributes(attributes)
87
-
88
- options.merge!({:body => {:contact => contact_hash}})
89
- response = DNSimple::Client.post("/v1/contacts", options)
90
-
91
- case response.code
92
- when 201
93
- new(response["contact"])
94
- else
95
- raise RequestError.new("Error creating contact", response)
96
- end
97
- end
98
-
99
- def self.find(id, options={})
100
- response = DNSimple::Client.get("/v1/contacts/#{id}", options)
101
-
102
- case response.code
103
- when 200
104
- new(response["contact"])
105
- when 404
106
- raise RecordNotFound, "Could not find contact #{id}"
107
- else
108
- raise RequestError.new("Error finding contact", response)
109
- end
110
- end
111
-
112
- def self.all(options={})
113
- response = DNSimple::Client.get("/v1/contacts", options)
114
-
115
- case response.code
116
- when 200
117
- response.map { |r| new(r["contact"]) }
118
- else
119
- raise RequestError.new("Error listing contacts", response)
120
- end
121
- end
122
-
123
-
124
- def name
125
- [first_name, last_name].join(' ')
126
- end
127
-
128
- def save(options={})
129
- contact_hash = {}
130
- %w(first_name last_name organization_name job_title address1 address2 city
131
- state_province postal_code country email_address phone phone_ext fax).each do |attribute|
132
- contact_hash[DNSimple::Contact.resolve(attribute)] = self.send(attribute)
133
- end
134
-
135
- options.merge!({:body => {:contact => contact_hash}})
136
-
137
- response = DNSimple::Client.put("/v1/contacts/#{id}", options)
138
-
139
- case response.code
140
- when 200
141
- return self
142
- else
143
- raise RequestError.new("Error updating contact", response)
144
- end
145
- end
146
-
147
- # Delete the contact from DNSimple. WARNING: this cannot be undone.
148
- def delete(options={})
149
- DNSimple::Client.delete("/v1/contacts/#{id}", options)
150
- end
151
- alias :destroy :delete
152
-
153
- end
154
- end
@@ -1,217 +0,0 @@
1
- module DNSimple
2
- class Domain < Base
3
-
4
- # The domain ID in DNSimple
5
- attr_accessor :id
6
-
7
- # The domain name
8
- attr_accessor :name
9
-
10
- # When the domain was created in DNSimple
11
- attr_accessor :created_at
12
-
13
- # When the domain was last update in DNSimple
14
- attr_accessor :updated_at
15
-
16
- # The current known name server status
17
- attr_accessor :name_server_status
18
-
19
- # When the domain is due to expire
20
- attr_accessor :expires_on
21
-
22
- # The state of the domain in DNSimple
23
- attr_accessor :state
24
-
25
- # ID of the registrant in DNSimple
26
- attr_accessor :registrant_id
27
-
28
- # User ID in DNSimple
29
- attr_accessor :user_id
30
-
31
- # Is the domain lockable
32
- attr_accessor :lockable
33
-
34
- # Is the domain set to autorenew
35
- attr_accessor :auto_renew
36
-
37
- # Is the whois information protected
38
- attr_accessor :whois_protected
39
-
40
-
41
- # Check the availability of a name
42
- def self.check(name, options={})
43
- response = DNSimple::Client.get("/v1/domains/#{name}/check", options)
44
-
45
- case response.code
46
- when 200
47
- "registered"
48
- when 404
49
- "available"
50
- else
51
- raise RequestError.new("Error checking availability", response)
52
- end
53
- end
54
-
55
- # Create the domain with the given name in DNSimple. This
56
- # method returns a Domain instance if the name is created
57
- # and raises an error otherwise.
58
- def self.create(name, options={})
59
- options.merge!({:body => {:domain => {:name => name}}})
60
-
61
- response = DNSimple::Client.post("/v1/domains", options)
62
-
63
- case response.code
64
- when 201
65
- new(response["domain"])
66
- else
67
- raise RequestError.new("Error creating domain", response)
68
- end
69
- end
70
-
71
- # Purchase a domain name.
72
- def self.register(name, registrant={}, extended_attributes={}, options={})
73
- body = {:domain => {:name => name}}
74
- if registrant
75
- if registrant[:id]
76
- body[:domain][:registrant_id] = registrant[:id]
77
- else
78
- body.merge!(:contact => DNSimple::Contact.resolve_attributes(registrant))
79
- end
80
- end
81
- body.merge!(:extended_attribute => extended_attributes)
82
- options.merge!({:body => body})
83
-
84
- response = DNSimple::Client.post("/v1/domain_registrations", options)
85
-
86
- case response.code
87
- when 201
88
- return DNSimple::Domain.new(response["domain"])
89
- else
90
- raise RequestError.new("Error registering domain", response)
91
- end
92
- end
93
-
94
- # Find a specific domain in the account either by the numeric ID
95
- # or by the fully-qualified domain name.
96
- def self.find(id, options={})
97
- response = DNSimple::Client.get("/v1/domains/#{id}", options)
98
-
99
- case response.code
100
- when 200
101
- new(response["domain"])
102
- when 404
103
- raise RecordNotFound, "Could not find domain #{id}"
104
- else
105
- raise RequestError.new("Error finding domain", response)
106
- end
107
- end
108
-
109
- # Get all domains for the account.
110
- def self.all(options={})
111
- response = DNSimple::Client.get("/v1/domains", options)
112
-
113
- case response.code
114
- when 200
115
- response.map { |r| new(r["domain"]) }
116
- else
117
- raise RequestError.new("Error listing domains", response)
118
- end
119
- end
120
-
121
- # Enable auto_renew on the domain
122
- def enable_auto_renew
123
- return if auto_renew
124
- auto_renew!(:post)
125
- end
126
-
127
- # Disable auto_renew on the domain
128
- def disable_auto_renew
129
- return unless auto_renew
130
- auto_renew!(:delete)
131
- end
132
-
133
- # Delete the domain from DNSimple. WARNING: this cannot
134
- # be undone.
135
- def delete(options={})
136
- DNSimple::Client.delete("/v1/domains/#{name}", options)
137
- end
138
- alias :destroy :delete
139
-
140
- # Apply the given named template to the domain. This will add
141
- # all of the records in the template to the domain.
142
- def apply(template, options={})
143
- options.merge!(:body => {})
144
- template = resolve_template(template)
145
-
146
- DNSimple::Client.post("/v1/domains/#{name}/templates/#{template.id}/apply", options)
147
- end
148
-
149
- def resolve_template(template)
150
- case template
151
- when DNSimple::Template
152
- template
153
- else
154
- DNSimple::Template.find(template)
155
- end
156
- end
157
-
158
- def applied_services(options={})
159
- response = DNSimple::Client.get("/v1/domains/#{name}/applied_services", options)
160
-
161
- case response.code
162
- when 200
163
- response.map { |r| DNSimple::Service.new(r["service"]) }
164
- else
165
- raise RequestError.new("Error listing applied services", response)
166
- end
167
- end
168
-
169
- def available_services(options={})
170
- response = DNSimple::Client.get("/v1/domains/#{name}/available_services", options)
171
-
172
- case response.code
173
- when 200
174
- response.map { |r| DNSimple::Service.new(r["service"]) }
175
- else
176
- raise RequestError.new("Error listing available services", response)
177
- end
178
- end
179
-
180
- def add_service(id_or_short_name, options={})
181
- options.merge!(:body => {:service => {:id => id_or_short_name}})
182
- response = DNSimple::Client.post("/v1/domains/#{name}/applied_services", options)
183
-
184
- case response.code
185
- when 200
186
- true
187
- else
188
- raise RequestError.new("Error adding service", response)
189
- end
190
- end
191
-
192
- def remove_service(id, options={})
193
- response = DNSimple::Client.delete("/v1/domains/#{name}/applied_services/#{id}", options)
194
-
195
- case response.code
196
- when 200
197
- true
198
- else
199
- raise RequestError.new("Error removing service", response)
200
- end
201
- end
202
-
203
-
204
- private
205
-
206
- def auto_renew!(method)
207
- response = DNSimple::Client.send(method, "/v1/domains/#{name}/auto_renewal")
208
- case response.code
209
- when 200
210
- self.auto_renew = response['domain']['auto_renew']
211
- else
212
- raise RequestError.new("Error setting auto_renew", response)
213
- end
214
- end
215
-
216
- end
217
- end