NAME

WWW::eNom - Interact with eNom, Inc.'s reseller API

SYNOPSIS

use WWW::eNom;

my $eNom = WWW::eNom->new(
    username      => "resellid",
    password      => "resellpw",
    response_type => "xml_simple",  # Optional, defaults to xml_simple
    test          => 1              # Optional, defaults to 0 ( production )
);

# Check If Domains Are Available
my $domain_availabilities = $eNom->check_domain_availability(
    slds => [qw( cpan drzigman brainstormincubator )],
    tlds => [qw( com net org )],
    suggestions => 0,
);

DESCRIPTION

WWW::eNom is a module for interacting with the eNom API. eNom is a domain registrar and the API performs operations such as checking domain availability, purchasing domains, and managing them.

This module is broken down into two primary components (documented below). These are "COMMANDS" in WWW::eNom which are used for making requests and "OBJECTS" in WWW::eNom which are used to represent data. Below these, documentation for the WWW::eNom module is included.

COMMANDS

Commands are how operations are performed using the WWW:eNom API. They are separated into related operations, for documentation on the specific command please see the linked pages.

Raw

Love level direct access to the eNom API. You rarely want to make use of this and instead want to use the abstracted commands outline below.

Contact

Contact retrieval.

get_contacts_by_domain_name
update_contacts_for_domain_name

Domain Availability

Use for checking to see if a domain is available for registration as well as getting suggestions of other potentially relevant domains.

check_domain_availability
suggest_domain_names

Domain Registration

New Domain Registration.

register_domain

Domain Transfer

New Domain Transfers.

transfer_domain
get_transfer_by_order_id
get_transfer_by_name
get_transfer_order_id_from_parent_order_id

Domain

Domain retrieval and management.

get_domain_by_name
get_is_domain_locked_by_name
enable_domain_lock_by_name
disable_domain_lock_by_name
get_domain_name_servers_by_name
update_nameservers_for_domain_name
get_is_domain_auto_renew_by_name
enable_domain_auto_renew_by_name
disable_domain_auto_renew_by_name
get_domain_created_date_by_name
renew_domain
email_epp_key_by_name

Service

Addon products that can be sold along with domains.

Domain Privacy

get_domain_privacy_wholesale_price
purchase_domain_privacy_for_domain
get_is_privacy_purchased_by_name
enable_privacy_by_name
disable_privacy_by_name
get_is_privacy_auto_renew_by_name
get_privacy_expiration_date_by_name
enable_privacy_auto_renew_for_domain
disable_privacy_auto_renew_for_domain
renew_privacy

Private Nameservers

Management of Private Name Servers.

create_private_nameserver
update_private_nameserver_ip
retrieve_private_nameserver_by_name
delete_private_nameserver

OBJECTS

Rather than working with messy XML objects or HashRefs, WWW::eNom implements a series of Moose objects for making requests and processing responses. All commands that take an object have coercion so a HashRef can be used in it's place.

WWW::eNom

Primary interface to eNom. Documented further below.

WWW::eNom::Contact

WHOIS data contacts. Typically (with few exceptions) domains contain a Registrant, Admin, Technical, and Billing contact.

WWW::eNom::Domain

A registered domain and all of the domain's related information.

WWW::eNom::DomainTransfer

An in progress domain transfer and all of it's related information.

WWW::eNom::DomainRequest::Registration

Request to register a domain.

WWW::eNom::DomainRequest::Transfer

Request to transfer a domain.

WWW::eNom::PrivateNameServer

Private nameservers.

WWW::eNom::IRTPDetail

Details about an in progress IRTP Verification (due to a change in registrant contact). The IRTP Process is rather complex and eNom acts as a Designated Agent, see WWW::eNom::IRTPDetail for more information about this.

WITH

WWW::eNom::Role::Command

ATTRIBUTES

username

eNom Reseller ID

password

eNom Reseller Password

test

Boolean that defaults to false. If true, requests will be sent to the eNom test endpoint rather than production.

response_type

Defaults to 'xml_simple'. Valid values include:

xml
xml_simple
html
text

It should be noted that this setting is really only relevant when making Raw requests of the eNom API. When doing so this attribute defines the format of the responses.

METHODS

new

my $eNom = WWW::eNom->new(
    username      => "resellid",
    password      => "resellpw",
    response_type => "xml_simple",  # Optional, defaults to xml_simple
    test          => 1              # Optional, defaults to 0 ( production )
);

Constructs a new object for interacting with the eNom API. If the "test" parameter is given, then the API calls will be made to the test server instead of the live one.

As of v0.3.1, an optional "response_type" parameter is supported. For the sake of backward compatibility, the default is "xml_simple"; see below for an explanation of this response type. Use of any other valid option will lead to the return of string responses straight from the eNom API. These options are:

RELEASE NOTE

As of v1.0.0, this module has been renamed to WWW::eNom. Net::eNom is now a thin wrapper to preserve backward compatibility.

AUTHOR

Robert Stone, <drzigman AT cpan DOT org>

Original version by Simon Cozens <simon at simon-cozens.org>. Then maintained and expanded by Richard Simões, <rsimoes AT cpan DOT org>.

CONTRIBUTORS

Special thanks to the following individuals who provided bug reports or pull requests.

Danielle Copley docopley@att.net

COPYRIGHT & LICENSE

Copyright © 2016 Robert Stone. This module is released under the terms of the MIT License and may be modified and/or redistributed under the same or any compatible license.