Module: Dnsimple::Client::Registrar

Included in:
RegistrarService
Defined in:
lib/dnsimple/client/registrar.rb

Instance Method Summary collapse

Instance Method Details

#check_domain(account_id, domain_name, options = {}) ⇒ Struct::DomainCheck

Checks whether a domain is available to be registered.

Examples:

Check whether example.com is available:

client.registrar.check_domain(1010, "example.com")

Parameters:

  • account_id (Integer)

    the account ID

  • domain_name (#to_s)

    the domain name to check

  • options (Hash) (defaults to: {})

Returns:

Raises:

See Also:



18
19
20
21
22
23
# File 'lib/dnsimple/client/registrar.rb', line 18

def check_domain(, domain_name, options = {})
  endpoint = Client.versioned("/%s/registrar/domains/%s/check" % [, domain_name])
  response = client.get(endpoint, options)

  Dnsimple::Response.new(response, Struct::DomainCheck.new(response["data"]))
end

#domain_premium_price(account_id, domain_name, options = {}) ⇒ Struct::DomainPremiumPrice

Checks the premium price for a domain

Examples:

Check the ruby.codes premium price:

client.registrar.domain_premium_price(1010, "ruby.codes")

Check the ruby.codes premium price for transfer:

client.registrar.domain_premium_price(1010, "ruby.codes", action: "transfer")

Parameters:

  • account_id (Integer)

    the account ID

  • domain_name (#to_s)

    the domain name to check

  • options (Hash) (defaults to: {})

Options Hash (options):

  • :action (String)

    Optional action between “registration”, “renewal”, and “transfer”. If omitted, it defaults to “registration”.

Returns:

Raises:

See Also:



43
44
45
46
47
48
49
# File 'lib/dnsimple/client/registrar.rb', line 43

def domain_premium_price(, domain_name, options = {})
  endpoint = Client.versioned("/%s/registrar/domains/%s/premium_price" % [, domain_name])
  options[:query] = { action: options.delete(:action) } if options.key?(:action)
  response = client.get(endpoint, options)

  Dnsimple::Response.new(response, Struct::DomainPremiumPrice.new(response["data"]))
end

#register_domain(account_id, domain_name, attributes, options = {}) ⇒ Struct::DomainRegistration

Registers a domain.

Examples:

Initiate the registration of example.com using the contact 1234 as registrant

including WHOIS privacy for the domain and enabling auto renewal:
client.registrar.register_domain(1010, "example.com", registrant_id: 1234, private_whois: true, auto_renew: true)

Parameters:

  • account_id (Integer)

    the account ID

  • domain_name (#to_s)

    the domain name to register

  • attributes (Hash)
  • options (Hash) (defaults to: {})

Returns:

Raises:

See Also:



66
67
68
69
70
71
72
# File 'lib/dnsimple/client/registrar.rb', line 66

def register_domain(, domain_name, attributes, options = {})
  Extra.validate_mandatory_attributes(attributes, [:registrant_id])
  endpoint = Client.versioned("/%s/registrar/domains/%s/registrations" % [, domain_name])
  response = client.post(endpoint, attributes, options)

  Dnsimple::Response.new(response, Struct::DomainRegistration.new(response["data"]))
end

#renew_domain(account_id, domain_name, attributes = nil, options = {}) ⇒ Struct::DomainRenewal

Renews a domain.

Examples:

Renew example.com for 3 years:

client.registrar.renew_domain(1010, "example.com", period: 3)

Parameters:

  • account_id (Integer)

    the account ID

  • domain_name (#to_s)

    the domain name to renew

  • attributes (Hash) (defaults to: nil)
  • options (Hash) (defaults to: {})

Returns:

Raises:

See Also:



88
89
90
91
92
93
# File 'lib/dnsimple/client/registrar.rb', line 88

def renew_domain(, domain_name, attributes = nil, options = {})
  endpoint = Client.versioned("/%s/registrar/domains/%s/renewals" % [, domain_name])
  response = client.post(endpoint, attributes, options)

  Dnsimple::Response.new(response, Struct::DomainRenewal.new(response["data"]))
end

#transfer_domain(account_id, domain_name, attributes, options = {}) ⇒ Struct::DomainTransfer

Starts the transfer of a domain to DNSimple.

Examples:

Initiate the transfer for example.com using the contact 1234 as registrant:

client.registrar.transfer_domain(1010, "example.com", registrant_id: 1234, auth_code: "x1y2z3")

Parameters:

  • account_id (Integer)

    the account ID

  • domain_name (#to_s)

    the domain name to transfer

  • attributes (Hash)
  • options (Hash) (defaults to: {})

Returns:

Raises:

See Also:



109
110
111
112
113
114
115
# File 'lib/dnsimple/client/registrar.rb', line 109

def transfer_domain(, domain_name, attributes, options = {})
  Extra.validate_mandatory_attributes(attributes, [:registrant_id])
  endpoint = Client.versioned("/%s/registrar/domains/%s/transfers" % [, domain_name])
  response = client.post(endpoint, attributes, options)

  Dnsimple::Response.new(response, Struct::DomainTransfer.new(response["data"]))
end

#transfer_domain_out(account_id, domain_name, options = {}) ⇒ Dnsimple::Response<nil>

Requests the transfer of a domain out of DNSimple.

Examples:

Request to transfer of example.com out of DNSimple:

client.registrar.transfer_domain_out(1010, "example.com")

Parameters:

  • account_id (Integer)

    the account ID

  • domain_name (#to_s)

    the domain name to transfer out

  • options (Hash) (defaults to: {})

Returns:

Raises:

See Also:



130
131
132
133
134
135
# File 'lib/dnsimple/client/registrar.rb', line 130

def transfer_domain_out(, domain_name, options = {})
  endpoint = Client.versioned("/%s/registrar/domains/%s/authorize_transfer_out" % [, domain_name])
  response = client.post(endpoint, nil, options)

  Dnsimple::Response.new(response, nil)
end