Cloud DNS Client API Development Guideline (v1.1) (Date : 23th April, 2013) Power All Networks Ltd. 1
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 2
Section 1 API List for CDNS Following are available client API for DNS access. API Type API ID API Name General API CDNS GEN 0001 create_load_balance CDNS GEN 0002 CDNS GEN 0003 CDNS GEN 0004 CDNS GEN 0005 CDNS GEN 0006 CDNS GEN 0007 CDNS GEN 0008 CDNS GEN 0009 CDNS GEN 0010 CDNS GEN 0011 CDNS GEN 0012 CDNS GEN 0013 CDNS GEN 0014 CDNS GEN 0015 create_failover search_dns_rule show_rule_detail remove_rule update_load_balance update_failover create_domain_parking update_doman_parking remove_domain_parking search_domain_parking dns_add_record dns_update_record dns_remove_record dns_search_record 3
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 4
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 _. 5
API Specification API ID CDNS GEN 0001 REST http method PUT API Name API Type Description REST URI Input Parameters Note Input XML create_load_balance General API Create load balancing rule. (i.e. A list of IP) http://a.cdns.mygrid.asia/create_load_balance/locale/en Locale Code For Weight method, can enter 1 or above value for <HostWeight> For <MonitorType>, support T (TCP). If choose TCP, enter port no. in <MonitorPortNO> <AddLoadBalance> <MainDataProfile> <Type>D</Type> (D DNS base, U URL base) <Method>R</Method> (R Round Robin, W Weight) <DNSName>skywalk</DNSName> <MemberAccessID>6Igu5ccmk7AWYUkA5vkRi1WEiMEk5811</MemberAccessID> <SubscriptionID></SubscriptionID> (optional) <Description>this is first input.</description> </MainDataProfile> <Monitor> <EnableMonitor>Y</EnableMonitor> (Y YES, N NO) <MonitorType>P</MonitorType> (P Ping, A API Call, T TCP) <AlertTimes>3</AlertTimes> <AutoFailover>Y</AutoFailover> (Y Yes, N No) <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> (M manual, A Auto) <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 ( )) 6
Return http status 201 <HostWeight>1</HostWeight> </HostRecord> </HostRecordList> </AddLoadBalance> 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 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 7
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 8
API ID CDNS GEN 0002 REST http method PUT API Name API Type Description REST URI Input Parameters Note Input XML create_failover General API create failover (support host name or IP) http://a.cdns.mygrid.asia/create_failover/locale/en Locale Code Add DNS record for host which <HostPriority> value is lowest. <HostPriority> 1 is highest priority. Higher value has lower priority. <AddFailover> <MainDataProfile> <Type>H</Type> (IP IP address, H Host) <Method>M</Method> (M manual, A Auto) <DNSName>skywalk</DNSName> <MemberAccessID>6Igu5ccmk7AWYUkA5vkRi1WEiMEk58</MemberAccessID> <SubscriptionID></SubscriptionID> (optional) <Description></Description> </MainDataProfile> <Monitor> <EnableMonitor>Y</EnableMonitor> (Y YES, N NO) <MonitorType>P</MonitorType> (P Ping, A API Call, T TCP) <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> (Y Yes, N No) <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 9
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 10
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 11
API ID CDNS GEN 0003 REST http method PUT API Name API Type Description REST URI Input Parameters Input XML search_dns_rule General API search DNS rule record due to different criteria http://a.cdns.mygrid.asia/search_dns_rule/locale/en Locale Code <SearchDNSRule> <RuleID></RuleID> <SubscriptionID></SubscriptionID> <ServiceType></ServiceType> (LB load balance, FO Failover) <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 Output for success case 200 <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>2013 01 09T17:23:43Z</SubscribeDate> <ExpiryDate>2013 10 09T17:23:46Z</ExpiryDate> <IsExpired>N</IsExpired> <IsSuspended>N</IsSuspended> <SuspensionDate>2013 03 14T11:18:29Z</SuspensionDate> <ServiceType>LB</ServiceType> <DNSName>boxing</DNSName> 12
<Name>boxing.cdns.mygrid.asia</Name> <RuleDesc>it is desc</ruledesc> <OwnerID>QoD0IP8BPXZRgO7ekBKK2PKaMYB3wH</OwnerID> <OwnerLogin>testing</OwnerLogin> <LastUpdateDate>2012 08 01T09: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> (Y YES, N NO) <IP_HostPossibleDown>Y</IP_HostPossibleDown>(Y YES, N NO) <IP_HostHasDNSRecord>Y</IP_HostHasDNSRecord>(Y YES, N NO) <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 13
API ID CDNS GEN 0004 REST http method GET API Name API Type Description REST URI Input Parameters Input XML Return http status Note Output for success case show_rule_detail General API search DNS rule record due to different criteria http://a.cdns.mygrid.asia/show_rule_detail/locale/en/rule_id/dksfjksdfjkdsfjkdlsfjk Locale Code Rule ID No XML 200 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. <CloudDNS> <RuleProfile> <RuleID>betstvfCNy0mql7 JYzzXjSBaquCWXXxIpMq6id0S64</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>2013 01 09T17:23:43Z</SubscribeDate> <ExpiryDate>2013 10 09T17: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>2012 08 02T10: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> 14
<MonitorPortNO>23</MonitorPortNO> </MonitorProfile> <Fallback> <FallbackMethod>M</FallbackMethod> For load balance, M manual and A Auto or <IsAutoFallback>Y</IsAutoFallback> For Failover, Y Yes and N No <NoOfSucccessForAutoFallback>3</NoOfSucccessForAutoFallback> </Fallback> <HostList> <HostRecord> <IP_Host>banana.com</IP_Host> <IP_HostDesc>banana</IP_HostDesc> <IP_HostEnable>Y</IP_HostEnable> (Y YES, N NO) <IP_HostPossibleDown>N</IP_HostPossibleDown> (Y YES, N NO) <IP_HostHasDNSRecord>Y</IP_HostHasDNSRecord>(Y YES, N NO) <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 15
API ID CDNS GEN 0005 REST http method DELETE API Name API Type Description REST URI Input Parameters Input XML Return http status Note Output for success case remove_rule General API Remove specified rule http://a.cdns.mygrid.asia/remove_rule/locale/en/rule_id/dksfjksdfjkdsfjkdlsfjk Locale Code Rule ID No XML 200 If use member account to call, only remove own rule. If use admin. account, can remove any user s rule. <CloudAPI> <StatusCode>SuccessCall</StatusCode> <Message>The request is run successfully.</message> </CloudAPI> Possible Errors Error Code Error Description HTTP Status Code NoAccessRight no access right 400 NoSuchRuleID No such rule ID 400 16
API ID CDNS GEN 0006 REST http method PUT API Name API Type Description REST URI Input Parameters Note Input XML update_load_balance General API Update load balancing rule. (i.e. A list of IP) http://a.cdns.mygrid.asia/update_load_balance/locale/en Locale Code <HostEnable> is to control whether enable DNS record. At least one record should be enabled. <UpdateLoadBalance> <RuleID>kJpZX rn_rujv8ztxogwjwov2lnekd64fhyz5jwmoz0</ruleid> <NewRecord> <MainDataProfile> <Type>D</Type> (D DNS base, U URL base) <Method>R</Method> (R Round Robin, W Weight) <DNSName>skywalk</DNSName> <MemberAccessID>6Igu5ccmk7AWYUkA5vkRi1WEiMEk58</MemberAccessID> <Description></Description> </MainDataProfile> <Monitor> <EnableMonitor>Y</EnableMonitor> (Y YES, N NO) <MonitorType>P</MonitorType> (P Ping, A API Call) <AlertTimes>3</AlertTimes> <AutoFailover>Y</AutoFailover> (Y Yes, N No) <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> (M manual, A Auto) <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> 17
Return http status 201 </NewRecord> </UpdateLoadBalance> 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 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 18
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 19
API ID CDNS GEN 0007 REST http method PUT API Name API Type Description REST URI Input Parameters Note Input XML update_failover General API update failover (support host name or IP) http://a.cdns.mygrid.asia/update_failover/locale/en Locale Code <HostPriority> 1 is highest priority. Higher value has lower priority. Only 1 DNS record be added which <HostEnable> is Y. <UpdateFailover> <RuleID>vNqOGmWH9 CEPOOkHm8DN9Y7e60yxLkwiXKzFiytVcI</RuleID> <NewRecord> <MainDataProfile> <Type>H</Type> (IP IP address, H Host) <Method>M</Method> (M manual, A Auto) <DNSName>skywalk</DNSName> <MemberAccessID>6Igu5ccmk7AWYUkA5vkRi1WEiMEk58</MemberAccessID> <Description></Description> </MainDataProfile> <Monitor> <EnableMonitor>Y</EnableMonitor> (Y YES, N NO) <MonitorType>P</MonitorType> (P Ping, A API 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> (Y Yes, N No) <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> 20
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 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 21
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 22
API ID CDNS GEN 0008 REST http method PUT API Name API Type Description REST URI Input Parameters Note Input XML create_domain_parking General API Create domain parking http://a.cdns.mygrid.asia/create_domain_parking/locale/en Locale Code Add domain parking reocrd. <AddDomainParking> <ParkDomainName>abc.com</ParkDomainName> <SerialNO></SerialNO> (optional field. If not enter, generate by system with format YYYYMMDD00 e.g. 2013022800) Return http status 201 <MemberAccessID>61gu5ccmk7AWYUkA5vkRi1WEiMEk58</MemberAccessID> <SubscriptionID>DLNIHapHhaDQKgCDssjglJhxnEO_HUV7XOdcUkSX_lB</Subs criptionid> </AddDomainParking> 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 MissingDomain missing domain 400 InvalidDomain invalid domain 400 InvalidSerialNO invalid DNS serial no 400 FailCreateDomainParking Fail to create domain parking 400 23
API ID CDNS GEN 0009 REST http method PUT API Name API Type Description REST URI Input Parameters Note Input XML update_domain_parking General API Update domain parking http://a.cdns.mygrid.asia/update_domain_parking/locale/en Locale Code Update domain parking reocrd. <UpdateDomainParking> <ParkDomainID>CcXVr E1nVHxiJ3F oyxzinidjgv311dvi</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 Errors Error 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 24
API ID CDNS GEN 0010 REST http method DELETE API Name API Type Description REST URI Input Parameters Note remove_domain_parking General API Remove domain parking http://a.cdns.mygrid.asia/remove_domain_parking/locale/en/domain_id/ccxvr E1nV HxiJ3F oyxzinidjgv311dvi Locale Code 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 Errors Error Code Error Description HTTP Status Code NotExistDomainParkingRecord the parking record not exist 400 FailRemoveDomainParking Fail to remove domain parking record 400 25
API ID CDNS GEN 0011 REST http method PUT API Name API Type Description REST URI Input Parameters Note Input XML search_domain_parking General API Search domain parking record(s) http://a.cdns.mygrid.asia/search_domain_parking/locale/en Locale Code search domain parking reocrd. <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>CcXVr E1nVHxiJ3F oyxzinidjg1dv</parkeddomainid> <ParkedDomainName>abctest.com</ParkedDomainName> <SerialNumber>2013022700</SerialNumber> <MemberAccessID>6Igu5ccmk7AWYUkA5vkRi1WEiMEk58</MemberAccessID> <MemberLogin>tommy</MemberLogin> <LastUpdateDate>2013 02 27T08: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>2013 01 09T17:23:43Z</SubscribeDate> 26
<ExpiryDate>2013 10 09T17:23:46Z</ExpiryDate> <IsExpired>N</IsExpired> <IsSuspended>N</IsSuspended> <SuspensionDate>2013 03 14T11: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 27
API ID CDNS GEN 0012 REST http method PUT API Name API Type Description REST URI Input Parameters dns_add_record General API Create DNS record for cdns.mygrid.asia or parked domain http://a.cdns.mygrid.asia/dns_add_record/locale/en 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> (sub domain 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 Errors Error Code Error Description HTTP Status Code 28
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 29
API ID CDNS GEN 0013 REST http method PUT API Name API Type Description REST URI Input Parameters dns_update_record General API Update DNS record for cdns.mygrid.asia or parked domain http://a.cdns.mygrid.asia/dns_update_record/locale/en 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>UJ4BpIhiV0EWhNwr4NjfUVSSofYW8 5_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 Errors Error 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 MissingIP Missing IP address 400 30
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 31
API ID CDNS GEN 0014 REST http method DELETE API Name API Type Description REST URI Input Parameters dns_delete_record General API Delete DNS record http://a.cdns.mygrid.asia/dns_remove_record/locale/en/dns_id/uj4bpihiv0ewhnwr4n Locale Code DNS ID Note Input XML No XML Return http status 200 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 NotExistDNSRecord No such DNS record 400 FailRemoveDNSRecord Fail to remove DNS record 400 32
API ID CDNS GEN 0015 REST http method PUT API Name API Type Description REST URI Input Parameters Note Input XML dns_search_record General API Search DNS record under cdns.mygrid.asia or parked domain http://a.cdns.mygrid.asia/dns_search_record/locale/en Locale Code Iput the searching criteria in XML. If not enter value in XML, it will show out all records. <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>2013 03 07T07:56:21Z</LastUpdateDate> 33
<SubscriptionID>DLNIHapHhaDQKgCDssjglJhxnEO_HlA</SubscriptionID> <PlanID>l0IHqWR _VdK8acfJBmWJmWEp_R6IJi28GpFzVcOm80</PlanID> <PlanName>Premium Plan B 3 Month</PlanName> <PlanDescription>Premium Plan B 3 month</plandescription> <SubscribeDate>2013 01 09T17:23:43Z</SubscribeDate> <ExpiryDate>2013 10 09T17:23:46Z</ExpiryDate> <IsExpired>N</IsExpired> <IsSuspended>N</IsSuspended> <SuspensionDate>2013 03 14T11: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 NotSupportedDNSType Not supported DNS type 400 34