SYNOPSIS

        use Net::EPP::ResponseCodes;
        use Net::EPP::Simple;
        use strict;

        my $epp = Net::EPP::Simple->new(
                host    => 'epp.nic.tld',
                user    => 'my-id',
                pass    => 'my-password',
        );

        my $result = $epp->domain_transfer_request('example.tld', 'foobar', 1);

        if ($result) {
                print "Transfer initiated OK\n";

        } else {
                if ($Net::EPP::Simple::Code == OBJECT_PENDING_TRANSFER) {
                        print "Error: domain is already pending transfer\n";

                } elsif ($Net::EPP::Simple::Code == INVALID_AUTH_INFO) {
                        print "Error: invalid authcode provided\n";

                } elsif ($Net::EPP::Simple::Code == OBJECT_DOES_NOT_EXIST) {
                        print "Error: domain not found\n";

                } elsif ($Net::EPP::Simple::Code == STATUS_PROHIBITS_OP) {
                        print "Error: domain cannot be transferred\n";

                } else {
                        print "Error code $Net::EPP::Simple::Code\n";

                }
        }

DESCRIPTION

\s-1EPP\s0 is the Extensible Provisioning Protocol. \s-1EPP\s0 (defined in \s-1RFC\s0 4930) is an application layer client-server protocol for the provisioning and management of objects stored in a shared central repository. Specified in \s-1XML\s0, the protocol defines generic object management operations and an extensible framework that maps protocol operations to objects. As of writing, its only well-developed application is the provisioning of Internet domain names, hosts, and related contact details.

Every response sent to the client by an \s-1EPP\s0 server contains a \*(C`<result>\*(C' element that has a \*(C`code\*(C' attribute. This is a four-digit numeric code that describes the result of the request. This module exports a set of constants that provide handy mnemonics for each of the defined codes.

EXPORTS

\*(C`Net::EPP::ResponseCodes\*(C' exports the following constants. The number in brackets is the integer value associated with the constant.

Successful command completion responses (1nnn)

\s-1OK\s0 (1000)
\s-1OK_PENDING\s0 (1001)
\s-1OK_NO_MESSAGES\s0 (1300)
\s-1OK_MESSAGES\s0 (1301)
\s-1OK_BYE\s0 (1500)

Command error responses (2nnn)

Protocol Syntax

\s-1UNKNOWN_COMMAND\s0 (2011)
\s-1SYNTAX_ERROR\s0 (2011)
\s-1USE_ERROR\s0 (2011)
\s-1MISSING_PARAM\s0 (2011)
\s-1PARAM_RANGE_ERROR\s0 (2011)
\s-1PARAM_SYNTAX_ERROR\s0 (2011)

Implementation-specific Rules

\s-1UNIMPLEMENTED_VERSION\s0 (2100)
\s-1UNIMPLEMENTED_COMMAND\s0 (2101)
\s-1UNIMPLEMENTED_OPTION\s0 (2102)
\s-1UNIMPLEMENTED_EXTENSION\s0 (2103)
\s-1BILLING_FAILURE\s0 (2104)
\s-1NOT_RENEWABLE\s0 (2105)
\s-1NOT_TRANSFERRABLE\s0 (2106)

Security (22nn)

\s-1AUTHENTICATION_ERROR\s0 (2200)
\s-1AUTHORISATION_ERROR\s0 (2201)
\s-1AUTHORIZATION_ERROR\s0 (2201)
\s-1INVALID_AUTH_INFO\s0 (2202)

Data Management (23nn)

\s-1OBJECT_PENDING_TRANSFER\s0 (2300)
\s-1OBJECT_NOT_PENDING_TRANSFER\s0 (2301)
\s-1OBJECT_EXISTS\s0 (2302)
\s-1OBJECT_DOES_NOT_EXIST\s0 (2303)
\s-1STATUS_PROHIBITS_OP\s0 (2304)
\s-1ASSOC_PROHIBITS_OP\s0 (2305)
\s-1PARAM_POLICY_ERROR\s0 (2306)
\s-1UNIMPLEMENTED_OBJECT_SERVICE\s0 (2307)
\s-1DATA_MGMT_POLICY_VIOLATION\s0 (2308)

Server System (24nn)

\s-1COMMAND_FAILED\s0 (2400)

Connection Management (25nn)

\s-1COMMAND_FAILED_BYE\s0 (2500)
\s-1AUTH_FAILED_BYE\s0 (2501)
\s-1SESSION_LIMIT_EXCEEDED_BYE\s0 (2502)

AUTHOR

CentralNic Ltd (<http://www.centralnic.com/>).

COPYRIGHT

This module is (c) 2012 CentralNic Ltd. This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

RELATED TO Net::EPP::ResponseCodes…

  • Net::EPP::Client

  • Net::EPP::Frame

  • Net::EPP::Proxy

  • RFCs 4930 and \s-1RFC\s0 4934, available from <http://www.ietf.org/>.

  • The CentralNic \s-1EPP\s0 site at <http://www.centralnic.com/resellers/epp>.