NAME
WWW::eNom::Domain - Representation of Registered eNom Domain
SYNOPSIS
use strict;
use warnings;
use WWW::eNom;
use WWW::eNom::Contact;
use WWW::eNom::Domain;
my $api = WWW::eNom->new( ... );
# Create New Domain Object, note that domain registration is handled by
# WWW::eNom::DomainRequest::Registration.
my $contact = WWW::eNom::Contact->new( ... );
my $private_name_servers = [ WWW::eNom::PrivateNameServer->new( ... ) ];
my $domain = WWW::eNom::Domain->new(
id => 42,
name => 'drzigman.com',
status => 'Paid',
verification_status => 'Pending Suspension',
is_auto_renew => 0,
is_locked => 1,
is_private => 0,
created_date => DateTime->...,
expiration_date => DateTime->...,
ns => [ 'ns1.enom.com', 'ns2.enom.com' ],
registrant_contact => $contact,
admin_contact => $contact,
technical_contact => $contact,
billing_contact => $contact,
private_name_servers => $private_name_servers, # Optional
);
# Construct From eNom Response
my $response = $api->submit({
method => 'GetDomainInfo',
params => {
Domain => 'drzigman.com',
}
});
my $domain = WWW::eNom::Domain->construct_from_response(
domain_info => $response->{GetDomainInfo},
is_auto_renew => $api->get_is_domain_auto_renew_by_name( 'drzigman.com' ),
is_locked => $api->get_is_domain_locked_by_name( 'drzigman.com' ),
name_servers => $api->get_domain_name_servers_by_name( 'drzigman.com' ),
contacts => $api->get_contacts_by_domain_name( 'drzigman.com' ),
created_date => $api->get_domain_created_date_by_name( 'drzigman.com' ),
);
WITH
DESCRIPTION
Represents eNom domains, containing all related information. For most operations this will be the base object that is used to represent the data.
attributes
id
The domain id of the domain in eNom's system.
name
The FQDN this domain object represents
status
Current status of the domain, related more so to if it's been paid or if it has been deleted or expired.
verification_status
According to ICANN rules, all new gTLD domains that were registered after January 1st, 2014 must be verified. verification_status describes the current state of this verification and begins in 'Pending Suspension' until the domain is either verified or is suspended due to a lack of verification.
For details on the ICANN policy please see the riveting ICANN Registrar Agreement https://www.icann.org/resources/pages/approved-with-specs-2013-09-17-en.
is_auto_renew
Boolean that indicates if eNom should automagically renew this domain.
is_locked
Boolean indicating if the domain is currently locked, preventing transfer.
is_private
Boolean indicating if this domain uses WHOIS Privacy.
created_date
Date this domain registration was created.
expiration_date
Date this domain registration expires.
ns
ArrayRef of Domain Names that are authoritative nameservers for this domain.
registrant_contact
A WWW::eNom::Contact for the Registrant Contact.
admin_contact
A WWW::eNom::Contact for the Admin Contact.
technical_contact
A WWW::eNom::Contact for the Technical Contact.
billing_contact
A WWW::eNom::Contact for the Billing Contact.
NOTE eNom actually calls this the AuxBilling contact since the primary billing contact is the reseller's information.
private_nameservers
An ArrayRef of WWW::eNom::PrivateNameServer objects that comprise the private nameservers for this domain, provides a predicate of has_private_nameservers.
NOTE Due to limitations of eNom's API, all private nameservers *MUST* be used as authoritative nameservers (i.e., they must also appear in the "ns" attribute). See "LIMITATIONS" in WWW::eNom::Role::Command::Domain::PrivateNameServer for more information about this and other limitations.
irtp_detail
In the event of a recent change in registrant contact, the irtp_detail attribute will be populated with an instance of WWW::eNom::IRTPDetail that contains additional IRTP related information about this domain. If there is no recent registrant contact change then no value will be provided for the irtp_detail. Offers a predicate of has_irtp_detail.
METHODS
construct_from_response
my $api = WWW::eNom->new( ... );
my $response = $api->submit({
method => 'GetDomainInfo',
params => {
Domain => 'drzigman.com',
}
});
my $domain = WWW::eNom::Domain->construct_from_response(
domain_info => $response->{GetDomainInfo},
is_auto_renew => $api->get_is_domain_auto_renew_by_name( $domain_name ),
is_locked => $api->get_is_domain_locked_by_name( $domain_name ),
name_servers => $api->get_domain_name_servers_by_name( $domain_name ),
private_name_servers => $private_name_servers, # Optional
contacts => $api->get_contacts_by_domain_name( $domain_name ),
created_date => $api->get_domain_created_date_by_name( $domain_name ),
);
Creates an instance of $self given several parameters:
- domain_info
-
HashRef response to eNom's GetDomainInfo. This, unfortunately, does not contain all of the needed data so several other parameters are required.
- is_auto_renew
-
Boolean, indicating if eNom will auto renew this domain.
- is_locked
-
Boolean, indicating if this domain is locked to prevent transfer.
- name_servers
-
ArrayRef of Domain Names that are the authoritative nameservers for this domain.
- contacts
-
HashRef with the keys being:
- registrant_contact
- admin_contact
- technical_contact
- billing_contact
And the values being instances of WWW::eNom::Contact that correspond to the key's contact type.
- created_date
-
DateTime that this domain was first created/registered.