Module: Dnsimple::Client::Registrar

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

Instance Method Summary collapse

Instance Method Details

#cancel_domain_transfer(account_id, domain_name, domain_transfer_id, options = {}) ⇒ Struct::DomainTransfer

Cancels an in progress domain transfer.

Examples:

Cancel the transfer 42 for example.com:

client.registrar.cancel_domain_transfer(1010, "example.com", 42)

Parameters:

  • account_id (Integer)

    the account ID

  • domain_name (#to_s)

    the domain name

  • domain_transfer_id (Integer)

    the domain transfer ID

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

Returns:

Raises:

See Also:


179
180
181
182
183
184
# File 'lib/dnsimple/client/registrar.rb', line 179

def cancel_domain_transfer(, domain_name, domain_transfer_id, options = {})
  endpoint = Client.versioned("/%s/registrar/domains/%s/transfers/%s" % [, domain_name, domain_transfer_id])
  response = client.delete(endpoint, options)

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

#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:


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

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

Deprecated.

Use #get_domain_prices instead of this one as it will soon be removed from the API.

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:


47
48
49
50
51
52
53
54
# File 'lib/dnsimple/client/registrar.rb', line 47

def domain_premium_price(, domain_name, options = {})
  Dnsimple.deprecate("Use {#get_domain_prices} instead of this one as it will soon be removed from the API.")
  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

#get_domain_prices(account_id, domain_name, options = {}) ⇒ Struct::DomainPrice

Get prices for a domain.

Examples:

Check prices for example.com:

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

Parameters:

  • account_id (Integer)

    the Account id

  • domain_name (String)

    the domain name to find the prices

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

Returns:

Raises:

See Also:


69
70
71
72
73
74
# File 'lib/dnsimple/client/registrar.rb', line 69

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

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

#get_domain_transfer(account_id, domain_name, domain_transfer_id, options = {}) ⇒ Struct::DomainTransfer

Retrieves the details of an existing domain transfer.

Examples:

Retrieve the transfer 42 for example.com:

client.registrar.get_domain_transfer(1010, "example.com", 42)

Parameters:

  • account_id (Integer)

    the account ID

  • domain_name (#to_s)

    the domain name

  • domain_transfer_id (Integer)

    the domain transfer ID

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

Returns:

Raises:

See Also:


157
158
159
160
161
162
# File 'lib/dnsimple/client/registrar.rb', line 157

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

  Dnsimple::Response.new(response, Struct::DomainTransfer.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:


91
92
93
94
95
96
97
# File 'lib/dnsimple/client/registrar.rb', line 91

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:


113
114
115
116
117
118
# File 'lib/dnsimple/client/registrar.rb', line 113

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:


134
135
136
137
138
139
140
# File 'lib/dnsimple/client/registrar.rb', line 134

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:


199
200
201
202
203
204
# File 'lib/dnsimple/client/registrar.rb', line 199

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