Class: Fog::DNS::DNSimple::Real
- Inherits:
-
Object
- Object
- Fog::DNS::DNSimple::Real
- Defined in:
- lib/fog/dnsimple/dns.rb,
lib/fog/dnsimple/requests/dns/get_domain.rb,
lib/fog/dnsimple/requests/dns/get_record.rb,
lib/fog/dnsimple/requests/dns/list_domains.rb,
lib/fog/dnsimple/requests/dns/list_records.rb,
lib/fog/dnsimple/requests/dns/create_domain.rb,
lib/fog/dnsimple/requests/dns/create_record.rb,
lib/fog/dnsimple/requests/dns/delete_domain.rb,
lib/fog/dnsimple/requests/dns/delete_record.rb,
lib/fog/dnsimple/requests/dns/update_record.rb
Instance Method Summary collapse
-
#create_domain(name) ⇒ Object
Create a single domain in DNSimple in your account.
-
#create_record(domain, name, type, content, options = {}) ⇒ Object
Create a new host in the specified zone.
-
#delete_domain(name) ⇒ Object
Delete the given domain from your account.
-
#delete_record(domain, record_id) ⇒ Object
Delete the record with the given ID for the given domain.
-
#get_domain(id) ⇒ Object
Get the details for a specific domain in your account.
-
#get_record(domain, record_id) ⇒ Object
Gets record from given domain.
-
#initialize(options = {}) ⇒ Real
constructor
A new instance of Real.
-
#list_domains ⇒ Object
Get the details for a specific domain in your account.
-
#list_records(domain) ⇒ Object
Get the list of records for the specific domain.
- #reload ⇒ Object
- #request(params) ⇒ Object
-
#update_record(domain, record_id, options) ⇒ Object
Update the given record for the given domain.
Constructor Details
#initialize(options = {}) ⇒ Real
Returns a new instance of Real.
60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/fog/dnsimple/dns.rb', line 60 def initialize(={}) @dnsimple_email = [:dnsimple_email] @dnsimple_password = [:dnsimple_password] @connection_options = [:connection_options] || {} if [:dnsimple_url] uri = URI.parse([:dnsimple_url]) [:host] = uri.host [:port] = uri.port [:scheme] = uri.scheme end @host = [:host] || "dnsimple.com" @persistent = [:persistent] || false @port = [:port] || 443 @scheme = [:scheme] || 'https' @connection = Fog::Connection.new("#{@scheme}://#{@host}:#{@port}", @persistent, @connection_options) end |
Instance Method Details
#create_domain(name) ⇒ Object
Create a single domain in DNSimple in your account.
Parameters
-
name<~String> - domain name to host (ie example.com)
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
‘name’<~String>
-
-
14 15 16 17 18 19 20 21 22 |
# File 'lib/fog/dnsimple/requests/dns/create_domain.rb', line 14 def create_domain(name) body = { "domain" => { "name" => name } } request( :body => Fog::JSON.encode(body), :expects => 201, :method => 'POST', :path => '/domains' ) end |
#create_record(domain, name, type, content, options = {}) ⇒ Object
Create a new host in the specified zone
Parameters
-
domain<~String>
-
name<~String>
-
type<~String>
-
content<~String>
-
options<~Hash> - optional
-
priority<~Integer>
-
ttl<~Integer>
-
Returns
-
response<~Excon::Response>:
-
body<~Hash>
-
name<~String>
-
ttl<~Integer>
-
created_at<~String>
-
special_type<~String>
-
updated_at<~String>
-
domain_id<~Integer>
-
id<~Integer>
-
content<~String>
-
record_type<~String>
-
prio<~Integer>
-
-
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/fog/dnsimple/requests/dns/create_record.rb', line 29 def create_record(domain, name, type, content, = {}) body = { "record" => { "name" => name, "record_type" => type, "content" => content } } body["record"].merge!() request( :body => Fog::JSON.encode(body), :expects => 201, :method => 'POST', :path => "/domains/#{domain}/records" ) end |
#delete_domain(name) ⇒ Object
Delete the given domain from your account. You may use either the domain ID or the domain name.
Please note that for domains which are registered with DNSimple this will not delete the domain from the registry.
Parameters
-
name<~String> - domain name or numeric ID
15 16 17 18 19 20 21 |
# File 'lib/fog/dnsimple/requests/dns/delete_domain.rb', line 15 def delete_domain(name) request( :expects => 200, :method => 'DELETE', :path => "/domains/#{name}" ) end |
#delete_record(domain, record_id) ⇒ Object
Delete the record with the given ID for the given domain.
Parameters
-
domain<~String>
-
record_id<~String>
11 12 13 14 15 16 |
# File 'lib/fog/dnsimple/requests/dns/delete_record.rb', line 11 def delete_record(domain, record_id) request( :expects => 200, :method => "DELETE", :path => "/domains/#{domain}/records/#{record_id}" ) end |
#get_domain(id) ⇒ Object
Get the details for a specific domain in your account. You may pass either the domain numeric ID or the domain name itself.
Parameters
-
id<~String> - domain name or numeric ID
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
‘domain’<~Hash>
-
‘name’<~String>
-
‘expires_at’<~String>
-
‘created_at’<~String>
-
‘registration_status’<~String>
-
‘updated_at’<~String>
-
‘registrant_id’<~Integer>
-
‘id’<~Integer>
-
‘user_id’<~Integer>
-
‘name_server_status’<~String>
-
-
-
26 27 28 29 30 31 32 |
# File 'lib/fog/dnsimple/requests/dns/get_domain.rb', line 26 def get_domain(id) request( :expects => 200, :method => "GET", :path => "/domains/#{id}" ) end |
#get_record(domain, record_id) ⇒ Object
Gets record from given domain.
Parameters
-
domain<~String>
-
record_id<~String>
Returns
-
response<~Excon::Response>:
-
record<~Hash>
-
name<~String>
-
ttl<~Integer>
-
created_at<~String>
-
special_type<~String>
-
updated_at<~String>
-
domain_id<~Integer>
-
id<~Integer>
-
content<~String>
-
record_type<~String>
-
prio<~Integer>
-
-
24 25 26 27 28 29 |
# File 'lib/fog/dnsimple/requests/dns/get_record.rb', line 24 def get_record(domain, record_id) request( :expects => 200, :method => "GET", :path => "/domains/#{domain}/records/#{record_id}" ) end |
#list_domains ⇒ Object
Get the details for a specific domain in your account. You may pass either the domain numeric ID or the domain name itself.
Parameters
-
id<~String> - domain name or numeric ID
Returns
-
response<~Excon::Response>:
-
body<~Hash>:
-
‘domains’<~Array>
-
‘name’<~String>
-
‘expires_at’<~String>
-
‘created_at’<~String>
-
‘registration_status’<~String>
-
‘updated_at’<~String>
-
‘registrant_id’<~Integer>
-
‘id’<~Integer>
-
‘user_id’<~Integer>
-
‘name_server_status’<~String>
-
-
-
24 25 26 27 28 29 30 |
# File 'lib/fog/dnsimple/requests/dns/list_domains.rb', line 24 def list_domains request( :expects => 200, :method => 'GET', :path => '/domains' ) end |
#list_records(domain) ⇒ Object
Get the list of records for the specific domain.
Parameters
-
domain<~String>
Returns
-
response<~Excon::Response>:
-
records<Array~>
-
name<~String>
-
ttl<~Integer>
-
created_at<~String>
-
special_type<~String>
-
updated_at<~String>
-
domain_id<~Integer>
-
id<~Integer>
-
content<~String>
-
record_type<~String>
-
prio<~Integer>
-
-
23 24 25 26 27 |
# File 'lib/fog/dnsimple/requests/dns/list_records.rb', line 23 def list_records(domain) request( :expects => 200, :method => "GET", :path => "/domains/#{domain}/records" ) end |
#reload ⇒ Object
77 78 79 |
# File 'lib/fog/dnsimple/dns.rb', line 77 def reload @connection.reset end |
#request(params) ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 92 93 94 |
# File 'lib/fog/dnsimple/dns.rb', line 81 def request(params) params[:headers] ||= {} key = "#{@dnsimple_email}:#{@dnsimple_password}" params[:headers].merge!({ "Authorization" => "Basic " + Base64.encode64(key).gsub("\n",''), "Accept" => "application/json", "Content-Type" => "application/json" }) response = @connection.request(params.merge!({:host => @host})) unless response.body.empty? response.body = Fog::JSON.decode(response.body) end response end |
#update_record(domain, record_id, options) ⇒ Object
Update the given record for the given domain.
Parameters
-
domain<~String>
-
record_id<~String>
-
options<~Hash> - optional
-
type<~String>
-
content<~String>
-
priority<~Integer>
-
ttl<~Integer>
-
Returns
-
response<~Excon::Response>:
-
record<~Hash>
-
name<~String>
-
ttl<~Integer>
-
created_at<~String>
-
special_type<~String>
-
updated_at<~String>
-
domain_id<~Integer>
-
id<~Integer>
-
content<~String>
-
record_type<~String>
-
prio<~Integer>
-
-
29 30 31 32 33 34 35 36 37 |
# File 'lib/fog/dnsimple/requests/dns/update_record.rb', line 29 def update_record(domain, record_id, ) body = { "record" => } request( :body => Fog::JSON.encode(body), :expects => 200, :method => "PUT", :path => "/domains/#{domain}/records/#{record_id}" ) end |