Cloud DNS Client API
Development Guideline
(v1.1)
(Date : 23th April, 2013)
PowerAll Networks Ltd.
Table of content
Section 1 API List of CDNS
3
Section 2 Possible common errors
4
Section 3 Before coding
5
Section 4 API Specification
create_load_balance
6
create_failover
9
search_dns_rule
12
show_rule_detail
14
remove_rule
16
update_load_balance
17
update_failover
20
create_domain_parking
23
update_doman_parking
24
remove_domain_parking
25
search_domain_parking
26
dns_add_record
28
dns_update_record
30
dns_remove_record
32
dns_search_record
33
Section 1 API List for CDNS
Following are available client API for DNS access.
API Type API ID API Name
General API CDNSGEN0001 create_load_balance CDNSGEN0002 create_failover CDNSGEN0003 search_dns_rule CDNSGEN0004 show_rule_detail CDNSGEN0005 remove_rule CDNSGEN0006 update_load_balance CDNSGEN0007 update_failover CDNSGEN0008 create_domain_parking CDNSGEN0009 update_doman_parking CDNSGEN0010 remove_domain_parking CDNSGEN0011 search_domain_parking CDNSGEN0012 dns_add_record CDNSGEN0013 dns_update_record CDNSGEN0014 dns_remove_record CDNSGEN0015 dns_search_record
Section 2 Possible Common Errors
Following are common error which possible occur on all client API so your program should
handle such common error.
Error Code Error Description HTTP Status Code
InvalidLocale Invalid Locale 400 InvalidHeader Invalid header 400 ExpiredSig Expired signature and request 400 NotExistMem Member record not exists 400 FailAuth Fail to authenticate 403 UnexpectedError Unexpected error 500 UnavailableService System is under maintenance and will recover soon 503
Section 3 Before Coding
1.
if passing member access id, user only can access own related resource.
e.g. search_dns_rule it show user owned rules only.
if passing admin. access id, user can access other user’s resource.
e.g. search_dns_rule it can search other member owned rule.
(Most end user doesn’t own the admin. access ID)
2.
“Admin.” account can create/update/remove rule for any member.
In related API, must assign the member access id in <MemberAccessID> tag.
In authentication, use admin access ID and signature. System can identify the role of caller.
3.
DNS name restrictions (check in API side) :
max length 20
except first and last characters, all can be alphanumeric, hypen “” or underscore “_”.
first character can be hypen “” or underscore “_”.
last character can be underscore “_”.
API Specification
API ID
CDNSGEN0001 REST http method PUT
API Name create_load_balance API Type General API Description Create load balancing rule. (i.e. A list of IP) REST URI http://a.cdns.mygrid.asia/create_load_balance/locale/en Input Parameters Locale Code Note For “Weight” method, can enter 1 or above value for <HostWeight> For <MonitorType>, support T (TCP). If choose TCP, enter port no. in <MonitorPortNO> Input XML <AddLoadBalance> <MainDataProfile> <Type>D</Type> (DDNS base, UURL base) <Method>R</Method> (RRound Robin, WWeight) <DNSName>skywalk</DNSName> <MemberAccessID>6Igu5ccmk7AWYUkA5vkRi1WEiMEk5811</MemberAccessID> <SubscriptionID></SubscriptionID> (optional) <Description>this is first input.</Description> </MainDataProfile> <Monitor> <EnableMonitor>Y</EnableMonitor> (YYES, NNO) <MonitorType>P</MonitorType> (PPing, AAPI Call, TTCP) <AlertTimes>3</AlertTimes> <AutoFailover>Y</AutoFailover> (YYes, NNo) <MonitorPortNO></MonitorPortNO> (Option to enter once choose TCP) <APIMonitor> (only input when Monitor type=A) <APIProtocol></APIProtocol> (http or https) <APIURI></APIURI> (e.g. test/tester.html) <ExpectedReturn></ExpectedReturn> </APIMonitor> <FallbackAction> <FallbackMethod>M</FallbackMethod> (Mmanual, AAuto) <NoOfSuccessForAuto></NoOfSuccessForAuto> (Only input when FallbackMethod=A) </FallbackAction> </Monitor> <HostRecordList> <HostRecord> (Only accept IP address) <HostContent>202.1.1.1</HostContent> <HostDescription>Apple</HostDescription> (if not data for description, enter “dash” ())
<HostWeight>1</HostWeight> </HostRecord> </HostRecordList> </AddLoadBalance> Return http status
201
Output for success case <CloudAPI> <StatusCode>SuccessCall</StatusCode> <Message>The request is run successfully.</Message> </CloudAPI> Possible ErrorsError Code Error Description HTTP Status
Code MissingMemberAccessID missing memeber access ID 400 InvalidMemberAccessID invalid member access ID 400 ACPrb Account problem 400 InvalidType invalid load balance type 400 InvalidLoadBalancingMethod invalid load balance method 400 InvalidDNSName invalid DNS name 400 InvalidEnableMonitor invalid enable monitor 400 InvalidMonitorType invalid monitor type 400 InvalidAlertTimes invalid no of alert times 400 ExceedAlertTimes Can’t exceed a specified no. e.g. 10 400 MissingMonitorPortNO Missing TCP port number 400 InvalidMonitorPortNO Invalid TCP port number 400 InvalidAPIURL invalid API URL 400 InvalidAPIURI invalid API URI 400 InvalidAPIProtocol invalid API protocol 400 MissingAPIReturnValue missed expected return value for API 400 InvalidFallbackAction invalid fallback action 400 InvalidFallbackSuccessNumb er invalid no. for success fallback 400
InvalidHostContent invalid host content 400 ExceedMaxIPHost exceed the maximum accepted no. of host in 1 rule 400 InvalidHostDescription invalid host description 400 MissingHostIPOrHostDescripti on missed host, ip or host description 400 InvalidHostWeight Invalid weight value 400 InvalidSubscriptionID Invalid subscription ID 400 SubscriptionExpired Plan expired 400 PlanNotFound Plan not found 400 ExceedSubscriptionQuota Exceed the quota of plan 400 DuplicatedDNSName duplicated DNS name 400 DuplicateDataEntry duplicated DNS record in backend 400 InvalidAutoFailover invalid auto failover 400 FailCreateLoadBalance fail to create load balance rule record 403
API ID
CDNSGEN0002 REST http method PUT
API Name create_failover API Type General API Description create failover (support host name or IP) REST URI http://a.cdns.mygrid.asia/create_failover/locale/en Input Parameters Locale Code Note Add DNS record for host which <HostPriority> value is lowest. <HostPriority> 1 is highest priority. Higher value has lower priority. Input XML <AddFailover> <MainDataProfile> <Type>H</Type> (IPIP address, HHost) <Method>M</Method> (Mmanual, AAuto) <DNSName>skywalk</DNSName> <MemberAccessID>6Igu5ccmk7AWYUkA5vkRi1WEiMEk58</MemberAccessID> <SubscriptionID></SubscriptionID> (optional) <Description></Description> </MainDataProfile> <Monitor> <EnableMonitor>Y</EnableMonitor> (YYES, NNO) <MonitorType>P</MonitorType> (PPing, AAPI Call, TTCP) <AlertTimes>3</AlertTimes> <MonitorPortNO></MonitorPortNO> (optional port no) <APIMonitor> (only input when Monitor type=A) <APIProtocol></APIProtocol> (http or https) <APIURI></APIURI> (e.g. test/tester.html) <ExpectedReturn></ExpectedReturn> </APIMonitor> <FallbackAction> <IsAutoFallback>Y</IsAutoFallback> (YYes, NNo) <NoOfSuccessForAuto></NoOfSuccessForAuto> (Only input when IsAutoFallback=Y) </FallbackAction> </Monitor> <HostRecordList> <HostRecord> (accept IP address and hostname too) <HostContent>202.1.1.1</HostContent> <HostDescription>Apple</HostDescription> (if not data for description, enter “dash” ()) <HostPriority>1</HostPriority> ( (positive integer and can’t be duplicated) </HostRecord> </HostRecordList> </AddFailover> Return http status
201
Output for success case <CloudAPI> <StatusCode>SuccessCall</StatusCode> <Message>The request is run successfully.</Message> </CloudAPI> Possible Errors
Error Code Error Description HTTP Status
Code MissingMemberAccessID missing memeber access ID 400 InvalidMemberAccessID invalid member access ID 400 InvalidType invalid load balance type 400 InvalidFailoverMethod invalid failover method 400 InvalidDNSName invalid DNS name 400 InvalidEnableMonitor invalid enable monitor 400 InvalidMonitorType invalid monitor type 400 InvalidAlertTimes invalid no of alert times 400 ExceedAlertTimes Can’t exceed a specified no. e.g. 10 400 InvalidAPIURL invalid API URL 400 InvalidAPIURI invalid API URI 400 InvalidAPIProtocol invalid API protocol 400 MissingAPIReturnValue missed expected return value for API 400 InvalidFallbackAction invalid fallback action 400 InvalidFallbackSuccessNumb er invalid no. for success fallback 400 InvalidHostContent invalid host content 400 ExceedMaxIPHost exceed the maximum accepted no. of host in 1 rule 400 InvalidHostDescription invalid host description 400 InvalidPriority invalid priority 400 MissingHostIPOrHostDescripti onOrPriority missed host, ip, host description or priority 400
InvalidSubscriptionID Invalid subscription ID 400 SubscriptionExpired Plan expired 400 PlanNotFound Plan not found 400 ExceedSubscriptionQuota Exceed the quota of plan 400 DuplicatedPriorityValue duplicated prioriy value 400 DuplicatedDNSName duplicated DNS name 400 DuplicateDataEntry duplicated DNS record in backend 400 FailCreateFailover fail to create failover rule record 403
API ID
CDNSGEN0003 REST http method PUT
API Name search_dns_rule API Type General API Description search DNS rule record due to different criteria REST URI http://a.cdns.mygrid.asia/search_dns_rule/locale/en Input Parameters Locale Code Input XML <SearchDNSRule> <RuleID></RuleID> <SubscriptionID></SubscriptionID> <ServiceType></ServiceType> (LBload balance, FOFailover) <DNSName></DNSName> <RuleDesc></RuleDesc> <OwnerID></OwnerID> <OwnerLogin></OwnerLogin> <IP_HostName></IP_HostName> <IP_HostNameDesc></IP_HostNameDesc> </SearchDNSRule> If admin account to call API, it can search different <OwnerID> or <OwnerLogin>. If general member account, only search his owned record. Return http status
200
Output for success case <CloudDNS> <TotalRuleRecord>1</TotalRuleRecord> <RuleList> <RuleRecord> <MainRuleProfile> <RuleID>t1hdwEB5KlhVJCki46LOazzaOpSElmzAWIPKXzdx5bU</RuleID> <SubscriptionID>DLNIHapHhaDQKgCDssjglJhX_lA</SubscriptionID> <PlanID>l0IHqWR_VdK8acfJBmWJmWEp_R6IJi28GpFzVcOm80</PlanID> <PlanName>Premium Plan B 3 Month</PlanName> <PlanDescription>Premium Plan B 3 Month</PlanDescription> <SubscribeDate>20130109T17:23:43Z</SubscribeDate> <ExpiryDate>20131009T17:23:46Z</ExpiryDate> <IsExpired>N</IsExpired> <IsSuspended>N</IsSuspended> <SuspensionDate>20130314T11:18:29Z</SuspensionDate> <ServiceType>LB</ServiceType> <DNSName>boxing</DNSName><Name>boxing.cdns.mygrid.asia</Name> <RuleDesc>it is desc</RuleDesc> <OwnerID>QoD0IP8BPXZRgO7ekBKK2PKaMYB3wH</OwnerID> <OwnerLogin>testing</OwnerLogin> <LastUpdateDate>20120801T09:12:23Z</LastUpdateDate> </MainRuleProfile> <MappedDNSList> <MappedRecord> <IP_Host>202.1.1.1</IP_Host> <IP_HostWeight>1</IP_HostWeight> <IP_HostDesc>first server</IP_HostDesc> <IP_HostEnable>Y</IP_HostEnable> (YYES, NNO) <IP_HostPossibleDown>Y</IP_HostPossibleDown>(YYES, NNO) <IP_HostHasDNSRecord>Y</IP_HostHasDNSRecord>(YYES, NNO) <IP_HostPriority>0</IP_HostPriority> </MappedRecord> <MappedRecord> <IP_Host>202.1.1.12</IP_Host> <IP_HostWeight>1</IP_HostWeight> <IP_HostDesc>2nd server</IP_HostDesc> <IP_HostEnable>Y</IP_HostEnable> <IP_HostPossibleDown>Y</IP_HostPossibleDown> <IP_HostHasDNSRecord>Y</IP_HostHasDNSRecord> <IP_HostPriority>0</IP_HostPriority> </MappedRecord></MappedDNSList> </RuleRecord> </RuleList> </CloudDNS> Possible Errors
Error Code Error Description HTTP Status
Code
NoAccessRight no access right 400 NotSupportedServiceType not supported service type 400
API ID
CDNSGEN0004 REST http method GET
API Name show_rule_detail API Type General API Description search DNS rule record due to different criteria REST URI http://a.cdns.mygrid.asia/show_rule_detail/locale/en/rule_id/dksfjksdfjkdsfjkdlsfjk Input Parameters Locale Code Rule ID Input XML No XML Return http status
200
Note If member account to call this API, only get own information. User can’t check other user’s record. If administrative account, it can check all accounts’ information. Output for success case <CloudDNS> <RuleProfile> <RuleID>betstvfCNy0mql7JYzzXjSBaquCWXXxIpMq6id0S64</RuleID> <SubscriptionID>DLNIHapHhaDQKgCDssjglJX_lA</SubscriptionID> <PlanID>l0IHqWR_VdK8acfJBmWJmWEp_R6IJi28GpFzVcOm80</PlanID> <PlanName>Premium Plan B 3 Month</PlanName> <PlanDescription>Premium Plan B 3 Month</PlanDescription> <SubscribeDate>20130109T17:23:43Z</SubscribeDate> <ExpiryDate>20131009T17:23:46Z</ExpiryDate> <IsExpired>N</IsExpired> <Service>FO</Service> <Type>H</Type> <Method>M</Method> <DNSName>skywalk</DNSName> <Description>banana</Description> <OwnerID>QoD0IP8BPXZRgO7ekBKK2PKaMYB3wH</OwnerID> <OwnerLogin>testing</OwnerLogin> <LastUpdateDate>20120802T10:24:27Z</LastUpdateDate> </RuleProfile> <MonitorProfile> <EnableMonitor>Y</EnableMonitor> <MonitorType>A</MonitorType> <AlertThresholdTimes>3</AlertThresholdTimes> <APIProtocol>http</APIProtocol> <APIURI>tester.html</APIURI> <APIExpectedReturn>yes</APIExpectedReturn> <AutoFailover>N</AutoFailover><MonitorPortNO>23</MonitorPortNO> </MonitorProfile> <Fallback> <FallbackMethod>M</FallbackMethod> For load balance, Mmanual and AAuto or <IsAutoFallback>Y</IsAutoFallback> For Failover, YYes and NNo <NoOfSucccessForAutoFallback>3</NoOfSucccessForAutoFallback> </Fallback> <HostList> <HostRecord> <IP_Host>banana.com</IP_Host> <IP_HostDesc>banana</IP_HostDesc> <IP_HostEnable>Y</IP_HostEnable> (YYES, NNO) <IP_HostPossibleDown>N</IP_HostPossibleDown> (YYES, NNO) <IP_HostHasDNSRecord>Y</IP_HostHasDNSRecord>(YYES, NNO) <IP_HostPriority>2</IP_HostPriority> <IP_HostWeight>3</IP_HostWeight> </HostRecord> </HostList> </CloudDNS> Possible Errors
Error Code Error Description HTTP Status
Code
NoAccessRight no access right 400 NoSuchRuleID No such rule ID 400
API ID
CDNSGEN0005 REST http method DELETE
API Name remove_rule API Type General API Description Remove specified rule REST URI http://a.cdns.mygrid.asia/remove_rule/locale/en/rule_id/dksfjksdfjkdsfjkdlsfjk Input Parameters Locale Code Rule ID Input XML No XML Return http status
200
Note If use member account to call, only remove own rule. If use admin. account, can remove any user’s rule. Output for success case <CloudAPI> <StatusCode>SuccessCall</StatusCode> <Message>The request is run successfully.</Message> </CloudAPI> Possible ErrorsError Code Error Description HTTP Status
Code
NoAccessRight no access right 400 NoSuchRuleID No such rule ID 400
API ID
CDNSGEN0006 REST http method PUT
API Name update_load_balance API Type General API Description Update load balancing rule. (i.e. A list of IP) REST URI http://a.cdns.mygrid.asia/update_load_balance/locale/en Input Parameters Locale Code Note <HostEnable> is to control whether enable DNS record. At least one record should be enabled. Input XML <UpdateLoadBalance> <RuleID>kJpZXrn_rUjV8ZtXOgWJWOV2LNEKd64FHYZ5JWMOz0</RuleID> <NewRecord> <MainDataProfile> <Type>D</Type> (DDNS base, UURL base) <Method>R</Method> (RRound Robin, WWeight) <DNSName>skywalk</DNSName> <MemberAccessID>6Igu5ccmk7AWYUkA5vkRi1WEiMEk58</MemberAccessID> <Description></Description> </MainDataProfile> <Monitor> <EnableMonitor>Y</EnableMonitor> (YYES, NNO) <MonitorType>P</MonitorType> (PPing, AAPI Call) <AlertTimes>3</AlertTimes> <AutoFailover>Y</AutoFailover> (YYes, NNo) <MonitorPortNO></MonitorPortNO> <APIMonitor> (only input when Monitor type=A) <APIProtocol></APIProtocol> (http or https) <APIURI></APIURI> (e.g. test/tester.html) <ExpectedReturn></ExpectedReturn> </APIMonitor> <FallbackAction> <FallbackMethod>M</FallbackMethod> (Mmanual, AAuto) <NoOfSuccessForAuto></NoOfSuccessForAuto> (Only input when FallbackMethod=A) </FallbackAction> </Monitor> <HostRecordList> <HostRecord> (Only accept IP address) <HostContent>202.1.1.1</HostContent> <HostDescription>Apple</HostDescription> (if not data for description, enter “dash” ()) <HostEnable>Y</HostEnable> (Y/N. At least 1 host be set in Y) <HostWeight>1</HostWeight> </HostRecord> </HostRecordList>
</NewRecord> </UpdateLoadBalance> Return http status
201
Output for success case <CloudAPI> <StatusCode>SuccessCall</StatusCode> <Message>The request is run successfully.</Message> </CloudAPI> Possible ErrorsError Code Error Description HTTP Status
Code NoSuchRuleID No such rule ID for update 400 MissingMemberAccessID missing memeber access ID 400 InvalidMemberAccessID invalid member access ID 400 InvalidType invalid load balance type 400 InvalidLoadBalancingMethod invalid load balance method 400 InvalidDNSName invalid DNS name 400 InvalidEnableMonitor invalid enable monitor 400 InvalidMonitorType invalid monitor type 400 InvalidAlertTimes invalid no of alert times 400 ExceedAlertTimes Can’t exceed a specified no. e.g. 10 400 InvalidAPIURL invalid API URL 400 InvalidAPIURI invalid API URI 400 InvalidAPIProtocol invalid API protocol 400 MissingAPIReturnValue missed expected return value for API 400 InvalidFallbackAction invalid fallback action 400 InvalidFallbackSuccessNumb er invalid no. for success fallback 400 InvalidHostContent invalid host content 400 ExceedMaxIPHost exceed the maximum accepted no. of host in 1 rule 400 InvalidHostDescription invalid host description 400 MissingHostIPOrHostDescripti missed host, ip or host description 400
on DuplicatedDNSName duplicated DNS name 400 DuplicateDataEntry duplicated DNS record in backend 400 InvalidAutoFailover invalid auto failover 400 InvalidHostEnable Invalid enabling host value 400 MustEnableHost Must enable at least 1 host 400 FailUpdateLoadBalance fail to update load balance rule record 403
API ID
CDNSGEN0007 REST http method PUT
API Name update_failover API Type General API Description update failover (support host name or IP) REST URI http://a.cdns.mygrid.asia/update_failover/locale/en Input Parameters Locale Code Note <HostPriority> 1 is highest priority. Higher value has lower priority. Only 1 DNS record be added which <HostEnable> is Y. Input XML <UpdateFailover> <RuleID>vNqOGmWH9CEPOOkHm8DN9Y7e60yxLkwiXKzFiytVcI</RuleID> <NewRecord> <MainDataProfile> <Type>H</Type> (IPIP address, HHost) <Method>M</Method> (Mmanual, AAuto) <DNSName>skywalk</DNSName> <MemberAccessID>6Igu5ccmk7AWYUkA5vkRi1WEiMEk58</MemberAccessID> <Description></Description> </MainDataProfile> <Monitor> <EnableMonitor>Y</EnableMonitor> (YYES, NNO) <MonitorType>P</MonitorType> (PPing, AAPI Call) <AlertTimes>3</AlertTimes> <MonitorPortNO></MonitorPortNO> <APIMonitor> (only input when Monitor type=A) <APIProtocol></APIProtocol> (http or https) <APIURI></APIURI> (e.g. test/tester.html) <ExpectedReturn></ExpectedReturn> </APIMonitor> <FallbackAction> <IsAutoFallback>Y</IsAutoFallback> (YYes, NNo) <NoOfSuccessForAuto></NoOfSuccessForAuto> (Only input when IsAutoFallback=Y) </FallbackAction> </Monitor> <HostRecordList> <HostRecord> (accept IP address and hostname too) <HostContent>202.1.1.1</HostContent> <HostDescription>Apple</HostDescription> (if not data for description, enter “dash” ()) <HostPriority>1</HostPriority> ( (positive integer and can’t be duplicated) <HostEnable>Y</HostEnable> </HostRecord> </HostRecordList> </NewRecord> </UpdateFailover>
Return http status
201
Output for success case <CloudAPI> <StatusCode>SuccessCall</StatusCode> <Message>The request is run successfully.</Message> </CloudAPI> Possible ErrorsError Code Error Description HTTP Status
Code NoSuchRuleID No such rule ID 400 MissingMemberAccessID missing memeber access ID 400 InvalidMemberAccessID invalid member access ID 400 InvalidType invalid load balance type 400 InvalidFailoverMethod invalid failover method 400 InvalidDNSName invalid DNS name 400 InvalidEnableMonitor invalid enable monitor 400 InvalidMonitorType invalid monitor type 400 InvalidAlertTimes invalid no of alert times 400 ExceedAlertTimes Can’t exceed a specified no. e.g. 10 400 InvalidAPIURL invalid API URL 400 InvalidAPIProtocol invalid API protocol 400 InvalidAPIURI invalid API URI 400 MissingAPIReturnValue missed expected return value for API 400 InvalidFallbackAction invalid fallback action 400 InvalidFallbackSuccessNumb er invalid no. for success fallback 400 InvalidHostContent invalid host content 400 ExceedMaxIPHost exceed the maximum accepted no. of host in 1 rule 400
InvalidHostDescription invalid host description 400 InvalidPriority invalid priority 400 MissingHostIPOrHostDescripti onOrPriority missed host, ip, host description or priority 400 DuplicatedPriorityValue duplicated prioriy value 400 DuplicatedDNSName duplicated DNS name 400 DuplicateDataEntry duplicated DNS record in backend 400 InvalidHostEnable Invalid enabling host value 400 MustEnableHost Only 1 host must be set 400 FailCreateFailover fail to create failover rule record 403
API ID
CDNSGEN0008 REST http method PUT
API Name create_domain_parking API Type General API Description Create domain parking REST URI http://a.cdns.mygrid.asia/create_domain_parking/locale/en Input Parameters Locale Code Note Add domain parking reocrd. Input XML <AddDomainParking> <ParkDomainName>abc.com</ParkDomainName> <SerialNO></SerialNO> (optional field. If not enter, generate by system with format YYYYMMDD00 e.g. 2013022800) <MemberAccessID>61gu5ccmk7AWYUkA5vkRi1WEiMEk58</MemberAccessID> <SubscriptionID>DLNIHapHhaDQKgCDssjglJhxnEO_HUV7XOdcUkSX_lB</Subs criptionID> </AddDomainParking> Return http status
201
Output for success case <CloudAPI> <StatusCode>SuccessCall</StatusCode> <Message>The request is run successfully.</Message> </CloudAPI> Possible ErrorsError Code Error Description HTTP Status
Code MissingMemberAccessID missing memeber access ID 400 InvalidMemberAccessID invalid member access ID 400 MissingDomain missing domain 400 InvalidDomain invalid domain 400 InvalidSerialNO invalid DNS serial no 400 FailCreateDomainParking Fail to create domain parking 400
API ID
CDNSGEN0009 REST http method PUT
API Name update_domain_parking API Type General API Description Update domain parking REST URI http://a.cdns.mygrid.asia/update_domain_parking/locale/en Input Parameters Locale Code Note Update domain parking reocrd. Input XML <UpdateDomainParking> <ParkDomainID>CcXVrE1nVHxiJ3FoyxziNIDjGv311DvI</ParkDomainID> <NewSerialNO>2013022702</NewSerialNO> </UpdateDomainParking> Return http status
201
Output for success case <CloudAPI> <StatusCode>SuccessCall</StatusCode> <Message>The request is run successfully.</Message> </CloudAPI> Possible ErrorsError Code Error Description HTTP Status
Code
MissingSerialNO missing DNS serial no 400 NotExistDomainParkingRecord the parking record not exist 400 InvalidSerialNO invalid DNS serial no 400 FailUpdateDomainParking Fail to update domain parking record 400
API ID
CDNSGEN0010 REST http method DELETE
API Name remove_domain_parking API Type General API Description Remove domain parking REST URI http://a.cdns.mygrid.asia/remove_domain_parking/locale/en/domain_id/CcXVrE1nV HxiJ3FoyxziNIDjGv311DvI Input Parameters Locale Code Note Remove domain parking reocrd and all related DNS records under such domain. Input XML Return http status
204
Output for success case <CloudAPI> <StatusCode>SuccessCall</StatusCode> <Message>The request is run successfully.</Message> </CloudAPI> Possible ErrorsError Code Error Description HTTP Status
Code
NotExistDomainParkingRecord the parking record not exist 400 FailRemoveDomainParking Fail to remove domain parking record 400
API ID
CDNSGEN0011 REST http method PUT
API Name search_domain_parking API Type General API Description Search domain parking record(s) REST URI http://a.cdns.mygrid.asia/search_domain_parking/locale/en Input Parameters Locale Code Note search domain parking reocrd. Input XML <SearchDomainParking> <OwnerID></OwnerID> <OwnerLogin></OwnerLogin> <SubscriptionID></SubscriptionID> </SearchDomainParking> All fields are optional input. Return http status
201
Output for success case If no record found, show <CloudAPI> <StatusCode>NoRecordFound</StatusCode> <Message>No record found</Message> </CloudAPI> or if record found, show <CloudDNS> <TotalParkingRecord>2</TotalParkingRecord> <DomainList> <DomainRecord> <ParkedDomainID>CcXVrE1nVHxiJ3FoyxziNIDjG1Dv</ParkedDomainID> <ParkedDomainName>abctest.com</ParkedDomainName> <SerialNumber>2013022700</SerialNumber> <MemberAccessID>6Igu5ccmk7AWYUkA5vkRi1WEiMEk58</MemberAccessID> <MemberLogin>tommy</MemberLogin> <LastUpdateDate>20130227T08:12:21Z</LastUpdateDate> <SubscriptionID>DLNIHapHhaDQKgCDssjglJX_lA</SubscriptionID> <PlanID>l0IHqWR_VdK8acfJBmWJmWEp_R6IJi28GpFzVcOm80</PlanID> <PlanName>Premium Plan B 3 Month</PlanName> <PlanDescription>Premium Plan B</PlanDescription> <SubscribeDate>20130109T17:23:43Z</SubscribeDate><ExpiryDate>20131009T17:23:46Z</ExpiryDate> <IsExpired>N</IsExpired> <IsSuspended>N</IsSuspended> <SuspensionDate>20130314T11:18:29Z</SuspensionDate> </DomainRecord> </DomainList> </CloudDNS> Possible Errors
Error Code Error Description HTTP Status
Code
NotExistDomainParkingRecord the parking record not exist 400 FailShowDomainParking Fail to remove domain parking record 400
API ID
CDNSGEN0012 REST http method PUT
API Name dns_add_record API Type General API Description Create DNS record for cdns.mygrid.asia or parked domain REST URI http://a.cdns.mygrid.asia/dns_add_record/locale/en Input Parameters Locale Code Note DNS Type : for cdns.mygrid.asia domain, support PA record only. for parked domain, support A, AAAA, CNAME, PA, and MX records. Billing : If add PA record under cdns.mygrid.asia, it will be charged. It’s free for adding A, AAAA, MX, CNAME or PA record under parked domain. Input XML <AddDNSRecord> <DNSType>cname</DNSType> (support A, AAAA, CNAME, PA or MX) <ParkedDomainID>gMPb0sxLPa7k2V_IUwd8VL_fAcIm7</ParkedDomainID> (ParkedDomainID is optional field. If empty, assume using cdns.mygrid.asia) <RecordName>cake</RecordName> (subdomain name) <Content>www.abcdef.com</Content> (IP, host) <Description></Description> (optional) <MemberAccessID>6Igu5ccmk7AWYUkA5vkRi1WEiMEk58</MemberAccessID> <SubscriptionID>DLNIHapHhaDQKgCDssjgllA</SubscriptionID> (Must enter the Subscription ID for parked domain) </AddDNSRecord> Return http status
201
Output for success case <CloudAPI> <StatusCode>SuccessCall</StatusCode> <Message>The request is run successfully.</Message> </CloudAPI> Possible ErrorsError Code Error Description HTTP Status
MissingMemberAccessID missing memeber access ID 400 InvalidMemberAccessID invalid member access ID 400 MissingSubscriptionID Missing subscription ID 400 NotExistDomainParkingRecord Not existing domain parking record 400 MissingDNSType Missing DNS Type 400 NotSupportedDNSType Not supported DNS type 400 MissingIP Missing IP address 400 InvalidIP Invalid IP address 400 MissingDomain Missing domain name 400 InvalidDomain Invalid domain name 400 MissingContent Missing content 400 InvalidContent Invalid content 400 MissingARecord Missing A record 400 InvalidARecord Invalid A record 400 MissingCName Missing CName 400 InvalidCName Invalid CName 400 MissingRecordName Missing record name 400 InvalidRecordName Invalid record name 400 DuplicateDNSRecord Duplicate DNS record 400 InvalidSubscriptionID Invalid subscription ID 400 SubscriptionExpired Plan expired 400 PlanNotFound The subscription plan not found 400 ExceedSubscriptionQuota Exceed the quota of the plan 400 FailCreateDNSRecord Fail to create DNS record 400
API ID
CDNSGEN0013 REST http method PUT
API Name dns_update_record API Type General API Description Update DNS record for cdns.mygrid.asia or parked domain REST URI http://a.cdns.mygrid.asia/dns_update_record/locale/en Input Parameters Locale Code Note DNS Type : for cdns.mygrid.asia domain, support PA record only. for parked domain, support A, AAAA, CNAME, PA, and MX records. Input XML <UpdateDNSRecord> <DNS_ID>UJ4BpIhiV0EWhNwr4NjfUVSSofYW85_auCvSXEXk</DNS_ID> <NewRecord> <NewDNSType>AAAA</NewDNSType> (support A, AAAA, CNAME, PA or MX) <NewRecordName>toy</NewRecordName> <NewContent>fd0e:34b9:72cf:1778::2</NewContent> <ChangeDescription>Y</ChangeDescription> (Y/N) <NewDescription>It’s test.</NewDescription> </NewRecord> </UpdateDNSRecord> Return http status
201
Output for success case <CloudAPI> <StatusCode>SuccessCall</StatusCode> <Message>The request is run successfully.</Message> </CloudAPI> Possible ErrorsError Code Error Description HTTP Status
Code
InvalidChangeDescription Invalid “Change” description 400 NotExistDNSRecord Not exist DNS record 400 MissingDNSType Missing DNS Type 400 NotSupportedDNSType Not supported DNS type 400
InvalidIP Invalid IP address 400 MissingDomain Missing domain name 400 InvalidDomain Invalid domain name 400 MissingContent Missing content 400 InvalidContent Invalid content 400 MissingARecord Missing A record 400 InvalidARecord Invalid A record 400 MissingCName Missing CName 400 InvalidCName Invalid CName 400 MissingRecordName Missing record name 400 InvalidRecordName Invalid record name 400 DuplicateDNSRecord Duplicate DNS record 400 FailUpdateDNSRecord Fail to update DNS record 400
API ID
CDNSGEN0014 REST http method DELETE
API Name dns_delete_record
API Type General API
Description Delete DNS record
REST URI http://a.cdns.mygrid.asia/dns_remove_record/locale/en/dns_id/UJ4BpIhiV0EWhNwr4N
Input Parameters Locale Code
DNS ID Note Input XML No XML Return http status200
Output for success case <CloudAPI> <StatusCode>SuccessCall</StatusCode> <Message>The request is run successfully.</Message> </CloudAPI> Possible ErrorsError Code Error Description HTTP Status
Code
NotExistDNSRecord No such DNS record 400 FailRemoveDNSRecord Fail to remove DNS record 400
API ID
CDNSGEN0015 REST http method PUT
API Name dns_search_record API Type General API Description Search DNS record under cdns.mygrid.asia or parked domain REST URI http://a.cdns.mygrid.asia/dns_search_record/locale/en Input Parameters Locale Code Note Iput the searching criteria in XML. If not enter value in XML, it will show out all records. Input XML <SearchDNS> <DNS_ID></DNS_ID> <DNS_Type></DNS_Type> (e.g. A, AAAA, CNAME, MX, PA) <DNSName></DNSName> <Content></Content> <OwnerID></OwnerID> <OwnerLogin></OwnerLogin> <SearchByDomainType>G</SearchByDomainType> (Compulsory input) (G cdns.mygrid.asia, PD Parked Domain) <SubscriptionID></SubscriptionID> <ParkedDomainID></ParkedDomainID> </SearchDNS> Return http status
200
Output for success case <CloudDNS> <Domain>cdns.pandev.mygrid.asia</Domain> <DNSServer>ns1.mygrid.asia</DNSServer> <SerialNO>2013030429</SerialNO> <TotalDNSRecord>1</TotalDNSRecord> <DNSList> <DNSRecord> <DNS_ID>Qx9Bzf5X2PpWPyGiE9r7I0clOYz7YvNHw9fTe_9fgyY</DNS_ID> <DomainName>cdns.pandev.mygrid.asia</DomainName> <RecordName>toy</RecordName> <Type>PA</Type> <Content>test123</Content> <Description>test</Description> <TTL>60</TTL> <MemberAccessID>6Igu5ccmk7AWYUkA5vkRi1WEiMEk58</MemberAccessID> <MemberLogin>tommy</MemberLogin> <LastUpdateDate>20130307T07:56:21Z</LastUpdateDate><SubscriptionID>DLNIHapHhaDQKgCDssjglJhxnEO_HlA</SubscriptionID> <PlanID>l0IHqWR_VdK8acfJBmWJmWEp_R6IJi28GpFzVcOm80</PlanID> <PlanName>Premium Plan B 3 Month</PlanName> <PlanDescription>Premium Plan B 3 month</PlanDescription> <SubscribeDate>20130109T17:23:43Z</SubscribeDate> <ExpiryDate>20131009T17:23:46Z</ExpiryDate> <IsExpired>N</IsExpired> <IsSuspended>N</IsSuspended> <SuspensionDate>20130314T11:18:29Z</SuspensionDate> </DNSRecord> </DNSList> </CloudDNS> or show following if no record found <CloudAPI> <StatusCode>NoRecordFound</StatusCode> <Message>No record found</Message> </CloudAPI> Possible Errors
Error Code Error Description HTTP Status
Code