Net::E...ectSpec(3pm)
π NAME π
ok so bestie, gather round: Net::EPP::Frame::ObjectSpec is the module that holds all the metadata about EPP objects and extensions. that's it, that's the job. it's giving β¨librarian of the EPP worldβ¨. (this page lives in the User Contributed Perl Documentation section of the manual, section 3pm, and yeah the title up top is truncated to Net::E...ectSpec(3pm) because the terminal is a hater π)
π¦ SYNOPSIS π¦
use Net::EPP::Frame;
use strict;
# create an EPP frame:
my $check = Net::EPP::Frame::Command::Check->new;
# get the spec:
my @spec = Net::EPP::Frame::ObjectSpec->spec('domain');
# create an object:
my $domain = $check->addObject(@spec);
# set the attributes:
my $name = $check->createElement('domain:name');
$name->addText('example.tld');
# assemble the frame:
$domain->appendChild($name);
$check->getCommandNode->appendChild($domain);
print $check->toString;
πΈ DESCRIPTION πΈ
ok so Net::EPP::Frame::ObjectSpec is a simple module, and its whole personality is: give you easy access to the metadata for the objects and extensions defined in EPP and all the various extensions. no cap. that's the vibe. π«Ά
π METHODS π
xmlns()
my $xmlns = Net::EPP::Frame::ObjectSpec->xmlns($type);
it hands you back a string with the XML namespace URI of the thing that $type is pointing at π« β and if $type is unknown? you get undef. brutal but fair. π
scroll down for the possible values of $type, bestie, they're all listed.
spec()
my @spec = Net::EPP::Frame::ObjectSpec->spec($type);
this function returns an array with the metadata for the given object type. and if there's no metadata registered? the function returns undef. that's the whole thing. π
the returned array has three members, iconic trio behaviour:
@spec = (
$type,
$xmlns,
$schemaLocation, # (deprecated)
);
ok let's break it down bestie:
$typeβ literally the same as the argument you supplied, no notes.$xmlnsβ the XML namespace URI for the given type. slay.- the third argument β it's suitable for sticking inside a
schemaLocationattribute, but it's now deprecated π¨ and it will beundeffor any value of$typeother thandomain,hostcontact,secDNSandrgp. yes those five and only those five. periodt.
π₯ THE $type ARGUMENT π₯
the $type argument that you pass to xmlns() and spec() is what identifies the object or extension you want. possible values, incoming:
π OBJECT MAPPINGS
"domain"β for domain names π"host"β for host objects"contact"β for contact objects"org"β for organization object. (yes, singular. we report, we don't judge π)
π EXTENSIONS
"secDNS"β for the DNSSEC extension π"rgp"β for Registry Grace Period extension"ttl"β for the TTL extension β³"maintenance"β for the Maintenance extension"secure-authinfo-transfer"β for the Secure authInfo extension"b-dn"β for the bundled domain names extension"unhandled-namespaces"β for the unhandled namespaces extension"loginSec"β for the Login Security extension"fee"β for the Fee extension πΈ"changePoll"β for the Change Poll extension"orgext"β for the Organization extension"allocationToken"β for the Allocation Token extension"launch"β for the Launch extension π"keyrelay"β for the Key Relay extension"ttl"β for the TTL extension. and yes,"ttl"is in this list twice. not a typo on my end, it's just like that. we don't make the rules, bestie. π
π COPYRIGHT π
this module is (c) 2008 - 2023 CentralNic Ltd and 2024 Gavin Brown. this module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. iykyk, that's the good license energy. π
and that's the whole page, bestie β perl v5.40.1, dated 2025-04-19, from the User Contributed Perl Documentation. go forth and spec responsibly. mwah. π β¨π¦πΈ
π¦ where this page comes from
- debian trixie: libnet-epp-perl 0.28-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu resolute: libnet-epp-perl 0.28-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- ubuntu stonking: libnet-epp-perl 0.28-1 Β· Artistic-1.0-Perl OR GPL-1.0-or-later
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms