added xml ns prefixes to request serialization to match RFC examples

This commit is contained in:
Ritesh Chitlangi 2021-11-18 21:23:16 +08:00 committed by masalachai
parent 8462a872cd
commit 890dc0f5d6
80 changed files with 1002 additions and 928 deletions

View File

@ -47,9 +47,10 @@ impl HostAddr {
#[derive(Serialize, Deserialize, Debug)]
pub struct Host {
/// The <hostName> tag
#[serde(rename = "host:name", alias = "name")]
pub name: StringValue,
/// The <hostAddr> tags
#[serde(rename = "addr")]
#[serde(rename = "host:addr", alias = "addr")]
pub addresses: Option<Vec<HostAddr>>,
}
@ -57,10 +58,10 @@ pub struct Host {
#[derive(Serialize, Deserialize, Debug)]
pub struct HostAttr {
/// The &lt;hostName&gt; tag
#[serde(rename = "hostName")]
#[serde(rename = "domain:hostName", alias = "hostName")]
pub name: StringValue,
/// The &lt;hostAddr&gt; tags
#[serde(rename = "hostAddr")]
#[serde(rename = "domain:hostAddr", alias = "hostAddr")]
pub addresses: Option<Vec<HostAddr>>,
}
@ -77,7 +78,7 @@ pub enum HostList {
#[derive(Serialize, Deserialize, Debug)]
pub struct HostAttrList {
/// The list of &lt;hostAttr&gt; tags
#[serde(rename = "hostAttr")]
#[serde(rename = "domain:hostAttr", alias = "hostAttr")]
pub hosts: Vec<HostAttr>,
}
@ -85,7 +86,7 @@ pub struct HostAttrList {
#[derive(Serialize, Deserialize, Debug)]
pub struct HostObjList {
/// The list of &lt;hostObj&gt; tags
#[serde(rename = "hostObj")]
#[serde(rename = "domain:hostObj", alias = "hostObj")]
pub hosts: Vec<StringValue>,
}
@ -148,17 +149,19 @@ pub struct Phone {
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct Address {
/// The &lt;street&gt; tags under &lt;addr&gt;
#[serde(rename = "contact:street", alias = "street")]
pub street: Vec<StringValue>,
/// The &lt;city&gt; tag under &lt;addr&gt;
#[serde(rename = "contact:city", alias = "city")]
pub city: StringValue,
/// The &lt;sp&gt; tag under &lt;addr&gt;
#[serde(rename = "sp")]
#[serde(rename = "contact:sp", alias = "sp")]
pub province: StringValue,
/// The &lt;pc&gt; tag under &lt;addr&gt;
#[serde(rename = "pc")]
#[serde(rename = "contact:pc", alias = "pc")]
pub postal_code: StringValue,
/// The &lt;cc&gt; tag under &lt;addr&gt;
#[serde(rename = "cc")]
#[serde(rename = "contact:cc", alias = "cc")]
pub country_code: StringValue,
}
@ -169,20 +172,29 @@ pub struct PostalInfo {
#[serde(rename = "type")]
pub info_type: String,
/// The &lt;name&gt; tag under &lt;postalInfo&gt;
#[serde(rename = "contact:name", alias = "name")]
pub name: StringValue,
/// The &lt;org&gt; tag under &lt;postalInfo&gt;
#[serde(rename = "org")]
#[serde(rename = "contact:org", alias = "org")]
pub organization: StringValue,
/// The &lt;addr&gt; tag under &lt;postalInfo&gt;
#[serde(rename = "addr")]
#[serde(rename = "contact:addr", alias = "addr")]
pub address: Address,
}
/// The &lt;authInfo&gt; tag for domain and contact transactions
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct AuthInfo {
pub struct DomainAuthInfo {
/// The &lt;pw&gt; tag under &lt;authInfo&gt;
#[serde(rename = "pw")]
#[serde(rename = "domain:pw", alias = "pw")]
pub password: StringValue,
}
/// The &lt;authInfo&gt; tag for domain and contact transactions
#[derive(Serialize, Deserialize, Debug, Clone)]
pub struct ContactAuthInfo {
/// The &lt;pw&gt; tag under &lt;authInfo&gt;
#[serde(rename = "contact:pw", alias = "pw")]
pub password: StringValue,
}
@ -201,10 +213,19 @@ impl Phone {
}
}
impl AuthInfo {
/// Creates an AuthInfo instance with the given password
pub fn new(password: &str) -> AuthInfo {
AuthInfo {
impl DomainAuthInfo {
/// Creates a DomainAuthInfo instance with the given password
pub fn new(password: &str) -> DomainAuthInfo {
DomainAuthInfo {
password: password.to_string_value(),
}
}
}
impl ContactAuthInfo {
/// Creates a ContactAuthInfo instance with the given password
pub fn new(password: &str) -> ContactAuthInfo {
ContactAuthInfo {
password: password.to_string_value(),
}
}

View File

@ -61,9 +61,10 @@ pub type EppContactCheck = EppObject<Command<ContactCheck>>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ContactList {
/// The XML namespace for the contact &lt;check&gt;
#[serde(rename = "xmlns:contact", alias = "xmlns")]
xmlns: String,
/// The list of contact ids to check for availability
#[serde(rename = "id")]
#[serde(rename = "contact:id", alias = "id")]
pub contact_ids: Vec<StringValue>,
}
@ -72,7 +73,7 @@ pub struct ContactList {
/// The &lt;command&gt; type for contact check command
pub struct ContactCheck {
/// The &lt;check&gt; tag for the contact check command
#[serde(rename = "check")]
#[serde(rename = "contact:check", alias = "check")]
list: ContactList,
}

View File

@ -78,21 +78,26 @@ pub type EppContactCreate = EppObject<Command<ContactCreate>>;
#[derive(Serialize, Deserialize, Debug)]
pub struct Contact {
/// XML namespace for contact commands
#[serde(rename = "xmlns:contact")]
xmlns: String,
/// Contact &lt;id&gt; tag
#[serde(rename = "contact:id")]
id: StringValue,
/// Contact &lt;postalInfo&gt; tag
#[serde(rename = "postalInfo")]
#[serde(rename = "contact:postalInfo")]
postal_info: data::PostalInfo,
/// Contact &lt;voice&gt; tag
#[serde(rename = "contact:voice")]
voice: data::Phone,
/// Contact &lt;fax&gt; tag,
#[serde(rename = "contact:fax")]
fax: Option<data::Phone>,
/// Contact &lt;email&gt; tag
#[serde(rename = "contact:email")]
email: StringValue,
/// Contact &lt;authInfo&gt; tag
#[serde(rename = "authInfo")]
auth_info: data::AuthInfo,
#[serde(rename = "contact:authInfo")]
auth_info: data::ContactAuthInfo,
}
#[derive(Serialize, Deserialize, Debug, ElementName)]
@ -100,7 +105,7 @@ pub struct Contact {
/// Type for EPP XML &lt;create&gt; command for contacts
pub struct ContactCreate {
/// Data for &lt;create&gt; command for contact
#[serde(rename = "create")]
#[serde(rename = "contact:create")]
pub contact: Contact,
}
@ -122,7 +127,7 @@ impl EppContactCreate {
voice,
fax: None,
email: email.to_string_value(),
auth_info: data::AuthInfo::new(auth_password),
auth_info: data::ContactAuthInfo::new(auth_password),
},
};

View File

@ -62,8 +62,10 @@ pub type EppContactDelete = EppObject<Command<ContactDelete>>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ContactDeleteData {
/// XML namespace for the &lt;delete&gt; command for contacts
#[serde(rename = "xmlns:contact", alias = "xmlns")]
xmlns: String,
/// The id of the contact to be deleted
#[serde(rename = "contact:id", alias = "id")]
id: StringValue,
}
@ -71,7 +73,7 @@ pub struct ContactDeleteData {
#[element_name(name = "delete")]
/// The &lt;delete&gt; type for the contact delete EPP command
pub struct ContactDelete {
#[serde(rename = "delete")]
#[serde(rename = "contact:delete", alias = "delete")]
/// The data for the &lt;delete&gt; tag for a contact delete command
contact: ContactDeleteData,
}

View File

@ -2,7 +2,7 @@
use epp_client_macros::*;
use crate::epp::object::data::AuthInfo;
use crate::epp::object::data::ContactAuthInfo;
use crate::epp::object::{ElementName, EppObject, StringValue, StringValueTrait};
use crate::epp::request::Command;
use crate::epp::xml::EPP_CONTACT_XMLNS;
@ -64,12 +64,14 @@ pub type EppContactInfo = EppObject<Command<ContactInfo>>;
#[derive(Serialize, Deserialize, Debug)]
pub struct ContactInfoData {
/// XML namespace for contact commands
#[serde(rename = "xmlns:contact", alias = "contact")]
xmlns: String,
/// The contact id for the info command
#[serde(rename = "contact:id", alias = "id")]
id: StringValue,
/// The &lt;authInfo&gt; data
#[serde(rename = "authInfo")]
auth_info: AuthInfo,
#[serde(rename = "contact:authInfo", alias = "authInfo")]
auth_info: ContactAuthInfo,
}
#[derive(Serialize, Deserialize, Debug, ElementName)]
@ -77,7 +79,7 @@ pub struct ContactInfoData {
/// Type for EPP XML &lt;info&gt; command for contacts
pub struct ContactInfo {
/// Data for &lt;info&gt; command for contact
#[serde(rename = "info")]
#[serde(rename = "contact:info", alias = "info")]
info: ContactInfoData,
}
@ -88,7 +90,7 @@ impl EppContactInfo {
info: ContactInfoData {
xmlns: EPP_CONTACT_XMLNS.to_string(),
id: id.to_string_value(),
auth_info: AuthInfo::new(auth_password),
auth_info: ContactAuthInfo::new(auth_password),
},
};

View File

@ -2,7 +2,7 @@
use epp_client_macros::*;
use crate::epp::object::data::{AuthInfo, ContactStatus, Phone, PostalInfo};
use crate::epp::object::data::{ContactAuthInfo, ContactStatus, Phone, PostalInfo};
use crate::epp::object::{ElementName, EppObject, StringValue, StringValueTrait};
use crate::epp::request::Command;
use crate::epp::response::contact::info::EppContactInfoResponse;
@ -73,31 +73,37 @@ pub type EppContactUpdate = EppObject<Command<ContactUpdate>>;
/// Type for elements under the &lt;chg&gt; tag for contact update request
#[derive(Serialize, Deserialize, Debug)]
pub struct ContactChangeInfo {
#[serde(rename = "postalInfo")]
#[serde(rename = "contact:postalInfo", alias = "postalInfo")]
postal_info: Option<PostalInfo>,
#[serde(rename = "contact:voice", alias = "voice")]
voice: Option<Phone>,
#[serde(rename = "contact:fax", alias = "fax")]
fax: Option<Phone>,
#[serde(rename = "contact:email", alias = "email")]
email: Option<StringValue>,
#[serde(rename = "authInfo")]
auth_info: Option<AuthInfo>,
#[serde(rename = "contact:authInfo", alias = "authInfo")]
auth_info: Option<ContactAuthInfo>,
}
/// Type for list of elements of the &lt;status&gt; tag for contact update request
#[derive(Serialize, Deserialize, Debug)]
pub struct StatusList {
#[serde(rename = "contact:status", alias = "status")]
status: Vec<ContactStatus>,
}
/// Type for elements under the contact &lt;update&gt; tag
#[derive(Serialize, Deserialize, Debug)]
pub struct ContactUpdateData {
#[serde(rename = "xmlns:contact", alias = "xmlns")]
xmlns: String,
#[serde(rename = "contact:id", alias = "id")]
id: StringValue,
#[serde(rename = "add")]
#[serde(rename = "contact:add", alias = "add")]
add_statuses: Option<StatusList>,
#[serde(rename = "rem")]
#[serde(rename = "contact:rem", alias = "rem")]
remove_statuses: Option<StatusList>,
#[serde(rename = "chg")]
#[serde(rename = "contact:chg", alias = "chg")]
change_info: Option<ContactChangeInfo>,
}
@ -106,7 +112,7 @@ pub struct ContactUpdateData {
/// Type for EPP XML &lt;update&gt; command for contacts
pub struct ContactUpdate {
/// The data under the &lt;update&gt; tag for the contact update
#[serde(rename = "update")]
#[serde(rename = "contact:update", alias = "update")]
contact: ContactUpdateData,
}
@ -137,7 +143,7 @@ impl EppContactUpdate {
email: Some(email.to_string_value()),
postal_info: Some(postal_info),
voice: Some(voice),
auth_info: Some(AuthInfo::new(auth_password)),
auth_info: Some(ContactAuthInfo::new(auth_password)),
fax: None,
});
}

View File

@ -61,9 +61,10 @@ pub type EppDomainCheck = EppObject<Command<DomainCheck>>;
/// Type for &lt;name&gt; elements under the domain &lt;check&gt; tag
#[derive(Serialize, Deserialize, Debug)]
pub struct DomainList {
#[serde(rename = "xmlns:domain", alias = "xmlns")]
/// XML namespace for domain commands
pub xmlns: String,
#[serde(rename = "name")]
#[serde(rename = "domain:name", alias = "name")]
/// List of domains to be checked for availability
pub domains: Vec<StringValue>,
}
@ -73,7 +74,7 @@ pub struct DomainList {
/// Type for EPP XML &lt;check&gt; command for domains
pub struct DomainCheck {
/// The object holding the list of domains to be checked
#[serde(rename = "check")]
#[serde(rename = "domain:check", alias = "check")]
list: DomainList,
}

View File

@ -3,7 +3,7 @@
use epp_client_macros::*;
use crate::epp::object::data::{
AuthInfo, DomainContact, HostAttr, HostAttrList, HostList, HostObjList, Period,
DomainAuthInfo, DomainContact, HostAttr, HostAttrList, HostList, HostObjList, Period,
};
use crate::epp::object::{ElementName, EppObject, StringValue, StringValueTrait};
use crate::epp::request::Command;
@ -82,22 +82,27 @@ pub type EppDomainCreate = EppObject<Command<DomainCreate>>;
#[derive(Serialize, Deserialize, Debug)]
pub struct DomainCreateData {
/// XML namespace for domain commands
#[serde(rename = "xmlns:domain", alias = "xmlns")]
xmlns: String,
/// The domain name
#[serde(rename = "domain:name", alias = "name")]
name: StringValue,
/// The period of registration
#[serde(rename = "domain:period", alias = "period")]
period: Period,
/// The list of nameserver hosts
/// either of type `HostObjList` or `HostAttrList`
#[serde(rename = "domain:ns", alias = "ns")]
ns: Option<HostList>,
/// The domain registrant
#[serde(rename = "domain:registrant", alias = "registrant")]
registrant: Option<StringValue>,
/// The list of contacts for the domain
#[serde(rename = "contact")]
#[serde(rename = "domain:contact", alias = "contact")]
contacts: Option<Vec<DomainContact>>,
/// The auth info for the domain
#[serde(rename = "authInfo")]
auth_info: AuthInfo,
#[serde(rename = "domain:authInfo", alias = "authInfo")]
auth_info: DomainAuthInfo,
}
#[derive(Serialize, Deserialize, Debug, ElementName)]
@ -107,7 +112,7 @@ pub struct DomainCreate {
/// The data for the domain to be created with
/// T being the type of nameserver list (`HostObjList` or `HostAttrList`)
/// to be supplied
#[serde(rename = "create")]
#[serde(rename = "domain:create", alias = "create")]
domain: DomainCreateData,
}
@ -135,7 +140,7 @@ impl EppDomainCreate {
period: Period::new(period),
ns: Some(HostList::HostObjList(HostObjList { hosts: ns_list })),
registrant: Some(registrant_id.to_string_value()),
auth_info: AuthInfo::new(auth_password),
auth_info: DomainAuthInfo::new(auth_password),
contacts: Some(contacts),
},
};
@ -160,7 +165,7 @@ impl EppDomainCreate {
period: Period::new(period),
ns: None,
registrant: Some(registrant_id.to_string_value()),
auth_info: AuthInfo::new(auth_password),
auth_info: DomainAuthInfo::new(auth_password),
contacts: Some(contacts),
},
};
@ -182,7 +187,7 @@ impl EppDomainCreate {
period: Period::new(period),
ns: None,
registrant: None,
auth_info: AuthInfo::new(auth_password),
auth_info: DomainAuthInfo::new(auth_password),
contacts: None,
},
};
@ -208,7 +213,7 @@ impl EppDomainCreate {
period: Period::new(period),
ns: Some(HostList::HostAttrList(HostAttrList { hosts: ns })),
registrant: Some(registrant_id.to_string_value()),
auth_info: AuthInfo::new(auth_password),
auth_info: DomainAuthInfo::new(auth_password),
contacts: Some(contacts),
},
};

View File

@ -59,8 +59,10 @@ pub type EppDomainDelete = EppObject<Command<DomainDelete>>;
#[derive(Serialize, Deserialize, Debug)]
pub struct DomainDeleteData {
/// XML namespace for domain commands
#[serde(rename = "xmlns:domain", alias = "xmlns")]
xmlns: String,
/// The domain to be deleted
#[serde(rename = "domain:name", alias = "name")]
name: StringValue,
}
@ -69,7 +71,7 @@ pub struct DomainDeleteData {
/// Type for EPP XML &lt;delete&gt; command for domains
pub struct DomainDelete {
/// The data under the &lt;delete&gt; tag for domain deletion
#[serde(rename = "delete")]
#[serde(rename = "domain:delete", alias = "delete")]
domain: DomainDeleteData,
}

View File

@ -69,9 +69,10 @@ pub struct Domain {
#[derive(Serialize, Deserialize, Debug)]
pub struct DomainInfoData {
/// XML namespace for domain commands
#[serde(rename = "xmlns:domain", alias = "xmlns")]
xmlns: String,
/// The data for the domain to be queried
#[serde(rename = "name")]
#[serde(rename = "domain:name", alias = "name")]
domain: Domain,
}
@ -80,7 +81,7 @@ pub struct DomainInfoData {
/// Type for EPP XML &lt;info&gt; command for domains
pub struct DomainInfo {
/// The data under the &lt;info&gt; tag for domain info
#[serde(rename = "info")]
#[serde(rename = "domain:info", alias = "info")]
info: DomainInfoData,
}

View File

@ -66,13 +66,16 @@ pub type EppDomainRenew = EppObject<Command<DomainRenew>>;
#[derive(Serialize, Deserialize, Debug)]
pub struct DomainRenewData {
/// XML namespace for domain commands
#[serde(rename = "xmlns:domain", alias = "xmlns")]
xmlns: String,
/// The name of the domain to be renewed
#[serde(rename = "domain:name", alias = "name")]
name: StringValue,
/// The current expiry date of the domain in 'Y-m-d' format
#[serde(rename = "curExpDate")]
#[serde(rename = "domain:curExpDate", alias = "curExpDate")]
current_expiry_date: StringValue,
/// The period of renewal
#[serde(rename = "domain:period", alias = "period")]
period: Period,
}
@ -81,7 +84,7 @@ pub struct DomainRenewData {
/// Type for EPP XML &lt;renew&gt; command for domains
pub struct DomainRenew {
/// The data under the &lt;renew&gt; tag for the domain renewal
#[serde(rename = "renew")]
#[serde(rename = "domain:renew", alias = "renew")]
domain: DomainRenewData,
}

View File

@ -87,24 +87,25 @@ pub type EppDomainRgpRestoreReport =
#[derive(Serialize, Deserialize, Debug)]
pub struct RgpRestoreReportData {
/// The pre-delete registration date
#[serde(rename = "preData")]
#[serde(rename = "rgp:preData", alias = "preData")]
pre_data: StringValue,
/// The post-delete registration date
#[serde(rename = "postData")]
#[serde(rename = "rgp:postData", alias = "postData")]
post_data: StringValue,
/// The domain deletion date
#[serde(rename = "delTime")]
#[serde(rename = "rgp:delTime", alias = "delTime")]
deleted_at: StringValue,
/// The domain restore request date
#[serde(rename = "resTime")]
#[serde(rename = "rgp:resTime", alias = "resTime")]
restored_at: StringValue,
/// The reason for domain restoration
#[serde(rename = "resReason")]
#[serde(rename = "rgp:resReason", alias = "resReason")]
restore_reason: StringValue,
/// The registrar's statements on the domain restoration
#[serde(rename = "statement")]
#[serde(rename = "rgp:statement", alias = "statement")]
statements: Vec<StringValue>,
/// Other remarks for domain restoration
#[serde(rename = "rgp:other", alias = "other")]
other: StringValue,
}
@ -114,16 +115,19 @@ pub struct RgpRestoreReportSection {
/// The value of the op attribute for the &lt;restore&gt; tag
op: String,
/// Data for the &lt;report&gt; tag
#[serde(rename = "rgp:report", alias = "report")]
report: RgpRestoreReportData,
}
#[derive(Serialize, Deserialize, Debug, ElementName)]
#[element_name(name = "update")]
#[element_name(name = "rgp:update")]
/// Type for EPP XML &lt;check&gt; command for domains
pub struct RgpRestoreReport {
/// XML namespace for the RGP restore extension
#[serde(rename = "xmlns:rgp", alias = "xmlns")]
xmlns: String,
/// The object holding the list of domains to be checked
#[serde(rename = "rgp:restore", alias = "restore")]
restore: RgpRestoreReportSection,
}

View File

@ -68,12 +68,14 @@ pub struct RgpRestoreRequestData {
}
#[derive(Serialize, Deserialize, Debug, ElementName)]
#[element_name(name = "update")]
#[element_name(name = "rgp:update")]
/// Type for EPP XML &lt;check&gt; command for domains
pub struct RgpRestoreRequest {
/// XML namespace for the RGP restore extension
#[serde(rename = "xmlns:rgp", alias = "xmlns")]
xmlns: String,
/// The object holding the list of domains to be checked
#[serde(rename = "rgp:restore", alias = "restore")]
restore: RgpRestoreRequestData,
}

View File

@ -2,7 +2,7 @@
use epp_client_macros::*;
use crate::epp::object::data::{AuthInfo, Period};
use crate::epp::object::data::{DomainAuthInfo, Period};
use crate::epp::object::{ElementName, EppObject, StringValue, StringValueTrait};
use crate::epp::request::Command;
use crate::epp::xml::EPP_DOMAIN_XMLNS;
@ -262,16 +262,19 @@ pub type EppDomainTransferQuery = EppObject<Command<DomainTransfer>>;
#[derive(Serialize, Deserialize, Debug)]
pub struct DomainTransferData {
/// XML namespace for domain commands
#[serde(rename = "xmlns:domain")]
xmlns: String,
/// The name of the domain under transfer
#[serde(rename = "domain:name")]
name: StringValue,
/// The period of renewal upon a successful transfer
/// Only applicable in case of a transfer request
#[serde(rename = "domain:period")]
period: Option<Period>,
/// The authInfo for the domain under transfer
/// Only applicable to domain transfer and domain transfer query requests
#[serde(rename = "authInfo")]
auth_info: Option<AuthInfo>,
#[serde(rename = "domain:authInfo")]
auth_info: Option<DomainAuthInfo>,
}
#[derive(Serialize, Deserialize, Debug, ElementName)]
@ -283,7 +286,7 @@ pub struct DomainTransfer {
#[serde(rename = "op")]
operation: String,
/// The data under the &lt;transfer&gt; tag in the transfer request
#[serde(rename = "transfer")]
#[serde(rename = "domain:transfer")]
domain: DomainTransferData,
}
@ -302,7 +305,7 @@ impl EppDomainTransferRequest {
xmlns: EPP_DOMAIN_XMLNS.to_string(),
name: name.to_string_value(),
period: Some(Period::new(years)),
auth_info: Some(AuthInfo::new(auth_password)),
auth_info: Some(DomainAuthInfo::new(auth_password)),
},
},
client_tr_id,
@ -379,7 +382,7 @@ impl EppDomainTransferQuery {
xmlns: EPP_DOMAIN_XMLNS.to_string(),
name: name.to_string_value(),
period: None,
auth_info: Some(AuthInfo::new(auth_password)),
auth_info: Some(DomainAuthInfo::new(auth_password)),
},
},
client_tr_id,

View File

@ -2,7 +2,7 @@
use epp_client_macros::*;
use crate::epp::object::data::{AuthInfo, DomainContact, DomainStatus, HostList};
use crate::epp::object::data::{DomainAuthInfo, DomainContact, DomainStatus, HostList};
use crate::epp::object::{ElementName, EppObject, StringValue, StringValueTrait};
use crate::epp::request::Command;
use crate::epp::xml::EPP_DOMAIN_XMLNS;
@ -86,10 +86,11 @@ pub type EppDomainUpdate = EppObject<Command<DomainUpdate>>;
#[derive(Serialize, Deserialize, Debug)]
pub struct DomainChangeInfo {
/// The new registrant contact for the domain
#[serde(rename = "domain:registrant", alias = "update")]
pub registrant: Option<StringValue>,
/// The new auth info for the domain
#[serde(rename = "authInfo")]
pub auth_info: Option<AuthInfo>,
#[serde(rename = "domain:authInfo", alias = "authInfo")]
pub auth_info: Option<DomainAuthInfo>,
}
/// Type for elements under the &lt;add&gt; and &lt;rem&gt; tags for domain update
@ -97,13 +98,13 @@ pub struct DomainChangeInfo {
pub struct DomainAddRemove {
/// The list of nameservers to add or remove
/// Type T can be either a `HostObjList` or `HostAttrList`
#[serde(rename = "ns")]
#[serde(rename = "domain:ns", alias = "ns")]
pub ns: Option<HostList>,
/// The list of contacts to add to or remove from the domain
#[serde(rename = "contact")]
#[serde(rename = "domain:contact", alias = "contact")]
pub contacts: Option<Vec<DomainContact>>,
/// The list of statuses to add to or remove from the domain
#[serde(rename = "status")]
#[serde(rename = "domain:status", alias = "status")]
pub statuses: Option<Vec<DomainStatus>>,
}
@ -111,18 +112,21 @@ pub struct DomainAddRemove {
#[derive(Serialize, Deserialize, Debug)]
pub struct DomainUpdateData {
/// XML namespace for domain commands
#[serde(rename = "xmlns:domain", alias = "xmlns")]
pub xmlns: String,
/// The name of the domain to update
#[serde(rename = "domain:name", alias = "name")]
pub name: StringValue,
/// `DomainAddRemove` Object containing the list of elements to be added
/// to the domain
#[serde(rename = "domain:add", alias = "add")]
pub add: Option<DomainAddRemove>,
/// `DomainAddRemove` Object containing the list of elements to be removed
/// from the domain
#[serde(rename = "rem")]
#[serde(rename = "domain:rem", alias = "rem")]
pub remove: Option<DomainAddRemove>,
/// The data under the &lt;chg&gt; tag for domain update
#[serde(rename = "chg")]
#[serde(rename = "domain:chg", alias = "chg")]
pub change_info: Option<DomainChangeInfo>,
}
@ -130,7 +134,7 @@ pub struct DomainUpdateData {
#[element_name(name = "update")]
/// Type for EPP XML &lt;update&gt; command for domains
pub struct DomainUpdate {
#[serde(rename = "update")]
#[serde(rename = "domain:update", alias = "update")]
pub domain: DomainUpdateData,
}

View File

@ -62,9 +62,10 @@ pub type EppHostCheck = EppObject<Command<HostCheck>>;
#[derive(Serialize, Deserialize, Debug)]
pub struct HostList {
/// XML namespace for host commands
#[serde(rename = "xmlns:host", alias = "xmlns")]
xmlns: String,
/// List of hosts to be checked for availability
#[serde(rename = "name")]
#[serde(rename = "host:name", alias = "name")]
pub hosts: Vec<StringValue>,
}
@ -73,7 +74,7 @@ pub struct HostList {
/// Type for EPP XML &lt;check&gt; command for hosts
pub struct HostCheck {
/// The instance holding the list of hosts to be checked
#[serde(rename = "check")]
#[serde(rename = "host:check", alias = "check")]
list: HostList,
}

View File

@ -67,11 +67,13 @@ pub type EppHostCreate = EppObject<Command<HostCreate>>;
#[derive(Serialize, Deserialize, Debug)]
pub struct HostCreateData {
/// XML namespace for host commands
#[serde(rename = "xmlns:host", alias = "xmlns")]
xmlns: String,
/// The name of the host to be created
#[serde(rename = "host:name", alias = "name")]
pub name: StringValue,
/// The list of IP addresses for the host
#[serde(rename = "addr")]
#[serde(rename = "host:addr", alias = "addr")]
pub addresses: Option<Vec<HostAddr>>,
}
@ -80,7 +82,7 @@ pub struct HostCreateData {
/// Type for EPP XML &lt;create&gt; command for hosts
pub struct HostCreate {
/// The instance holding the data for the host to be created
#[serde(rename = "create")]
#[serde(rename = "host:create", alias = "create")]
host: HostCreateData,
}

View File

@ -59,8 +59,10 @@ pub type EppHostDelete = EppObject<Command<HostDelete>>;
#[derive(Serialize, Deserialize, Debug)]
pub struct HostDeleteData {
/// XML namespace for host commands
#[serde(rename = "xmlns:host", alias = "xmlns")]
xmlns: String,
/// The host to be deleted
#[serde(rename = "host:name", alias = "name")]
name: StringValue,
}
@ -69,7 +71,7 @@ pub struct HostDeleteData {
/// Type for EPP XML &lt;delete&gt; command for hosts
pub struct HostDelete {
/// The instance holding the data for the host to be deleted
#[serde(rename = "delete")]
#[serde(rename = "host:delete", alias = "delete")]
host: HostDeleteData,
}

View File

@ -59,8 +59,10 @@ pub type EppHostInfo = EppObject<Command<HostInfo>>;
#[derive(Serialize, Deserialize, Debug)]
pub struct HostInfoData {
/// XML namespace for host commands
#[serde(rename = "xmlns:host", alias = "xmlns")]
xmlns: String,
/// The name of the host to be queried
#[serde(rename = "host:name", alias = "name")]
name: StringValue,
}
@ -69,7 +71,7 @@ pub struct HostInfoData {
/// Type for EPP XML &lt;info&gt; command for hosts
pub struct HostInfo {
/// The instance holding the data for the host query
#[serde(rename = "info")]
#[serde(rename = "host:info", alias = "info")]
info: HostInfoData,
}

View File

@ -83,6 +83,7 @@ pub type EppHostUpdate = EppObject<Command<HostUpdate>>;
#[derive(Serialize, Deserialize, Debug)]
pub struct HostChangeInfo {
/// The new name for the host
#[serde(rename = "host:name", alias = "name")]
pub name: StringValue,
}
@ -90,10 +91,10 @@ pub struct HostChangeInfo {
#[derive(Serialize, Deserialize, Debug)]
pub struct HostAddRemove {
/// The IP addresses to be added to or removed from the host
#[serde(rename = "addr")]
#[serde(rename = "host:addr", alias = "addr")]
pub addresses: Option<Vec<HostAddr>>,
/// The statuses to be added to or removed from the host
#[serde(rename = "status")]
#[serde(rename = "host:status", alias = "status")]
pub statuses: Option<Vec<HostStatus>>,
}
@ -101,16 +102,19 @@ pub struct HostAddRemove {
#[derive(Serialize, Deserialize, Debug)]
pub struct HostUpdateData {
/// XML namespace for host commands
#[serde(rename = "xmlns:host", alias = "xmlns")]
xmlns: String,
/// The name of the host
#[serde(rename = "host:name", alias = "name")]
name: StringValue,
/// The IP addresses and statuses to be added to the host
#[serde(rename = "host:add", alias = "add")]
add: Option<HostAddRemove>,
/// The IP addresses and statuses to be removed from the host
#[serde(rename = "rem")]
#[serde(rename = "host:rem", alias = "rem")]
remove: Option<HostAddRemove>,
/// The host details that need to be updated
#[serde(rename = "chg")]
#[serde(rename = "host:chg", alias = "chg")]
change_info: Option<HostChangeInfo>,
}
@ -119,7 +123,7 @@ pub struct HostUpdateData {
/// Type for EPP XML &lt;update&gt; command for hosts
pub struct HostUpdate {
/// The instance holding the data for the host to be updated
#[serde(rename = "update")]
#[serde(rename = "host:update", alias = "update")]
host: HostUpdateData,
}

View File

@ -2,7 +2,7 @@
use serde::{Deserialize, Serialize};
use crate::epp::object::data::{AuthInfo, ContactStatus, Phone, PostalInfo};
use crate::epp::object::data::{ContactAuthInfo, ContactStatus, Phone, PostalInfo};
use crate::epp::object::{EppObject, StringValue};
use crate::epp::response::CommandResponse;
@ -51,7 +51,7 @@ pub struct ContactInfoData {
pub transferred_at: Option<StringValue>,
/// The contact auth info
#[serde(rename = "authInfo")]
pub auth_info: Option<AuthInfo>,
pub auth_info: Option<ContactAuthInfo>,
}
/// Type that represents the &lt;resData&gt; tag for contact info response

View File

@ -2,7 +2,7 @@
use serde::{Deserialize, Serialize};
use crate::epp::object::data::{AuthInfo, DomainContact, DomainStatus, HostAttr};
use crate::epp::object::data::{DomainAuthInfo, DomainContact, DomainStatus, HostAttr};
use crate::epp::object::{EppObject, StringValue};
use crate::epp::response::domain::rgp::request::RgpRequestResult;
use crate::epp::response::CommandResponseWithExtension;
@ -69,7 +69,7 @@ pub struct DomainInfoData {
pub transferred_at: Option<StringValue>,
/// The domain auth info
#[serde(rename = "authInfo")]
pub auth_info: Option<AuthInfo>,
pub auth_info: Option<DomainAuthInfo>,
}
/// Type that represents the &lt;resData&gt; tag for domain info response

View File

@ -11,27 +11,28 @@ pub type EppMessagePollResponse = EppObject<CommandResponse<MessagePollResult>>;
#[derive(Serialize, Deserialize, Debug)]
pub struct MessageDomainTransferData {
/// XML namespace for message response data
#[serde(rename = "xmlns:obj")]
#[serde(rename = "xmlns:obj", alias = "xmlns")]
xmlns: String,
/// The name of the domain under transfer
#[serde(rename = "obj:name", alias = "name")]
pub name: StringValue,
/// The domain transfer status
#[serde(rename = "trStatus")]
#[serde(rename = "obj:trStatus", alias = "trStatus")]
pub transfer_status: StringValue,
/// The epp user who requested the transfer
#[serde(rename = "reID")]
#[serde(rename = "obj:reID", alias = "reID")]
pub requester_id: StringValue,
/// The date of the transfer request
#[serde(rename = "reDate")]
#[serde(rename = "obj:reDate", alias = "reDate")]
pub requested_at: StringValue,
/// The epp user who should acknowledge the transfer request
#[serde(rename = "acID")]
#[serde(rename = "obj:acID", alias = "acID")]
pub ack_id: StringValue,
/// The date by which the transfer request should be acknowledged
#[serde(rename = "acDate")]
#[serde(rename = "obj:acDate", alias = "acDate")]
pub ack_by: StringValue,
/// The domain expiry date
#[serde(rename = "exDate")]
#[serde(rename = "obj:exDate", alias = "exDate")]
pub expiring_at: StringValue,
}
@ -39,6 +40,6 @@ pub struct MessageDomainTransferData {
#[derive(Serialize, Deserialize, Debug)]
pub struct MessagePollResult {
/// Data under the &lt;trnData&gt; tag
#[serde(rename = "trnData")]
#[serde(rename = "obj:trnData", alias = "trnData")]
pub message_data: MessageDomainTransferData,
}

View File

@ -4,7 +4,7 @@ mod request {
use super::super::get_xml;
use super::super::CLTRID;
use crate::epp::object::data::{
Address, AuthInfo, ContactStatus, DomainContact, DomainStatus, HostAddr, HostAttr,
Address, ContactStatus, DomainAuthInfo, DomainContact, DomainStatus, HostAddr, HostAttr,
HostStatus, Phone, PostalInfo,
};
use crate::epp::object::StringValueTrait;
@ -291,7 +291,7 @@ mod request {
let change_info = DomainChangeInfo {
registrant: None,
auth_info: Some(AuthInfo::new("epP5uthd#v")),
auth_info: Some(DomainAuthInfo::new("epP5uthd#v")),
};
object.add(add);

View File

@ -2,10 +2,10 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<check>
<check xmlns="urn:ietf:params:xml:ns:contact-1.0">
<id>eppdev-contact-1</id>
<id>eppdev-contact-2</id>
</check>
<contact:check xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
<contact:id>eppdev-contact-1</contact:id>
<contact:id>eppdev-contact-2</contact:id>
</contact:check>
</check>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,27 +2,27 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<create>
<create xmlns="urn:ietf:params:xml:ns:contact-1.0">
<id>eppdev-contact-3</id>
<postalInfo type="int">
<name>John Doe</name>
<org>Acme Widgets</org>
<addr>
<street>58</street>
<street>Orchid Road</street>
<city>Paris</city>
<sp>Paris</sp>
<pc>392374</pc>
<cc>FR</cc>
</addr>
</postalInfo>
<voice x="123">+33.47237942</voice>
<fax x="677">+33.86698799</fax>
<email>contact@eppdev.net</email>
<authInfo>
<pw>eppdev-387323</pw>
</authInfo>
</create>
<contact:create xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
<contact:id>eppdev-contact-3</contact:id>
<contact:postalInfo type="int">
<contact:name>John Doe</contact:name>
<contact:org>Acme Widgets</contact:org>
<contact:addr>
<contact:street>58</contact:street>
<contact:street>Orchid Road</contact:street>
<contact:city>Paris</contact:city>
<contact:sp>Paris</contact:sp>
<contact:pc>392374</contact:pc>
<contact:cc>FR</contact:cc>
</contact:addr>
</contact:postalInfo>
<contact:voice x="123">+33.47237942</contact:voice>
<contact:fax x="677">+33.86698799</contact:fax>
<contact:email>contact@eppdev.net</contact:email>
<contact:authInfo>
<contact:pw>eppdev-387323</contact:pw>
</contact:authInfo>
</contact:create>
</create>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,9 +2,9 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<delete>
<delete xmlns="urn:ietf:params:xml:ns:contact-1.0">
<id>eppdev-contact-3</id>
</delete>
<contact:delete xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
<contact:id>eppdev-contact-3</contact:id>
</contact:delete>
</delete>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,12 +2,12 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<info>
<info xmlns="urn:ietf:params:xml:ns:contact-1.0">
<id>eppdev-contact-3</id>
<authInfo>
<pw>eppdev-387323</pw>
</authInfo>
</info>
<contact:info xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
<contact:id>eppdev-contact-3</contact:id>
<contact:authInfo>
<contact:pw>eppdev-387323</contact:pw>
</contact:authInfo>
</contact:info>
</info>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,34 +2,34 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<update>
<update xmlns="urn:ietf:params:xml:ns:contact-1.0">
<id>eppdev-contact-3</id>
<add>
<status s="clientTransferProhibited"/>
</add>
<rem>
<status s="clientDeleteProhibited"/>
</rem>
<chg>
<postalInfo type="loc">
<name>John Doe</name>
<org>Acme Widgets</org>
<addr>
<street>58</street>
<street>Orchid Road</street>
<city>Paris</city>
<sp>Paris</sp>
<pc>392374</pc>
<cc>FR</cc>
</addr>
</postalInfo>
<voice>+33.47237942</voice>
<email>newemail@eppdev.net</email>
<authInfo>
<pw>eppdev-387323</pw>
</authInfo>
</chg>
</update>
<contact:update xmlns:contact="urn:ietf:params:xml:ns:contact-1.0">
<contact:id>eppdev-contact-3</contact:id>
<contact:add>
<contact:status s="clientTransferProhibited"/>
</contact:add>
<contact:rem>
<contact:status s="clientDeleteProhibited"/>
</contact:rem>
<contact:chg>
<contact:postalInfo type="loc">
<contact:name>John Doe</contact:name>
<contact:org>Acme Widgets</contact:org>
<contact:addr>
<contact:street>58</contact:street>
<contact:street>Orchid Road</contact:street>
<contact:city>Paris</contact:city>
<contact:sp>Paris</contact:sp>
<contact:pc>392374</contact:pc>
<contact:cc>FR</contact:cc>
</contact:addr>
</contact:postalInfo>
<contact:voice>+33.47237942</contact:voice>
<contact:email>newemail@eppdev.net</contact:email>
<contact:authInfo>
<contact:pw>eppdev-387323</contact:pw>
</contact:authInfo>
</contact:chg>
</contact:update>
</update>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,10 +2,10 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<check>
<check xmlns="urn:ietf:params:xml:ns:domain-1.0">
<name>eppdev.com</name>
<name>eppdev.net</name>
</check>
<domain:check xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>eppdev.com</domain:name>
<domain:name>eppdev.net</domain:name>
</domain:check>
</check>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,17 +2,17 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<create>
<create xmlns="urn:ietf:params:xml:ns:domain-1.0">
<name>eppdev-1.com</name>
<period unit="y">1</period>
<registrant>eppdev-contact-3</registrant>
<contact type="admin">eppdev-contact-3</contact>
<contact type="tech">eppdev-contact-3</contact>
<contact type="billing">eppdev-contact-3</contact>
<authInfo>
<pw>epP4uthd#v</pw>
</authInfo>
</create>
<domain:create xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>eppdev-1.com</domain:name>
<domain:period unit="y">1</domain:period>
<domain:registrant>eppdev-contact-3</domain:registrant>
<domain:contact type="admin">eppdev-contact-3</domain:contact>
<domain:contact type="tech">eppdev-contact-3</domain:contact>
<domain:contact type="billing">eppdev-contact-3</domain:contact>
<domain:authInfo>
<domain:pw>epP4uthd#v</domain:pw>
</domain:authInfo>
</domain:create>
</create>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,27 +2,27 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<create>
<create xmlns="urn:ietf:params:xml:ns:domain-1.0">
<name>eppdev-2.com</name>
<period unit="y">1</period>
<ns>
<hostAttr>
<hostName>ns1.eppdev-1.com</hostName>
</hostAttr>
<hostAttr>
<hostName>ns2.eppdev-1.com</hostName>
<hostAddr ip="v4">177.232.12.58</hostAddr>
<hostAddr ip="v6">2404:6800:4001:801::200e</hostAddr>
</hostAttr>
</ns>
<registrant>eppdev-contact-3</registrant>
<contact type="admin">eppdev-contact-3</contact>
<contact type="tech">eppdev-contact-3</contact>
<contact type="billing">eppdev-contact-3</contact>
<authInfo>
<pw>epP4uthd#v</pw>
</authInfo>
</create>
<domain:create xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>eppdev-2.com</domain:name>
<domain:period unit="y">1</domain:period>
<domain:ns>
<domain:hostAttr>
<domain:hostName>ns1.eppdev-1.com</domain:hostName>
</domain:hostAttr>
<domain:hostAttr>
<domain:hostName>ns2.eppdev-1.com</domain:hostName>
<domain:hostAddr ip="v4">177.232.12.58</domain:hostAddr>
<domain:hostAddr ip="v6">2404:6800:4001:801::200e</domain:hostAddr>
</domain:hostAttr>
</domain:ns>
<domain:registrant>eppdev-contact-3</domain:registrant>
<domain:contact type="admin">eppdev-contact-3</domain:contact>
<domain:contact type="tech">eppdev-contact-3</domain:contact>
<domain:contact type="billing">eppdev-contact-3</domain:contact>
<domain:authInfo>
<domain:pw>epP4uthd#v</domain:pw>
</domain:authInfo>
</domain:create>
</create>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,21 +2,21 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<create>
<create xmlns="urn:ietf:params:xml:ns:domain-1.0">
<name>eppdev-1.com</name>
<period unit="y">1</period>
<ns>
<hostObj>ns1.test.com</hostObj>
<hostObj>ns2.test.com</hostObj>
</ns>
<registrant>eppdev-contact-3</registrant>
<contact type="admin">eppdev-contact-3</contact>
<contact type="tech">eppdev-contact-3</contact>
<contact type="billing">eppdev-contact-3</contact>
<authInfo>
<pw>epP4uthd#v</pw>
</authInfo>
</create>
<domain:create xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>eppdev-1.com</domain:name>
<domain:period unit="y">1</domain:period>
<domain:ns>
<domain:hostObj>ns1.test.com</domain:hostObj>
<domain:hostObj>ns2.test.com</domain:hostObj>
</domain:ns>
<domain:registrant>eppdev-contact-3</domain:registrant>
<domain:contact type="admin">eppdev-contact-3</domain:contact>
<domain:contact type="tech">eppdev-contact-3</domain:contact>
<domain:contact type="billing">eppdev-contact-3</domain:contact>
<domain:authInfo>
<domain:pw>epP4uthd#v</domain:pw>
</domain:authInfo>
</domain:create>
</create>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,9 +2,9 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<delete>
<delete xmlns="urn:ietf:params:xml:ns:domain-1.0">
<name>eppdev.com</name>
</delete>
<domain:delete xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>eppdev.com</domain:name>
</domain:delete>
</delete>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,9 +2,9 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<info>
<info xmlns="urn:ietf:params:xml:ns:domain-1.0">
<name hosts="all">eppdev.com</name>
</info>
<domain:info xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name hosts="all">eppdev.com</domain:name>
</domain:info>
</info>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,11 +2,11 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<renew>
<renew xmlns="urn:ietf:params:xml:ns:domain-1.0">
<name>eppdev.com</name>
<curExpDate>2022-07-23</curExpDate>
<period unit="y">1</period>
</renew>
<domain:renew xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>eppdev.com</domain:name>
<domain:curExpDate>2022-07-23</domain:curExpDate>
<domain:period unit="y">1</domain:period>
</domain:renew>
</renew>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,26 +2,26 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<update>
<update xmlns="urn:ietf:params:xml:ns:domain-1.0">
<name>eppdev.com</name>
<chg/>
</update>
<domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>eppdev.com</domain:name>
<domain:chg/>
</domain:update>
</update>
<extension>
<update xmlns="urn:ietf:params:xml:ns:rgp-1.0">
<restore op="report">
<report>
<preData>Pre-delete registration data goes here. Both XML and free text are allowed.</preData>
<postData>Post-restore registration data goes here. Both XML and free text are allowed.</postData>
<delTime>2021-07-10T22:00:00Z</delTime>
<resTime>2021-07-20T22:00:00Z</resTime>
<resReason>Registrant error.</resReason>
<statement>This registrar has not restored the Registered Name in order to assume the rights to use or sell the Registered Name for itself or for any third party.</statement>
<statement>The information in this report is true to best of this registrar&apos;s knowledge, and this registrar acknowledges that intentionally supplying false information in this report shall constitute an incurable material breach of the Registry-Registrar Agreement.</statement>
<other>Supporting information goes here.</other>
</report>
</restore>
</update>
<rgp:update xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0">
<rgp:restore op="report">
<rgp:report>
<rgp:preData>Pre-delete registration data goes here. Both XML and free text are allowed.</rgp:preData>
<rgp:postData>Post-restore registration data goes here. Both XML and free text are allowed.</rgp:postData>
<rgp:delTime>2021-07-10T22:00:00Z</rgp:delTime>
<rgp:resTime>2021-07-20T22:00:00Z</rgp:resTime>
<rgp:resReason>Registrant error.</rgp:resReason>
<rgp:statement>This registrar has not restored the Registered Name in order to assume the rights to use or sell the Registered Name for itself or for any third party.</rgp:statement>
<rgp:statement>The information in this report is true to best of this registrar&apos;s knowledge, and this registrar acknowledges that intentionally supplying false information in this report shall constitute an incurable material breach of the Registry-Registrar Agreement.</rgp:statement>
<rgp:other>Supporting information goes here.</rgp:other>
</rgp:report>
</rgp:restore>
</rgp:update>
</extension>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,15 +2,15 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<update>
<update xmlns="urn:ietf:params:xml:ns:domain-1.0">
<name>eppdev.com</name>
<chg/>
</update>
<domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>eppdev.com</domain:name>
<domain:chg/>
</domain:update>
</update>
<extension>
<update xmlns="urn:ietf:params:xml:ns:rgp-1.0">
<restore op="request"/>
</update>
<rgp:update xmlns:rgp="urn:ietf:params:xml:ns:rgp-1.0">
<rgp:restore op="request"/>
</rgp:update>
</extension>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,9 +2,9 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<transfer op="approve">
<transfer xmlns="urn:ietf:params:xml:ns:domain-1.0">
<name>testing.com</name>
</transfer>
<domain:transfer xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>testing.com</domain:name>
</domain:transfer>
</transfer>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,9 +2,9 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<transfer op="cancel">
<transfer xmlns="urn:ietf:params:xml:ns:domain-1.0">
<name>testing.com</name>
</transfer>
<domain:transfer xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>testing.com</domain:name>
</domain:transfer>
</transfer>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,12 +2,12 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<transfer op="query">
<transfer xmlns="urn:ietf:params:xml:ns:domain-1.0">
<name>testing.com</name>
<authInfo>
<pw>epP4uthd#v</pw>
</authInfo>
</transfer>
<domain:transfer xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>testing.com</domain:name>
<domain:authInfo>
<domain:pw>epP4uthd#v</domain:pw>
</domain:authInfo>
</domain:transfer>
</transfer>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,9 +2,9 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<transfer op="reject">
<transfer xmlns="urn:ietf:params:xml:ns:domain-1.0">
<name>testing.com</name>
</transfer>
<domain:transfer xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>testing.com</domain:name>
</domain:transfer>
</transfer>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,13 +2,13 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<transfer op="request">
<transfer xmlns="urn:ietf:params:xml:ns:domain-1.0">
<name>testing.com</name>
<period unit="y">1</period>
<authInfo>
<pw>epP4uthd#v</pw>
</authInfo>
</transfer>
<domain:transfer xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>testing.com</domain:name>
<domain:period unit="y">1</domain:period>
<domain:authInfo>
<domain:pw>epP4uthd#v</domain:pw>
</domain:authInfo>
</domain:transfer>
</transfer>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,20 +2,20 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<update>
<update xmlns="urn:ietf:params:xml:ns:domain-1.0">
<name>eppdev.com</name>
<add>
<status s="clientDeleteProhibited"/>
</add>
<rem>
<contact type="billing">eppdev-contact-2</contact>
</rem>
<chg>
<authInfo>
<pw>epP5uthd#v</pw>
</authInfo>
</chg>
</update>
<domain:update xmlns:domain="urn:ietf:params:xml:ns:domain-1.0">
<domain:name>eppdev.com</domain:name>
<domain:add>
<domain:status s="clientDeleteProhibited"/>
</domain:add>
<domain:rem>
<domain:contact type="billing">eppdev-contact-2</domain:contact>
</domain:rem>
<domain:chg>
<domain:authInfo>
<domain:pw>epP5uthd#v</domain:pw>
</domain:authInfo>
</domain:chg>
</domain:update>
</update>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,10 +2,10 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<check>
<check xmlns="urn:ietf:params:xml:ns:host-1.0">
<name>ns1.eppdev-1.com</name>
<name>host1.eppdev-1.com</name>
</check>
<host:check xmlns:host="urn:ietf:params:xml:ns:host-1.0">
<host:name>ns1.eppdev-1.com</host:name>
<host:name>host1.eppdev-1.com</host:name>
</host:check>
</check>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,11 +2,11 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<create>
<create xmlns="urn:ietf:params:xml:ns:host-1.0">
<name>host1.eppdev-1.com</name>
<addr ip="v4">29.245.122.14</addr>
<addr ip="v6">2404:6800:4001:801::200e</addr>
</create>
<host:create xmlns:host="urn:ietf:params:xml:ns:host-1.0">
<host:name>host1.eppdev-1.com</host:name>
<host:addr ip="v4">29.245.122.14</host:addr>
<host:addr ip="v6">2404:6800:4001:801::200e</host:addr>
</host:create>
</create>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,9 +2,9 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<delete>
<delete xmlns="urn:ietf:params:xml:ns:host-1.0">
<name>ns1.eppdev-1.com</name>
</delete>
<host:delete xmlns:host="urn:ietf:params:xml:ns:host-1.0">
<host:name>ns1.eppdev-1.com</host:name>
</host:delete>
</delete>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,9 +2,9 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<info>
<info xmlns="urn:ietf:params:xml:ns:host-1.0">
<name>ns1.eppdev-1.com</name>
</info>
<host:info xmlns:host="urn:ietf:params:xml:ns:host-1.0">
<host:name>ns1.eppdev-1.com</host:name>
</host:info>
</info>
<clTRID>cltrid:1626454866</clTRID>
</command>

View File

@ -2,18 +2,18 @@
<epp xmlns="urn:ietf:params:xml:ns:epp-1.0">
<command>
<update>
<update xmlns="urn:ietf:params:xml:ns:host-1.0">
<name>host1.eppdev-1.com</name>
<add>
<addr ip="v6">2404:6800:4001:801::200e</addr>
</add>
<rem>
<status s="clientDeleteProhibited"/>
</rem>
<chg>
<name>host2.eppdev-1.com</name>
</chg>
</update>
<host:update xmlns:host="urn:ietf:params:xml:ns:host-1.0">
<host:name>host1.eppdev-1.com</host:name>
<host:add>
<host:addr ip="v6">2404:6800:4001:801::200e</host:addr>
</host:add>
<host:rem>
<host:status s="clientDeleteProhibited"/>
</host:rem>
<host:chg>
<host:name>host2.eppdev-1.com</host:name>
</host:chg>
</host:update>
</update>
<clTRID>cltrid:1626454866</clTRID>
</command>