A Ruby API for accessing Uniforum's EPP service
Ruby
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
erb
lib
xsd
.gitignore
CHANGELOG
Gemfile
LICENSE
README.md
Rakefile
cozaepp.gemspec

README.md

Cozaepp

A Ruby API for passing messages to Uniforum's EPP-based co.za registry

EPP extensions as per https://www.registry.net.za/content.php?wiki=1&contentid=112&title=What%20is%20EPP?

TODO: Some of the "Transfer" operations are yet to be implemented

N.B version 0.0.2+ requires an SSL-patched version of the epp gem found at https://github.com/tgenov/epp (I'll get around to publishing the gem on rubygems.org eventuall) for now pick an installation option:

Installation

Option 1:

gem install cozaepp

git clone https://github.com/tgenov/epp && cd epp && rake install

Option 2:

git clone https://github.com/tgenov/cozaepp && cd cozaepp && bundle install && rake install

Usage

require "cozaepp"

epp = CozaEPP::Client.new("some.hostname.co.za","username","password") epp.login

List of all public instance methods:

ack(messageId) click to toggle source

apply_clienthold(domainName)

create_contact(contactId, contactName, contactOrg, contactStreet1, contactStreet2, contactStreet3, contactCity, contactProvince, contactPostalcode, contactCountry, contactTel, contactFax, contactEmail, contactPassword )

create_domain(domainName,registrant,hosts,domainSecret)

"hosts" as a array of hashes.

    {
      "hostname" => 'hostname',
      "ip_v4_address" => 'IPv4 Address',
      "ip_v6_address" => 'IPv6 Address'
    }

Using an external NS you need only the hostname

create_domain(
  "testing.test.dnservices.co.za",
  "1234567891234567",
  [
    {
      "hostname" => 'ns1.domain.co.za'
    },
    {
      "hostname" => 'ns2..domain.co.za'
    }
  ],
  "coza"
)

Using a NS that's hostname falls part of the domain being registered, IP details are required

create_domain(
  "testing.test.dnservices.co.za",
  "1234567891234567",
  [
    {
      "hostname" => 'ns1.testing.test.dnservices.co.za',
      "ip_v4_address" => '1.1.1.1'
    },
    {
      "hostname" => 'ns2.testing.test.dnservices.co.za',
      "ip_v4_address" => '2.2.2.2'
    }
  ],
  "coza"
)

create_domain_with_host(domainName, registrant, nsHostname1, nsipv4Address1, nsipv6Address1, nsHostname2, nsipv4Address2, nsipv6Address2, domainSecret )

create_domain_with_ns(domainName, registrant, nsHostname1, nsHostname2, domainSecret )

create_host(serverHostname, ipv4Address, ipv6Address=nil)

delete_contact(contactId)

delete_domain(domainName)

info_balance(contactId)

info_contact(contactId,contactPassword)

info_contact_linkeddomains(contactId,contactPassword)

info_domain(domainName)

login()

logout()

poll()

remove_clienthold(domainName)

renew_domain(domainName,curExpiryDate)

set_autorenew(domainName, autoRenew) -autorenew in [ "true", "false"]

transfer_approve(domainName)

transfer_domain(domainName)

update_contact(contactId, contactName, contactOrg, contactStreet1, contactStreet2, contactStreet3, contactCity, contactProvince, contactPostalcode, contactCountry, contactTel, contactFax, contactEmail, contactPassword )

update_domain_ns(domainName, nsHostname1, nsipv4Address1, nsipv6Address1)

update_domain_registrant(domainName,registrant)

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Added some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request