---
name: "Net::EPP::Frame::ObjectSpec"
section: "3pm"
platform: "linux"
package: "libnet-epp-perl"
version: "0.28-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Net::EPP::Frame::ObjectSpec"
---

# Net::EPP::Frame::ObjectSpec(3pm)

metadata about EPP objects and extensions.

## NAME

Net::EPP::Frame::ObjectSpec - metadata about EPP objects and extensions.

## 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

`"Net::EPP::Frame::ObjectSpec"` is a simple module designed to provide easy access to metadata for the objects and extensions defined in EPP and various extensions.

## METHODS

### xmlns()

```
    my $xmlns = Net::EPP::Frame::ObjectSpec->xmlns($type);
```

Returns a string containing the XML namespace URI of the thing identified by `$type`, or `"undef"` if `$type` is unknown.

See below for possible values of `$type`.

### spec()

```
        my @spec = Net::EPP::Frame::ObjectSpec->spec($type);
```

This function returns an array containing metadata for the given object type. If no metadata is registered then the function returns `"undef"`.

The returned array contains three members:

```
        @spec = (
                $type,
                $xmlns,
                $schemaLocation, # (deprecated)
        );
```

`$type` is the same as the supplied argument, while `$xmlns` is the XML namespace URI for the given type. The third argument is suitable for inclusion in a `"schemaLocation"` attribute, but is now deprecated and will be `"undef"` for any value of `$type` other than `"domain"`, `"host"` `"contact"`, `"secDNS"` and `"rgp"`.

## THE $type ARGUMENT

The `$type` argument to `xmlns()` and `spec()` identifies the object or extension desired. Possible values are:

### OBJECT MAPPINGS

- •

  `"domain"`, for domain names;

- •

  `"host"`, for host objects;

- •

  `"contact"`, for contact objects;

- •

  `"org"`, for organization object.

### 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.

## 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.
