Net::E...ectSpec(3pm)

πŸ“¦
version 0.28 Β· 4 versions
, in debian trixie, ubuntu resolute, ubuntu stonking

πŸ’– 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 schemaLocation attribute, but it's now deprecated 🚨 and it will be undef for any value of $type other than domain, host contact, secDNS and rgp. 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. πŸ™ˆ

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