| Internet-Draft | RPP Data Objects | November 2026 |
| Kowalik & Wullink | Expires 6 May 2027 | [Page] |
This document defines data objects for the RESTful Provisioning Protocol (RPP) and sets up the IANA RPP Data Object Registry to describe and catalogue them. Specifically, it details the logical structure, constraints, and protocol operations (including their inputs, outputs, and business logic) for registry resources: domain names, contacts, hosts, organisations, users, and messages, as well as the discovery and profile objects that describe server capabilities. In accordance with the RPP architecture, these definitions focus entirely on the semantics, remaining independent of any specific data representation or media type (e.g., JSON or XML).¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 6 May 2027.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
The RESTful Provisioning Protocol (RPP) defines a set of data objects used to represent and manage registry resources, including domain names, contacts, hosts, organisations, users, and messages, as well as the discovery and profile objects that describe server capabilities. This initial list is not exhaustive; additional resource and component objects MAY be defined in future revisions or introduced via IANA registration to support new features and operational needs.¶
In accordance with the RPP architecture [I-D.ietf-rpp-architecture], a core architectural principle is the clear distinction between the abstract data model and its concrete data representation. The data model defines the logical structure, relationships, and constraints of the objects, independent of formatting. The data representation defines how these abstract concepts are expressed in specific formats (e.g., JSON, XML, or YAML).¶
This document focuses on the data model of RPP objects and operations on them, including the data model of operation inputs, outputs as well as the necessary business logic of state transitions. This separation of concerns ensures the protocol maintains a stable semantic foundation that can be consistently implemented across different media types and easily adapted to new representation formats. For instance, the model defines a contact's name as a required string type, but it remains agnostic as to whether that string is ultimately encoded as a JSON property or an XML element.¶
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.¶
The following terms related to the relationship between host objects and domain objects are used as defined in Section 1.1 of [RFC5732]:¶
ns1.domain.example is a subordinate host of domain domain.example.¶
domain.example is the superordinate domain of host ns1.domain.example.¶
Parameter A data element that a client provides with an operation to control how the server performs the operation or which data it returns. Unlike an Input Data Element, a parameter does not carry content that the operation acts upon. A parameter is not part of the state of the object and is never returned as part of the object. A parameter is described using the same attributes as an Input Data Element, and its definition specifies the behaviour of the operation when the parameter is absent.¶
RPP data elements use strict typing, meaning that each element must conform exactly to its declared primitive data type, and type violations MUST be treated as errors by implementations. The exact specifications for these types, including allowed ranges, encoding, and formatting, are determined by the representation format used (e.g., JSON, XML, CBOR). New RPP non-primitive data types based on existing primitive data types MAY be defined to support additional features.¶
A String is a sequence of Unicode characters. Usages MAY impose additional constraints on string values, such as maximum length or allowed character sets, based on specific data element definitions. An example of a string is "host.example".¶
An Integer is a whole number, positive or negative. Usages MAY impose additional constraints on integer values, such as minimum and maximum allowable values, based on specific data element definitions. An example of an integer is 42.¶
A Boolean represents a logical true or false value. An example of a boolean is true or false, but it MAY be different depending on the native encoding of boolean values in the representation.¶
A Decimal is a number providing an exact, base-10 representation of fractional values within a defined precision. Usage of this type MUST impose additional constraints on decimal values, such as precision or range, based on specific data element definitions. An example of a decimal is 3.14159.¶
A Date is a full-date calendar date as described in [RFC3339], an example of a date is 2025-10-27.¶
Timestamp (Date and time attribute) values MUST be represented in Coordinated Universal Time (UTC) using the Gregorian calendar in date-time form as defined in [RFC3339]. In EPP Compatibility Profile upper case "T" and "Z" characters MUST be used. An example of a timestamp is 2025-10-27T09:42:51Z.¶
A Uniform Resource Locator (URL) as defined in [RFC1738]. An example of a URL is "https://host.example".¶
Raw binary data, implementations MAY choose how to encode the binary data, for example as base64 or hexadecimal string. An example of binary data encoded as base64 is "UlBQIFNheXMgSGk=".¶
Notation: Dictionary[Value Type]¶
A Dictionary is a collection of key-value pairs where keys are unique Strings and values are of the specified primitive data type. Usages MUST define the constraints on allowed keys and values. A Dictionary differs from an Dictionary Aggregation in that it maps String keys to primitive values rather than to Component or Resource Objects.¶
An Object is a composite structure containing named properties. The set of allowed property names, their data types, and their constraints are determined by the data element definition that uses this type. Usages MUST specify the expected structure, including any required or optional properties. An Object differs from a Component Object in that it is defined inline as part of a data element rather than being a standalone reusable definition registered separately.¶
A String that represents a Fully Qualified Domain Name (FQDN) that conforms to the description included in section 2 of [RFC9499] and includes the following additional restrictions:¶
name element of the DNS Resource Record Object.¶
Each data object is composed of logical data elements. A data element is a logical unit of information identified by a stable name, independent of its representation in any given media type. The definition for each element specifies its logical name, purpose, cardinality, data type, and constraints. The data type of a data element may also be a reference to another data object, using the target object's stable name.¶
The RPP data model is designed to be extensible. Extensions MAY introduce new data objects, add new data elements or associations to existing objects, define new processes on existing or new data objects, and define new operations or extend the inputs and outputs of existing operations.¶
RPP distinguishes between standardised and private extensions:¶
Standardised extensions MUST be registered with IANA, as described in the IANA Considerations section of this document and in [I-D.ietf-rpp-architecture]. Registration ensures global uniqueness of extension identifiers and promotes interoperability across implementations.¶
Private (non-standardised) extensions MAY be defined for use within specific implementations or organisations. Private extensions are not required to be registered with IANA, but MUST still use unique identifiers that are unlikely to conflict with standardised extensions or other private extensions. The use of reverse domain notation as a prefix (e.g., org.example.rpp.myElement) is RECOMMENDED for private extension identifiers to avoid naming collisions.¶
The following aspects of the data model are extensible:¶
When an extension adds data elements, input data elements, or parameters to a core object or operation, these additions MUST NOT alter the semantics or constraints of existing core data elements.¶
The definition of each data element within an object consists of the following attributes:¶
Cardinality: Specifies the number of times an element may appear. The notation is as follows:¶
Mutability: Defines the lifecycle of the data element's value. It MUST be one of the following:¶
true, the associated object or objects are exposed as a sub-resource that can be addressed independently of the containing object, in addition to their inline representation within it. When absent or set to false, the element is accessed only inline. The default value is false.¶
A data element is required when the lower bound of its cardinality is greater than zero (1, 1+, or X-Y with X greater than 0); otherwise it is optional.¶
The Direct Access flag is applicable only to a data element whose Data Type is an association (Aggregation, Composition, Labelled Aggregation, Dictionary Aggregation, Labelled Composition, or Dictionary Composition) with a Data Object, Component Object, or Process Object, of any cardinality. Where such a data element has a cardinality greater than 1, the associated object type MUST define a Unique Identifier, so that an individual associated object can be addressed unambiguously among the collection.
* Visibility: An optional attribute indicating whether the data element is included in operation output by default. It MUST be one of the following:
* default: The element is included in the output of any operation returning the containing object, subject to authorisation and server policy. This value applies when the attribute is absent.
* onDemand: The element is included in the output only when the client explicitly requests it using the Include Elements parameter (see Section 2.7.3), subject to authorisation and server policy.¶
The Visibility attribute affects operation output only. It does not affect whether a client can provide the element as input.¶
A Data Object, Component Object or Process Object (the "derived object") MAY inherit the data elements and operations of another object (the "base object"). Inheritance is denoted in the preamble of the derived object's definition using the Extends keyword, whose value is the name of the base object, for example:¶
* Name: Domain Create Process Object * Identifier: domainCreateProcess * Extends: Create Process Object¶
The following rules apply:¶
Abstract keyword in the preamble of its definition, with the value true. When the Abstract keyword is absent or set to false, the object is not abstract. An abstract object serves only as a base object for its derived objects. Wherever a data element or operation refers to an abstract object, an instance of a non-abstract object that directly or indirectly extends it is used in its place. A client MUST NOT provide, and a server MUST NOT return, an instance whose own type is an abstract object. The Abstract keyword is not inherited.¶
Data object definitions MUST NOT define properties whose names begin with the @ character. Names beginning with @ are reserved for use by representation specifications. This prohibition applies to all data object types: resource objects, component objects, and process objects.¶
For each data object a set of possible operations is defined together with their respective input and output data.¶
The input and output of an operation are declared by the Input and Output attributes of the operation definition. The value of each attribute is either a literal (None) or a list of items, each of one of the following kinds:¶
This Object for the object that defines the operation, or literal value Owner Data Object for the Owner Data Object of a Process Object.¶
Object: The name of the object type in the input or output. It can contain either the type or a literal value This Object for the object type that defines the operation, or literal value Owner Data Object for the type of Owner Data Object of a Process Object. It specifies an additional attribute:¶
1.¶
Input Data Elements: the input data elements of the operation, listed in the same form as the Data Elements of an object: each entry is the Name of an input data element, followed by its attributes as defined in Section 2.4, except Mutability, Direct Access and Visibility. It is allowed in Input only, at most once.¶
Parameters: the parameters of the operation, listed in the same form as Input Data Elements. It is allowed in Input only, at most once.¶
For example:¶
* Input: * Reference: Owner Data Object * Object: Transfer Process Object * Output: * Object: Transfer Process Object¶
The includeElements parameter is defined for every operation whose output contains one or more objects, including, but not limited to, the Uniform Interface operations and the operations of Process Objects. It allows a client to request specific data elements to be included in the operation output in addition to those included by default. Individual operation definitions do not repeat it.¶
Include Elements¶
A listed Identifier refers to the data element as a whole. For a data element with a cardinality of 0+, 1+, or X-Y, it refers to the entire collection of values, and individual values cannot be selected. For a data element whose Data Type is a component object or an association, it refers to the complete associated object or objects.¶
The server processes this data element as follows:¶
includeElements is absent, the server MUST NOT include any data element with onDemand Visibility in the output.¶
Listing a data element that is already included in the output by default has no effect. The parameter thereby remains applicable where an operation or a representation defines an output that omits some elements by default.¶
For the Create, Read, Query, Update and Delete operations of a Data Object, the following Input and Output apply, using the notation defined in Section 2.7.2. An operation definition that declares its own Input or Output attribute replaces the corresponding default.¶
The output Object MAY vary depending on the identity of the querying client, use of Object Authorisation information, and server policy towards unauthorised clients.¶
If the querying client is the sponsoring client, all available information MUST be returned, except data elements with onDemand Visibility not requested using includeElements (see Section 2.7.3).¶
If the querying client is not the sponsoring client but the client provides valid Object Authorisation information, all available information SHOULD be returned, however some optional elements MAY be reserved to the sponsoring client only.¶
If the querying client is not the sponsoring client and the client does not provide valid Object Authorisation information, server policy determines which OPTIONAL elements are returned, if any, or whether the entire request is rejected.¶
The Availability operation allows a client to determine whether the object identified by the Reference can be created using the Create operation at the time of the request. The referenced object does not need to exist. The operation does not create, reserve, or otherwise change the state of any object.¶
A Data Object that supports the Availability operation declares as its Output an Availability Object that extends the Base Availability Object (see Section 9.18).¶
Extensions MAY add parameters that further specify the check and data elements to the Availability Objects.¶
RPP allows for offline review for operations that change the state of an object (Uniform Interface Create, Update, Delete, and the Renew and Transfer process operations) before the requested action is actually completed. In such situations, the response from the server MUST clearly indicate that the operation has been received, but that the requested action is pending. The state of the corresponding object MUST clearly reflect processing of the pending action, typically through a server-set pending status label (e.g. pendingCreate, pendingUpdate, pendingDelete, pendingRenew, pendingTransfer). The server MUST also notify the client when offline processing of the action has been completed, by sending a review-response message (see Section 5).¶
For all other operations both input and output have to be fully specified.¶
Transfer operations manage the change of sponsorship of a provisioned object from one client (the sponsoring client) to another (the gaining client). They are specified once in this section as the transfer model is common across all transferable resource objects. Individual object definitions reference this section and specify any object-specific extensions to the common pattern.¶
RPP supports two types of transfer:¶
The transfer process MAY be immediate or follow a multi-step workflow depending on server policy. If the server implements immediate transfers, the Approve and Reject operations need not be supported; the server completes the transfer upon receipt of the Create operation.¶
The server MAY implement local policies to prevent transfers from stalling and implement a form of automated transfer escalation, approval or cancellation when such a stalled process is recognised.¶
All transfer operations act on or return the Transfer Process Object and are executed in the context of the Owner Data Object the operation is created upon.¶
If the server does not directly approve a pull transfer request and the current sponsoring client first approve the transfer request, the server MUST wait for the sponsoring client's decision before proceeding. If the sponsoring client approves, the server completes the transfer; if the sponsoring client rejects, the server cancels the transfer. The server MUST send a transfer-request message to the sponsoring client. For a pending push transfer, the server MUST send a transfer-request message to the designated gaining client that must act on it. If the server directly approves a transfer, it MUST send a transfer-outcome message to the client managing the object before the transfer. When a transfer is resolved after the currently managing client's decision, the server MUST send a transfer-outcome message to the requesting client.¶
The Pull Transfer Direct Approval Message Diagram illustrates the sequence of messages exchanged during a pull transfer with direct approval. The Pull Transfer Pending Approval Message Diagram illustrates the sequence of messages exchanged during a pull transfer that requires approval. The Push Transfer Message Diagram illustrates the sequence of messages exchanged during a push transfer.¶
For a pull transfer, the requesting client is the gaining client; for a push transfer, the requesting client is the sponsoring client. The messages in the diagrams are surrounded by square brackets to indicate message types.¶
Pull transfer (direct approval):¶
Gaining Client Server Sponsoring Client
| | |
|--- transferCreate --->| |
| | |
| Direct approval |
| |--- [transfer-outcome] -->|
| | |
Pull transfer (pending approval):¶
Gaining Client Server Sponsoring Client
| | |
|--- transferCreate ----->| |
| | |
| | |
| Pending approval |
| |--- [transfer-request] -->|
| |<-- approve / reject -----|
|<-- [transfer-outcome] --| |
Push transfer:¶
Sponsoring Client Server Gaining Client
| | |
|--- transferCreate ----->| |
| |--- [transfer-request] --->|
| |<-- approve / reject ------|
|<-- [transfer-outcome] --| |
Restore operations manage the recovery of an object that has entered the Redemption Grace Period (RGP). They are OPTIONAL and are only available when the RGP feature is supported by the server and MAY be supported only for a subset of Data Object types.¶
The RGP process MAY involve two distinct steps:¶
rgpRedemptionPeriod state, signalling to the registry the intent to restore. This corresponds to the Create operation on the Restore Process Object. On success, the object transitions to rgpPendingRestore.¶
Whether a restore report is required after a restore request is a matter of server policy. If the server does not require a restore report, the object returns to its pre-deletion status immediately upon a successful Create operation, bypassing the rgpPendingRestore state.¶
The Create operation MAY include the restore report, provided as the restoreReport data element, to complete both steps atomically in a single operation.¶
All restore operations act on or return the Restore Process Object and are executed in the context of the Owner Data Object the operation is created upon.¶
Renew operations manage the validity period of a provisioned object. They are specified once in this section as the renewal model is common across all renewable resource objects. Individual object definitions reference this section and specify any object-specific extensions to the common pattern.¶
RPP is designed to coexist with the Extensible Provisioning Protocol (EPP), often operating in parallel against a common backend provisioning system. While RPP is not inherently constrained by all of EPP's requirements, a specific set of rules is necessary to ensure seamless interoperability in such mixed environments.¶
To address this, this document defines an "EPP Compatibility Profile". This profile specifies a set of additional constraints on RPP data objects and operations that a server MUST adhere to when supporting both RPP and EPP concurrently.¶
Throughout this document, all constraints that are part of this profile are explicitly marked with a reference to "EPP Compatibility Profile". Implementers of systems in a mixed EPP/RPP environment MUST follow these specific constraints in addition to the base RPP requirements.¶
Internationalized Domain Names (IDN) are domain names that include one or more non-ASCII characters. IDNs are represented in the Domain Name System (DNS) using ASCII Compatible Encoding (ACE), commonly known as Punycode. This allows the DNS to handle Unicode domain names while maintaining compatibility with the existing ASCII-based infrastructure.¶
A profile is a named set of protocol features and versions that are used to define the compatibility and capabilities of RPP server implementations, allowing for better interoperability between different implementations. Using profiles helps to simplify the implementation and deployment of RPP by providing a clear and concise way for the client and server to communicate their capabilities and requirements.¶
A profile is identified by a unique name and may be published as a standard profile in the IANA registry for RPP profiles, to promote interoperability and standardisation across implementations. Standard profile names MUST use the RPP URN namespace defined in this document, for example: urn:ietf:params:rpp:profile:{profile_name}. The profile name MUST be unique within the RPP URN namespace and SHOULD be descriptive of the features and versions included in the profile.¶
A profile can also be defined as a private profile, which is not published in the IANA registry, but is used by specific server implementations only. A private profile can be defined by a server operator to specify the features and versions supported by their implementation. If the profile is not published in the IANA registry, then the server operator MUST ensure that the profile name is globally unique to avoid conflicts with other profiles, the use of reverse domain name notation is RECOMMENDED for private profiles to ensure uniqueness.¶
A profile can include another profile, which is referred to as "inheriting" from that profile. When a profile inherits from another profile, it means that the features and versions defined in the inherited profile are also included in the inheriting profile. This allows for the creation of more complex profiles by building upon existing profiles. For example, a profile named "example-profile" could inherit from a base profile named "base-profile", which includes a set of common features and versions. The "example-profile" could then add additional features and versions on top of the ones defined in the base profile, or it can override some of the features and versions from the base profile. This allows for greater flexibility and modularity in defining profiles, as well as promoting reuse of common features and versions across different profiles. However, it is important to note that the use of inheritance in profiles can also make things more complicated, as it can create dependencies between profiles and make it harder to understand the features and versions included in a profile. Therefore, it is recommended to use inheritance with caution and to clearly document the relationships between profiles. The depth of inheritance MUST be limited to 1 to prevent excessive complexity, and profile designers MUST NOT create circular dependencies between profiles, where a profile inherits from itself directly.¶
Messages are used to communicate events, requests, and responses between clients and the server. They provide a mechanism for notifying clients about changes in the state of objects, the outcome of operations, and other relevant information.¶
For a message reporting completion of an offline review, the server MUST send a review-response message to each client involved in the transaction when the requested action has been completed and the pending status has been removed.¶
The server can send transfer-outcome, expiration-deletion, and auto-renewal messages to clients affected by those events. The service-notice conveys operational information to all clients. Extensions should use the Base Message Object as the foundation for defining new message types for notifications of changes to Data Objects.¶
The RPP object model is designed to be extensible and interoperable with existing standards. To reduce redundancy and improve consistency, RPP data objects MAY incorporate data types and structures defined in external specifications rather than redefining equivalent types within this specification.¶
An external data type is any type, structure, or format that is normatively defined in a separate standards document and referenced by this specification. When an external data type is used, RPP implementations MUST conform to the semantics, constraints, and encoding rules defined in the originating specification.¶
When this document or any RPP specification references an external data type, the reference MUST follow the requirements and guidelines for references described in [RFC2026]. The reference MUST include a clear description of the specific type or structure being used. For example, if referencing the JSContact format defined in [RFC9553], the reference should specify that the Card data type is being used.
The reference MUST use the following format: External:<specification-identifier>:<type-name>. For example, External:RPP-JSContact-Profile:Card indicates that the Card type from the RPP JSContact Profile specification is being used. The syntax for the reference is defined using ABNF [RFC5234] as follows:¶
identifier = "External:" TYPEID ":" TYPEID TYPEID = ALPHA *( ALPHA / DIGIT / "-" / "_" ) ( ALPHA / DIGIT )¶
External data types are versioned by the specification that defines them. The RPP specifications are pinned to a single version of an external type. If a newer version updates the defining specification, the RPP specification MUST be updated to indicate explicit support.¶
This specification references the RPP JSContact Profile for RPP defined in [I-D.wullink-rpp-jscontact-profile] as an external specification for representing contact information. The JSContact Card data type defined in [RFC9553] MUST be used for the representation of contact information. When referring to this type the following values MUST be used in the Data Type reference identifiers:¶
This section defines new shared data types and structures that are re-used across multiple data object definitions and are based on the existing Primitive Data Types.¶
Identifiers are character strings with a specified minimum length, a specified maximum length, and a specified format outlined in Section 2.8 of [RFC5730]. Identifiers for certain object types MAY have additional constraints imposed either by server policy, object-specific specifications or both.¶
Client identifiers are character strings with a specified minimum length, a specified maximum length, and a specified format. Client identifiers use the "clIDType" client identifier syntax described in [RFC5730].¶
Telephone number syntax is derived from structures defined in [ITU.E164.2005]. Telephone numbers described in this specification are character strings that MUST begin with a plus sign ("+", ASCII value 0x002B), followed by a country code defined in [ITU.E164.2005], followed by a dot (".", ASCII value 0x002E), followed by a sequence of digits representing the telephone number. An optional "x" (ASCII value 0x0078) separator with additional digits representing extension information can be appended to the end of the value.¶
RPP allows for different types of associations (relationships) between the objects. The association may be added between 2 objects with own independent lifecycle (UML aggregation) or in the relation when one object's existence and lifecycle is bound to the other parent/owner object (UML composition). In both cases, especially if the relation allows for cardinality higher than one on either side, the association may be assigned additional attributes, not being part of an object on either side of relation. In many cases such relation would be attributed with a single text string label, describing a role or a type of relation. Depending on the context this value might be unique, which allows using such label as a key in a dictionary.¶
The following generic Association Types are defined for RPP:¶
Notation: Aggregation[Type]¶
A relation between two independent objects.¶
If the cardinality of the target object is more than 1, this represents an unordered array.¶
The target object of an aggregation MUST already exist when the association is created. The target object MAY be only partially visible to the client, or not visible at all, for example when it is managed by the server or by another client and the client only knows its identifier. Limited visibility of the target object does not prevent the client from using it in the association. This rule also applies to Labelled Aggregation and Dictionary Aggregation.¶
Example aggregation having cardinality 1:¶
+-------------------+ | (root parent) | |-------------------| | foo: | | | +----------+ | +-------- | [Object] | | | ... | | +----------+ +-------------------+¶
Example aggregation having cardinality >1:¶
+-------------------+ | (root parent) | |-------------------| | foo: | | +-----[0] +----------+ | | | [Object] | | | | ... | | | +----------+ | +-----[1] +----------+ | | [Object] | | | ... | | +----------+ | ... | +-------------------+¶
Notation: Type¶
A relation between an independent parent object and 1 or more dependent child object(s).¶
If the cardinality of the target object is more than 1, this represents an unordered array.¶
Example composition having cardinality 1:¶
+-------------------+ | (root) | |-------------------| | foo: | | | +-------+ | | +--| ... | | | +-------+ | +-------------------+¶
Example composition having cardinality >1:¶
+-------------------+ | (root) | |-------------------| | foo: | | +-[0] +-------+ | | | | ... | | | | +-------+ | | +-[1] +-------+ | | | | ... | | | | +-------+ | | ... | +-------------------+¶
Notation: LabelledAggregation[Type]¶
A relation between two independent objects with a single text string attribute. Multiple associations with the same label are allowed and represent an unordered array.¶
A type defining such association MUST define Label Description with semantics of the label and Label Constraints with constraints related to the label.¶
Example labelled aggregation:¶
+--------------------------------+
| (root) |
|--------------------------------|
| foo: |
| | |
| +---("label_A")---> +----------+
| | | [Object] |
| | | ... |
| | +----------+
| +---("label_B")---> +----------+
| | | [Object] |
| | | ... |
| | +----------+
| +---("label_A")---> +----------+
| | (labels repeat) | [Object] |
| | | ... |
| | +----------+
| ... |
+--------------------------------+
¶
Notation: DictionaryAggregation[Type]¶
A relation between two independent objects with a single text string attribute. Association labels MUST be unique, allowing them to be used as dictionary keys.¶
A type defining such association MUST define Label Description with semantics of the label and Label Constraints with constraints related to the label.¶
Example Dictionary Aggregation:¶
+--------------------------+ | (root) | |--------------------------| | foo: | | "key1" -> +-----------+ | | [Object] | | | ... | | +-----------+ | "key2" -> +-----------+ | | [Object] | | | ... | | +-----------+ | ... | +--------------------------+¶
Notation: LabelledComposition[Type]¶
A relation between an independent parent object and a dependent child object with a single text string attribute. Multiple associations with the same label are allowed.¶
A type defining such association MUST define Label Description with semantics of the label and Label Constraints with constraints related to the label.¶
Example Labelled Composition:¶
+-------------------------------------+
| (root parent) |
|-------------------------------------|
| foo: |
| | |
| +---("label_A")---> +----------+ |
| | | [Child] | |
| | | ... | |
| | +----------+ |
| +---("label_B")---> +----------+ |
| | | [Child] | |
| | | ... | |
| | +----------+ |
| +---("label_A")---> +----------+ |
| | (labels repeat) | [Child] | |
| | | ... | |
| | +----------+ |
| ... |
+-------------------------------------+
¶
Notation: DictionaryComposition[Type]¶
A relation between an independent parent object and a dependent child object with a single text string attribute. Only a single association with the same label is allowed, allowing it to be used as a dictionary key.¶
A type defining such association MUST define Label Description with semantics of the label and Label Constraints with constraints related to the label.¶
Example Dictionary Composition:¶
+--------------------------+ | (root) | |--------------------------| | foo: | | "key1" -> +---------+ | | | [Child] | | | | ... | | | +---------+ | | "key2" -> +---------+ | | | [Child] | | | | ... | | | +---------+ | | ... | +--------------------------+¶
This section defines the Component Objects used in this document.¶
Data Elements:¶
Data Elements:¶
Label¶
Constraints:¶
Reason¶
Due¶
Status values that can be added or removed by a client are prefixed with "client". Corresponding status values that can be added or removed by a server are prefixed with "server". Status values that do not begin with either "client" or "server" are server-managed. Status values that begin with "rgp" are related to the Redemption Grace Period (RGP) and are also server-managed. A client MUST NOT alter status values set by the server. A server MAY alter or override status values set by a client, subject to local server policies.¶
The Set By column identifies the entity that adds and removes each status value: client, server, or client, server for a value that the server manages and that a client can also manage where server policy permits. A server MUST assign at least one status value to the object. A client is not required to provide a status value when creating or updating the object.¶
| Status Value | Set By | Description |
|---|---|---|
| clientDeleteProhibited | client | Requests to delete the object MUST be rejected. |
| serverDeleteProhibited | server | Requests to delete the object MUST be rejected. |
| clientHold | client | DNS delegation information MUST NOT be published for the object. |
| serverHold | server | DNS delegation information MUST NOT be published for the object. |
| clientRenewProhibited | client | Requests to renew the object MUST be rejected. |
| serverRenewProhibited | server | Requests to renew the object MUST be rejected. |
| clientTransferProhibited | client | Requests to transfer the object MUST be rejected. |
| serverTransferProhibited | server | Requests to transfer the object MUST be rejected. |
| clientUpdateProhibited | client | Requests to update the object (other than to remove this status) MUST be rejected. |
| serverUpdateProhibited | server | Requests to update the object (other than to remove this status) MUST be rejected. |
| inactive | server | Delegation information has not been associated with the object. This is the default status when a domain object is first created and there are no associated host objects for the DNS delegation. This status can also be set by the server when all host-object associations are removed. |
| ok | server | This is the normal status value for an object that has no pending operations or prohibitions. This value is set and removed by the server as other status values are added or removed. |
| pendingCreate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
| pendingDelete | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
| pendingRenew | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
| pendingTransfer | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
| pendingUpdate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
The following diagram describes the allowed status transitions for a domain object, excluding the "rgp" status values, which follow the separate Redemption Grace Period State Diagram below. The clientHold, serverHold, clientDeleteProhibited, serverDeleteProhibited, clientRenewProhibited, serverRenewProhibited, clientTransferProhibited, serverTransferProhibited, clientUpdateProhibited, and serverUpdateProhibited status values are additive flags that MAY be combined with the states shown below (subject to the Status Exclusions rules) and are not depicted as separate states; while present, the corresponding flag blocks the associated transition (delete, renew, transfer, or update, respectively) from being initiated.¶
|
v
+-----------------------------------+
| status: pendingCreate (1)|
+-----------------------------------+
|
create action completed (2)
v
+-----------------------------------+
+----------->| status: ok / inactive (3)|<-----------+
| +-----------------------------------+ |
| | | | |
| <update> | <renew> | <transfer |
| (4) | (5) | create> (6) |
| v v v |
| +-------------+ +-------------+ +--------------------+ |
| | status: | | status: | | status: | |
| |pendingUpdate| |pendingRenew | | pendingTransfer | |
| | (4) | | (5) | | (6)| |
| +-------------+ +-------------+ +--------------------+ |
| | | | |
| +----------------+--------------------+ |
| action completed (7) |
+--------------------------------------------------------------+
+-----------------------------------+
| status: ok / inactive (3)|
+-----------------------------------+
|
<delete> (8)
v
+-----------------------------------+
| status: pendingDelete (8)|
+-----------------------------------+
| |
no RGP support (9) RGP support (9)
v v
+------------------+ +-----------------------------------+
| Deleted (purged) | | status: pendingDelete + |
| (10) | | rgpRedemptionPeriod |
+------------------+ | (see Redemption Grace Period |
| State Diagram below) (10)|
+-----------------------------------+
State descriptions:¶
pendingCreate state.¶
ok if one or more nameservers are associated with the domain, or to inactive if none are associated.¶
ok (nameservers associated) or inactive (no nameservers associated). The object toggles between these two sub-states as nameserver associations are added to or removed from the domain, independently of the transitions described below.¶
pendingUpdate state.¶
pendingRenew state.¶
pendingTransfer state while the request awaits approval, rejection, or automated server action.¶
ok or inactive state, as determined by its current nameserver associations.¶
pendingDelete state.¶
rgpRedemptionPeriod state, following the Redemption Grace Period State Diagram below.¶
When the requested action has been completed, the pendingCreate, pendingDelete, pendingRenew, pendingTransfer, or pendingUpdate status value MUST be removed. All clients involved in the transaction MUST be notified using a service message that the action has been completed and that the status of the object has changed.¶
| Status Value | MUST NOT be combined with |
|---|---|
| ok | Any other status |
| pendingDelete | clientDeleteProhibited, serverDeleteProhibited |
| pendingRenew | clientRenewProhibited, serverRenewProhibited |
| pendingTransfer | clientTransferProhibited, serverTransferProhibited |
| pendingUpdate | clientUpdateProhibited, serverUpdateProhibited |
| pendingCreate, pendingDelete, pendingRenew, pendingTransfer, pendingUpdate | Each other (mutually exclusive) |
Other status combinations not expressly prohibited MAY be used.¶
Status values that begin with "rgp" are related to the Redemption Grace Period (RGP) and are server-managed.¶
The Set By column identifies the entity that adds and removes each status value: client, server, or client, server for a value that the server manages and that a client can also manage where server policy permits.¶
| Status Value | Set By | Description |
|---|---|---|
| rgpAddPeriod | server | This grace period is provided after the initial registration of a domain name. If the domain name is deleted by the registrar during this period, the registry provides a credit to the registrar for the cost of the registration. |
| rgpAutoRenewPeriod | server | This grace period is provided after a domain name registration period expires and is extended (renewed) automatically by the registry. If the domain name is deleted by the registrar during this period, the registry provides a credit to the registrar for the cost of the renewal. |
| rgpRenewPeriod | server | This grace period is provided after a domain name registration period is explicitly extended (renewed) by the registrar. If the domain name is deleted by the registrar during this period, the registry provides a credit to the registrar for the cost of the renewal. |
| rgpTransferPeriod | server | This grace period is provided after the successful transfer of domain name registration sponsorship from one registrar to another registrar. If the domain name is deleted by the new sponsoring registrar during this period, the registry provides a credit to the registrar for the cost of the transfer. |
| rgpRedemptionPeriod | server | This status value is used to describe a domain for which a delete operation has been received, but the domain has not yet been purged because an opportunity exists to restore the domain and abort the deletion process. |
| rgpPendingRestore | server | This status value is used to describe a domain that is in the process of being restored after being in the rgpRedemptionPeriod state. |
| rgpPendingDelete | server | This status value is used to describe a domain that has entered the purge processing state after completing the rgpRedemptionPeriod state. A domain in this status MUST also be in the pendingDelete status described above. |
The following state diagram describes the object lifecycle when the Redemption Grace Period (RGP) feature is supported. It adapts the diagram from Section 2 of [RFC3915] to the RPP data model, using RPP status labels and operations instead of EPP command names.¶
In the diagram below, each state box shows the values of the status data element of the Domain Name Data Object. The values ok and pendingDelete are defined in Section 9.3.1, and the values beginning with "rgp" are defined in Section 9.3.5. The <delete> label refers to the Delete operation on the Domain Name Data Object. The <create> and <update> labels refer to the Create operation (Section 10.2.1.1) and the Update operation (Section 10.2.1.3) of the Restore Process Object.¶
| (2)
v Domain
+----------------------------+ <delete> +-------------------------------+
| status: ok (1)|------------->| status: pendingDelete (3)|
| | | rgpRedemptionPeriod |
+----------------------------+ +-------------------------------+
^ ^ restore, no report | ^ | |
| | and report required (4)| | | No (9) |
| | Restore <create> | | | restore |
| | +------------------+ | | |
| | v | | v
| | +------------------+ | | +-----------------------+
| | | status: (6)| | | | status: (10)|
| | | pendingDelete |-----------------+ | | pendingDelete |
| | | rgpPendingRestore| report not (7) | | rgpPendingDelete |
| | +------------------+ received | +-----------------------+
| | (8) | | |
| | report received | | purge (11) |
| | Restore <update> | restore (5) | v
| +--------------------+ with report | +-----------------------+
| or not req. | | Purged (12)|
| Restore <create> | +-----------------------+
+----------------------------------------------+
State descriptions:¶
ok or other status allowing a delete operation).¶
pendingDelete + rgpRedemptionPeriod state. The object remains here until a restore operation is requested or the redemption period elapses.¶
rgpRedemptionPeriod to its pre-deletion status (1), bypassing the rgpPendingRestore state.¶
pendingDelete + rgpPendingRestore state. The registry awaits a restore report from the sponsoring client.¶
rgpRedemptionPeriod state (step 3).¶
pendingDelete + rgpPendingDelete state and awaits final purge processing.¶
Data Elements:¶
Status values that can be added or removed by a client are prefixed with "client". Corresponding status values that can be added or removed by a server are prefixed with "server". Status values that do not begin with either "client" or "server" are server-managed. A client MUST NOT alter status values set by the server. A server MAY alter or override status values set by a client, subject to local server policies.¶
The Set By column identifies the entity that adds and removes each status value: client, server, or client, server for a value that the server manages and that a client can also manage where server policy permits. A server MUST assign at least one status value to the object. A client is not required to provide a status value when creating or updating the object.¶
| Status Value | Set By | Description |
|---|---|---|
| clientDeleteProhibited | client | Requests to delete the object MUST be rejected. |
| serverDeleteProhibited | server | Requests to delete the object MUST be rejected. |
| clientUpdateProhibited | client | Requests to update the object (other than to remove this status) MUST be rejected. |
| serverUpdateProhibited | server | Requests to update the object (other than to remove this status) MUST be rejected. |
| linked | server | The host object has at least one active association with another object, such as a domain object. Servers SHOULD provide services to determine existing object associations. |
| ok | server | This is the normal status value for an object that has no pending operations or prohibitions. This value is set and removed by the server as other status values are added or removed. |
| pendingCreate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
| pendingDelete | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
| pendingTransfer | server | A transform command has been processed for the object's superordinate domain object (i.e. a transfer of the domain object is pending), but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
| pendingUpdate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
The following diagram describes the allowed status transitions for a host object, based on the status values defined in Section 2.3 of [RFC5732]. The clientDeleteProhibited, serverDeleteProhibited, clientUpdateProhibited, and serverUpdateProhibited status values are additive flags that MAY be combined with the states shown below (subject to the Status Exclusions rules) and are not depicted as separate states; while present, the corresponding flag blocks the associated transition (delete or update, respectively) from being initiated. The linked status is set and removed by the server as associations with other objects are added or removed, independently of the transitions described below.¶
|
v
+-----------------------------------+
| status: pendingCreate (1) |
+-----------------------------------+
| create action completed (2)
v
+-----------------------------------+
+--------->| status: ok (3) |<---------+
| +-----------------------------------+ |
| | | |
| <update> (4) | <domain transfer> (5) | |
| v v |
| +--------------------+ +--------------------+ |
| | status: | | status: | |
| | pendingUpdate (4) | | pendingTransfer(5) | |
| +--------------------+ +--------------------+ |
| | | |
| +------------------------+ |
| action completed (6) |
+---------------------------------------------------------+
+-----------------------------------+
| status: ok (3) |
+-----------------------------------+
|
| <delete> (7)
v
+-----------------------------------+
| status: pendingDelete (7) |
+-----------------------------------+
|
| delete action completed (8)
v
+------------------+
| Deleted (purged) |
| (9) |
+------------------+
State descriptions:¶
pendingCreate state.¶
pendingCreate status is removed. The object enters the ok state.¶
ok status. The linked status MAY accompany ok while the host has an active association with another object, such as a domain object.¶
pendingUpdate state.¶
pendingTransfer status on the subordinate host object while the domain transfer request is pending. This status is not set by a client.¶
ok state.¶
pendingDelete state.¶
When the requested action has been completed, the pendingCreate, pendingDelete, pendingTransfer, or pendingUpdate status value MUST be removed. All clients involved in the transaction MUST be notified using a service message that the action has been completed and that the status of the object has changed.¶
| Status Value | MUST NOT be combined with |
|---|---|
| ok | Any status other than linked
|
| pendingDelete | clientDeleteProhibited, serverDeleteProhibited |
| pendingUpdate | clientUpdateProhibited, serverUpdateProhibited |
| pendingCreate, pendingDelete, pendingTransfer, pendingUpdate | Each other (mutually exclusive) |
The linked status MAY be combined with any status. Other status combinations not expressly prohibited MAY be used.¶
Data Elements:¶
Status values that can be added or removed by a client are prefixed with "client". Corresponding status values that can be added or removed by a server are prefixed with "server". Status values that do not begin with either "client" or "server" are server-managed. A client MUST NOT alter status values set by the server. A server MAY alter or override status values set by a client, subject to local server policies.¶
The Set By column identifies the entity that adds and removes each status value: client, server, or client, server for a value that the server manages and that a client can also manage where server policy permits. A server MUST assign at least one status value to the object. A client is not required to provide a status value when creating or updating the object.¶
| Status Value | Set By | Description |
|---|---|---|
| clientDeleteProhibited | client | Requests to delete the object MUST be rejected. |
| serverDeleteProhibited | server | Requests to delete the object MUST be rejected. |
| clientTransferProhibited | client | Requests to transfer the object MUST be rejected. |
| serverTransferProhibited | server | Requests to transfer the object MUST be rejected. |
| clientUpdateProhibited | client | Requests to update the object (other than to remove this status) MUST be rejected. |
| serverUpdateProhibited | server | Requests to update the object (other than to remove this status) MUST be rejected. |
| linked | server | The contact object has at least one active association with another object, such as a domain object. Servers SHOULD provide services to determine existing object associations. |
| ok | server | This is the normal status value for an object that has no pending operations or prohibitions. This value is set and removed by the server as other status values are added or removed. |
| pendingCreate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
| pendingDelete | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
| pendingTransfer | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
| pendingUpdate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
The following diagram describes the allowed status transitions for a contact object, based on the status values defined in Section 2.2 of [RFC5733]. The clientDeleteProhibited, serverDeleteProhibited, clientTransferProhibited, serverTransferProhibited, clientUpdateProhibited, and serverUpdateProhibited status values are additive flags that MAY be combined with the states shown below (subject to the Status Exclusions rules) and are not depicted as separate states; while present, the corresponding flag blocks the associated transition (delete, transfer, or update, respectively) from being initiated. The linked status is set and removed by the server as associations with other objects are added or removed, independently of the transitions described below.¶
|
v
+-----------------------------------+
| status: pendingCreate (1) |
+-----------------------------------+
| create action completed (2)
v
+-----------------------------------+
+--------->| status: ok (3) |<---------+
| +-----------------------------------+ |
| | | |
| <update> (4) | <transfer create> (5) | |
| v v |
| +--------------------+ +--------------------+ |
| | status: | | status: | |
| | pendingUpdate (4) | | pendingTransfer(5) | |
| +--------------------+ +--------------------+ |
| | | |
| +------------------------+ |
| action completed (6) |
+---------------------------------------------------------+
+-----------------------------------+
| status: ok (3) |
+-----------------------------------+
|
| <delete> (7)
v
+-----------------------------------+
| status: pendingDelete (7) |
+-----------------------------------+
|
| delete action completed (8)
v
+------------------+
| Deleted (purged) |
| (9) |
+------------------+
State descriptions:¶
pendingCreate state.¶
pendingCreate status is removed. The object enters the ok state.¶
ok status. The linked status MAY accompany ok while the contact has an active association with another object, such as a domain object.¶
pendingUpdate state.¶
pendingTransfer state while the request awaits approval, rejection, cancellation, or automated server action.¶
ok state. A transfer that is approved changes the sponsoring client of the contact.¶
pendingDelete state.¶
When the requested action has been completed, the pendingCreate, pendingDelete, pendingTransfer, or pendingUpdate status value MUST be removed. All clients involved in the transaction MUST be notified using a service message that the action has been completed and that the status of the object has changed.¶
| Status Value | MUST NOT be combined with |
|---|---|
| ok | Any status other than linked
|
| pendingDelete | clientDeleteProhibited, serverDeleteProhibited |
| pendingTransfer | clientTransferProhibited, serverTransferProhibited |
| pendingUpdate | clientUpdateProhibited, serverUpdateProhibited |
| pendingCreate, pendingDelete, pendingTransfer, pendingUpdate | Each other (mutually exclusive) |
The linked status MAY be combined with any status. Other status combinations not expressly prohibited MAY be used.¶
Data Elements:¶
Status values that can be added or removed by a client are prefixed with "client". Corresponding status values that can be added or removed by a server are prefixed with "server". Status values that do not begin with either "client" or "server" are server-managed.¶
The Set By column identifies the entity that adds and removes each status value: client, server, or client, server for a value that the server manages and that a client can also manage where server policy permits.¶
| Status Value | Set By | Description |
|---|---|---|
| clientLinkProhibited | client | Requests to add new links to the role MUST be rejected. |
| serverLinkProhibited | server | Requests to add new links to the role MUST be rejected. |
| linked | server | The role has at least one active association with another object. This value is set and removed by the server and is not explicitly set by the client. |
| ok | server | This is the normal status value for a role that has no active prohibitions. This value is set and removed by the server as other status values are added or removed. |
The following diagram describes the allowed status transitions for an organisation role. The ok status is mutually exclusive with clientLinkProhibited and serverLinkProhibited, and the linked status MAY be combined with either ok or the link prohibition statuses (subject to the Status Exclusions rules). The linked status is set and removed by the server as associations with other objects are added or removed, independently of link prohibition changes, so the transitions in the top row apply equally to the bottom row. The clientLinkProhibited and serverLinkProhibited status values MAY be set at the same time.¶
|
| role created (1)
v
+------------------------+ +------------------------+
| | | status: |
| status: ok |---(2)----->| clientLinkProhibited |
| |<----(3)----| and/or |
| | | serverLinkProhibited |
+------------------------+ +------------------------+
| ^ | ^
(4) | | (5) (4) | | (5)
v | v |
+------------------------+ +------------------------+
| | | status: linked, |
| status: ok, linked |---(2)----->| clientLinkProhibited |
| |<----(3)----| and/or |
| | | serverLinkProhibited |
+------------------------+ +------------------------+
State descriptions:¶
ok status.¶
clientLinkProhibited or serverLinkProhibited status is set, by the client or the server respectively, and the ok status is removed. Requests to add new links to the role MUST be rejected while a link prohibition is present.¶
ok status.¶
linked status.¶
linked status.¶
| Status Value | MUST NOT be combined with |
|---|---|
| ok | Any status other than linked
|
Other status combinations not expressly prohibited MAY be used.¶
Data Elements:¶
Status values that can be added or removed by a client are prefixed with "client". Corresponding status values that can be added or removed by a server are prefixed with "server". The hold and terminated status values are server-managed when the organisation has no parent organisation and otherwise MAY be client-managed based on server policy. Other status values that do not begin with either "client" or "server" are server-managed.¶
The Set By column identifies the entity that adds and removes each status value: client, server, or client, server for a value that the server manages and that a client can also manage where server policy permits. A server MUST assign at least one status value to the object. A client is not required to provide a status value when creating or updating the object.¶
| Status Value | Set By | Description |
|---|---|---|
| ok | server | This is the normal status value for an object that has no pending operations or prohibitions. This value is set and removed by the server as other status values are added or removed. |
| hold | client, server | Organisation transform commands and new links MUST be rejected. |
| terminated | client, server | The organisation has been terminated and MUST NOT be linked. Organisation transform commands and new links MUST be rejected. |
| linked | server | The organisation object has at least one active association with another object. This value is not explicitly set by the client. Servers SHOULD provide services to determine existing object associations. |
| clientLinkProhibited | client | Requests to add new links to the organisation MUST be rejected. |
| serverLinkProhibited | server | Requests to add new links to the organisation MUST be rejected. |
| clientUpdateProhibited | client | Requests to update the object (other than to remove this status) MUST be rejected. |
| serverUpdateProhibited | server | Requests to update the object (other than to remove this status) MUST be rejected. |
| clientDeleteProhibited | client | Requests to delete the object MUST be rejected. |
| serverDeleteProhibited | server | Requests to delete the object MUST be rejected. |
| pendingCreate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
| pendingUpdate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
| pendingDelete | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. |
The following diagram describes the allowed status transitions for an organisation object. The linked, clientLinkProhibited, serverLinkProhibited, clientUpdateProhibited, serverUpdateProhibited, clientDeleteProhibited, and serverDeleteProhibited status values are additive flags that MAY be combined with the states shown below (subject to the Status Exclusions rules) and are not depicted as separate states; while present, the corresponding flag blocks the associated transition (new link, update, or delete, respectively) from being initiated. The linked status is set and removed by the server as associations with other objects are added or removed, independently of the transitions described below.¶
|
v
+----------------------------+
| status: pendingCreate (1) |
+----------------------------+
| create action completed (2)
v
+--------------------------------------------------------+
| Operational state (3) - exactly one of: |
| |
| +------+ (4) +------+ |
| | ok |----------------->| hold | |
| | |<-----------------| | |
| +------+ (5) +------+ |
| |
| | | |
| | (6) | (6) |
| v v |
| +--------------------------------+ |
| | terminated | |
| +--------------------------------+ |
| |
+--------------------------------------------------------+
| ^ | ^
(7) | | (8) (9) | | (10)
v | v |
+---------------+ +---------------+
| pendingUpdate | | pendingDelete |
+---------------+ +---------------+
|
| delete completed (11)
v
+-----------+
| Purged |
+-----------+
State descriptions:¶
pendingCreate state. If the server completes the create immediately, the object enters the ok state directly.¶
pendingCreate status is removed. The object enters the operational state (3), normally ok.¶
ok, hold, or terminated. The pending states (7) and (9) are entered from, and return to, this operational state.¶
hold status is set. Organisation transform operations and new links MUST be rejected while the object is in hold. The hold status is set by the server, or by the client if the organisation has a parent organisation and server policy allows it.¶
hold status is removed and the object returns to ok, by the same parties that are allowed to set it.¶
terminated status is set, from either ok or hold, by the same parties that are allowed to set hold. A terminated organisation MUST NOT be linked, and organisation transform operations and new links MUST be rejected. Whether and how an object can leave the terminated state is subject to server policy.¶
pendingUpdate state.¶
pendingUpdate status is removed, and the object returns to its operational state.¶
pendingDelete state.¶
pendingDelete status is removed, and the object returns to its operational state.¶
When the requested action has been completed, the pendingCreate, pendingDelete, or pendingUpdate status value MUST be removed. All clients involved in the transaction MUST be notified using a service message that the action has been completed and that the status of the object has changed.¶
| Status Value | MUST NOT be combined with |
|---|---|
| pendingCreate, ok, hold, terminated | Each other (mutually exclusive); an organisation MUST have exactly one of these statuses |
| ok | Any status other than linked
|
| pendingDelete | clientDeleteProhibited, serverDeleteProhibited |
| pendingCreate, pendingDelete, pendingUpdate | Each other (mutually exclusive) |
The linked status MAY be combined with clientLinkProhibited or serverLinkProhibited if new links must be prohibited.¶
Other status combinations not expressly prohibited MAY be used.¶
Data Elements:¶
The pending status value is server-managed. The suspended and deactivated status values are server-managed and MAY additionally be client-managed by a client with permission to manage users in the owning organisation, based on server policy. The active status value is set and removed by the server as other status values are added or removed.¶
The Set By column identifies the entity that adds and removes each status value: client, server, or client, server for a value that the server manages and that a client can also manage where server policy permits. A server MUST assign at least one status value to the object. A client is not required to provide a status value when creating or updating the object.¶
| Status Value | Set By | Description |
|---|---|---|
| active | server | This is the normal status value for a user that is permitted to authenticate and act within the permissions of its roles. |
| pending | server | The user has been created, but activation has not been completed by the server. Server operators can delay activation for a variety of reasons, such as to allow for verification of the user's details or human review. Requests authenticated as the user MUST be rejected. |
| suspended | client, server | The user has been temporarily suspended. Requests authenticated as the user MUST be rejected. |
| deactivated | client, server | The user has been deactivated. Requests authenticated as the user MUST be rejected. |
The following diagram describes the allowed status transitions for a user object.¶
|
v
+------------------------+
| status: pending (1) |
+------------------------+
| activation completed (2)
v
+--------+ (3) +-----------+
| active |---------------->| suspended |
| |<----------------| |
+--------+ (4) +-----------+
| |
| (5) | (5)
v v
+-------------------------------------+
| deactivated |
+-------------------------------------+
|
| delete completed (6)
v
+-----------+
| Purged |
+-----------+
State descriptions:¶
pending state. If the server activates the user immediately, the object enters the active state directly.¶
pending status is replaced by active.¶
suspended status is set, replacing active.¶
suspended status is removed and the object returns to active, by the same parties that are allowed to set it.¶
deactivated status is set, from either active or suspended. Whether and how an object can leave the deactivated state is subject to server policy.¶
deactivated is depicted.¶
When activation has been completed, the pending status value MUST be replaced by active. The client that created the user MUST be notified using a service message that activation has been completed and that the status of the object has changed.¶
| Status Value | MUST NOT be combined with |
|---|---|
| active, pending, suspended, deactivated | Each other (mutually exclusive); a user MUST have exactly one of these statuses |
Data Elements:¶
Name¶
Class¶
Type¶
Constraints:¶
ns, a, and aaaa.¶
ds and dnskey.¶
RDATA¶
Constraints:¶
This section defines the RDATA field structures required for interoperability in the EPP Compatibility Profile.¶
In EPP Compatibility Profile ([RFC5732]), the following RDATA structures MUST be supported:¶
nsdname (the fully qualified domain name of the nameserver).¶
address (the IPv4 address in dotted-decimal notation).¶
address (the IPv6 address in text representation as defined in [RFC5952]).¶
In EPP Compatibility Profile with DNSSEC Extension ([RFC5910]), the following RDATA structures MUST additionally be supported:¶
keyTag (key tag value), algorithm (algorithm number), digestType (digest algorithm type), and digest (digest value).¶
flags (flags field value), protocol (protocol field value), algorithm (algorithm number), and publicKey (encoded public key value).¶
Data Elements:¶
TTL¶
Maximum Signature Lifetime¶
Constraints:¶
Data Elements:¶
Records¶
Constraints:¶
Controls¶
Data Elements:¶
Pre-Delete Data¶
Post-Restore Data¶
Delete Time¶
Restore Time¶
Restore Reason¶
Statements¶
Other¶
Data Elements:¶
Role Identifier¶
Role Status¶
Constraints:¶
Data Elements:¶
The Availability Objects define the output of the Availability operation (see Section 2.7.4.6). Each Data Object that supports the Availability operation defines its own Availability Object extending the Base Availability Object. Extensions add availability information, for example pricing, as data elements of these objects.¶
Data Elements:¶
Available¶
true means that the object can be created. It does not guarantee that a subsequent Create operation for the same object succeeds, as the state of the server can change between the two operations. The value false means that the object cannot be created.¶
Reason¶
The Message Components define the structure and data elements for all message objects used in the protocol. Each specific message type extends the Base Message Object to include additional data elements relevant to that message type. Any of the types defined in this section may be used for the data data element defined for the Message Data Object.¶
Data Elements:¶
Object Type¶
Object Identifier¶
Constraints:¶
objectType field.¶
objectId must be a valid fully qualified domain name (FQDN).¶
objectId must be a valid contact identifier.¶
objectId field may be empty.¶
The Review Response Object defines the data elements for returning the result of an offline review. Offline review is optional for the create, update, delete, transfer, renew and restore actions, where the server may want to perform an offline review before completing the requested action.¶
Data Elements:¶
Approval Result¶
Client Transaction ID¶
Server Transaction ID¶
Completion Date¶
Message¶
Process¶
Data Elements:¶
The Service Notice Message Object is not linked to a specific object or process and can be used to convey general information to the client.¶
Data Elements:¶
TODO Complete the Service Notice Message Object definition, do we need it at all?¶
Data Elements:¶
This section defines the Process Objects used in this document.¶
Each Process Object extends the Base Process Object Section 9.17 and therefore carries its OPTIONAL Process ID data element.¶
Data Elements:¶
Transfer Direction¶
Gaining Client ID¶
Transfer Status¶
Requesting Client ID¶
Request Date¶
Acting Client ID¶
Action Date¶
The Create operation initiates a transfer by creating a Transfer Process Object associated with the provisioned object. The transfer direction and gaining client (for push transfers) are provided as create-only data elements of the Transfer Process Object.¶
The Read operation allows a client to determine the real-time status of a pending or recently completed transfer request.¶
The Delete operation allows the initiating client to cancel its own pending transfer request.¶
The Approve operation allows the appropriate client to accept a pending transfer request.¶
Data Elements:¶
Restore Status¶
Request Date¶
Report Date¶
Report Due Date¶
rgpRedemptionPeriod state. Only present when the object is in rgpPendingRestore state.¶
restoreStatus is not "pendingRestore".¶
Restore Report¶
rgpPendingRestore state. A report provided in an Update operation replaces any previously submitted report.¶
Constraints:¶
op="report", omitting it corresponds to op="request", and providing it in the Update operation corresponds to op="report" as defined in [RFC3915].¶
The Create operation initiates the recovery of an object in the rgpRedemptionPeriod state by creating a Restore Process Object. The server MUST reject this operation if the owning object is not in the rgpRedemptionPeriod state.¶
If the server requires a restore report and restoreReport is absent, the object transitions to rgpPendingRestore state awaiting a subsequent Update operation. Otherwise the restore is completed immediately.¶
Authorisation:¶
Input:¶
Input Data Elements:¶
Restore Report¶
pendingRestore state awaiting a subsequent Report operation.¶
op="request" (without report) or a combined op="request" followed immediately by op="report" as defined in [RFC3915].¶
Output:¶
The Read operation allows the sponsoring client to retrieve the current state of the RGP process for an object.¶
Authorisation:¶
Input:¶
Output:¶
In EPP Compatibility Profile this operation is not supported.¶
This operation is OPTIONAL, only for servers which support or require submission of a restore report.¶
The Update operation submits the restore report required by the RGP process for an object in the rgpPendingRestore state. Since restoreReport is the only read-write data element of the Restore Process Object, the client MUST provide it in this operation. A report MAY be submitted more than once if corrections are required. The server MUST reject this operation if the object is not in the rgpPendingRestore state.¶
Data Elements:¶
Expiry Date¶
Renewal Period¶
expiryDate. The default value MAY be defined by server policy. The number of units available MAY be subject to limits imposed by the server.¶
The renew operation extends the validity period of an existing object by creating a Renew Process Object.¶
Beyond the data elements of the Base Process Object, the generic Create Process Object defines no additional data elements. Individual object definitions extend it with object-specific creation inputs (such as the Domain Create Process Object Section 11.4.1, which adds the registration period).¶
The Create operation is invoked implicitly as a side effect of the resource object create operation and is never invoked directly. It carries the creation-specific inputs consumed during the creation of the owning resource object.¶
The following data elements are defined for the Domain Name Data Object.¶
Name¶
Constraints:¶
Unicode Name¶
Constraints:¶
LGR¶
Provisioning Metadata¶
Status¶
Registrant¶
Contacts¶
Nameservers¶
DNS Data¶
Constraints:¶
Subordinate Hosts¶
Expiry Date¶
Authorisation Information¶
Constraints:¶
Processes¶
The Availability operation allows a client to determine whether a Domain Name resource with the given name can be created.¶
The operation has no input data elements and takes no object representation as input. The client identifies the resource by its Reference only, i.e. only the Unique Identifier (Name) is taken into consideration.¶
Authorisation:¶
Input:¶
Parameters:¶
Unicode Name¶
LGR¶
Output:¶
The Create operation allows a client to provision a new Domain Name resource. The operation accepts as input all create-only and read-write data elements defined for the Domain Name Data Object.¶
Authorisation:¶
Input:¶
The Create operation implicitly initiates the Domain Create Process Object Section 11.4.1, which carries the creation-specific inputs that are consumed during creation and not persisted as part of the domain object's state.¶
The server MUST validate the name using the procedure described in section 4.2 of [RFC5891]. If the validation of the IDN name failed because it contained a code point not available in the specified IDN table, the server MUST return an error indicating the invalid code point. If the name does not map to the provided Unicode Name (uName), the server MUST respond with an appropriate error indicating the mismatch.¶
The Read operation allows a client to retrieve the data elements of a Domain Name resource. The server's response MAY vary depending on client authorisation and server policy.¶
The Update operation allows a client to modify the read-write data elements of an existing Domain Name resource.¶
At least one change to a read-write data element MUST be provided, unless the operation is extended. The registrant and the Authorisation Information MAY be removed. Contacts, nameservers, and the registrant to be added MUST be known to the server.¶
The Delete operation allows a client to remove an existing Domain Name resource. The operation targets a specific data object identified by its name.¶
The server SHOULD reject a delete request if subordinate host objects are associated with the domain name.¶
The error response SHOULD indicate the related subordinate host objects.¶
The Domain Name Data Object supports the following Process Objects Section 10 unmodified:¶
Restore Process¶
The Domain Name Data Object supports the following Process Objects extended by an object-specific definition: * Domain Create Process Section 11.4.1 * Domain Transfer Process Section 11.4.2¶
Data Elements:¶
Period¶
expiryDate of the object.¶
The Create operation is invoked implicitly as a side effect of the Domain Name Data Object create operation and is never invoked directly. It carries the registration period consumed during domain creation.¶
The Read operation retrieves the result or status of the domain creation, if the server exposes the process resource.¶
Data Elements:¶
Expiry Date¶
Transfer Period¶
Constraints:¶
Transfer of a Domain Name Data Object MUST implicitly transfer all Host Data Objects that are subordinate to the domain object. For example, if domain object "example.com" is transferred and host object "ns1.example.com" exists, the host object MUST be transferred as part of the "example.com" transfer process. Actions that do not preserve the relationship between a domain object and its subordinate host objects MUST be disallowed.¶
The Create operation initiates a transfer of the Domain Name Data Object by creating a Domain Transfer Process Object, extending the common Transfer Create Operation Section 10.1.1.1.¶
The following data elements are defined for the Contact Data Object.¶
Handle ID¶
Provisioning Metadata¶
Status¶
Contact Information¶
Constraints:¶
Authorisation Information¶
Disclose¶
Constraints:¶
Processes¶
The Availability operation allows a client to determine whether a Contact resource with the given Handle ID can be created.¶
The operation has no input data elements and takes no object representation as input. The client identifies the resource by its Reference only, i.e. only the Unique Identifier (Handle ID) is taken into consideration.¶
The Create operation allows a client to provision a new Contact resource. The operation accepts as input all create-only and read-write data elements defined for the Contact Data Object.¶
Authorisation:¶
In EPP Compatibility Profile, the following data elements MUST be provided:¶
The Read operation allows a client to retrieve the data elements of a Contact resource. The server's response MAY vary depending on client authorisation and server policy.¶
Authorisation:¶
Authorisation Information (authInfo) MUST NOT be provided in the response if the querying client is not the current sponsoring client.¶
When constructing the response, the server MUST respect the disclosure policies defined by the Disclose Object (disclose), whether set by the server operator's default data-collection policy or by the sponsoring client for the contact. Data elements marked for non-disclosure MUST NOT be included in responses to unauthorised clients.¶
The Update operation allows a client to modify the attributes of an existing Contact resource.¶
The following aspects of the contact object MAY be modified:¶
At least one change MUST be provided, unless the operation is extended.¶
The Delete operation allows a client to remove an existing Contact resource. The operation targets a specific data object identified by its Handle ID.¶
The server SHOULD reject a delete request if the contact object is associated with other known objects (e.g., domain names). An associated contact SHOULD NOT be deleted until associations with other known objects have been broken.¶
The error response SHOULD indicate the existing object associations.¶
The following data elements are defined for the Host Data Object.¶
Host Name¶
Provisioning Metadata¶
Status¶
DNS Data¶
Constraints:¶
Processes¶
The Availability operation allows a client to determine whether a Host Data Object with the given host name can be created.¶
The operation has no input data elements and takes no object representation as input. The client identifies the resource by its Reference only, i.e. only the Unique Identifier (Host Name) is taken into consideration.¶
The Create operation allows a client to provision a new Host Data Object. The operation accepts as input all create-only and read-write data elements defined for the Host Data Object.¶
Authorisation:¶
If the host name exists in a namespace for which the server is authoritative, then the superordinate domain of the host MUST be known to the server before the host object can be created.¶
In EPP Compatibility Profile, IP addresses are REQUIRED only as needed to produce DNS glue records. If the host name exists in a namespace for which the server is authoritative and is subordinate to an existing domain, IP addresses SHOULD be provided. If the host name is external to the server's namespace, IP addresses are not required by the DNS and MAY be omitted.¶
The Read operation allows a client to retrieve the data elements of a Host Data Object.¶
Authorisation:¶
The Update operation allows a client to modify the attributes of an existing Host Data Object. The operation targets a specific data object identified by its host name.¶
Host name changes MAY require the addition or removal of IP addresses to be accepted by the server. IP address association MAY be subject to server policies for provisioning hosts as nameservers. The IP address restrictions described for the Create operation apply to updates as well.¶
At least one change to a data element MUST be provided, unless the operation is extended.¶
Host name changes can have an impact on associated objects that refer to the host object. A Host Name change SHOULD NOT require additional updates of associated objects to preserve existing associations, with one exception: changing an External host object that has associations with objects that are sponsored by a different client. Attempts to update such hosts directly MUST fail. The change can be provisioned by creating a new External host with a new name and any needed new attributes, and subsequently updating the other objects sponsored by the client.¶
The Delete operation allows a client to remove an existing Host Data Object. The operation targets a specific data object identified by its host name.¶
The server SHOULD reject a delete request if the host object is associated with any other object, such as a domain name object. Deleting a host object without first breaking existing associations can cause DNS resolution failure for domain objects that refer to the deleted host object.¶
The error response SHOULD indicate the related associated objects.¶
The Host Data Object supports the following Process Objects Section 10 unmodified:¶
Transfer Process¶
The Host Data Object supports no Process Objects Section 10 extended by an object-specific definition.¶
The following data elements are defined for the Organisation Data Object.¶
Organisation ID¶
Provisioning Metadata¶
Status¶
Constraints:¶
Roles¶
Data Type: DictionaryComposition[Organisation Role Object]¶
registrar, reseller, privacyproxy, and dns-operator.¶
Constraints:¶
registrar, reseller, privacyproxy, and dns-operator.¶
Parent Organisation¶
Constraints:¶
Contact Information¶
Contacts¶
Data Type: LabelledAggregation[Contact Data Object]¶
admin, tech, billing, abuse, and custom.Constraints:¶
The Create operation allows a client to provision a new Organisation Data Object. The operation accepts as input all create-only and read-write data elements defined for the Organisation Data Object.¶
An organisation object MUST include at least one role on creation. The server MAY defer completing the action and return a pendingCreate status if human or third-party review is required.¶
The Read operation allows a client to retrieve the data elements of an Organisation Data Object.¶
The Update operation allows a client to modify the attributes of an existing Organisation Data Object.¶
The following aspects of the organisation object MAY be modified:¶
A client MUST NOT add, delete, or alter values for statuses managed by the server (prefixed with "server"). A server MAY add, delete, or alter status values set by a client, subject to server policy.¶
The Delete operation allows a client to remove an existing Organisation Data Object. The operation targets a specific data object identified by its Organisation ID.¶
An organisation object MUST NOT be deleted if it is associated with other known objects (e.g., domain names, contacts, or child organisations). The server MUST reject such a delete request and notify the client that object relationships exist.¶
The error response SHOULD indicate the related associated objects.¶
The following data elements are defined for the Message Data Object.¶
The Create operation allows a server to insert a new message into the queue for a registrar. The operation accepts as input all create-only and read-write data elements defined for the Message Data Object.¶
The Read operation allows a client to retrieve the data elements of a Message Data Object.¶
Authorisation:¶
Organisation ID (owner) MUST NOT be provided in the response, since a client can only ever retrieve messages linked to its own organisation.¶
The Query operation allows a client to retrieve a collection of Message Data Object instances based on specified criteria.¶
The Delete operation allows a client to remove an existing Message Data Object. The operation targets a specific data object identified by its Message ID.¶
The following data elements are defined for the User Data Object.¶
The Create operation creates a new user, which is associated with an existing Organisation Object. The operation accepts as input all create-only and read-write data elements of the User Object.¶
The Read operation retrieves the data of a specific User Object.¶
The Update operation modifies the read-write data elements.¶
The Delete operation removes a specific User Object.¶
Authorisation:¶
The server MUST reject this operation if the target User Object is the last user of the owning organisation that is permitted to manage users.¶
User Objects are deleted together with their owning Organisation Object.¶
The following data elements are defined for the Discovery Data Object.¶
Versions¶
Environment¶
TLDs¶
Extensions¶
Profiles¶
Objects¶
Date and Time¶
Z suffix, for example 2026-06-01T10:00:00Z, and MUST NOT use a numeric UTC offset or any other time zone.¶
Links¶
IDN LGRs¶
Notices¶
The Read operation allows a client to retrieve the Discovery Data Object. It is the only operation supported for this object.¶
The following data elements are defined for the Profile Data Object. All data elements are managed by the server.¶
Name¶
Constraints:¶
urn:ietf:params:rpp:profile:{profile_name}, and MUST be unique within that namespace. It SHOULD be descriptive of the features and versions included in the profile.¶
Description¶
Version¶
RPP Version¶
Objects¶
Extensions¶
Base Profile¶
Constraints:¶
Default Profile¶
The IANA is requested to create a new registry group for RPP, this will be used to group together all the RPP-related registries such as those for discovery URLs, extensions and profiles.¶
Name of the registry: RESTful Provisioning Protocol (RPP) Reference: This Document IANA Registry Reference: TODO¶
Name of the registry: RPP Data Object Registry Registry group: RESTful Provisioning Protocol (RPP) Registration procedure: Specification Required¶
This document establishes the "RESTful Provisioning Protocol (RPP) Data Object Registry". This registry serves as a catalogue of all data objects, component objects, data elements, and operations used within RPP.¶
The policy for adding new objects, data elements, or operations to this registry is "Specification Required" [RFC8126].¶
Standardised RPP extensions that introduce new data objects, add data elements to existing objects, or define new operations, operation input data elements, or operation parameters MUST register these additions in this registry. Each such registration MUST reference the specification that defines the extension.¶
Private (non-standardised) extensions are not required to register in this registry.¶
The registry is organised as a collection of Object definitions. Each Object definition MUST include:¶
A header containing the Object Identifier, Object Name, Object Type (Resource, Process or Component), the identifier of the object it extends (if any), a brief description, and a reference to its defining specification.¶
A "Data Elements" table listing all persisted data elements associated with the object. Each entry MUST specify the element's Identifier, Name, Cardinality, Mutability, Data Type, description, and a reference to the specification that defines it.¶
An "Operations" section (applicable only for Object Types Resource or Process). For each operation, the registry MUST provide:¶
Extensions MAY add new data elements, operations, operation input data elements, or operation parameters to existing Object definitions in the registry. Each such addition MUST reference the extension specification that introduces it, allowing implementations to distinguish core protocol elements from extension-defined elements.¶
The initial contents of the RPP Data Object Registry are defined below.¶
Object: period¶
Object Name: Period Object¶
Object Type: Component¶
Description: Represents a duration of time.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| value | Value | 1 | read-write | Integer | The numeric value of the period. |
| unit | Unit | 1 | read-write | String | The unit of the period. |
Object: dnsRecord¶
Object Name: DNS Resource Record Object¶
Object Type: Component¶
Description: Represents a single DNS resource record.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| name | Name | 1 | read-write | String | The owner name of the DNS entry. |
| class | Class | 0-1 | read-write | String | The DNS resource record class. |
| type | Type | 1 | read-write | String | The DNS resource record type, indicating the format of the RDATA field. |
| rdata | RDATA | 1 | read-write | Object | The actual payload data of the DNS record. Structure depends on the record type. |
Object: dnsControls¶
Object Name: DNS Operational Controls Object¶
Object Type: Component¶
Description: Contains operational control parameters that a client MAY use to influence server-side DNS behaviour for a set of DNS records.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| ttl | TTL | 0-1 | read-write | Dictionary [Integer] | Controls the caching behaviour of DNS resource records, keyed by lowercase record type name. |
| maxSigLifetime | Maximum Signature Lifetime | 0-1 | read-write | Dictionary [Integer] | Maximum number of seconds after signature generation when the parent's signature on signed DNS data should expire, keyed by lower-case record type name. |
Object: dnsData¶
Object Name: DNS Data Object¶
Object Type: Component¶
Description: A container for DNS resource records and associated operational controls for a provisioned object.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| records | Records | 0+ | read-write | DNS Resource Record Object | An array of DNS resource records associated with the provisioned object. |
| controls | Controls | 0-1 | read-write | DNS Operational Controls Object | Operational control parameters for the DNS records. |
Object: authInfo¶
Object Name: Authorisation Information Object¶
Object Type: Component¶
Description: Contains authorisation credentials for an operation.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| method | Method | 1 | create-only | String | The identifier of the RPP authorisation method. |
| authdata | Authorisation Information | 1 | create-only | String | The value of the authorisation information. It might be as simple as a password string, but also more complex values like public key certificates or tokens encoded as string are possible. |
Object: domainStatus¶
Object Name: Domain Name Status Object¶
Object Type: Component¶
Description: Represents one of the status values associated with a Domain Name Data Object¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| label | Label | 1 | create-only | String | machine-readable enum label of a status |
| reason | Reason | 0-1 | create-only | String | a human-readable text that describes the rationale for the status applied to the object. |
| due | Due | 0-1 | read-write | Timestamp | a timestamp, when this status is going to be removed automatically, or changed to other status. This field can be used to express lifecycle related information. |
Object: hostStatus¶
Object Name: Host Status Object¶
Object Type: Component¶
Description: Represents one of the status values associated with a Host Data Object¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| label | Label | 1 | create-only | String | machine-readable enum label of a status |
| reason | Reason | 0-1 | create-only | String | a human-readable text that describes the rationale for the status applied to the object. |
Object: contactStatus¶
Object Name: Contact Status Object¶
Object Type: Component¶
Description: Represents one of the status values associated with a Contact Data Object¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| label | Label | 1 | create-only | String | machine-readable enum label of a status |
| reason | Reason | 0-1 | create-only | String | a human-readable text that describes the rationale for the status applied to the object. |
Object: organisationRoleStatus¶
Object Name: Organisation Role Status Object¶
Object Type: Component¶
Description: Represents one of the status values associated with an Organisation Role Object. A role SHOULD have at least one associated status value.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| label | Label | 1 | create-only | String | machine-readable enum label of a status |
| reason | Reason | 0-1 | create-only | String | a human-readable text that describes the rationale for the status applied to the role. |
Object: organisationStatus¶
Object Name: Organisation Status Object¶
Object Type: Component¶
Description: Represents one of the status values associated with an Organisation Data Object, as defined in Section 3.4 of [RFC8543]. An Organisation Data Object MUST always have at least one associated status value.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| label | Label | 1 | create-only | String | machine-readable enum label of a status |
| reason | Reason | 0-1 | create-only | String | a human-readable text that describes the rationale for the status applied to the object. |
Object: userStatus¶
Object Name: User Status Object¶
Object Type: Component¶
Description: Represents the status value associated with a User Data Object. A User Data Object MUST always have exactly one associated status value.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| label | Label | 1 | create-only | String | machine-readable enum label of a status |
| reason | Reason | 0-1 | create-only | String | a human-readable text that describes the rationale for the status applied to the object. |
Object: provMetadata¶
Object Name: Provisioning Metadata Object¶
Object Type: Component¶
Description: Contains standard metadata about the lifecycle and ownership of a provisioned object.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| repositoryId | Repository ID | 0-1 | read-only | Identifier | A server-assigned unique identifier for the object. |
| spClientId | Sponsoring Client ID | 1 | read-only | Client Identifier | The identifier of the client that is the current sponsor of the object. |
| crClientId | Creating Client ID | 0-1 | read-only | Client Identifier | The identifier of the client that created the object. |
| crDate | Creation Date | 0-1 | read-only | Timestamp | The date and time of object creation. |
| upClientId | Updating Client ID | 0-1 | read-only | Client Identifier | The identifier of the client that last updated the object. |
| upDate | Update Date | 0-1 | read-only | Timestamp | The date and time of the most recent object modification. |
| trDate | Transfer Date | 0-1 | read-only | Timestamp | The date and time of the most recent successful object transfer. |
Object: processes¶
Object Name: Processes Object¶
Object Type: Component¶
Description: A container grouping the Process Objects currently or recently initiated on a Data Object, structured as a dictionary keyed by process type where each element holds an unordered array of Process Objects of that type. The set of process-type data elements is extensible; extensions MAY register additional process-type elements.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| transferProcess | Transfer Processes | 0+ | read-only | Aggregation [Transfer Process Object] | The transfer processes initiated on the owning Data Object. |
| renewProcess | Renew Processes | 0+ | read-only | Aggregation [Renew Process Object] | The renew processes initiated on the owning Data Object. |
| restoreProcess | Restore Processes | 0+ | read-only | Aggregation [Restore Process Object] | The restore processes initiated on the owning Data Object. |
| createProcess | Create Processes | 0+ | read-only | Aggregation [Create Process Object] | The create processes initiated on the owning Data Object. |
Object: baseProcess¶
Object Name: Base Process Object¶
Object Type: Component¶
Description: Base structure for all Process Objects, containing the data elements common to every process.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| processId | Process ID | 0-1 | read-only | String | A server-assigned identifier of the process instance, unique within the Owner Data Object. |
Object: baseAvailability¶
Object Name: Base Availability Object¶
Object Type: Component¶
Description: Base structure for the result of an Availability operation, indicating whether the referenced object can be created.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| available | Available | 1 | read-only | Boolean | Indicates whether the referenced object can be created at the time the operation is completed. |
| reason | Reason | 0-1 | read-only | String | Server-specific text explaining why the referenced object cannot be created. |
Object: domainNameAvailability¶
Object Name: Domain Name Availability Object¶
Object Type: Component¶
Extends: baseAvailability¶
Description: The result of an Availability operation on a Domain Name Data Object.¶
Reference: [This-ID]¶
Data Elements: (None)¶
Object: contactAvailability¶
Object Name: Contact Availability Object¶
Object Type: Component¶
Extends: baseAvailability¶
Description: The result of an Availability operation on a Contact Data Object.¶
Reference: [This-ID]¶
Data Elements: (None)¶
Object: hostAvailability¶
Object Name: Host Availability Object¶
Object Type: Component¶
Extends: baseAvailability¶
Description: The result of an Availability operation on a Host Data Object.¶
Reference: [This-ID]¶
Data Elements: (None)¶
Object: baseMessage¶
Object Name: Base Message Object¶
Object Type: Component¶
Description: Base structure for all message objects, containing common data elements such as the object type and object identifier.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| objectType | Object Type | 0-1 | read-only | String | The object identifier of the object affected by the requested action. |
| objectId | Object Identifier | 0-1 | read-only | String | The unique identifier of the object affected by the requested operation. |
Object: reviewResponseMessage¶
Object Name: Review Response Object¶
Object Type: Component¶
Extends: baseMessage¶
Description: Notification of the result of an offline review of a requested operation.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| approved | Approval Result | 1 | read-only | Boolean | Whether the requested action was approved and completed. |
| clientTransactionId | Client Transaction ID | 0-1 | read-only | String | The client transaction identifier from the original request, if supplied. |
| serverTransactionId | Server Transaction ID | 1 | read-only | String | The server transaction identifier returned for the original request. |
| completionDate | Completion Date | 1 | read-only | Timestamp | The date and time when review of the requested action was completed. |
| message | Message | 1 | read-only | String | Human-readable message associated with the review response. |
| process | Process | 0-1 | read-only | Base Process Object | The process whose operation was subject to the offline review. |
Object: transferRequestMessage¶
Object Name: Transfer Request Message Object¶
Object Type: Component¶
Extends: baseMessage¶
Description: Notification for losing client of started transfer request, where the client expected to act on the pending transfer request.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| status | Transfer Status | 1 | read-only | String | The current state of the transfer request. |
| requestDate | Request Date | 1 | read-only | Timestamp | The date and time the transfer was requested. |
| actionDate | Action Date | 0-1 | read-only | Timestamp | The deadline for responding before the server takes an automated action. |
| process | Process | 0-1 | read-only | Transfer Process Object | The transfer process the message pertains to. |
Object: transferOutcomeMessage¶
Object Name: Transfer Outcome Message Object¶
Object Type: Component¶
Extends: baseMessage¶
Description: Notification for a client affected by the completion of a transfer request.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| trStatus | Transfer Status | 1 | read-only | String | The final state of the transfer request. |
| requestDate | Request Date | 1 | read-only | Timestamp | The date and time the transfer was requested. |
| actionDate | Action Date | 1 | read-only | Timestamp | The date and time the transfer request was resolved. |
| expiryDate | Expiry Date | 0-1 | read-only | Timestamp | The end of the object's validity period if the operation causes a change in the validity period. |
| process | Process | 0-1 | read-only | Transfer Process Object | The transfer process the message pertains to. |
Object: expirationDeletionMessage¶
Object Name: Expiration Deletion Message Object¶
Object Type: Component¶
Extends: baseMessage¶
Description: Notification for the sponsoring client that an object was deleted following expiration.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| deletionDate | Deletion Date | 1 | read-only | Timestamp | The date and time the server deleted the object. |
Object: autoRenewalMessage¶
Object Name: Auto-Renewal Message Object¶
Object Type: Component¶
Extends: baseMessage¶
Description: Notification for the sponsoring client that the server automatically renewed an object.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| renewalDate | Renewal Date | 1 | read-only | Timestamp | The date and time the server renewed the object. |
| expiryDate | Expiry Date | 1 | read-only | Timestamp | The new expiration date of the object. |
Object: serviceNoticeMessage¶
Object Name: Service Notice Message Object¶
Object Type: Component¶
Extends: baseMessage¶
Description: Generic text-based message containing information not covered by any other message type.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| message | Message | 1 | read-only | String | Human-readable service information for the receiving organisation. |
Object: transferProcess¶
Object Name: Transfer Process Object¶
Object Type: Process¶
Extends: baseProcess¶
Description: Represents a transfer request for a provisioned object. Creating this object initiates the transfer. Approve and Reject are additional operations; Delete corresponds to cancel.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| transferDir | Transfer Direction | 0-1 | create-only | String | The direction of the transfer ("pull" or "push"). If omitted, server policy determines default. |
| gainingClientId | Gaining Client ID | 0-1 | create-only | Client Identifier | The designated gaining client. REQUIRED for push transfers; MUST NOT be provided for pull. |
| trStatus | Transfer Status | 1 | read-only | String | The state of the transfer request. |
| reqClientId | Requesting Client ID | 1 | read-only | Client Identifier | The identifier of the client that initiated the transfer request. |
| requestDate | Request Date | 1 | read-only | Timestamp | The date and time that the transfer was requested. |
| actClientId | Acting Client ID | 1 | read-only | Client Identifier | The identifier of the client that should or did act on the request. |
| actionDate | Action Date | 1 | read-only | Timestamp | The response deadline (if pending) or completion date. |
Operations¶
Operation: Create¶
Operation Identifier: transferCreate¶
Description: Initiates a transfer of a provisioned object by creating a Transfer Process Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Transfer Read¶
Operation Identifier: transferRead¶
Description: Queries the status of a transfer of a provisioned object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Transfer Delete¶
Operation Identifier: transferDelete¶
Description: Cancels a pending transfer of a provisioned object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Transfer Approve¶
Operation Identifier: transferApprove¶
Description: Approves a pending transfer of a provisioned object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Transfer Reject¶
Operation Identifier: transferReject (on Transfer Process Object)¶
Description: Rejects a pending transfer of a provisioned object.¶
Input Data Elements¶
| Identifier | Name | Card. | Data Type | Description |
|---|---|---|---|---|
| reason | Reason | 0-1 | String | A human-readable text describing the rationale for rejection. |
Parameters: (None)¶
Object: renewProcess¶
Object Name: Renew Process Object¶
Object Type: Process¶
Extends: baseProcess¶
Description: Represents a renewal request for a provisioned object. Creating this object initiates the renewal.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| expiryDate | Expiry Date | 0-1 | create-only | Timestamp | The expiry date of the object after the renewal is completed. |
| renewalPeriod | Renewal Period | 0-1 | create-only | Period Object | The duration to be added to the object's registration period. This value is used by the server to calculate the new expiryDate. The default value MAY be defined by server policy. The number of units available MAY be subject to limits imposed by the server. |
Operations¶
Operation: Create¶
Operation Identifier: renewCreate¶
Description: Initiates a renewal of a provisioned object by creating a Renew Process Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Object: createProcess¶
Object Name: Create Process Object¶
Object Type: Process¶
Extends: baseProcess¶
Description: Represents the process initiated when a resource creation operation is performed. Carries creation-specific inputs that are consumed during creation and not stored as persistent attributes of the created resource object.¶
Reference: [This-ID]¶
Data Elements: (None)¶
Operations¶
Operation: Create¶
Operation Identifier: create¶
Description: Invoked implicitly as a side effect of the resource object create operation; never invoked directly. Carries creation-specific inputs consumed during creation of the owning resource object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Read¶
Operation Identifier: read¶
Description: Retrieves the result or status of the creation, if the server exposes the process resource.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Object: domainCreateProcess¶
Object Name: Domain Create Process Object¶
Object Type: Process¶
Extends: baseProcess¶
Description: The Create Process Object specific to the Domain Name Data Object. Implicitly initiated by the domain create operation; carries the requested initial registration period consumed during creation and not persisted as part of the domain object's state.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| period | Period | 0-1 | create-only | Period Object | The initial registration period for the domain name. |
Operations¶
Operation: Create¶
Operation Identifier: create¶
Description: Invoked implicitly as a side effect of the Domain Name Data Object create operation; never invoked directly. Carries the registration period consumed during domain creation.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Read¶
Operation Identifier: read¶
Description: Retrieves the result or status of the domain creation, if the server exposes the process resource.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Object: domainTransferProcess¶
Object Name: Domain Transfer Process Object¶
Object Type: Process¶
Description: The Transfer Process Object specific to the Domain Name Data Object. Carries the domain-specific transfer inputs and outputs, namely the requested transfer period and the resulting expiry date, that extend the common transfer process.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| expiryDate | Expiry Date | 0-1 | read-only | Timestamp | The end of the domain object's registration period if the transfer caused or causes a change in the validity period. |
| transferPeriod | Transfer Period | 0-1 | create-only | Period Object | The number of units to be added to the registration period of the domain object upon successful completion of the transfer. The number of units available MAY be subject to limits imposed by the server. |
Operations¶
Operation: Create¶
Operation Identifier: transferCreate¶
Description: Initiates a transfer of a Domain Name Data Object by creating a Domain Transfer Process Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Object: disclose¶
Object Name: Disclose Object¶
Object Type: Component¶
Description: TBD¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
Object: restoreProcess¶
Object Name: Restore Process Object¶
Object Type: Process¶
Extends: baseProcess¶
Description: Represents the current state of a restore request for an object that has entered the Redemption Grace Period (RGP). Returned as output of all restore operations. This object is OPTIONAL and is only used when the RGP feature is supported.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| restoreStatus | Restore Status | 1 | read-only | String | The current state of the restore process. |
| requestDate | Request Date | 0-1 | read-only | Timestamp | The date and time when the restore request was submitted. Absent if no request has been submitted. |
| reportDate | Report Date | 0-1 | read-only | Timestamp | The date and time when the most recent restore report was accepted. Absent if no report has been accepted. |
| reportDueDate | Report Due Date | 0-1 | read-only | Timestamp | The deadline for submitting a restore report before the object reverts to rgpRedemptionPeriod. Present only when status is rgpPendingRestore. |
| restoreReport | Restore Report | 0-1 | read-write | Restore Report Object | The restore report submitted as required by the RGP process. |
Operations¶
Operation: Restore Create¶
Operation Identifier: create¶
Description: Initiates recovery of a domain name in the rgpRedemptionPeriod state by creating a Restore Process Object. This operation is OPTIONAL and is only available when the RGP feature is supported.¶
Input Data Elements¶
| Identifier | Name | Card. | Data Type | Description |
|---|---|---|---|---|
| restoreReport | Restore Report | 0-1 | Restore Report Object | An OPTIONAL inline restore report. If provided, the server processes the request and the report atomically. If the server does not require a restore report, this element MUST NOT be present and the restore is completed immediately. If the server requires a report and this element is absent, the object transitions to pendingRestore state awaiting a subsequent Report operation. |
Parameters: (None)¶
Operation: Restore Read¶
Operation Identifier: read (on Restore Process Object)¶
Description: Retrieves the current state of the RGP restore process for a domain name. This operation is OPTIONAL and is only available when the RGP feature is supported.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Restore Update¶
Operation Identifier: update¶
Description: Submits or replaces the restore report for a domain name in the rgpPendingRestore state. This operation is OPTIONAL and is only available when the RGP feature is supported and the server requires a restore report.¶
Input Data Elements¶
| Identifier | Name | Card. | Data Type | Description |
|---|---|---|---|---|
| restoreReport | Restore Report | 1 | Restore Report Object | The restore report to be submitted as part of the RGP process. |
Parameters: (None)¶
Object: restoreReport¶
Object Name: Restore Report Object¶
Object Type: Component¶
Description: Contains the redemption grace period restore report submitted by the sponsoring client as required by the RGP process. This object is OPTIONAL and is only used when the RGP feature is supported and a restore report is required by server policy.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| preData | Pre-Delete Data | 0-1 | read-write | String | A copy of the registration data that existed for the object prior to deletion. |
| postData | Post-Restore Data | 0-1 | read-write | String | A copy of the registration data that exists for the object at the time the restore report is submitted. |
| deleteTime | Delete Time | 0-1 | read-write | Timestamp | The date and time when the object delete request was sent to the server. |
| restoreTime | Restore Time | 0-1 | read-write | Timestamp | The date and time when the original restore request operation was sent to the server. |
| restoreReason | Restore Reason | 0-1 | read-write | String | A brief explanation of the reason for restoring the object. |
| statements | Statements | 1-2 | read-write | String | Mandatory client statements required by the RGP process. |
| other | Other | 0-1 | read-write | String | Any additional information needed to support the statements provided by the client. |
Object: domainName¶
Object Name: Domain Name Data Object¶
Object Type: Resource¶
Description: Represents a domain name and its associated data.¶
Reference: [This-ID]¶
Data Elements¶
| Identifier | Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| name | Name | 1 | create-only | Fully Qualified Domain Name | The fully qualified name of the domain object. |
| uName | Unicode Name | 0-1 | create-only | String | The fully qualified name of the domain using the Unicode character set. |
| lgr | LGR | 0-1 | create-only | String | The name of the Label Generation Ruleset (LGR) containing the valid code points used for the Unicode Name (uName). |
| provMetadata | Provisioning Metadata | 1 | read-only | Provisioning Metadata Object | Standard metadata about object lifecycle and ownership. |
| status | Status | 1+ | read-write | Domain Name Status Object | The current status descriptors for the domain. |
| registrant | Registrant | 0-1 | read-write | Aggregation[Contact Data Object] | The registrant contact ID. |
| contacts | Contacts | 0+ | read-write | LabelledAggregation [Contact Data Object] | Associated contact objects. |
| nameservers | Nameservers | 0+ | read-write | Aggregation [Host Data Object] | A collection of nameservers associated with the domain. |
| dns | DNS Data | 0-1 | read-write | DNS Data Object | DNS resource records and operational controls related to the domain name. |
| subordinateHosts | Subordinate Hosts | 0+ | read-only | Aggregation [Host Data Object] | Subordinate host names. |
| expiryDate | Expiry Date | 0-1 | read-only | Timestamp | Expiry timestamp. |
| authInfo | Authorisation Information | 0-1 | read-write | Authorisation Information Object | Authorisation information for the object. |
| processes | Processes | 0-1 | read-only | Processes Object | Process Objects initiated on the domain object. |
Operations¶
Operation: Availability¶
Operation Identifier: availability¶
Description: Determines whether a Domain Name resource can be created.¶
Input Data Elements: (None)¶
Parameters¶
| Identifier | Name | Card. | Data Type | Description |
|---|---|---|---|---|
| uName | Unicode Name | 0-1 | String | The Unicode Name of the domain name for which availability is determined. |
| lgr | LGR | 0-1 | String | The LGR against which availability of the domain name is determined. |
Operation: Create¶
Operation Identifier: create¶
Description: Provisions a new Domain Name resource.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Read¶
Operation Identifier: read¶
Description: Retrieves the data elements of a Domain Name resource.¶
Input Data Elements: (None)¶
Parameters¶
| Identifier | Name | Card. | Data Type | Description |
|---|---|---|---|---|
| hostsFilter | Hosts Filter | 0-1 | String | Controls which host information is returned. |
Operation: Update¶
Description: Modifies the read-write data elements of a Domain Name resource.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Delete¶
Operation Identifier: delete¶
Description: Removes an existing Domain Name resource.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Object: contact¶
Object Name: Contact Data Object¶
Object Type: Resource¶
Description: A Contact Data Object represents the contact information for an individual or organisation associated with other objects.¶
Reference: [This-ID]¶
Data Elements¶
| Identifier | Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| id | Handle ID | 1 | create-only | Identifier | External unique identifier of the contact object. |
| provMetadata | Provisioning Metadata | 1 | read-only | Provisioning Metadata Object | Standard metadata about the object's lifecycle and ownership. |
| status | Status | 1+ | read-write | Contact Status Object | Status descriptors associated with the contact. |
| contactInfo | Contact Information | 1 | read-write | External:RPP-JSContact-Profile:Card | JSContact Card information. |
| authInfo | Authorisation Information | 0-1 | read-write | Authorisation Information Object | Authorisation information associated with the contact object. |
| disclose | Disclose | 0-1 | read-write | Disclose Object | Identifies elements that require exceptional server-operator handling to allow or restrict disclosure to third parties. |
| processes | Processes | 0-1 | read-only | Processes Object | Process Objects initiated on the contact object. |
Operations¶
Operation: Availability¶
Operation Identifier: availability¶
Description: Determines whether a Contact resource can be created.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Create Operation¶
Operation Identifier: create¶
Description: The Create operation allows a client to provision a new Contact resource. The operation accepts as input all create-only and read-write data elements defined for the Contact Data Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Read Operation¶
Operation Identifier: read¶
Description: The Read operation allows a client to retrieve the data elements of a Contact resource. The server's response MAY vary depending on client authorisation and server policy.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Update Operation¶
Operation Identifier: update¶
Description: The Update operation allows a client to modify the attributes of an existing Contact resource.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Delete Operation¶
Operation Identifier: delete¶
Description: The Delete operation allows a client to remove an existing Contact resource. The operation targets a specific data object identified by its Handle ID.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Object: host¶
Object Name: Host Data Object¶
Object Type: Resource¶
Description: Represents a nameserver that provides DNS services for a domain name.¶
Reference: [This-ID]¶
Data Elements¶
| Identifier | Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| hostName | Host Name | 1 | read-write | Fully Qualified Domain Name | Fully qualified name of a host. |
| provMetadata | Provisioning Metadata | 1 | read-only | Provisioning Metadata Object | Standard metadata about object lifecycle and ownership. |
| status | Status | 1+ | read-write | Host Status Object | The current status descriptors for the host. |
| dns | DNS Data | 0-1 | read-write | DNS Data Object | DNS resource records and operational controls related to the host. |
| processes | Processes | 0-1 | read-only | Processes Object | Process Objects initiated on the host object. |
Operations¶
Operation: Availability¶
Operation Identifier: availability¶
Description: Determines whether a Host Data Object can be created.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Create¶
Description: Provisions a new Host Data Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Read¶
Description: Retrieves the data elements of a Host Data Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Update¶
Description: Modifies the attributes of a Host Data Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Delete¶
Description: Removes an existing Host Data Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Object: organisationRole¶
Object Name: Organisation Role Object¶
Object Type: Component¶
Description: Represents a role that an organisation has within the registry ecosystem, as defined in Section 3.2 of [RFC8543]. An organisation object MUST always have at least one associated role.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| status | Role Status | 0+ | read-write | Organisation Role Status Object | The status of this role. |
| roleId | Role Identifier | 0-1 | read-write | String | A third-party-assigned identifier for this role, such as an IANA registrar ID. |
Object: organisation¶
Object Name: Organisation Data Object¶
Object Type: Resource¶
Description: Represents an entity, such as a registrar, reseller, DNS service operator, or privacy proxy, involved in the domain registration process. Based on the EPP Organisation Mapping defined in [RFC8543].¶
Reference: [This-ID]¶
Data Elements¶
| Identifier | Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| id | Organisation ID | 1 | create-only | Identifier | A server-unique identifier for the organisation object. |
| provMetadata | Provisioning Metadata | 1 | read-only | Provisioning Metadata Object | Standard metadata about the object's lifecycle and ownership. |
| status | Status | 1+ | read-write | Organisation Status Object | The current operational status descriptors for the organisation. |
| roles | Roles | 1+ | read-write | DictionaryComposition [Organisation Role Object] | One or more roles describing the organisation's relationship within the registry ecosystem. |
| parent | Parent Organisation | 0-1 | read-write | Aggregation [Organisation Data Object] | The parent organisation in a hierarchical organisation structure. |
| contactInfo | Contact Information | 0-1 | read-write | External:RPP-JSContact-Profile:Card | Contact information. |
| contacts | Contacts | 0+ | read-write | LabelledAggregation[Contact Data Object] | Identifiers of contact objects associated with the organisation. |
| users | Users | 0+ | read-write | LabelledAggregation [User Data Object] | Identifiers of user objects associated with the organisation. |
| processes | Processes | 0-1 | read-only | Processes Object | Process Objects initiated on the organisation object. |
Operations¶
Operation: Create¶
Operation Identifier: create¶
Description: Provisions a new Organisation Data Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Read¶
Operation Identifier: read¶
Description: Retrieves the data elements of an Organisation Data Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Update¶
Operation Identifier: update¶
Description: Modifies the attributes of an existing Organisation Data Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Delete¶
Operation Identifier: delete¶
Description: Removes an existing Organisation Data Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Object: message¶
Object Name: Message Data Object¶
Object Type: Resource¶
Description: Represents a message placed into an organisation's queue by the server and retrieved by the client.¶
Reference: [This-ID]¶
Data Elements¶
| Identifier | Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| id | Message ID | 1 | read-only | Identifier | A server-unique identifier for the message object. |
| creationDate | Creation Date | 1 | read-only | Timestamp | The date and time when the message object was created and inserted into the queue. |
| status | Status | 1 | read-only | String | The current lifecycle status of the message object (queued, delivered, removed). |
| data | Data | 1 | create-only | Base Message Object | The data related to a specific message, such as a transfer request or a review response. |
Operations¶
Operation: Create¶
Operation Identifier: create¶
Description: Inserts a new message into the queue for an organisation.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Read¶
Operation Identifier: read¶
Description: Retrieves the data elements of one or more Message Data Objects.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Query¶
Operation Identifier: query¶
Description: Retrieves zero or more Message Data Objects, optionally filtered by the specified parameters.¶
Input Data Elements: (None)¶
Parameters¶
| Identifier | Name | Card. | Data Type | Description |
|---|---|---|---|---|
| type | Message Type | 0-1 | String | The type of the message to use as a filter when retrieving message objects. |
Operation: Delete¶
Operation Identifier: delete¶
Description: Removes a specific Message Data Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Object: user¶
Object Name: User Data Object¶
Object Type: Resource¶
Description: Represents a user linked to an Organisation Data Object. Each user carries a set of RBAC roles that define the user's permissions within the context of the owning organisation. The lifecycle of a User Object is bound to its Organisation Object.¶
Reference: [This-ID]¶
Data Elements¶
| Identifier | Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| id | User Identifier | 1 | create-only | Identifier | A unique identifier for the user. MUST be globally unique in the server scope. |
| details | Details | 1 | read-write | External:RPP-JSContact-Profile:Card | The details of the user. |
| status | Status | 1 | read-write | User Status Object | The current status of the user. |
| processes | Processes | 0-1 | read-only | Processes Object | Process Objects initiated on the user object. |
| description | Description | 0-1 | read-write | String | A description of the user |
| organisation | Organisation | 1 | read-only | Aggregation [Organisation Data Object] | A reference to the owner organisation object. |
Operations¶
Operation: Create¶
Operation Identifier: create¶
Description: Creates a new User Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Read¶
Operation Identifier: read¶
Description: Retrieves the data elements of a specific User Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Update¶
Operation Identifier: update¶
Description: Modifies the read-write data elements (e.g., roles) of a specific User Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Operation: Delete¶
Operation Identifier: delete¶
Description: Removes a specific User Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Object: profile¶
Object Name: Profile Data Object¶
Object Type: Resource¶
Description: Represents a named set of protocol features and versions that defines the compatibility and capabilities of RPP server implementations.¶
Reference: [This-ID]¶
Data Elements¶
| Identifier | Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| name | Name | 1 | read-only | String | A unique name that identifies the profile. |
| description | Description | 1 | read-only | String | A human-readable description of the profile and its intended use. |
| version | Version | 1 | read-only | String | The version of the profile. |
| rppVersion | RPP Version | 1 | read-only | String | The minimum version of the RPP protocol that is supported or required for the profile. |
| objects | Objects | 1+ | read-only | String | The objects allowed for provisioning operations. |
| extensions | Extensions | 0+ | read-only | Extension Object | The extensions, including their names and versions, that are supported or required for the profile. |
| baseProfile | Base Profile | 0-1 | read-only | Aggregation [Profile Data Object] | A base profile that is extended by this profile. |
| defaultProfile | Default Profile | 1 | read-only | Boolean | Indicates whether this profile is the default profile. |
Operations¶
Operation: Read¶
Operation Identifier: read¶
Description: Retrieves the Profile Data Object identified by its name.¶
Input Data Elements: (None)¶
Parameters: (None)¶
Object: discoveryVersion¶
Object Name: Discovery Version Object¶
Object Type: Component¶
Description: Describes a version of RPP supported by the server.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| version | Version | 1 | read-only | String | The RPP version, for example "1.0". |
| baseUrl | Base URL | 1 | read-only | URL | The base URL specific for the version, used as a prefix for all endpoint URL templates. |
Object: discoveryEnvironment¶
Object Name: Discovery Environment Object¶
Object Type: Component¶
Description: Describes the environment of the RPP server.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| name | Name | 1 | read-only | String | The name of the RPP server. |
| status | Status | 1 | read-only | String | The operational status of the RPP server. |
Object: extension¶
Object Name: Extension Object¶
Object Type: Component¶
Description: Describes an extension supported by the server.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| name | Name | 1 | read-only | String | A short name for the extension. |
| id | Extension ID | 1 | read-only | String | A unique URN identifier for the extension. |
| version | Version | 1 | read-only | String | The version of the extension supported by the server. |
| url | URL | 1 | read-only | URL | The location of the extension specification. |
Object: discoveryIdnLgr¶
Object Name: Discovery IDN LGR Object¶
Object Type: Component¶
Description: Describes a Label Generation Ruleset (LGR) supported by the server for internationalized domain names.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| tld | TLDs | 1+ | read-only | String | The top-level domains to which the LGR applies. |
| name | Name | 1 | read-only | String | The IANA-registered name of the LGR. |
| url | URL | 1 | read-only | URL | The location of the LGR specification. |
| default | Default | 1 | read-only | Boolean | Indicates whether this LGR is the default for the specified TLDs. |
Object: discoveryNotice¶
Object Name: Discovery Notice Object¶
Object Type: Component¶
Description: Describes a notice from the server operator.¶
Reference: [This-ID]¶
Data Elements¶
| Element Identifier | Element Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| pubTime | Publication Time | 1 | read-only | Timestamp | The publication time of the notice. |
| text | Text | 1 | read-only | String | A human-readable description of the notice. |
Object: discovery¶
Object Name: Discovery Data Object¶
Object Type: Resource¶
Description: Describes the capabilities of an RPP server.¶
Reference: [This-ID]¶
Data Elements¶
| Identifier | Name | Card. | Mutability | Data Type | Description |
|---|---|---|---|---|---|
| versions | Versions | 1+ | read-only | Discovery Version Object | The versions of RPP supported by the server. |
| environment | Environment | 1 | read-only | Discovery Environment Object | Information about the RPP server. |
| tlds | TLDs | 1+ | read-only | String | The TLDs supported by the server. |
| extensions | Extensions | 0+ | read-only | Extension Object | The extensions supported by the server. |
| profiles | Profiles | 0+ | read-only | String | The profiles supported by the server. |
| objects | Objects | 1+ | read-only | String | The resource collections supported by the server. |
| datetime | Date and Time | 1 | read-only | Timestamp | The current date and time of the server. |
| links | Links | 0+ | read-only | LabelledAggregation [String] | Links to documents related to the use of RPP with the server, labelled with a relation type registered in the IANA "Link Relation Types" registry. |
| idnLgr | IDN LGRs | 0+ | read-only | Discovery IDN LGR Object | The Label Generation Rulesets supported by the server. |
| notices | Notices | 0+ | read-only | Discovery Notice Object | Notices from the server operator. |
Operations¶
Operation: Read¶
Operation Identifier: read¶
Description: Retrieves the Discovery Data Object.¶
Input Data Elements: (None)¶
Parameters: (None)¶
This document establishes the "RESTful Provisioning Protocol (RPP) User Role Values Registry". This registry serves as a catalogue of all user role values used within RPP.¶
Name of the registry: RPP User Role Values Registry group: RESTful Provisioning Protocol (RPP) Registration procedure: Expert Review¶
Fields to be registered:¶
name: The name of the user role, for example "RPP example role".¶
url: The URL for the user role specification, for example "https://www.iana.org/assignments/rpp-user-roles/rpp-example-role-1.0".¶
permission: The permission level associated with the user role, for example "read-only", "read-write", or "admin".¶
description: A human-readable description of the user role and its intended use.¶
This document establishes the "RESTful Provisioning Protocol (RPP) Domain Name Status Values Registry".¶
Name of the registry: RPP Domain Name Status Values Registry group: RESTful Provisioning Protocol (RPP) Registration procedure: Specification Required¶
Fields to be registered:¶
value: The machine-readable status label, for example "clientDeleteProhibited".¶
description: A human-readable description of the status and the conditions under which it applies.¶
set-by: The entity that adds and removes the status value: "client", "server", or "client, server" for a value that the server manages and that a client can also manage where server policy permits.¶
reference: A reference to the specification that defines the status value.¶
The initial registrations for the RPP Domain Name Status Values registry are the status values defined in Table 1, reproduced below with their reference.¶
| Value | Set By | Description | Reference |
|---|---|---|---|
| clientDeleteProhibited | client | Requests to delete the object MUST be rejected. | [This-ID] |
| serverDeleteProhibited | server | Requests to delete the object MUST be rejected. | [This-ID] |
| clientHold | client | DNS delegation information MUST NOT be published for the object. | [This-ID] |
| serverHold | server | DNS delegation information MUST NOT be published for the object. | [This-ID] |
| clientRenewProhibited | client | Requests to renew the object MUST be rejected. | [This-ID] |
| serverRenewProhibited | server | Requests to renew the object MUST be rejected. | [This-ID] |
| clientTransferProhibited | client | Requests to transfer the object MUST be rejected. | [This-ID] |
| serverTransferProhibited | server | Requests to transfer the object MUST be rejected. | [This-ID] |
| clientUpdateProhibited | client | Requests to update the object (other than to remove this status) MUST be rejected. | [This-ID] |
| serverUpdateProhibited | server | Requests to update the object (other than to remove this status) MUST be rejected. | [This-ID] |
| inactive | server | Delegation information has not been associated with the object. This is the default status when a domain object is first created and there are no associated host objects for the DNS delegation. This status can also be set by the server when all host-object associations are removed. | [This-ID] |
| ok | server | This is the normal status value for an object that has no pending operations or prohibitions. This value is set and removed by the server as other status values are added or removed. | [This-ID] |
| pendingCreate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
| pendingDelete | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
| pendingRenew | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
| pendingTransfer | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
| pendingUpdate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
| rgpAddPeriod | server | This grace period is provided after the initial registration of a domain name. If the domain name is deleted by the registrar during this period, the registry provides a credit to the registrar for the cost of the registration. | [This-ID] |
| rgpAutoRenewPeriod | server | This grace period is provided after a domain name registration period expires and is extended (renewed) automatically by the registry. If the domain name is deleted by the registrar during this period, the registry provides a credit to the registrar for the cost of the renewal. | [This-ID] |
| rgpRenewPeriod | server | This grace period is provided after a domain name registration period is explicitly extended (renewed) by the registrar. If the domain name is deleted by the registrar during this period, the registry provides a credit to the registrar for the cost of the renewal. | [This-ID] |
| rgpTransferPeriod | server | This grace period is provided after the successful transfer of domain name registration sponsorship from one registrar to another registrar. If the domain name is deleted by the new sponsoring registrar during this period, the registry provides a credit to the registrar for the cost of the transfer. | [This-ID] |
| rgpRedemptionPeriod | server | This status value is used to describe a domain for which a delete operation has been received, but the domain has not yet been purged because an opportunity exists to restore the domain and abort the deletion process. | [This-ID] |
| rgpPendingRestore | server | This status value is used to describe a domain that is in the process of being restored after being in the rgpRedemptionPeriod state. | [This-ID] |
| rgpPendingDelete | server | This status value is used to describe a domain that has entered the purge processing state after completing the rgpRedemptionPeriod state. A domain in this status MUST also be in the pendingDelete status described above. | [This-ID] |
This document establishes the "RESTful Provisioning Protocol (RPP) Host Status Values Registry".¶
Name of the registry: RPP Host Status Values Registry group: RESTful Provisioning Protocol (RPP) Registration procedure: Specification Required¶
Fields to be registered:¶
value: The machine-readable status label, for example "clientDeleteProhibited".¶
description: A human-readable description of the status and the conditions under which it applies.¶
set-by: The entity that adds and removes the status value: "client", "server", or "client, server" for a value that the server manages and that a client can also manage where server policy permits.¶
reference: A reference to the specification that defines the status value.¶
The initial registrations for the RPP Host Status Values registry are the status values defined in Table 4, reproduced below with their reference.¶
| Value | Set By | Description | Reference |
|---|---|---|---|
| clientDeleteProhibited | client | Requests to delete the object MUST be rejected. | [This-ID] |
| serverDeleteProhibited | server | Requests to delete the object MUST be rejected. | [This-ID] |
| clientUpdateProhibited | client | Requests to update the object (other than to remove this status) MUST be rejected. | [This-ID] |
| serverUpdateProhibited | server | Requests to update the object (other than to remove this status) MUST be rejected. | [This-ID] |
| linked | server | The host object has at least one active association with another object, such as a domain object. Servers SHOULD provide services to determine existing object associations. | [This-ID] |
| ok | server | This is the normal status value for an object that has no pending operations or prohibitions. This value is set and removed by the server as other status values are added or removed. | [This-ID] |
| pendingCreate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
| pendingDelete | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
| pendingTransfer | server | A transform command has been processed for the object's superordinate domain object (i.e. a transfer of the domain object is pending), but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
| pendingUpdate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
This document establishes the "RESTful Provisioning Protocol (RPP) Contact Status Values Registry".¶
Name of the registry: RPP Contact Status Values Registry group: RESTful Provisioning Protocol (RPP) Registration procedure: Specification Required¶
Fields to be registered:¶
value: The machine-readable status label, for example "clientDeleteProhibited".¶
description: A human-readable description of the status and the conditions under which it applies.¶
set-by: The entity that adds and removes the status value: "client", "server", or "client, server" for a value that the server manages and that a client can also manage where server policy permits.¶
reference: A reference to the specification that defines the status value.¶
The initial registrations for the RPP Contact Status Values registry are the status values defined in Table 6, reproduced below with their reference.¶
| Value | Set By | Description | Reference |
|---|---|---|---|
| clientDeleteProhibited | client | Requests to delete the object MUST be rejected. | [This-ID] |
| serverDeleteProhibited | server | Requests to delete the object MUST be rejected. | [This-ID] |
| clientTransferProhibited | client | Requests to transfer the object MUST be rejected. | [This-ID] |
| serverTransferProhibited | server | Requests to transfer the object MUST be rejected. | [This-ID] |
| clientUpdateProhibited | client | Requests to update the object (other than to remove this status) MUST be rejected. | [This-ID] |
| serverUpdateProhibited | server | Requests to update the object (other than to remove this status) MUST be rejected. | [This-ID] |
| linked | server | The contact object has at least one active association with another object, such as a domain object. Servers SHOULD provide services to determine existing object associations. | [This-ID] |
| ok | server | This is the normal status value for an object that has no pending operations or prohibitions. This value is set and removed by the server as other status values are added or removed. | [This-ID] |
| pendingCreate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
| pendingDelete | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
| pendingTransfer | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
| pendingUpdate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
This document establishes the "RESTful Provisioning Protocol (RPP) Organisation Role Status Values Registry".¶
Name of the registry: RPP Organisation Role Status Values Registry group: RESTful Provisioning Protocol (RPP) Registration procedure: Specification Required¶
Fields to be registered:¶
value: The machine-readable status label, for example "clientLinkProhibited".¶
description: A human-readable description of the status and the conditions under which it applies.¶
set-by: The entity that adds and removes the status value: "client", "server", or "client, server" for a value that the server manages and that a client can also manage where server policy permits.¶
reference: A reference to the specification that defines the status value.¶
The initial registrations for the RPP Organisation Role Status Values registry are the status values defined in Table 8, reproduced below with their reference.¶
| Value | Set By | Description | Reference |
|---|---|---|---|
| clientLinkProhibited | client | Requests to add new links to the role MUST be rejected. | [This-ID] |
| serverLinkProhibited | server | Requests to add new links to the role MUST be rejected. | [This-ID] |
| linked | server | The role has at least one active association with another object. This value is set and removed by the server and is not explicitly set by the client. | [This-ID] |
| ok | server | This is the normal status value for a role that has no active prohibitions. This value is set and removed by the server as other status values are added or removed. | [This-ID] |
This document establishes the "RESTful Provisioning Protocol (RPP) Organisation Status Values Registry".¶
Name of the registry: RPP Organisation Status Values Registry group: RESTful Provisioning Protocol (RPP) Registration procedure: Specification Required¶
Fields to be registered:¶
value: The machine-readable status label, for example "clientDeleteProhibited".¶
description: A human-readable description of the status and the conditions under which it applies.¶
set-by: The entity that adds and removes the status value: "client", "server", or "client, server" for a value that the server manages and that a client can also manage where server policy permits.¶
reference: A reference to the specification that defines the status value.¶
The initial registrations for the RPP Organisation Status Values registry are the status values defined in Table 10, reproduced below with their reference.¶
| Value | Set By | Description | Reference |
|---|---|---|---|
| ok | server | This is the normal status value for an object that has no pending operations or prohibitions. This value is set and removed by the server as other status values are added or removed. | [This-ID] |
| hold | client, server | Organisation transform commands and new links MUST be rejected. | [This-ID] |
| terminated | client, server | The organisation has been terminated and MUST NOT be linked. Organisation transform commands and new links MUST be rejected. | [This-ID] |
| linked | server | The organisation object has at least one active association with another object. This value is not explicitly set by the client. Servers SHOULD provide services to determine existing object associations. | [This-ID] |
| clientLinkProhibited | client | Requests to add new links to the organisation MUST be rejected. | [This-ID] |
| serverLinkProhibited | server | Requests to add new links to the organisation MUST be rejected. | [This-ID] |
| clientUpdateProhibited | client | Requests to update the object (other than to remove this status) MUST be rejected. | [This-ID] |
| serverUpdateProhibited | server | Requests to update the object (other than to remove this status) MUST be rejected. | [This-ID] |
| clientDeleteProhibited | client | Requests to delete the object MUST be rejected. | [This-ID] |
| serverDeleteProhibited | server | Requests to delete the object MUST be rejected. | [This-ID] |
| pendingCreate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
| pendingUpdate | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
| pendingDelete | server | A transform command has been processed for the object, but the action has not been completed by the server. Server operators can delay action completion for a variety of reasons, such as to allow for human review or third-party action. | [This-ID] |
This document establishes the "RESTful Provisioning Protocol (RPP) User Status Values Registry".¶
Name of the registry: RPP User Status Values Registry group: RESTful Provisioning Protocol (RPP) Registration procedure: Specification Required¶
Fields to be registered:¶
value: The machine-readable status label, for example "suspended".¶
description: A human-readable description of the status and the conditions under which it applies.¶
set-by: The entity that adds and removes the status value: "client", "server", or "client, server" for a value that the server manages and that a client can also manage where server policy permits.¶
reference: A reference to the specification that defines the status value.¶
The initial registrations for the RPP User Status Values registry are the status values defined in Table 12, reproduced below with their reference.¶
| Value | Set By | Description | Reference |
|---|---|---|---|
| active | server | This is the normal status value for a user that is permitted to authenticate and act within the permissions of its roles. | [This-ID] |
| pending | server | The user has been created, but activation has not been completed by the server. Server operators can delay activation for a variety of reasons, such as to allow for verification of the user's details or human review. Requests authenticated as the user MUST be rejected. | [This-ID] |
| suspended | client, server | The user has been temporarily suspended. Requests authenticated as the user MUST be rejected. | [This-ID] |
| deactivated | client, server | The user has been deactivated. Requests authenticated as the user MUST be rejected. | [This-ID] |
The IANA is requested to add the following value to the "IETF URN Sub-namespace for Registered Protocol Parameter Identifiers" registry, following the template in [RFC3553]: TODO: add filled in template, if we decide to use URN for profile identification, for example "urn:ietf:params:rpp:profile:example-profile"¶
Registry name: rpp Specification: This Document Repository: ? Index value: ?¶
The IANA is requested to create a new registry for RPP discovery URLs, this registry will be used to register the well-known URLs for RPP discovery endpoints, used by RPP clients to discover the capabilities of an RPP server.¶
Name of the registry: RPP Discovery URLs Registry group: RESTful Provisioning Protocol (RPP) Registration procedure: Expert Review¶
Fields to be registered:¶
tld: The top-level domain (TLD) for which the discovery URL is applicable, for example "example".¶
url: The URL for the discovery endpoint, for example "https://rpp.example/.well-known/rpp.json".¶
description: A human-readable description of the discovery URL and its intended use.¶
The IANA is requested to create a new registry for RPP extensions, this registry will be used to register standardised extensions to the RPP protocol. Extensions are defined as additional features or capabilities that can be added to the base RPP protocol, for example support for additional resource types, additional operations or additional authentication methods.¶
Name of the registry: RPP Extensions Registry group: RESTful Provisioning Protocol (RPP) Registration procedure: Expert Review¶
Fields to be registered:¶
name: The name of the extension, for example "RPP example extension".¶
version: The version of the extension, for example "1.0".¶
url: The URL for the extension specification, for example "https://www.iana.org/assignments/rpp-extensions/rpp-example-extension".¶
description: A human-readable description of the extension and its intended use.¶
The IANA is requested to create a new registry for RPP profiles, this registry will be used to register standardised profiles for the RPP protocol. Profiles are defined as specific configurations of the RPP protocol that are designed to meet the needs of specific use cases or environments, for example an EPP compatibility profile that defines a set of RPP features and behaviours that are compatible with the Extensible Provisioning Protocol (EPP) [RFC5730].¶
Name of the registry: RPP Profiles Registry group: RESTful Provisioning Protocol (RPP) Registration procedure: Expert Review¶
Fields to be registered:¶
name: The name of the profile, for example "EPP compatibility profile".¶
id: A unique URN identifier for the profile, for example "urn:ietf:params:rpp:profile:epp-compatibility".¶
version: The version of the profile, for example "1.0".¶
url: The URL for the profile specification, for example "https://www.iana.org/assignments/rpp-profiles/epp-compatibility-profile".¶
description: A human-readable description of the profile and its intended use.¶
X-Y bounded cardinality notation and set cardinality of Restore Report statements to 1-2 #183¶
@ for representation specifications #89¶