#ifndef __AEDOMAINCREATECOMMAND_HPP #define __AEDOMAINCREATECOMMAND_HPP #include "common/Deprecated.hpp" #include "se/DomainCreateCommand.hpp" /** * Extension of EPP urn:ietf:params:xml:ns:domain-1.0 create command specified * in RFC3731 to urn:X-ae:params:xml:ns:aeext-1.0. .ae domains must be * provisioned using this class rather than {@link DomainCreateCommand}, as the * ae extension data is mandatory. * Use this class to generate a standards-compliant XML document, given simple * input parameters. The toXML method in Command serialises this object to * XML. * The response expected from a server should be handled by a {@link * DomainCreateResponse} object. * * @deprecated AE eligibility extensions should now be managed through the * @c extension defined in the * urn:X-ar:params:xml:ns:kv-1.0 namespace. This can be done * through the toolkit by using a @c DomainCreateCommand and * appending a @c DomainKVCommandExtension object containing * the AE eligibility extensions. * * See * {@link DomainCreateCommand.appendExtension(CommandExtension)} * and * {@link DomainKVCommandExtension}. */ class AeDomainCreateCommand : public DomainCreateCommand { public: /** * Minimal constructor for creating a domain:create + aeext:create * EPP command. These parameters are the least required for a valid * .ae domain create command. */ DEPRECATED( AeDomainCreateCommand (const std::string& name, const std::string& pw, const std::string* registrantID, const std::vector* techContacts, const std::string &aeEligibilityType, int aePolicyReason, const std::string& aeRegistrantName)); /** * Full data specification constructor for a domain:create + aeext:create * EPP command. Please refer to the urn:X-ae:params:xml:ns:aeext-1.0 schema * for specification of the required fields. * The mapping of parameter names to ae extension fields is given in the * parameter documentation. * * @param name The name of the new domain. * * @param pw The password to assign to the domain (also known as authInfo * or authorisation information). * * @param registrantID The identifier of an existing contact to assign as * the registrant contact for this domain. Failure to ensure the contact * exists prior to using them in this way will result in an EPP result of * '2303 "Object does not exist"'. * * @param techContacts The identifiers of existing contacts to assign as * technical contacts for this domain. Failure to ensure the contacts * exist prior to using them in this way will result in an EPP result of * '2303 "Object does not exist"'. * * @param adminContacts See techContacts (substitute administrative for * technical). * * @param billingContacts See techContacts (substitute billing for * technical). * * @param nameservers The names of existing hosts to delegate the domain * being created to. Failure to ensure the hosts exist prior to using them * in this way will result in an EPP result of '2303 "Object does not * exist"'. * * @param period The initial registration period of the domain object. A * server may define a default initial registration period if not specified * by the client. * * @param aeEligibilityType aeext:eligType. * * @param aePolicyReason aeext:policyReason. * * @param aeRegistrantName aeext:registrantName. * * @param aeRegistrantID aeext:registrantID. * * @param aeRegistrantIDType aeext:registrantID type attribute. * * @param aeEligibilityName aeext:eligibilityName. * * @param aeEligibilityID aeext:eligibilityID. * * @param aeEligibilityIDType aeext:eligibilityID type attribute. */ DEPRECATED( AeDomainCreateCommand (const std::string& name, const std::string& pw, const std::string* registrantID, const std::vector* techContacts, const std::vector* adminContacts, const std::vector* billingContacts, const std::vector* nameservers, const Period *period, const std::string &aeEligibilityType, int aePolicyReason, const std::string& aeRegistrantName, const std::string* aeRegistrantID, const std::string* aeRegistrantIDType, const std::string* aeEligibilityName, const std::string* aeEligibilityID, const std::string* aeEligibilityIDType)); private: void setExtension (const std::string& eligibilityType, int PolicyReason, const std::string& registrantName); void setExtension (const std::string& eligibilityType, int PolicyReason, const std::string& registrantName, const std::string* registrantID, const std::string& registrantIDType); /** * <extension> *  <create xmlns="urn:X-ae:params:xml:ns:aeext-1.0"> *   <registrantName>registrantName</registrantName> *   <registrantID type="registrantIDType">registrantID</registrantID> *   <eligibilityType>eligibilityType</eligibilityType> *   <eligibilityName>eligibilityName</eligibilityName> *   <eligibilityID type="eligibilityIDType">eligibilityID</eligibilityID> *   <policyReason>policyReason</policyReason> *  </create> * </extension> */ void setExtension (const std::string& eligibilityType, int policyReason, const std::string& registrantName, const std::string* registrantID, const std::string* registrantIDType, const std::string* eligibilityName, const std::string* eligibilityID, const std::string* eligibilityIDType); }; #endif // __AEDOMAINCREATECOMMAND_HPP