Cloud DNS Client API. Development Guideline

Similar documents
MXSAVE XMLRPC Web Service Guide. Last Revision: 6/14/2012

API V2.0. Documentation 7/28/2014

AusCERT Remote Monitoring Service (ARMS) User Guide for AusCERT Members

Our server platform consists of Microsoft Windows 2008 servers with SQL Server 2005 which are under 24/24 monitoring.

API of DNS hosting. For DNS-master and Secondary services Table of contents

Copyright

login timeout 30 access list ALL line 20 extended permit ip any any port 9053 interval 15 passdetect interval 30

Configuring SSL Termination

COMODO CERTIFICATE MANAGER. Simplify SSL Certificate Management Across the Enterprise

API Commands Reseller Partners

API documentation - 1 -

Configuring SSL Termination

IBM Security QRadar SIEM Version MR1. Vulnerability Assessment Configuration Guide

Startup guide for Zimonitor

Elastic Load Balancing. API Reference API Version

Application Note Configuring the Synapse SB67070 SIP Gateway for Broadvox GO! SIP Trunking

LifeSize UVC Access Deployment Guide

Setting Up Scan to SMB on TaskALFA series MFP s.

HOST EUROPE CLOUD STORAGE REST API DEVELOPER REFERENCE

Domain Name System :49:44 UTC Citrix Systems, Inc. All rights reserved. Terms of Use Trademarks Privacy Statement

Global Server Load Balancing (GSLB) Concepts

Configuring Nex-Gen Web Load Balancer

F-SECURE MESSAGING SECURITY GATEWAY

LifeSize Transit Deployment Guide June 2011

Elastic Load Balancing. API Reference API Version

enom, Inc. API response codes

CumuLogic Load Balancer Overview Guide. March CumuLogic Load Balancer Overview Guide 1

Pcounter Web Administrator User Guide - v Pcounter Web Administrator User Guide Version 1.0

Aspen Cloud Server Management Console

Qualys API V1. User Guide. Version 8.6

Understanding Slow Start

Cisco TelePresence Authenticating Cisco VCS Accounts Using LDAP

Contents. 2 Alfresco API Version 1.0

Configuration Manual English version

THE MASTER LIST OF DNS TERMINOLOGY. v 2.0

Aliun Server Load Balancer API Reference Version

HREP Series DVR DDNS Configuration Application Note

FortiOS Handbook - Load Balancing VERSION 5.2.2

Pass Through Proxy. How-to. Overview:..1 Why PTP?...1

LBA API Manual Ver.1.0.1

Flight Workflow User's Guide. Release

Flexible Identity Federation

Release Notes. CTERA Portal May CTERA Portal Release Notes 1

LifeSize UVC Video Center Deployment Guide

Building a Scale-Out SQL Server 2008 Reporting Services Farm

THE MASTER LIST OF DNS TERMINOLOGY. First Edition

Copyright 2013, 3CX Ltd.

User Manual Online Clinical Trial Application & Monitoring System

Compute RESTful API. Programmer s Guide. Revision 1.4 (11/10/2013) COMPUTE RESTFUL API

Adobe Marketing Cloud First-Party Cookies

DMH remote access. Table of Contents. Project : remote_access_dmh Date: 29/05/12 pg. 1

Configuration Worksheets for Oracle WebCenter Ensemble 10.3

Grandstream Networks, Inc. GXP2130/2140/2160 Auto-configuration Plug and Play

1 of 21 9/22/11 10:41 AM

Polycom Phones User Guide Bicom Systems

Grandstream Networks, Inc. UCM6100 Security Manual

Application Note. Onsight Connect Network Requirements v6.3

Managing Qualys Scanners

How To - Configure Virtual Host using FQDN How To Configure Virtual Host using FQDN

LifeSize UVC Multipoint Deployment Guide

Lab - Observing DNS Resolution

Web Application Firewall

Configuring Failover

System Admin Module User Guide. Schmooze Com Inc.

Adaptive Log Exporter Users Guide

IP Filtering for Patton RAS Products

Domain Name System (DNS)

Camilyo APS package by Techno Mango Service Provide Deployment Guide Version 1.0

Availability Monitoring using Http Ping

FILECLOUD HIGH AVAILABILITY

US Secure Web API. Version 1.6.0

Check list for web developers

There are numerous ways to access monitors:

Configuring Security Features of Session Recording

Cloud Services. Introduction...2 Overview...2. Security considerations Installation...3 Server Configuration...4

Safeguard Ecommerce Integration / API

Qualys API Release Notes

WhatsUp Gold v16.1 Installation and Configuration Guide

HireDesk API V1.0 Developer s Guide

Load balancer (VPX) Manual

Configuring. Moodle. Chapter 82

Issue 2EN. Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation

Distributor Control Center Private Label/Channel Administrators

Aastra Models 9000i and 6700i Series SIP IP Phones. SIP Release Notes

Assets, Groups & Networks

Working Folder Linkage Setup Guide

Polycom RealPresence Resource Manager System Administrator s Guide

How to Enable LDAP Directory Services Authentication to Microsoft Active Directory in the HP cclass Onboard Administrator

Using LifeSize systems with Microsoft Office Communications Server Server Setup

The Erado Hosted Messaging Installation Process Erado Hosted Mail Services with Domain Transfer

qliqdirect Active Directory Guide

ACS 5.x and later: Integration with Microsoft Active Directory Configuration Example

Application Note. Onsight TeamLink And Firewall Detect v6.3

CS312 Solutions #6. March 13, 2015

Clearswift SECURE Gateway V3.*

Development Guideline

FortiOS Handbook Load Balancing for FortiOS 5.0

Deploying the BIG-IP System v11 with DNS Servers

Working With Virtual Hosts on Pramati Server

DigiCert User Guide. Version 4.1

Transcription:

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