Table of Contents
User management API
API to create internal BDOM user
Generic reference:
/user/OPCODE/OWNER_ID/USER_ID/
Where:
OPCODE(operation type) availables values:create,update |
OWNER_ID: Your specific owner id assigned by BDOM system |
USER_ID: The id assigned to user by BDOM system |
Description: Create a new User.
Reference: /bdom/user/create/OWNERID/-/
Operation Type: PUT
Validation XSD
Validator
Example 7.1. User validation XSD:
Source:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified"> <xs:element name="request"> <xs:complexType> <xs:all> <xs:element name="first-name" type="xs:string" /> <xs:element name="last-name" type="xs:string" /> <xs:element name="middle-name" type="xs:string" minOccurs="0"/> <xs:element name="sex" type="SexType" /> <xs:element name="organisation" type="xs:string" /> <xs:element name="type" type="ContactType" /> <xs:element name="street" type="xs:string" /> <xs:element name="number" type="xs:string" /> <xs:element name="postcode" type="xs:string" /> <xs:element name="city" type="xs:string" /> <xs:element name="region" type="xs:string" minOccurs="0"/> <xs:element name="country" type="CountryType" /> <xs:element name="phone" type="PhoneType" /> <xs:element name="extension" type="xs:string" minOccurs="0"/> <xs:element name="fax" type="PhoneType" minOccurs="0"/> <xs:element name="email" type="EmailType"/> <!-- the email for robot communications - optional --> <xs:element name="robomail" type="EmailType" minOccurs="0"/> <xs:element name="bank" type="xs:string" minOccurs="0"/> <xs:element name="account" type="xs:string" minOccurs="0"/> <!-- BLZ --> <xs:element name="bank_code_nr" type="xs:string" minOccurs="0"/> <xs:element name="account_owner" type="xs:string" minOccurs="0"/> <xs:element name="vat" type="xs:string" minOccurs="0"/> <xs:element name="blocked" type="xs:int" /> <xs:element name="password" type="PasswordType"/> <xs:element name="class" type="ClassType"/> <xs:element name="owner_id" type="xs:int"/> <!-- default 1 --> <xs:element name="need_conf" type="xs:int" minOccurs="0"/> <!-- default 0 --> <xs:element name="create_conf" type="xs:int" minOccurs="0"/> <!-- kunden id --> <xs:element name="kd_id" type="xs:int" minOccurs="0"/> <!-- default 1 --> <xs:element name="notified" type="xs:string" minOccurs="0"/> <!-- default 1 --> <xs:element name="owner_notified" type="xs:string" minOccurs="0"/> </xs:all> </xs:complexType> </xs:element> <xs:simpleType name="ClassType"> <xs:restriction base="xs:string"> <xs:enumeration value="subuser" /> <xs:enumeration value="user" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="PasswordType"> <xs:restriction base="xs:string"> <xs:pattern value=".{6,50}" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="BoolType"> <xs:restriction base="xs:string"> <xs:enumeration value="YES" /> <xs:enumeration value="NO" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="CountryType"> <xs:restriction base="xs:string"> <xs:pattern value="[A-Z]{2}" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="NonEmptyString"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="EmailType"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9a-zA-Z\-_\.]{1,64}@[0-9a-zA-Z\-_\.]{3,64}" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="PhoneType"> <xs:restriction base="xs:string"> <xs:pattern value="\+\d+\.\d+" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="ContactType"> <xs:restriction base="xs:string"> <xs:enumeration value="PERS" /> <xs:enumeration value="ORG" /> <xs:enumeration value="ROLE" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="SexType"> <xs:restriction base="xs:string"> <xs:enumeration value="MALE" /> <xs:enumeration value="FEMALE" /> <xs:enumeration value="NA" /> </xs:restriction> </xs:simpleType> </xs:schema>
Important | ||
---|---|---|
|
Example 7.2. User Create:valid request
Minimal tags required to create a user.
REQUEST:
Generic Operation: PUT(http://backend.antagus.de/bdom/user/create/1/-/,xml)
Where xml:
<?xml version="1.0" encoding="UTF-8"?> <request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <first-name>Otto</first-name> <last-name>Normalverbraucher</last-name> <sex>MALE</sex> <organisation>Acme CO</organisation> <type>PERS</type> <street>Main Street</street> <number>13</number> <postcode>55555</postcode> <city>New Stad</city> <country>DE</country> <phone>+040.012345678</phone> <email>otto@nictest.de</email> <blocked>0</blocked> <password>pass_test</password> <class>subuser</class> <owner_id>1</owner_id> </request>
RESPONSE:
<response><user_id>13048</user_id><username>noota0001</username></response>
Example 7.3. User Create:invalid
Xml content from request fails to provide all requested tags
REQUEST:
Generic Operation: PUT(http://backend.antagus.de/bdom/user/create/1/-/,xml)
Where xml:
<?xml version="1.0" encoding="UTF-8"?> <request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <type>PERS</type> <sex>MALE</sex> <first-name>John</first-name> <last-name>Doe</last-name> <middle-name></middle-name> <organisation>Acme CO</organisation> <street>Main Street</street> <number>13/Z</number> <postcode>55555</postcode> <city>New City</city> <region></region> <country>Germany</country> <phone>+040.0123456789</phone> <extension>11</extension> <fax>+40.1234567890</fax> <email>john@nictest.de</email> <bank>First Bank</bank> <account>0000001</account> <vat>19</vat> <blocked>0</blocked> <username>tstoonc</username> <password>pass_test</password> <class>user</class> <owner_id>1</owner_id> <need_conf>1</need_conf> <create_conf>0</create_conf> </request>
RESPONSE:
<error-list> <umsg>[XML_ERROR] XML error Validation error: Contents of element request do not match content model (userid?;first-name;last-name;middle-name?;sex;organisation;type;street;number;postcode;city;region?;country;phone;extension?;fax?;email;robomail?;bank?;account?;bank_code_nr?;account_owner?;vat?;blocked;username?;password?;class?;owner_id?;need_conf?;create_conf?;kd_id?;pgp_pubkey?;pgp_name?;active?;notified?) .</umsg> <error> <code>406</code> <msg>[OBJECT_ERROR] Error [XML_ERROR] XML error Validation error: Contents of element request do not match content model (userid?;first-name;last-name;middle-name?;sex;organisation;type;street;number;postcode;city;region?;country;phone;extension?;fax?;email;robomail?;bank?;account?;bank_code_nr?;account_owner?;vat?;blocked;username?;password?;class?;owner_id?;need_conf?;create_conf?;kd_id?;pgp_pubkey?;pgp_name?;active?;notified?) .</msg> </error> </error-list>
Description: Update a User data
Reference: /bdom/user/update/USER_ID/OWNER_ID/
Operation Type: POST
Where:
OWNER_ID: Your specific owner id assigned by BDOM system |
USER_ID: The id assigned to user by BDOM system |
Validation XSD:
Validator
Example 7.4. Contact Update validation XSD:
Source:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified"> <xs:element name="request"> <xs:complexType> <xs:all> <xs:element name="userid" type="xs:int"/> <xs:element name="first-name" type="xs:string" /> <xs:element name="last-name" type="xs:string" /> <xs:element name="middle-name" type="xs:string" minOccurs="0"/> <xs:element name="sex" type="SexType" /> <xs:element name="organisation" type="xs:string" /> <xs:element name="type" type="ContactType" /> <xs:element name="street" type="xs:string" /> <xs:element name="number" type="xs:string" /> <xs:element name="postcode" type="xs:string" /> <xs:element name="city" type="xs:string" /> <xs:element name="region" type="xs:string" minOccurs="0"/> <xs:element name="country" type="CountryType" /> <xs:element name="phone" type="PhoneType" /> <xs:element name="extension" type="xs:string" minOccurs="0"/> <xs:element name="fax" type="PhoneType" minOccurs="0"/> <xs:element name="email" type="EmailType"/> <!-- the email for robot communications - optional --> <xs:element name="robomail" type="EmailType" minOccurs="0"/> <xs:element name="bank" type="xs:string" minOccurs="0"/> <xs:element name="account" type="xs:string" minOccurs="0"/> <!-- BLZ --> <xs:element name="bank_code_nr" type="xs:string" minOccurs="0"/> <xs:element name="account_owner" type="xs:string" minOccurs="0"/> <xs:element name="vat" type="xs:string" minOccurs="0"/> <xs:element name="blocked" type="xs:int" /> <xs:element name="password" type="PasswordType"/> <xs:element name="owner_id" type="xs:int"/> <xs:element name="need_conf" type="xs:int"/> <!-- kunden id --> <xs:element name="kd_id" type="xs:int" minOccurs="0"/> <xs:element name="notified" type="xs:string"/> <xs:element name="owner_notified" type="xs:string"/> <xs:element name="active" type="xs:string"/> </xs:all> </xs:complexType> </xs:element> <xs:simpleType name="PasswordType"> <xs:restriction base="xs:string"> <xs:pattern value=".{6,50}" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="BoolType"> <xs:restriction base="xs:string"> <xs:enumeration value="YES" /> <xs:enumeration value="NO" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="CountryType"> <xs:restriction base="xs:string"> <xs:pattern value="[A-Z]{2}" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="NonEmptyString"> <xs:restriction base="xs:string"> <xs:minLength value="1"/> <xs:maxLength value="255"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="EmailType"> <xs:restriction base="xs:string"> <xs:pattern value="[0-9a-zA-Z\-_\.]{1,64}@[0-9a-zA-Z\-_\.]{3,64}" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="PhoneType"> <xs:restriction base="xs:string"> <xs:pattern value="\+\d+\.\d+" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="ContactType"> <xs:restriction base="xs:string"> <xs:enumeration value="PERS" /> <xs:enumeration value="ORG" /> <xs:enumeration value="ROLE" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="SexType"> <xs:restriction base="xs:string"> <xs:enumeration value="MALE" /> <xs:enumeration value="FEMALE" /> <xs:enumeration value="NA" /> </xs:restriction> </xs:simpleType> </xs:schema>
Important | ||
---|---|---|
|
Example 7.5. User Update:valid(change password)
Change password from pass_test to new_pass_test
REQUEST:
Generic Operation: POST(http://backend.antagus.de/bdom/user/update/1/13048/,xml)
Where xml:
<?xml version="1.0" encoding="UTF-8"?> <request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <userid>13048</userid> <first-name>Otto</first-name> <last-name>Normalverbraucher</last-name> <sex>MALE</sex> <organisation>Acme Gmbh</organisation> <type>PERS</type> <street>Main Strasse</street> <number>13</number> <postcode>555555</postcode> <city>Newe Stad</city> <country>DE</country> <phone>+040.0123456789</phone> <email>otto@nictest.de</email> <blocked>0</blocked> <password>new_pass</password> <class>subuser</class> <owner_id>1</owner_id> <need_conf>0</need_conf> <notified>0</notified> <owner_notified>0</owner_notified> <active>1</active> </request>
RESPONSE:
<response>1 updated</response>
Example 7.6. User Update:invalid
Wrong http method used in call
REQUEST:
Generic Operation: PUT(http://backend.antagus.de/bdom/user/update/1/13048/,xml)
Where xml:
<?xml version="1.0" encoding="UTF-8"?> <request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <userid>13048</userid> <first-name>Otto</first-name> <last-name>Normalverbraucher</last-name> <sex>MALE</sex> <organisation>Acme Gmbh</organisation> <type>PERS</type> <street>Main Strasse</street> <number>13</number> <postcode>555555</postcode> <city>Newe Stad</city> <country>DE</country> <phone>+040.0123456789</phone> <email>otto@nictest.de</email> <blocked>0</blocked> <password>new_new_pass</password> <class>subuser</class> <owner_id>1</owner_id> <need_conf>0</need_conf> <notified>0</notified> <owner_notified>0</owner_notified> <active>1</active> </request>
RESPONSE:
<error-list> <umsg>Wrong opcode for method or invalid opcode in uri /bdom/user/update/1/13048/</umsg> <error> <code>400</code> <msg>[OBJECT_ERROR] Error Wrong opcode for method or invalid opcode in uri /bdom/user/update/1/13048/</msg> </error> </error-list>
Description: Get data for an existing user User.
Reference: /bdom/user/status/OWNER_ID/USER_ID/
Operation Type: GET
Where:
USER_ID: valid id assigned by BDOM system |
OWNER_ID: valid id assigned by BDOM system |
Example 7.7. User Status: Valid request
REQUEST
Generic Operation:
Request: GET(http:http://backend.antagus.de/bdom/user/status/1/13048/)
RESPONSE:
<response > <account></account> <active>1</active> <bank></bank> <blocked>0</blocked> <city>Newe Stad</city> <class>subuser</class> <country>DE</country> <email>otto@nictest.de</email> <first-name>Otto</first-name> <last-name>Normalverbraucher</last-name> <level>2</level> <need_conf>0</need_conf> <notified>0</notified> <number>13</number> <organisation>Acme Gmbh</organisation> <owner_id>1</owner_id> <owner_notified>0</owner_notified> <password>new_pass</password> <phone>+040.0123456789</phone> <postcode>555555</postcode> <region></region> <sex>MALE</sex> <street>Main Strasse</street> <type>PERS</type> <user_id>13048</user_id> <username>noota0001</username> </response>
Example 7.8. User Status: Invalid request
REQUEST
Generic Operation:
Request: GET(http:http://backend.antagus.de/bdom/user/status/2/13048/)
RESPONSE:
<error-list><umsg>User belongs to different owner</umsg><error><code>401</code><msg>[OBJECT_ERROR] Error User belongs to different owner</msg></error></error-list>
Description: Get all subusers of an existing user.
Reference: /bdom/user/all/OWNER_ID/-/
Operation Type: GET
Where:
OWNER_ID: valid id assigned by BDOM system |
Example 7.7. User list: Valid request
REQUEST
Generic Operation:
Request: GET(http://backend.antagus.de/bdom/user/all/13048/-/)
RESPONSE:
<multiresponse> <response > <blocked>1</blocked> <class>subuser</class> <first_name>John</first_name> <kd_id></kd_id> <last_name>Doe</last_name> <organisation>johnDoe INC</organisation> <owner_id>13408</owner_id> <user_id>999999</user_id> <username>xxxx00001</username> </response> <response > <blocked></blocked> <class>subuser</class> <first_name>Jane</first_name> <kd_id></kd_id> <last_name>Doe</last_name> <organisation>NA</organisation> <owner_id>13408</owner_id> <user_id>999998</user_id> <username>xxxx00002</username> </response> </multiresponse>
Description: Get all inactive subusers of an existing user.
Reference: /bdom/user/inactive/OWNER_ID/-/
Operation Type: GET
Where:
OWNER_ID: valid id assigned by BDOM system |
Example 7.7. User list: Valid request
REQUEST
Generic Operation:
Request: GET(http://backend.antagus.de/bdom/user/inactive/13048/-/)
RESPONSE:
<multiresponse> <response > <blocked>1</blocked> <class>subuser</class> <first_name>John</first_name> <kd_id></kd_id> <last_name>Doe</last_name> <organisation>johnDoe INC</organisation> <owner_id>13408</owner_id> <user_id>999999</user_id> <username>xxxx00001</username> </response> <response > <blocked></blocked> <class>subuser</class> <first_name>Jane</first_name> <kd_id></kd_id> <last_name>Doe</last_name> <organisation>NA</organisation> <owner_id>13408</owner_id> <user_id>999998</user_id> <username>xxxx00002</username> </response> </multiresponse>
Description: Get a paged list of all subusers of an existing user.
Reference: /bdom/user/list/OWNER_ID/-/
Operation Type: POST
Where:
OWNER_ID: valid id assigned by BDOM system |
Validation XSD
Validator
Example 7.1. User validation XSD:
Source:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="unqualified"> <xs:element name="request"> <xs:complexType> <xs:all> <xs:element name="userid" type="xs:int" /> <xs:element name="offset" type="xs:int" /> <xs:element name="limit" type="xs:int" /> <xs:element name="order-by" type="xs:string" minOccurs="0"/> </xs:all> </xs:complexType> </xs:element> </xs:schema>
Example 7.7. User list: Valid request
REQUEST
Generic Operation:
Request: POST(http://backend.antagus.de/bdom/user/list/13048/-/,xml)
Where xml:
<?xml version="1.0" encoding="UTF-8"?> <request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <userid>13048</userid> <offset>10</offset> <limit>5</limit> <order-by>first_name,last_name</order-by> </request>
RESPONSE:
</multiresponse> <response > <account></account> <account_owner></account_owner> <active>1</active> <active_bill>1</active_bill> <allow_at_hold></allow_at_hold> <allow_dup_cont></allow_dup_cont> <bank></bank> <bank_code_nr></bank_code_nr> <block_comment></block_comment> <blocked></blocked> <check_count></check_count> <city>Nui</city> <class>subuser</class> <confirm_notification>1</confirm_notification> <country>NA</country> <del_on_renew></del_on_renew> <direct_domain_delete>1</direct_domain_delete> <dom1></dom1> <email>nare@nici.unu</email> <extension></extension> <fax>+11.111111</fax> <first_name>Cam</first_name> <from_for_owners></from_for_owners> <icann_mails>1</icann_mails> <kd_id></kd_id> <last_name>Mai</last_name> <level>2</level> <max_check_count>3000</max_check_count> <middle_name></middle_name> <monthlyrenew></monthlyrenew> <need_conf>1</need_conf> <notified>1</notified> <nsi></nsi> <number>1</number> <ocd_prerenew_mail>1</ocd_prerenew_mail> <ocd_prerenew_mail_for_owner>1</ocd_prerenew_mail_for_owner> <organisation>Notified</organisation> <owner_id>19</owner_id> <owner_notified>1</owner_notified> <pass_reset_code></pass_reset_code> <phone>+11.111111</phone> <postcode>1111</postcode> <region></region> <robomail></robomail> <sedomls></sedomls> <sex>MALE</sex> <signature_for_icann_mails></signature_for_icann_mails> <street>Nare</street> <subuser_renew_notify></subuser_renew_notify> <test_user></test_user> <type>PERS</type> <user_id>9999999</user_id> <username>xxxx0002</username> <vat></vat> </response> <response > <account></account> <account_owner></account_owner> <active>1</active> <active_bill>1</active_bill> <allow_at_hold></allow_at_hold> <allow_dup_cont></allow_dup_cont> <bank></bank> <bank_code_nr></bank_code_nr> <block_comment></block_comment> <blocked></blocked> <check_count></check_count> <city>Nui</city> <class>subuser</class> <confirm_notification>1</confirm_notification> <country>NA</country> <del_on_renew></del_on_renew> <direct_domain_delete>1</direct_domain_delete> <dom1></dom1> <email>nare@nici.unu</email> <extension></extension> <fax>+11.111111</fax> <first_name>Cam</first_name> <from_for_owners></from_for_owners> <icann_mails>1</icann_mails> <kd_id></kd_id> <last_name>Mai</last_name> <level>2</level> <max_check_count>3000</max_check_count> <middle_name></middle_name> <monthlyrenew></monthlyrenew> <need_conf>1</need_conf> <notified>1</notified> <nsi></nsi> <number>1</number> <ocd_prerenew_mail>1</ocd_prerenew_mail> <ocd_prerenew_mail_for_owner>1</ocd_prerenew_mail_for_owner> <organisation>Notified</organisation> <owner_id>19</owner_id> <owner_notified>1</owner_notified> <pass_reset_code></pass_reset_code> <phone>+11.111111</phone> <postcode>1111</postcode> <region></region> <robomail></robomail> <sedomls></sedomls> <sex>MALE</sex> <signature_for_icann_mails></signature_for_icann_mails> <street>Nare</street> <subuser_renew_notify></subuser_renew_notify> <test_user></test_user> <type>PERS</type> <user_id>9999999</user_id> <username>xxxx0002</username> <vat></vat> </response> </multiresponse>