diff --git a/Protocols/EPP/eppExtensions/fee-0.11/eppRequests/fee011EppCheckDomainRequest.php b/Protocols/EPP/eppExtensions/fee-0.11/eppRequests/fee011EppCheckDomainRequest.php new file mode 100644 index 00000000..da947ada --- /dev/null +++ b/Protocols/EPP/eppExtensions/fee-0.11/eppRequests/fee011EppCheckDomainRequest.php @@ -0,0 +1,46 @@ +addFee($checkrequest,$command); + $this->addSessionId(); + } + + private function addFee(eppDomain $domain, string $command, ?string $class=null, ?int $period = null, ?string $currency = null) { + if (!in_array($command,['create','renew','transfer'])) { + throw new eppException('Invalid command for fee-0.11 extension. Valid commands are create, renew, transfer'); + } + if ($period) { + if (($period == 0) || ($period>10)) { + throw new eppException('Invalid period for fee-0.11 extension. Valid periods are 0-10'); + } + } + $extension = $this->getExtension(); + $check = $this->createElement('fee:check'); + $check->setAttribute('xmlns:fee','urn:ietf:params:xml:ns:fee-0.11'); + $check->appendChild($this->createElement('fee:command',$command)); + if ($currency) { + $check->appendChild($this->createElement('fee:currency',$currency)); + } + if ($class) { + $check->appendChild($this->createElement('fee:class',$class)); + } + if ($period) { + $per = $this->createElement('fee:period',$period); + $per->setAttribute('unit','y'); + $check->appendChild($per); + } + $extension->appendChild($check); + return; + } +} \ No newline at end of file diff --git a/Protocols/EPP/eppExtensions/fee-0.11/eppResponses/fee011EppCheckDomainResponse.php b/Protocols/EPP/eppExtensions/fee-0.11/eppResponses/fee011EppCheckDomainResponse.php new file mode 100644 index 00000000..ce7cbd04 --- /dev/null +++ b/Protocols/EPP/eppExtensions/fee-0.11/eppResponses/fee011EppCheckDomainResponse.php @@ -0,0 +1,40 @@ +xPath(); + $result['available'] = $xpath->query('/epp:epp/epp:response/epp:extension/fee:chkData/*')->item(0)->getAttribute('avail'); + $list = $xpath->query('/epp:epp/epp:response/epp:extension/fee:chkData/fee:cd/*'); + foreach ($list as $node) { + /* @var \DOMElement $node */ + switch ($node->tagName) { + case 'fee:command': + $result['command'] = $node->nodeValue; + break; + case 'fee:fee': + $result['price'] = $node->nodeValue; + break; + case 'fee:class': + $result['class'] = $node->nodeValue; + break; + case 'fee:period': + $result['period'] = $node->nodeValue; + $periodunit = $node->getAttribute('unit'); + $result['periodunit'] = $periodunit; + break; + case 'fee:currency': + $result['currency'] = $node->nodeValue; + break; + case 'fee:object': + $result['domainname'] = $node->getElementsByTagName('name')->item(0)->nodeValue; + break; + }; + } + return $result; + } + + +} \ No newline at end of file diff --git a/Protocols/EPP/eppExtensions/fee-0.11/fee-0.11.xsd b/Protocols/EPP/eppExtensions/fee-0.11/fee-0.11.xsd new file mode 100644 index 00000000..e029ba41 --- /dev/null +++ b/Protocols/EPP/eppExtensions/fee-0.11/fee-0.11.xsd @@ -0,0 +1,216 @@ + + + + + + + + Extensible Provisioning Protocol + v1.0 extension schema for fee + information. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Protocols/EPP/eppExtensions/fee-0.11/includes.php b/Protocols/EPP/eppExtensions/fee-0.11/includes.php new file mode 100644 index 00000000..f8c8da4e --- /dev/null +++ b/Protocols/EPP/eppExtensions/fee-0.11/includes.php @@ -0,0 +1,10 @@ +addExtension('fee-0.11','urn:ietf:params:xml:ns:fee-0.11'); +# +# Load the fee-0.11 specific additions +# SOURCE: https://datatracker.ietf.org/doc/draft-ietf-regext-epp-fees/00/ +# +include_once(dirname(__FILE__) . '/eppRequests/fee011EppCheckDomainRequest.php'); +include_once(dirname(__FILE__) . '/eppResponses/fee011EppCheckDomainResponse.php'); + +$this->addCommandResponse('Metaregistrar\EPP\fee011EppCheckDomainRequest','Metaregistrar\EPP\fee011EppCheckDomainResponse'); \ No newline at end of file diff --git a/Protocols/EPP/eppExtensions/fury-2.1/eppExceptions/furyEppException.php b/Protocols/EPP/eppExtensions/fury-2.1/eppExceptions/furyEppException.php new file mode 100644 index 00000000..9bd24d9c --- /dev/null +++ b/Protocols/EPP/eppExtensions/fury-2.1/eppExceptions/furyEppException.php @@ -0,0 +1,29 @@ + inside the + * standard EPP block, e.g.: + * + * + * Object does not exist + * + * 8010 + * Domain name does not exist + * + * + * + * @package Metaregistrar\EPP + */ +class furyEppException extends eppException { + + public function getCiraCode() { + return $this->getResponse()->queryPath('/epp:epp/epp:response/epp:result/epp:extValue/epp:value/fury:ciraCode'); + } + + public function getCiraReason() { + return $this->getResponse()->queryPath('/epp:epp/epp:response/epp:result/epp:extValue/epp:reason'); + } +} diff --git a/Protocols/EPP/eppExtensions/fury-2.1/fury-2.1.xsd b/Protocols/EPP/eppExtensions/fury-2.1/fury-2.1.xsd new file mode 100644 index 00000000..232f160f --- /dev/null +++ b/Protocols/EPP/eppExtensions/fury-2.1/fury-2.1.xsd @@ -0,0 +1,269 @@ + + + + + + Extensible Provisioning Protocol v1.0 + contact and domain + extension schema for framework for + provisioning of Fury additional + information. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Protocols/EPP/eppExtensions/fury-2.1/includes.php b/Protocols/EPP/eppExtensions/fury-2.1/includes.php index 9e3263c5..bf45bb1c 100644 --- a/Protocols/EPP/eppExtensions/fury-2.1/includes.php +++ b/Protocols/EPP/eppExtensions/fury-2.1/includes.php @@ -15,3 +15,6 @@ include_once(dirname(__FILE__) . '/eppResponses/furyInfoDomainResponse.php'); $this->addCommandResponse('Metaregistrar\EPP\eppInfoDomainRequest', 'Metaregistrar\EPP\furyInfoDomainResponse'); + +include_once(dirname(__FILE__) . '/eppExceptions/furyEppException.php'); +$this->addException('Metaregistrar\EPP\furyEppException'); diff --git a/Protocols/EPP/eppExtensions/fury-rgp-1.0/fury-rgp-1.0.xsd b/Protocols/EPP/eppExtensions/fury-rgp-1.0/fury-rgp-1.0.xsd new file mode 100644 index 00000000..05cdc77d --- /dev/null +++ b/Protocols/EPP/eppExtensions/fury-rgp-1.0/fury-rgp-1.0.xsd @@ -0,0 +1,27 @@ + + + + + + Extensible Provisioning Protocol v1.0 + contact and domain + extension schema for framework for + provisioning of Fury additional + information. + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Protocols/EPP/eppExtensions/idn-1.0/idn-1.0.xsd b/Protocols/EPP/eppExtensions/idn-1.0/idn-1.0.xsd new file mode 100644 index 00000000..569bd975 --- /dev/null +++ b/Protocols/EPP/eppExtensions/idn-1.0/idn-1.0.xsd @@ -0,0 +1,23 @@ + + + + + Extensible Provisioning Protocol v1.0 domain name extension + schema for IDN Table selection. + + + + + + + + + + + + \ No newline at end of file diff --git a/Protocols/EPP/eppExtensions/iis-1.2/iis-1.2.xsd b/Protocols/EPP/eppExtensions/iis-1.2/iis-1.2.xsd new file mode 100644 index 00000000..f3c3e075 --- /dev/null +++ b/Protocols/EPP/eppExtensions/iis-1.2/iis-1.2.xsd @@ -0,0 +1,194 @@ + + + + + + + + + + + + + + Extensible Provisioning Protocol v1.0 + Extensions for .SE + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Protocols/EPP/eppExtensions/launch-1.0/launch-1.0.xsd b/Protocols/EPP/eppExtensions/launch-1.0/launch-1.0.xsd new file mode 100644 index 00000000..330dd665 --- /dev/null +++ b/Protocols/EPP/eppExtensions/launch-1.0/launch-1.0.xsd @@ -0,0 +1,344 @@ + + + + + + + + + + + Extensible Provisioning Protocol v1.0 + domain name + extension schema + for the launch phase processing. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Protocols/EPP/eppExtensions/org-1.0/org-1.0.xsd b/Protocols/EPP/eppExtensions/org-1.0/org-1.0.xsd new file mode 100644 index 00000000..8571a0bd --- /dev/null +++ b/Protocols/EPP/eppExtensions/org-1.0/org-1.0.xsd @@ -0,0 +1,398 @@ + + + + + + + + + Extensible Provisioning Protocol v1.0 + organization provisioning schema. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Zhou, et al. Standards Track [Page 31] + + RFC 8543 EPP Organization Mapping March 2019 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Protocols/EPP/eppExtensions/orgext-1.0/orgext-1.0.xsd b/Protocols/EPP/eppExtensions/orgext-1.0/orgext-1.0.xsd new file mode 100644 index 00000000..833ccca7 --- /dev/null +++ b/Protocols/EPP/eppExtensions/orgext-1.0/orgext-1.0.xsd @@ -0,0 +1,68 @@ + + + + + Extensible Provisioning Protocol v1.0 Organization Extension Schema v1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Protocols/EPP/eppExtensions/registryLock-1.0/registryLock-1.0.xsd b/Protocols/EPP/eppExtensions/registryLock-1.0/registryLock-1.0.xsd new file mode 100644 index 00000000..c927be56 --- /dev/null +++ b/Protocols/EPP/eppExtensions/registryLock-1.0/registryLock-1.0.xsd @@ -0,0 +1,47 @@ + + + + + + + Extensible Provisioning Protocol v1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Protocols/EPP/eppExtensions/rgp-1.0/rgp-1.0.xsd b/Protocols/EPP/eppExtensions/rgp-1.0/rgp-1.0.xsd new file mode 100644 index 00000000..f219b6ec --- /dev/null +++ b/Protocols/EPP/eppExtensions/rgp-1.0/rgp-1.0.xsd @@ -0,0 +1,132 @@ + + + + + + Extensible Provisioning Protocol v1.0 + domain name extension schema for registry grace period + processing. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Protocols/EPP/eppExtensions/secDNS-1.1/secDNS-1.1.xsd b/Protocols/EPP/eppExtensions/secDNS-1.1/secDNS-1.1.xsd new file mode 100644 index 00000000..7b708d96 --- /dev/null +++ b/Protocols/EPP/eppExtensions/secDNS-1.1/secDNS-1.1.xsd @@ -0,0 +1,128 @@ + + + + + + Extensible Provisioning Protocol v1.0 + domain name extension schema + for provisioning DNS security (DNSSEC) extensions. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file