chenhao 4 anni fa
parent
commit
9973fe01b4
43 ha cambiato i file con 4158 aggiunte e 57 eliminazioni
  1. 60 56
      application/api/controller/Office.php
  2. 37 0
      application/api/controller/User.php
  3. 184 0
      application/api/controller/WeChat.php
  4. 57 1
      application/common.php
  5. 16 0
      extend/api_sdk/LICENSE
  6. 24 0
      extend/api_sdk/composer.json
  7. 19 0
      extend/api_sdk/composer.lock
  8. 76 0
      extend/api_sdk/lib/Api/Sms/Request/V20170525/QueryInterSmsIsoInfoRequest.php
  9. 103 0
      extend/api_sdk/lib/Api/Sms/Request/V20170525/QuerySendDetailsRequest.php
  10. 121 0
      extend/api_sdk/lib/Api/Sms/Request/V20170525/SendBatchSmsRequest.php
  11. 131 0
      extend/api_sdk/lib/Api/Sms/Request/V20170525/SendInterSmsRequest.php
  12. 113 0
      extend/api_sdk/lib/Api/Sms/Request/V20170525/SendSmsRequest.php
  13. 125 0
      extend/api_sdk/lib/Core/AcsRequest.php
  14. 29 0
      extend/api_sdk/lib/Core/AcsResponse.php
  15. 72 0
      extend/api_sdk/lib/Core/Auth/Credential.php
  16. 12 0
      extend/api_sdk/lib/Core/Auth/ISigner.php
  17. 20 0
      extend/api_sdk/lib/Core/Auth/ShaHmac1Signer.php
  18. 20 0
      extend/api_sdk/lib/Core/Auth/ShaHmac256Signer.php
  19. 23 0
      extend/api_sdk/lib/Core/Config.php
  20. 124 0
      extend/api_sdk/lib/Core/DefaultAcsClient.php
  21. 50 0
      extend/api_sdk/lib/Core/Exception/ClientException.php
  22. 31 0
      extend/api_sdk/lib/Core/Exception/ServerException.php
  23. 69 0
      extend/api_sdk/lib/Core/Http/HttpHelper.php
  24. 38 0
      extend/api_sdk/lib/Core/Http/HttpResponse.php
  25. 7 0
      extend/api_sdk/lib/Core/IAcsClient.php
  26. 137 0
      extend/api_sdk/lib/Core/Profile/DefaultProfile.php
  27. 14 0
      extend/api_sdk/lib/Core/Profile/IClientProfile.php
  28. 47 0
      extend/api_sdk/lib/Core/Regions/Endpoint.php
  29. 63 0
      extend/api_sdk/lib/Core/Regions/EndpointConfig.php
  30. 53 0
      extend/api_sdk/lib/Core/Regions/EndpointProvider.php
  31. 28 0
      extend/api_sdk/lib/Core/Regions/ProductDomain.php
  32. 1358 0
      extend/api_sdk/lib/Core/Regions/endpoints.xml
  33. 207 0
      extend/api_sdk/lib/Core/RoaAcsRequest.php
  34. 105 0
      extend/api_sdk/lib/Core/RpcAcsRequest.php
  35. 7 0
      extend/api_sdk/vendor/autoload.php
  36. 445 0
      extend/api_sdk/vendor/composer/ClassLoader.php
  37. 21 0
      extend/api_sdk/vendor/composer/LICENSE
  38. 9 0
      extend/api_sdk/vendor/composer/autoload_classmap.php
  39. 9 0
      extend/api_sdk/vendor/composer/autoload_namespaces.php
  40. 10 0
      extend/api_sdk/vendor/composer/autoload_psr4.php
  41. 52 0
      extend/api_sdk/vendor/composer/autoload_real.php
  42. 31 0
      extend/api_sdk/vendor/composer/autoload_static.php
  43. 1 0
      extend/api_sdk/vendor/composer/installed.json

+ 60 - 56
application/api/controller/Office.php

@@ -23,14 +23,15 @@ class Office extends Api
      */
     public function parkLists()
     {
-        $parkModel = Park::where('switch',1)->order('sort desc')->select();
+        $parkModel = Park::where('switch', 1)->order('sort desc')->select();
 
         if ($parkModel) {
-            return $this->success('',$parkModel);
+            return $this->success('', $parkModel);
         } else {
-            return $this->success('暂无园区',[]);
+            return $this->success('暂无园区', []);
         }
     }
+
     /**
      * 搜索数据
      */
@@ -38,28 +39,29 @@ class Office extends Api
     {
         $data['area'] = Db::name('city')->order('eng asc')->select();
 
-        $data['num'] =[
-            '1'=>"全部",
-            '2'=>"0-10座",
-            '3'=>"10-30座",
-            '4'=>"30-50座",
-            '5'=>"20-100座",
-            '6'=>"100-200座",
-            '7'=>"200-300座",
-            '8'=>"300座以上",
+        $data['num'] = [
+            ['value' => "全部", 'key' => 1],
+            ['value' => "0-10座", 'key' => 2],
+            ['value' => "10-30座", 'key' => 3],
+            ['value' => "30-50座", 'key' => 4],
+            ['value' => "20-100座", 'key' => 5],
+            ['value' => "100-200座", 'key' => 6],
+            ['value' => "200-300座", 'key' => 7],
+            ['value' => "300座以上", 'key' => 8],
         ];
 
         $data['money'] = [
-            '1'=>"全部",
-            '2'=>"0-100/60分钟",
-            '3'=>"100-200/60分钟",
-            '4'=>"200-500/60分钟",
-            '5'=>"500-1000/60分钟",
-            '6'=>"1000+/60分钟",
+            ['value' => "全部", 'key' => 1],
+            ['value' => "0-100/60分钟", 'key' => 2],
+            ['value' => "100-200/60分钟", 'key' => 3],
+            ['value' => "200-500/60分钟", 'key' => 4],
+            ['value' => "500-1000/60分钟", 'key' => 5],
+            ['value' => "1000+/60分钟", 'key' => 6],
         ];
-        return $this->success('',$data);
+        return $this->success('', $data);
 
     }
+
     /**
      * 办公室列表
      * @param string $page 页数
@@ -85,39 +87,39 @@ class Office extends Api
         if (isset($area_id) && !empty($area_id)) $mp['c_id'] = $area_id;
 
         if (isset($num) && !empty($num)) {
-            if ($num==2) {
-                $mp['num'] = ['between','0,10'];
-            } else if($num==3) {
-                $mp['num'] = ['between','10,30'];
-            } else if($num==4) {
-                $mp['num'] = ['between','30,50'];
-            } else if ($num==5) {
-                $mp['num'] = ['between','50,100'];
-            } else if($num==6) {
-                $mp['num'] = ['between','100,200'];
-            } else if ($num==7) {
-                $mp['num'] = ['between','200,300'];
+            if ($num == 2) {
+                $mp['num'] = ['between', '0,10'];
+            } else if ($num == 3) {
+                $mp['num'] = ['between', '10,30'];
+            } else if ($num == 4) {
+                $mp['num'] = ['between', '30,50'];
+            } else if ($num == 5) {
+                $mp['num'] = ['between', '50,100'];
+            } else if ($num == 6) {
+                $mp['num'] = ['between', '100,200'];
+            } else if ($num == 7) {
+                $mp['num'] = ['between', '200,300'];
             } else if ($num == 8) {
-                $mp['num'] = ['>','300'];
+                $mp['num'] = ['>', '300'];
             }
         }
 
         if (isset($money) && !empty($money)) {
-            if ($money==2) {
-                $mp['money_num'] = ['between','0,100'];
-            } else if($money==3) {
-                $mp['money_num'] = ['between','100,200'];
-            } else if($num==4) {
-                $mp['money_num'] = ['between','200,500'];
-            } else if ($money==5) {
-                $mp['money_num'] = ['between','500,1000'];
-            } else if($money==6) {
-                $mp['money_num'] = ['>','1000'];
+            if ($money == 2) {
+                $mp['money_num'] = ['between', '0,100'];
+            } else if ($money == 3) {
+                $mp['money_num'] = ['between', '100,200'];
+            } else if ($num == 4) {
+                $mp['money_num'] = ['between', '200,500'];
+            } else if ($money == 5) {
+                $mp['money_num'] = ['between', '500,1000'];
+            } else if ($money == 6) {
+                $mp['money_num'] = ['>', '1000'];
             }
         }
         $user = $this->auth->getUser();
 
-        if ($user && $user['p_id'] !=0) $mp['p_id'] = $user['p_id'];
+        if ($user && $user['p_id'] != 0) $mp['p_id'] = $user['p_id'];
 
         $mp['switch'] = 1;
 
@@ -141,6 +143,7 @@ class Office extends Api
             return $this->success('暂无数据');
         }
     }
+
     /**
      * 办公室详情
      * @param string $id id
@@ -188,19 +191,19 @@ class Office extends Api
 
         $user = $this->auth->getUser();
 
-        $year = date('Y',time());
+        $year = date('Y', time());
 
-        $month = date('m',time());
+        $month = date('m', time());
 
-        $day = date('d',time());
+        $day = date('d', time());
 
         $data = [
-            'uid'=>$user['id'],
-            'oid'=>$oid,
-            'name'=>$name,
-            'phone'=>$phone,
-            'create_time'=>date('Y-m-d H:i:s',time()),
-            'number'=>$year.$month.$day.'N'.rand(0,10000),
+            'uid'         => $user['id'],
+            'oid'         => $oid,
+            'name'        => $name,
+            'phone'       => $phone,
+            'create_time' => date('Y-m-d H:i:s', time()),
+            'number'      => $year . $month . $day . 'N' . rand(0, 10000),
         ];
 
         $model = new OfficeOrderModel();
@@ -209,11 +212,12 @@ class Office extends Api
 
         if ($ins) {
             $id = $model->getLastInsID();
-            return $this->success('申请成功',['id' =>$id]);
+            return $this->success('申请成功', ['id' => $id]);
         } else {
-            return $this->error('申请失败哦!',['id' =>0]);
+            return $this->error('申请失败哦!', ['id' => 0]);
         }
     }
+
     /**
      * 成功返回数据
      * @param string $id 订单id
@@ -227,8 +231,8 @@ class Office extends Api
         $model = new OfficeOrderModel();
         $data = $model
             ->with(['office'])
-            ->where('id',$id)
+            ->where('id', $id)
             ->select();
-        return $this->success('',$data);
+        return $this->success('', $data);
     }
 }

+ 37 - 0
application/api/controller/User.php

@@ -6,6 +6,7 @@ use app\common\controller\Api;
 use app\common\library\Ems;
 use app\common\library\Sms;
 use fast\Random;
+use think\Db;
 use think\Validate;
 
 /**
@@ -325,4 +326,40 @@ class User extends Api
             $this->error($this->auth->getError());
         }
     }
+    /**
+     * 发送验证码
+     *
+     * @param string $mobile 手机号
+     * @param string $type 1注册2忘记3修改密码
+     */
+    public function sendPhone()
+    {
+        $mobile = $this->request->param('mobile');
+        $type = $this->request->param('type');
+        if (!isset($type) || empty($type)) return $this->error('参数错误');
+
+        if ($type==1) {
+            $issetphone = Db::name('user')->where('mobile',$mobile)->find();
+
+            if (isset($issetphone)) return $this->error('此账号已存在');
+        }
+        if ($type == 3) {
+            $user = $this->auth->getUser();
+
+            $isuseourphone = Db::name('user')->where('id',$user['id'])->where('mobile',$mobile)->find();
+
+            if(!$isuseourphone) return $this->error('请使用本账号手机号修改密码');
+        }
+        $number = rand(1000, 9999);
+        session($mobile, $number);
+        $res = send_sms($mobile, 1, ['code' => $number]);
+        if (isset($res['Message']) && $res['Message'] == "OK") {
+            return $this->success('发送成功', $number);
+        } else {
+            return $this->error('发送失败');
+        }
+//        $send->index($mobile,$number);
+//        return $this->success('',$number);
+
+    }
 }

+ 184 - 0
application/api/controller/WeChat.php

@@ -0,0 +1,184 @@
+<?php
+
+namespace wechat;
+
+/**
+ * @package 微信授权控制器
+ */
+class WechatOauth
+{
+
+    //微信授权配置信息
+
+    private $wechat_config = [
+
+        'appid' => 'wxe02aa578255f9184 ',
+
+        'appsecret' => '39ec8add0b8d4ed794e9cb330a334538',
+
+    ];
+
+
+    public function __construct()
+    {
+
+        $this->wechat_config = $this->wechatConfig();
+
+    }
+
+    /**
+     * 获取秘钥配置
+     * @return [type] 数组
+     */
+
+    public function wechatConfig()
+    {
+
+        $wechat_config = array_merge($this->wechat_config, config('wechat.oauth'));
+
+        return $wechat_config;
+
+    }
+
+    /**
+     * 获取openid
+     * @return string|mixed
+     */
+
+    public function getUserAccessUserInfo($code = "")
+
+    {
+
+
+        if (empty($code)) {
+
+            $baseUrl = request()->url(true);
+
+            $url = $this->getSingleAuthorizeUrl($baseUrl, "123");
+
+            Header("Location: $url");
+
+            exit();
+
+        } else {
+
+            $access_token = $this->getSingleAccessToken($code);
+
+            return $this->getUserInfo($access_token);
+
+        }
+
+    }
+
+    /**
+     * 微信授权链接
+     * @param string $redirect_uri 要跳转的地址
+     * @return [type]               授权链接
+     */
+
+    public function getSingleAuthorizeUrl($redirect_url = "", $state = '1')
+    {
+
+        $redirect_url = urlencode($redirect_url);
+
+        return "https://open.weixin.qq.com/connect/oauth2/authorize?appid=" . $this->wechat_config['appid'] . "&redirect_uri=" . $redirect_url . "&response_type=code&scope=snsapi_userinfo&state={$state}#wechat_redirect";
+
+    }
+
+    /**
+     * 获取token
+     * @return [type] 返回token
+     */
+
+    public function getSingleAccessToken($code)
+    {
+
+        $url = 'https://api.weixin.qq.com/sns/oauth2/access_token?appid=' . $this->wechat_config['appid'] . '&secret=' . $this->wechat_config['appsecret'] . '&code=' . $code . '&grant_type=authorization_code';
+
+
+        $access_token = $this->https_request($url);
+
+        return $access_token;
+
+    }
+
+
+    /**
+     * 发送curl请求
+     * @param $url string
+     * @param return array|mixed
+     */
+
+    public function https_request($url)
+
+    {
+
+        $curl = curl_init();
+
+        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
+
+        curl_setopt($curl, CURLOPT_URL, $url);
+
+        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
+
+        $AjaxReturn = curl_exec($curl);
+
+        //获取access_token和openid,转换为数组
+
+        $data = json_decode($AjaxReturn, true);
+
+        curl_close($curl);
+
+        return $data;
+
+    }
+
+    /**
+     * @explain
+     * 通过code获取用户openid以及用户的微信号信息
+     * @return array|mixed
+     * @remark
+     * 获取到用户的openid之后可以判断用户是否有数据,可以直接跳过获取access_token,也可以继续获取access_token
+     * access_token每日获取次数是有限制的,access_token有时间限制,可以存储到数据库7200s. 7200s后access_token失效
+     **/
+
+    public function getUserInfo($access_token = [])
+
+    {
+
+        if (!$access_token) {
+
+            return [
+
+                'code' => 0,
+
+                'msg' => '微信授权失败',
+
+            ];
+
+        }
+
+        $userinfo_url = 'https://api.weixin.qq.com/sns/userinfo?access_token=' . $access_token['access_token'] . '&openid=' . $access_token['openid'] . '&lang=zh_CN';
+
+        $userinfo_json = $this->https_request($userinfo_url);
+
+
+        //获取用户的基本信息,并将用户的唯一标识保存在session中
+
+        if (!$userinfo_json) {
+
+            return [
+
+                'code' => 0,
+
+                'msg' => '获取用户信息失败!',
+
+            ];
+
+        }
+
+        return $userinfo_json;
+
+    }
+
+}

+ 57 - 1
application/common.php

@@ -3,7 +3,63 @@
 // 公共助手函数
 
 use Symfony\Component\VarExporter\VarExporter;
-
+/**
+ * 短信发送
+ * @param $to    接收人
+ * @param $model    短信模板ID
+ * @param $code   短信验证码
+ * @return json
+ * @说明:有优惠,先领卷在购买,不谢!https://promotion.aliyun.com/ntms/yunparter/invite.html?userCode=ob1nyal1
+ */
+function send_sms($to, $model, $code){
+    require_once '../extend/api_sdk/vendor/autoload.php';
+    Config::load(); //加载区域结点配置
+//    $config = '根据你的实际情况读取配置文件或读取数据库,本项目是将配置写入数据库实现';
+    $accessKeyId = 'LTAI4GGHYnigJZtb9ZVr5tdo';
+    $accessKeySecret = 'nbXS7PqEtjwfK9PknuaYaa9qKKCsrp';
+    $templateParam = $code;
+    //短信签名
+    $signName = "剑桥个性学评";
+    //短信模板ID
+    switch($model){
+        case 1:
+            $templateCode = "SMS_205894272"; // 注册登录短信验证码模板
+            break;
+        case 2:
+            $templateCode = $config['model_code_reset']; // 重置密码短信验证码模板
+            break;
+    }
+    //短信API产品名(短信产品名固定,无需修改)
+    $product = "Dysmsapi";
+    //短信API产品域名(接口地址固定,无需修改)
+    $domain = "dysmsapi.aliyuncs.com";
+    //暂时不支持多Region(目前仅支持cn-hangzhou请勿修改)
+    $region = "cn-hangzhou";
+    // 初始化用户Profile实例
+    $profile = DefaultProfile::getProfile($region, $accessKeyId, $accessKeySecret);
+    // 增加服务结点
+    DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", $product, $domain);
+    // 初始化AcsClient用于发起请求
+    $acsClient= new DefaultAcsClient($profile);
+    // 初始化SendSmsRequest实例用于设置发送短信的参数
+    $request = new SendSmsRequest();
+    // 必填,设置雉短信接收号码
+    $request->setPhoneNumbers($to);
+    // 必填,设置签名名称
+    $request->setSignName($signName);
+    // 必填,设置模板CODE
+    $request->setTemplateCode($templateCode);
+    // 可选,设置模板参数
+    if($templateParam) {
+        $request->setTemplateParam(json_encode($templateParam));
+    }
+    //发起访问请求
+    $acsResponse = $acsClient->getAcsResponse($request);
+    //返回请求结果
+    $result = json_decode(json_encode($acsResponse),true);
+    // 具体返回值参考文档:https://help.aliyun.com/document_detail/55451.html?spm=a2c4g.11186623.6.563.YSe8FK
+    return $result;
+}
 if (!function_exists('__')) {
 
     /**

+ 16 - 0
extend/api_sdk/LICENSE

@@ -0,0 +1,16 @@
+Licensed to the Apache Software Foundation (ASF) under one
+or more contributor license agreements.  See the NOTICE file
+distributed with this work for additional information
+regarding copyright ownership.  The ASF licenses this file
+to you under the Apache License, Version 2.0 (the
+"License"); you may not use this file except in compliance
+with the License.  You may obtain a copy of the License at
+
+    http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing,
+software distributed under the License is distributed on an
+"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+KIND, either express or implied.  See the License for the
+specific language governing permissions and limitations
+under the License.

+ 24 - 0
extend/api_sdk/composer.json

@@ -0,0 +1,24 @@
+{
+    "name": "aliyuncs/aliyun-dysms-php-sdk",
+    "description": "Aliyun SMS SDK for PHP",
+    "keywords": [ "aliyun", "SMS", "sdk" ],
+    "type": "library",
+    "license": "Apache-2.0",
+    "homepage": "https://www.aliyun.com/product/sms",
+    "authors": [
+        {
+            "name": "Aliyuncs",
+            "homepage": "https://www.aliyun.com"
+        }
+    ],
+    "require": {
+        "php": ">=5.5.0"
+    },
+    "require-dev": {},
+    "minimum-stability": "stable",
+    "autoload": {
+        "psr-4": {
+            "Aliyun\\": "lib/"
+        }
+    }
+}

+ 19 - 0
extend/api_sdk/composer.lock

@@ -0,0 +1,19 @@
+{
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
+        "This file is @generated automatically"
+    ],
+    "content-hash": "e6fcb8fd9ccf5556fdaaedfd9a4d638f",
+    "packages": [],
+    "packages-dev": [],
+    "aliases": [],
+    "minimum-stability": "stable",
+    "stability-flags": [],
+    "prefer-stable": false,
+    "prefer-lowest": false,
+    "platform": {
+        "php": ">=5.5.0"
+    },
+    "platform-dev": []
+}

+ 76 - 0
extend/api_sdk/lib/Api/Sms/Request/V20170525/QueryInterSmsIsoInfoRequest.php

@@ -0,0 +1,76 @@
+<?php
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+namespace Aliyun\Api\Sms\Request\V20170525;
+
+use Aliyun\Core\RpcAcsRequest;
+
+class QueryInterSmsIsoInfoRequest extends RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("Dysmsapi", "2017-05-25", "QueryInterSmsIsoInfo");
+		$this->setMethod("POST");
+	}
+
+	private  $resourceOwnerAccount;
+
+	private  $countryName;
+
+	private  $resourceOwnerId;
+
+	private  $ownerId;
+
+	public function getResourceOwnerAccount() {
+		return $this->resourceOwnerAccount;
+	}
+
+	public function setResourceOwnerAccount($resourceOwnerAccount) {
+		$this->resourceOwnerAccount = $resourceOwnerAccount;
+		$this->queryParameters["ResourceOwnerAccount"]=$resourceOwnerAccount;
+	}
+
+	public function getCountryName() {
+		return $this->countryName;
+	}
+
+	public function setCountryName($countryName) {
+		$this->countryName = $countryName;
+		$this->queryParameters["CountryName"]=$countryName;
+	}
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getOwnerId() {
+		return $this->ownerId;
+	}
+
+	public function setOwnerId($ownerId) {
+		$this->ownerId = $ownerId;
+		$this->queryParameters["OwnerId"]=$ownerId;
+	}
+	
+}

+ 103 - 0
extend/api_sdk/lib/Api/Sms/Request/V20170525/QuerySendDetailsRequest.php

@@ -0,0 +1,103 @@
+<?php
+
+namespace Aliyun\Api\Sms\Request\V20170525;
+
+use Aliyun\Core\RpcAcsRequest;
+
+class QuerySendDetailsRequest extends RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("Dysmsapi", "2017-05-25", "QuerySendDetails");
+		$this->setMethod("POST");
+	}
+
+	private  $sendDate;
+
+	private  $pageSize;
+
+	private  $phoneNumber;
+
+	private  $resourceOwnerAccount;
+
+	private  $currentPage;
+
+	private  $bizId;
+
+	private  $resourceOwnerId;
+
+	private  $ownerId;
+
+	public function getSendDate() {
+		return $this->sendDate;
+	}
+
+	public function setSendDate($sendDate) {
+		$this->sendDate = $sendDate;
+		$this->queryParameters["SendDate"]=$sendDate;
+	}
+
+	public function getPageSize() {
+		return $this->pageSize;
+	}
+
+	public function setPageSize($pageSize) {
+		$this->pageSize = $pageSize;
+		$this->queryParameters["PageSize"]=$pageSize;
+	}
+
+	public function getPhoneNumber() {
+		return $this->phoneNumber;
+	}
+
+	public function setPhoneNumber($phoneNumber) {
+		$this->phoneNumber = $phoneNumber;
+		$this->queryParameters["PhoneNumber"]=$phoneNumber;
+	}
+
+	public function getResourceOwnerAccount() {
+		return $this->resourceOwnerAccount;
+	}
+
+	public function setResourceOwnerAccount($resourceOwnerAccount) {
+		$this->resourceOwnerAccount = $resourceOwnerAccount;
+		$this->queryParameters["ResourceOwnerAccount"]=$resourceOwnerAccount;
+	}
+
+	public function getCurrentPage() {
+		return $this->currentPage;
+	}
+
+	public function setCurrentPage($currentPage) {
+		$this->currentPage = $currentPage;
+		$this->queryParameters["CurrentPage"]=$currentPage;
+	}
+
+	public function getBizId() {
+		return $this->bizId;
+	}
+
+	public function setBizId($bizId) {
+		$this->bizId = $bizId;
+		$this->queryParameters["BizId"]=$bizId;
+	}
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getOwnerId() {
+		return $this->ownerId;
+	}
+
+	public function setOwnerId($ownerId) {
+		$this->ownerId = $ownerId;
+		$this->queryParameters["OwnerId"]=$ownerId;
+	}
+	
+}

+ 121 - 0
extend/api_sdk/lib/Api/Sms/Request/V20170525/SendBatchSmsRequest.php

@@ -0,0 +1,121 @@
+<?php
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+namespace Aliyun\Api\Sms\Request\V20170525;
+
+use Aliyun\Core\RpcAcsRequest;
+
+class SendBatchSmsRequest extends RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("Dysmsapi", "2017-05-25", "SendBatchSms");
+		$this->setMethod("POST");
+	}
+
+	private  $templateCode;
+
+	private  $templateParamJson;
+
+	private  $resourceOwnerAccount;
+
+	private  $smsUpExtendCodeJson;
+
+	private  $resourceOwnerId;
+
+	private  $signNameJson;
+
+	private  $ownerId;
+
+	private  $phoneNumberJson;
+
+	public function getTemplateCode() {
+		return $this->templateCode;
+	}
+
+	public function setTemplateCode($templateCode) {
+		$this->templateCode = $templateCode;
+		$this->queryParameters["TemplateCode"]=$templateCode;
+	}
+
+	public function getTemplateParamJson() {
+		return $this->templateParamJson;
+	}
+
+	public function setTemplateParamJson($templateParamJson) {
+		$this->templateParamJson = $templateParamJson;
+		$this->queryParameters["TemplateParamJson"]=$templateParamJson;
+	}
+
+	public function getResourceOwnerAccount() {
+		return $this->resourceOwnerAccount;
+	}
+
+	public function setResourceOwnerAccount($resourceOwnerAccount) {
+		$this->resourceOwnerAccount = $resourceOwnerAccount;
+		$this->queryParameters["ResourceOwnerAccount"]=$resourceOwnerAccount;
+	}
+
+	public function getSmsUpExtendCodeJson() {
+		return $this->smsUpExtendCodeJson;
+	}
+
+	public function setSmsUpExtendCodeJson($smsUpExtendCodeJson) {
+		$this->smsUpExtendCodeJson = $smsUpExtendCodeJson;
+		$this->queryParameters["SmsUpExtendCodeJson"]=$smsUpExtendCodeJson;
+	}
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getSignNameJson() {
+		return $this->signNameJson;
+	}
+
+	public function setSignNameJson($signNameJson) {
+		$this->signNameJson = $signNameJson;
+		$this->queryParameters["SignNameJson"]=$signNameJson;
+	}
+
+	public function getOwnerId() {
+		return $this->ownerId;
+	}
+
+	public function setOwnerId($ownerId) {
+		$this->ownerId = $ownerId;
+		$this->queryParameters["OwnerId"]=$ownerId;
+	}
+
+	public function getPhoneNumberJson() {
+		return $this->phoneNumberJson;
+	}
+
+	public function setPhoneNumberJson($phoneNumberJson) {
+		$this->phoneNumberJson = $phoneNumberJson;
+		$this->queryParameters["PhoneNumberJson"]=$phoneNumberJson;
+	}
+	
+}

+ 131 - 0
extend/api_sdk/lib/Api/Sms/Request/V20170525/SendInterSmsRequest.php

@@ -0,0 +1,131 @@
+<?php
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+namespace Aliyun\Api\Sms\Request\V20170525;
+
+use Aliyun\Core\RpcAcsRequest;
+
+class SendInterSmsRequest extends RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("Dysmsapi", "2017-05-25", "SendInterSms");
+		$this->setMethod("POST");
+	}
+
+	private  $templateCode;
+
+	private  $phoneNumbers;
+
+	private  $countryCode;
+
+	private  $signName;
+
+	private  $resourceOwnerAccount;
+
+	private  $templateParam;
+
+	private  $resourceOwnerId;
+
+	private  $ownerId;
+
+	private  $outId;
+
+	public function getTemplateCode() {
+		return $this->templateCode;
+	}
+
+	public function setTemplateCode($templateCode) {
+		$this->templateCode = $templateCode;
+		$this->queryParameters["TemplateCode"]=$templateCode;
+	}
+
+	public function getPhoneNumbers() {
+		return $this->phoneNumbers;
+	}
+
+	public function setPhoneNumbers($phoneNumbers) {
+		$this->phoneNumbers = $phoneNumbers;
+		$this->queryParameters["PhoneNumbers"]=$phoneNumbers;
+	}
+
+	public function getCountryCode() {
+		return $this->countryCode;
+	}
+
+	public function setCountryCode($countryCode) {
+		$this->countryCode = $countryCode;
+		$this->queryParameters["CountryCode"]=$countryCode;
+	}
+
+	public function getSignName() {
+		return $this->signName;
+	}
+
+	public function setSignName($signName) {
+		$this->signName = $signName;
+		$this->queryParameters["SignName"]=$signName;
+	}
+
+	public function getResourceOwnerAccount() {
+		return $this->resourceOwnerAccount;
+	}
+
+	public function setResourceOwnerAccount($resourceOwnerAccount) {
+		$this->resourceOwnerAccount = $resourceOwnerAccount;
+		$this->queryParameters["ResourceOwnerAccount"]=$resourceOwnerAccount;
+	}
+
+	public function getTemplateParam() {
+		return $this->templateParam;
+	}
+
+	public function setTemplateParam($templateParam) {
+		$this->templateParam = $templateParam;
+		$this->queryParameters["TemplateParam"]=$templateParam;
+	}
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getOwnerId() {
+		return $this->ownerId;
+	}
+
+	public function setOwnerId($ownerId) {
+		$this->ownerId = $ownerId;
+		$this->queryParameters["OwnerId"]=$ownerId;
+	}
+
+	public function getOutId() {
+		return $this->outId;
+	}
+
+	public function setOutId($outId) {
+		$this->outId = $outId;
+		$this->queryParameters["OutId"]=$outId;
+	}
+	
+}

+ 113 - 0
extend/api_sdk/lib/Api/Sms/Request/V20170525/SendSmsRequest.php

@@ -0,0 +1,113 @@
+<?php
+
+namespace Aliyun\Api\Sms\Request\V20170525;
+
+use Aliyun\Core\RpcAcsRequest;
+
+class SendSmsRequest extends RpcAcsRequest
+{
+	public function  __construct()
+	{
+		parent::__construct("Dysmsapi", "2017-05-25", "SendSms");
+		$this->setMethod("POST");
+	}
+
+	private  $templateCode;
+
+	private  $phoneNumbers;
+
+	private  $signName;
+
+	private  $resourceOwnerAccount;
+
+	private  $templateParam;
+
+	private  $resourceOwnerId;
+
+	private  $ownerId;
+
+	private  $outId;
+
+    private  $smsUpExtendCode;
+
+	public function getTemplateCode() {
+		return $this->templateCode;
+	}
+
+	public function setTemplateCode($templateCode) {
+		$this->templateCode = $templateCode;
+		$this->queryParameters["TemplateCode"]=$templateCode;
+	}
+
+	public function getPhoneNumbers() {
+		return $this->phoneNumbers;
+	}
+
+	public function setPhoneNumbers($phoneNumbers) {
+		$this->phoneNumbers = $phoneNumbers;
+		$this->queryParameters["PhoneNumbers"]=$phoneNumbers;
+	}
+
+	public function getSignName() {
+		return $this->signName;
+	}
+
+	public function setSignName($signName) {
+		$this->signName = $signName;
+		$this->queryParameters["SignName"]=$signName;
+	}
+
+	public function getResourceOwnerAccount() {
+		return $this->resourceOwnerAccount;
+	}
+
+	public function setResourceOwnerAccount($resourceOwnerAccount) {
+		$this->resourceOwnerAccount = $resourceOwnerAccount;
+		$this->queryParameters["ResourceOwnerAccount"]=$resourceOwnerAccount;
+	}
+
+	public function getTemplateParam() {
+		return $this->templateParam;
+	}
+
+	public function setTemplateParam($templateParam) {
+		$this->templateParam = $templateParam;
+		$this->queryParameters["TemplateParam"]=$templateParam;
+	}
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getOwnerId() {
+		return $this->ownerId;
+	}
+
+	public function setOwnerId($ownerId) {
+		$this->ownerId = $ownerId;
+		$this->queryParameters["OwnerId"]=$ownerId;
+	}
+
+	public function getOutId() {
+		return $this->outId;
+	}
+
+	public function setOutId($outId) {
+		$this->outId = $outId;
+		$this->queryParameters["OutId"]=$outId;
+	}
+
+    public function getSmsUpExtendCode() {
+        return $this->smsUpExtendCode;
+    }
+
+    public function setSmsUpExtendCode($smsUpExtendCode) {
+        $this->smsUpExtendCode = $smsUpExtendCode;
+        $this->queryParameters["SmsUpExtendCode"]=$smsUpExtendCode;
+    }
+}

+ 125 - 0
extend/api_sdk/lib/Core/AcsRequest.php

@@ -0,0 +1,125 @@
+<?php
+
+namespace Aliyun\Core;
+
+abstract class AcsRequest
+{
+	protected  $version;
+	protected  $product;
+	protected  $actionName;
+	protected  $regionId;
+	protected  $acceptFormat;
+	protected  $method;
+	protected  $protocolType = "http";
+	protected  $content;
+	
+	protected $queryParameters = array();
+	protected $headers = array();
+	
+	function  __construct($product, $version, $actionName)
+	{
+	    $this->headers["x-sdk-client"] = "php/2.0.0";
+	    $this->product = $product;
+	    $this->version = $version;
+	    $this->actionName = $actionName;
+	}
+	
+	public abstract function composeUrl($iSigner, $credential, $domain);
+	
+	public function getVersion()
+	{
+		return $this->version;
+	}
+	
+	public function setVersion($version)
+	{
+		$this->version = $version;
+	}
+	
+	public function getProduct()
+	{
+		return $this->product;
+	}
+	
+	public function setProduct($product)
+	{
+		$this->product = $product;
+	}
+	
+	public function getActionName()
+	{
+		return $this->actionName;
+	}
+	
+	public function setActionName($actionName)
+	{
+		$this->actionName = $actionName;
+	}
+	
+	public function getAcceptFormat()
+	{
+		return	$this->acceptFormat;
+	}
+	
+	public function setAcceptFormat($acceptFormat)
+	{
+		$this->acceptFormat = $acceptFormat;
+	}
+	
+	public function getQueryParameters()
+	{
+		return $this->queryParameters;
+	}
+	
+	public function getHeaders()
+	{
+		return $this->headers;
+	}
+	
+	public function getMethod()
+	{
+		return $this->method;
+	}
+	
+	public function setMethod($method)
+	{
+		$this->method = $method;
+	}
+	
+	public function getProtocol()
+	{
+		return $this->protocolType;
+	}
+	
+	public function setProtocol($protocol)
+	{
+		$this->protocolType = $protocol;
+	}
+	
+	public function getRegionId()
+	{
+		return $this->regionId;
+	}
+	public function setRegionId($region)
+	{
+		$this->regionId = $region;
+	}
+	
+	public function getContent()
+    {
+        return $this->content;
+    }
+
+    public function setContent($content)
+    {
+        $this->content = $content;
+    } 
+        
+        
+    public function addHeader($headerKey, $headerValue)
+    {
+        $this->headers[$headerKey] = $headerValue;
+    } 
+	
+		
+}

+ 29 - 0
extend/api_sdk/lib/Core/AcsResponse.php

@@ -0,0 +1,29 @@
+<?php
+
+namespace Aliyun\Core;
+
+class AcsResponse
+{
+	private $code;	
+	private $message;
+	
+	public function getCode()
+	{
+		return $this->code;
+	}
+	
+	public function setCode($code)
+	{
+		$this->code = $code;
+	}
+	
+	public function getMessage()
+	{
+		return $this->message;
+	}
+	
+	public function setMessage($message)
+	{
+		$this->message = $message;
+	}
+}

+ 72 - 0
extend/api_sdk/lib/Core/Auth/Credential.php

@@ -0,0 +1,72 @@
+<?php
+
+namespace Aliyun\Core\Auth;
+
+class Credential
+{
+	private  $dateTimeFormat = 'Y-m-d\TH:i:s\Z'; 
+	private	 $refreshDate;
+	private  $expiredDate;
+	private  $accessKeyId;
+	private  $accessSecret;
+	private  $securityToken;
+	
+	function  __construct($accessKeyId, $accessSecret)
+	{
+	    $this->accessKeyId = $accessKeyId;
+	    $this->accessSecret = $accessSecret;
+	    $this->refreshDate = date($this->dateTimeFormat);
+	}
+	
+	public function isExpired()
+	{
+		if($this->expiredDate == null)
+		{
+			return false;
+		}
+		if(strtotime($this->expiredDate)>date($this->dateTimeFormat))
+		{
+			return false;
+		}
+		return true;
+	}
+	
+	public function getRefreshDate()
+	{
+		return $this->refreshDate;
+	}
+	
+	public function getExpiredDate()
+	{
+		return $this->expiredDate;
+	}
+	
+	public function setExpiredDate($expiredHours)
+	{
+		if($expiredHours>0)
+		{
+			return $this->expiredDate = date($this->dateTimeFormat, strtotime("+".$expiredHours." hour"));
+		}
+	}
+	
+	public function getAccessKeyId()
+	{
+		return $this->accessKeyId;
+	}
+	
+	public function setAccessKeyId($accessKeyId)
+	{
+		$this->accessKeyId = $accessKeyId;
+	}
+	
+	public function getAccessSecret()
+	{
+		return $this->accessSecret;
+	}
+	
+	public function setAccessSecret($accessSecret)
+	{
+		$this->accessSecret = $accessSecret;
+	}
+
+}

+ 12 - 0
extend/api_sdk/lib/Core/Auth/ISigner.php

@@ -0,0 +1,12 @@
+<?php
+
+namespace Aliyun\Core\Auth;
+
+interface ISigner
+{
+	public function  getSignatureMethod();
+	
+	public function  getSignatureVersion();
+	
+	public function signString($source, $accessSecret); 
+}

+ 20 - 0
extend/api_sdk/lib/Core/Auth/ShaHmac1Signer.php

@@ -0,0 +1,20 @@
+<?php
+
+namespace Aliyun\Core\Auth;
+
+class ShaHmac1Signer implements ISigner
+{
+	public function signString($source, $accessSecret)
+	{
+		return	base64_encode(hash_hmac('sha1', $source, $accessSecret, true));
+	}
+	
+	public function  getSignatureMethod() {
+		return "HMAC-SHA1";
+	}
+
+	public function getSignatureVersion() {
+		return "1.0";
+	}
+
+}

+ 20 - 0
extend/api_sdk/lib/Core/Auth/ShaHmac256Signer.php

@@ -0,0 +1,20 @@
+<?php
+
+namespace Aliyun\Core\Auth;
+
+class ShaHmac256Signer implements ISigner
+{
+	public function signString($source, $accessSecret)
+	{
+		return	base64_encode(hash_hmac('sha256', $source, $accessSecret, true));
+	}
+	
+	public function  getSignatureMethod() {
+		return "HMAC-SHA256";
+	}
+
+	public function getSignatureVersion() {
+		return "1.0";
+	}
+
+}

+ 23 - 0
extend/api_sdk/lib/Core/Config.php

@@ -0,0 +1,23 @@
+<?php
+
+namespace Aliyun\Core;
+
+use Aliyun\Core\Regions\EndpointConfig;
+
+//config http proxy
+define('ENABLE_HTTP_PROXY', FALSE);
+define('HTTP_PROXY_IP', '127.0.0.1');
+define('HTTP_PROXY_PORT', '8888');
+
+
+class Config
+{
+    private static $loaded = false;
+    public static function load(){
+        if(self::$loaded) {
+            return;
+        }
+        EndpointConfig::load();
+        self::$loaded = true;
+    }
+}

+ 124 - 0
extend/api_sdk/lib/Core/DefaultAcsClient.php

@@ -0,0 +1,124 @@
+<?php
+
+namespace Aliyun\Core;
+use Aliyun\Core\Exception\ClientException;
+use Aliyun\Core\Exception\ServerException;
+use Aliyun\Core\Regions\EndpointProvider;
+use Aliyun\Core\Http\HttpHelper;
+
+class DefaultAcsClient implements IAcsClient 
+{    
+    public $iClientProfile;
+    public $__urlTestFlag__;
+    
+    function  __construct($iClientProfile)
+    {
+        $this->iClientProfile = $iClientProfile;
+        $this->__urlTestFlag__ = false;
+    }
+    
+    public function getAcsResponse($request, $iSigner = null, $credential = null, $autoRetry = true, $maxRetryNumber = 3)
+    {
+        $httpResponse = $this->doActionImpl($request, $iSigner, $credential, $autoRetry, $maxRetryNumber);
+        $respObject = $this->parseAcsResponse($httpResponse->getBody(), $request->getAcceptFormat());
+        if(false == $httpResponse->isSuccess())
+        {
+            $this->buildApiException($respObject, $httpResponse->getStatus());
+        }
+        return $respObject;
+    }
+
+    private function doActionImpl($request, $iSigner = null, $credential = null, $autoRetry = true, $maxRetryNumber = 3)
+    {    
+        if(null == $this->iClientProfile && (null == $iSigner || null == $credential 
+            || null == $request->getRegionId() || null == $request->getAcceptFormat()))
+        {
+            throw new ClientException("No active profile found.", "SDK.InvalidProfile");
+        }
+        if(null == $iSigner)
+        {
+            $iSigner = $this->iClientProfile->getSigner();
+        }
+        if(null == $credential)
+        {
+            $credential = $this->iClientProfile->getCredential();
+        }
+        $request = $this->prepareRequest($request);
+        $domain = EndpointProvider::findProductDomain($request->getRegionId(), $request->getProduct());
+
+        if(null == $domain)
+        {
+            throw new ClientException("Can not find endpoint to access.", "SDK.InvalidRegionId");
+        }
+        $requestUrl = $request->composeUrl($iSigner, $credential, $domain);
+
+        if ($this->__urlTestFlag__) {
+            throw new ClientException($requestUrl, "URLTestFlagIsSet");
+        }
+
+        if(count($request->getDomainParameter())>0){
+            $httpResponse = HttpHelper::curl($requestUrl, $request->getMethod(), $request->getDomainParameter(), $request->getHeaders());
+        } else {
+            $httpResponse = HttpHelper::curl($requestUrl, $request->getMethod(), $request->getContent(), $request->getHeaders());
+        }
+        
+        $retryTimes = 1;
+        while (500 <= $httpResponse->getStatus() && $autoRetry && $retryTimes < $maxRetryNumber) {
+            $requestUrl = $request->composeUrl($iSigner, $credential,$domain);
+            
+            if(count($request->getDomainParameter())>0){
+                $httpResponse = HttpHelper::curl($requestUrl, $request->getMethod(), $request->getDomainParameter(), $request->getHeaders());
+            } else {
+                $httpResponse = HttpHelper::curl($requestUrl, $request->getMethod(), $request->getContent(), $request->getHeaders());
+            }
+            $retryTimes ++;
+        }
+        return $httpResponse;
+    }
+    
+    public function doAction($request, $iSigner = null, $credential = null, $autoRetry = true, $maxRetryNumber = 3)
+    {    
+        trigger_error("doAction() is deprecated. Please use getAcsResponse() instead.", E_USER_NOTICE);
+        return $this->doActionImpl($request, $iSigner, $credential, $autoRetry, $maxRetryNumber);
+    }
+    
+    private function prepareRequest($request)
+    {
+        if(null == $request->getRegionId())
+        {
+            $request->setRegionId($this->iClientProfile->getRegionId());
+        }
+        if(null == $request->getAcceptFormat())
+        {
+            $request->setAcceptFormat($this->iClientProfile->getFormat());
+        }
+        if(null == $request->getMethod())
+        {
+            $request->setMethod("GET");
+        }
+        return $request;
+    }
+    
+    
+    private function buildApiException($respObject, $httpStatus)
+    {
+        throw new ServerException($respObject->Message, $respObject->Code, $httpStatus, $respObject->RequestId);
+    }
+    
+    private function parseAcsResponse($body, $format)
+    {
+        if ("JSON" == $format)
+        {    
+            $respObject = json_decode($body);
+        }
+        else if("XML" == $format)
+        {
+            $respObject = @simplexml_load_string($body);
+        }
+        else if("RAW" == $format)
+        {
+            $respObject = $body;
+        }
+        return $respObject;
+    }
+}

+ 50 - 0
extend/api_sdk/lib/Core/Exception/ClientException.php

@@ -0,0 +1,50 @@
+<?php
+
+namespace Aliyun\Core\Exception;
+
+class ClientException extends \Exception
+{
+    function  __construct($errorMessage, $errorCode)
+    {
+        parent::__construct($errorMessage);
+        $this->errorMessage = $errorMessage;
+        $this->errorCode = $errorCode;
+        $this->setErrorType("Client");
+    }
+    
+    private $errorCode;
+    private $errorMessage;
+    private $errorType;
+    
+    public function getErrorCode()
+    {
+        return $this->errorCode;
+    }
+    
+    public function setErrorCode($errorCode)
+    {
+        $this->errorCode = $errorCode;
+    }
+    
+    public function getErrorMessage()
+    {
+        return $this->errorMessage;
+    }
+    
+    public function setErrorMessage($errorMessage)
+    {
+        $this->errorMessage = $errorMessage;
+    }
+    
+    public function getErrorType()
+    {
+        return $this->errorType;
+    }
+    
+    public function setErrorType($errorType)
+    {
+        $this->errorType = $errorType;
+    }
+    
+
+}

+ 31 - 0
extend/api_sdk/lib/Core/Exception/ServerException.php

@@ -0,0 +1,31 @@
+<?php
+
+
+namespace Aliyun\Core\Exception;
+
+class ServerException extends ClientException
+{
+    private $httpStatus;
+    private $requestId;
+
+    function  __construct($errorMessage, $errorCode, $httpStatus, $requestId)
+    {
+        $messageStr = $errorCode . " " . $errorMessage . " HTTP Status: " . $httpStatus . " RequestID: " . $requestId;
+        parent::__construct($messageStr, $errorCode);
+        $this->setErrorMessage($errorMessage);
+        $this->setErrorType("Server");
+        $this->httpStatus = $httpStatus;
+        $this->requestId = $requestId;
+    }
+
+    public function getHttpStatus()
+    {
+        return $this->httpStatus;
+    }
+
+    public function getRequestId()
+    {
+        return $this->requestId;
+    }
+
+}

+ 69 - 0
extend/api_sdk/lib/Core/Http/HttpHelper.php

@@ -0,0 +1,69 @@
+<?php
+
+namespace Aliyun\Core\Http;
+use Aliyun\Core\Exception\ClientException;
+
+class HttpHelper
+{
+	public static $connectTimeout = 30;//30 second
+	public static $readTimeout = 80;//80 second
+	
+	public static function curl($url, $httpMethod = "GET", $postFields = null,$headers = null)
+	{
+		$ch = curl_init();
+		curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $httpMethod); 
+		if(ENABLE_HTTP_PROXY) {
+			curl_setopt($ch, CURLOPT_PROXYAUTH, CURLAUTH_BASIC); 
+			curl_setopt($ch, CURLOPT_PROXY, HTTP_PROXY_IP); 
+			curl_setopt($ch, CURLOPT_PROXYPORT, HTTP_PROXY_PORT);
+			curl_setopt($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP); 
+		}
+		curl_setopt($ch, CURLOPT_URL, $url);
+		curl_setopt($ch, CURLOPT_FAILONERROR, false);
+		curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
+		curl_setopt($ch, CURLOPT_POSTFIELDS, is_array($postFields) ? self::getPostHttpBody($postFields) : $postFields);
+		
+		if (self::$readTimeout) {
+			curl_setopt($ch, CURLOPT_TIMEOUT, self::$readTimeout);
+		}
+		if (self::$connectTimeout) {
+			curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, self::$connectTimeout);
+		}
+		//https request
+		if(strlen($url) > 5 && strtolower(substr($url,0,5)) == "https" ) {
+			curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
+			curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
+		}
+		if (is_array($headers) && 0 < count($headers))
+		{
+			$httpHeaders =self::getHttpHearders($headers);
+			curl_setopt($ch,CURLOPT_HTTPHEADER,$httpHeaders);
+		}
+		$httpResponse = new HttpResponse();
+		$httpResponse->setBody(curl_exec($ch));
+		$httpResponse->setStatus(curl_getinfo($ch, CURLINFO_HTTP_CODE));
+		if (curl_errno($ch))
+		{
+			throw new ClientException("Server unreachable: Errno: " . curl_errno($ch) . " " . curl_error($ch), "SDK.ServerUnreachable");
+		}
+		curl_close($ch);
+		return $httpResponse;
+	}
+	static function getPostHttpBody($postFildes){		
+		$content = "";
+		foreach ($postFildes as $apiParamKey => $apiParamValue)
+		{			
+			$content .= "$apiParamKey=" . urlencode($apiParamValue) . "&";
+		}
+		return substr($content, 0, -1);
+	}
+	static function getHttpHearders($headers)
+	{
+		$httpHeader = array();
+		foreach ($headers as $key => $value)
+		{
+			array_push($httpHeader, $key.":".$value);	
+		}
+		return $httpHeader;
+	}
+}

+ 38 - 0
extend/api_sdk/lib/Core/Http/HttpResponse.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace Aliyun\Core\Http;
+
+class HttpResponse
+{
+	private $body;
+	private $status;
+	
+	public function getBody()
+	{
+		return $this->body;
+	}
+	
+	public function setBody($body)
+	{
+		$this->body = $body;
+	}
+	
+	public function getStatus()
+	{
+		return $this->status;
+	}
+	
+	public function setStatus($status)
+	{
+		$this->status  = $status;
+	}
+	
+	public function isSuccess()
+	{
+		if(200 <= $this->status && 300 > $this->status)
+		{
+			return true;
+		}
+		return false;
+	}
+}

+ 7 - 0
extend/api_sdk/lib/Core/IAcsClient.php

@@ -0,0 +1,7 @@
+<?php
+
+namespace Aliyun\Core;
+interface IAcsClient
+{
+	public function doAction($requst);
+}

+ 137 - 0
extend/api_sdk/lib/Core/Profile/DefaultProfile.php

@@ -0,0 +1,137 @@
+<?php
+
+namespace Aliyun\Core\Profile;
+
+use Aliyun\Core\Auth\Credential;
+use Aliyun\Core\Auth\ShaHmac1Signer;
+use Aliyun\Core\Regions\ProductDomain;
+use Aliyun\Core\Regions\Endpoint;
+use Aliyun\Core\Regions\EndpointProvider;
+
+class DefaultProfile implements IClientProfile
+{
+	private static $profile;
+	private static $endpoints;
+	private static $credential;
+	private static $regionId;
+	private static $acceptFormat;
+	
+	private static $isigner;
+	private static $iCredential;
+	
+	private function  __construct($regionId,$credential)
+	{
+	    self::$regionId = $regionId;
+	    self::$credential = $credential;
+	}
+	
+	public static function getProfile($regionId, $accessKeyId, $accessSecret)
+	{
+		$credential =new Credential($accessKeyId, $accessSecret);
+		self::$profile = new DefaultProfile($regionId, $credential);
+		return self::$profile;
+	}
+	
+	public function getSigner()
+	{
+		if(null == self::$isigner)
+		{
+			self::$isigner = new ShaHmac1Signer(); 
+		}
+		return self::$isigner;
+	}
+	
+	public function getRegionId()
+	{
+		return self::$regionId;
+	}
+	
+	public function getFormat()
+	{
+		return self::$acceptFormat;
+	}
+	
+	public function getCredential()
+	{
+		if(null == self::$credential && null != self::$iCredential)
+		{
+			self::$credential = self::$iCredential;
+		}
+		return self::$credential;
+	}
+	
+	public static function getEndpoints()
+	{
+		if(null == self::$endpoints)
+		{
+			self::$endpoints = EndpointProvider::getEndpoints();
+		}
+		return self::$endpoints;
+	}
+	
+	public static function addEndpoint($endpointName, $regionId, $product, $domain)
+	{
+		if(null == self::$endpoints)
+		{
+			self::$endpoints = self::getEndpoints();
+		}
+		$endpoint = self::findEndpointByName($endpointName);
+		if(null == $endpoint)
+		{
+			self::addEndpoint_($endpointName, $regionId, $product, $domain);
+		}
+		else 
+		{
+			self::updateEndpoint($regionId, $product, $domain, $endpoint);
+		}
+	}
+	
+	public static function findEndpointByName($endpointName)
+	{
+		foreach (self::$endpoints as $key => $endpoint)
+		{
+			if($endpoint->getName() == $endpointName)
+			{
+				return $endpoint;
+			}
+		}
+	}
+	
+	private static function addEndpoint_($endpointName,$regionId, $product, $domain)
+	{
+		$regionIds = array($regionId);
+		$productDomains = array(new ProductDomain($product, $domain));
+		$endpoint = new Endpoint($endpointName, $regionIds, $productDomains);
+		array_push(self::$endpoints, $endpoint);
+	}
+	
+	private static function updateEndpoint($regionId, $product, $domain, $endpoint)
+	{
+		$regionIds = $endpoint->getRegionIds();
+		if(!in_array($regionId,$regionIds))
+		{
+			array_push($regionIds, $regionId);
+			$endpoint->setRegionIds($regionIds);
+		}
+
+		$productDomains = $endpoint->getProductDomains();
+		if(null == self::findProductDomain($productDomains, $product, $domain))
+		{
+		 	array_push($productDomains, new ProductDomain($product, $domain));	
+		}
+		$endpoint->setProductDomains($productDomains);
+	}
+	
+	private static function findProductDomain($productDomains, $product, $domain)
+	{
+		foreach ($productDomains as $key => $productDomain)
+		{
+			if($productDomain->getProductName() == $product && $productDomain->getDomainName() == $domain)
+			{
+				return $productDomain;
+			}
+		}
+		return null;
+	}
+
+}

+ 14 - 0
extend/api_sdk/lib/Core/Profile/IClientProfile.php

@@ -0,0 +1,14 @@
+<?php
+
+namespace Aliyun\Core\Profile;
+
+interface IClientProfile
+{
+	public function getSigner();
+	
+	public function getRegionId();
+	
+	public function getFormat();
+	
+	public function getCredential();
+}

+ 47 - 0
extend/api_sdk/lib/Core/Regions/Endpoint.php

@@ -0,0 +1,47 @@
+<?php
+
+namespace Aliyun\Core\Regions;
+
+class Endpoint
+{
+	private $name;
+	private $regionIds; 
+	private $productDomains;
+	
+	function  __construct($name, $regionIds, $productDomains)
+	{
+		$this->name = $name;
+		$this->regionIds = $regionIds;
+		$this->productDomains = $productDomains;
+	}
+	
+	public function getName()
+	{
+		return $this->name;
+	}
+	
+	public function setName($name)
+	{
+		$this->name = $name;
+	}
+	
+	public function getRegionIds()
+	{
+		return $this->regionIds;
+	}
+	
+	public function setRegionIds($regionIds)
+	{
+		$this->regionIds = $regionIds;
+	}
+	
+	public function getProductDomains()
+	{
+		return $this->productDomains;
+	}
+	
+	public function setProductDomains($productDomains)
+	{
+		$this->productDomains = $productDomains;
+	}
+}

+ 63 - 0
extend/api_sdk/lib/Core/Regions/EndpointConfig.php

@@ -0,0 +1,63 @@
+<?php
+
+namespace Aliyun\Core\Regions;
+
+class EndpointConfig {
+
+    private static $loaded = false;
+
+    public static function load() {
+        if(self::$loaded) {
+           return;
+        }
+        $endpoint_filename = dirname(__FILE__) . DIRECTORY_SEPARATOR . "endpoints.xml";
+        $xml = simplexml_load_string(file_get_contents($endpoint_filename));
+        $json = json_encode($xml);
+        $json_array = json_decode($json, TRUE);
+
+        $endpoints = array();
+
+
+        foreach ($json_array["Endpoint"] as $json_endpoint) {
+            # pre-process RegionId & Product
+            if (!array_key_exists("RegionId", $json_endpoint["RegionIds"])) {
+                $region_ids = array();
+            } else {
+                $json_region_ids = $json_endpoint['RegionIds']['RegionId'];
+                if (!is_array($json_region_ids)) {
+                    $region_ids = array($json_region_ids);
+                } else {
+                    $region_ids = $json_region_ids;
+                }
+            }
+
+            if (!array_key_exists("Product", $json_endpoint["Products"])) {
+                $products = array();
+
+            } else {
+                $json_products = $json_endpoint["Products"]["Product"];
+
+                if (array() === $json_products or !is_array($json_products)) {
+                    $products = array();
+                } else if (array_keys($json_products) !== range(0, count($json_products) - 1)) {
+                    # array is not sequential
+                    $products = array($json_products);
+                } else {
+                    $products = $json_products;
+                }
+            }
+
+            $product_domains = array();
+            foreach ($products as $product) {
+                $product_domain = new ProductDomain($product['ProductName'], $product['DomainName']);
+                array_push($product_domains, $product_domain);
+            }
+
+            $endpoint = new Endpoint($region_ids[0], $region_ids, $product_domains);
+            array_push($endpoints, $endpoint);
+        }
+
+        EndpointProvider::setEndpoints($endpoints);
+        self::$loaded = true;
+    }
+}

+ 53 - 0
extend/api_sdk/lib/Core/Regions/EndpointProvider.php

@@ -0,0 +1,53 @@
+<?php
+
+namespace Aliyun\Core\Regions;
+
+class EndpointProvider
+{
+	private static $endpoints;
+	
+	public static function findProductDomain($regionId, $product)
+	{
+		if(null == $regionId || null == $product || null == self::$endpoints)
+		{
+			return null;
+		}
+		
+		foreach (self::$endpoints as $key => $endpoint)
+		{
+			if(in_array($regionId, $endpoint->getRegionIds()))
+			{
+			 	return self::findProductDomainByProduct($endpoint->getProductDomains(), $product);
+			}	
+		}
+		return null;
+	}
+	
+	private static function findProductDomainByProduct($productDomains, $product)
+	{
+		if(null == $productDomains)
+		{
+			return null;
+		}
+		foreach ($productDomains as $key => $productDomain)
+		{
+			if($product == $productDomain->getProductName())
+			{
+				return $productDomain->getDomainName();
+			}
+		}
+		return null;
+	}
+	
+	
+	public static function getEndpoints()
+	{
+		return self::$endpoints;
+	}
+	
+	public static function setEndpoints($endpoints)
+	{
+		self::$endpoints = $endpoints;
+	}
+	
+}

+ 28 - 0
extend/api_sdk/lib/Core/Regions/ProductDomain.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace Aliyun\Core\Regions;
+
+class ProductDomain
+{
+	private $productName;
+	private $domainName;
+	
+	function  __construct($product, $domain) {
+		$this->productName = $product;
+		$this->domainName = $domain;
+	}
+	
+	public function getProductName() {
+		return $this->productName;
+	}
+	public function setProductName($productName) {
+		$this->productName = $productName;
+	}
+	public function getDomainName() {
+		return $this->domainName;
+	}
+	public function setDomainName($domainName) {
+		$this->domainName = $domainName;
+	}
+
+}

+ 1358 - 0
extend/api_sdk/lib/Core/Regions/endpoints.xml

@@ -0,0 +1,1358 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<Endpoints>
+    <Endpoint name="jp-fudao-1">
+        <RegionIds><RegionId>jp-fudao-1</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="me-east-1">
+        <RegionIds><RegionId>me-east-1</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.me-east-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs.me-east-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.me-east-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Kms</ProductName><DomainName>kms.me-east-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.me-east-1.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="us-east-1">
+        <RegionIds><RegionId>us-east-1</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>CS</ProductName><DomainName>cs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Push</ProductName><DomainName>cloudpush.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>COS</ProductName><DomainName>cos.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ess</ProductName><DomainName>ess.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace-ops</ProductName><DomainName>ace-ops.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Billing</ProductName><DomainName>billing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dqs</ProductName><DomainName>dqs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dds</ProductName><DomainName>mongodb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Emr</ProductName><DomainName>emr.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sms</ProductName><DomainName>sms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HPC</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location</ProductName><DomainName>location.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ChargingService</ProductName><DomainName>chargingservice.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msg</ProductName><DomainName>msg-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Commondriver</ProductName><DomainName>common.driver.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>R-kvstore</ProductName><DomainName>r-kvstore-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Bss</ProductName><DomainName>bss.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Workorder</ProductName><DomainName>workorder.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ocs</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundun</ProductName><DomainName>yundun-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms-inner</ProductName><DomainName>ubsms-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dm</ProductName><DomainName>dm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Green</ProductName><DomainName>green.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Risk</ProductName><DomainName>risk-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>oceanbase</ProductName><DomainName>oceanbase.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msc</ProductName><DomainName>msc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundunhsm</ProductName><DomainName>yundunhsm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Iot</ProductName><DomainName>iot.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oms</ProductName><DomainName>oms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms</ProductName><DomainName>ubsms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alert</ProductName><DomainName>alert.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace</ProductName><DomainName>ace.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>AMS</ProductName><DomainName>ams.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ROS</ProductName><DomainName>ros.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>PTS</ProductName><DomainName>pts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Qualitycheck</ProductName><DomainName>qualitycheck.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>M-kvstore</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HighDDos</ProductName><DomainName>yd-highddos-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CmsSiteMonitor</ProductName><DomainName>sitemonitor.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>BatchCompute</ProductName><DomainName>batchCompute.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CF</ProductName><DomainName>cf.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drds</ProductName><DomainName>drds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Acs</ProductName><DomainName>acs.aliyun-inc.com</DomainName></Product>
+            <Product><ProductName>Httpdns</ProductName><DomainName>httpdns-api.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location-inner</ProductName><DomainName>location-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Aas</ProductName><DomainName>aas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sts</ProductName><DomainName>sts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dts</ProductName><DomainName>dts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drc</ProductName><DomainName>drc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc-inner</ProductName><DomainName>vpc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Crm</ProductName><DomainName>crm-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Domain</ProductName><DomainName>domain.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ots</ProductName><DomainName>ots-pop.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ram</ProductName><DomainName>ram.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sales</ProductName><DomainName>sales.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>OssAdmin</ProductName><DomainName>oss-admin.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alidns</ProductName><DomainName>alidns.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ons</ProductName><DomainName>ons.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cdn</ProductName><DomainName>cdn.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>YundunDdos</ProductName><DomainName>inner-yundun-ddos.cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="ap-northeast-1">
+        <RegionIds><RegionId>ap-northeast-1</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.ap-northeast-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Kms</ProductName><DomainName>kms.ap-northeast-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.ap-northeast-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs.ap-northeast-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.ap-northeast-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Kvstore</ProductName><DomainName>r-kvstore.ap-northeast-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.ap-northeast-1.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-hangzhou-bj-b01">
+        <RegionIds><RegionId>cn-hangzhou-bj-b01</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-hongkong">
+        <RegionIds><RegionId>cn-hongkong</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Push</ProductName><DomainName>cloudpush.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>COS</ProductName><DomainName>cos.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ons</ProductName><DomainName>ons.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ess</ProductName><DomainName>ess.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace-ops</ProductName><DomainName>ace-ops.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Billing</ProductName><DomainName>billing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dqs</ProductName><DomainName>dqs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dds</ProductName><DomainName>mongodb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Emr</ProductName><DomainName>emr.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sms</ProductName><DomainName>sms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CS</ProductName><DomainName>cs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Kms</ProductName><DomainName>kms.cn-hongkong.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location</ProductName><DomainName>location.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msg</ProductName><DomainName>msg-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ChargingService</ProductName><DomainName>chargingservice.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>R-kvstore</ProductName><DomainName>r-kvstore-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alert</ProductName><DomainName>alert.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msc</ProductName><DomainName>msc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drc</ProductName><DomainName>drc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundun</ProductName><DomainName>yundun-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms-inner</ProductName><DomainName>ubsms-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ocs</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dm</ProductName><DomainName>dm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Risk</ProductName><DomainName>risk-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>oceanbase</ProductName><DomainName>oceanbase.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Workorder</ProductName><DomainName>workorder.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundunhsm</ProductName><DomainName>yundunhsm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Iot</ProductName><DomainName>iot.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HPC</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oms</ProductName><DomainName>oms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>M-kvstore</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>BatchCompute</ProductName><DomainName>batchCompute.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>AMS</ProductName><DomainName>ams.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ROS</ProductName><DomainName>ros.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>PTS</ProductName><DomainName>pts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Qualitycheck</ProductName><DomainName>qualitycheck.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Bss</ProductName><DomainName>bss.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms</ProductName><DomainName>ubsms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CloudAPI</ProductName><DomainName>apigateway.cn-hongkong.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sts</ProductName><DomainName>sts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CmsSiteMonitor</ProductName><DomainName>sitemonitor.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace</ProductName><DomainName>ace.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Mts</ProductName><DomainName>mts.cn-hongkong.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location-inner</ProductName><DomainName>location-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CF</ProductName><DomainName>cf.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Acs</ProductName><DomainName>acs.aliyun-inc.com</DomainName></Product>
+            <Product><ProductName>Httpdns</ProductName><DomainName>httpdns-api.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Green</ProductName><DomainName>green.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Aas</ProductName><DomainName>aas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alidns</ProductName><DomainName>alidns.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dts</ProductName><DomainName>dts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HighDDos</ProductName><DomainName>yd-highddos-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc-inner</ProductName><DomainName>vpc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Commondriver</ProductName><DomainName>common.driver.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Domain</ProductName><DomainName>domain.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ots</ProductName><DomainName>ots-pop.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cdn</ProductName><DomainName>cdn.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ram</ProductName><DomainName>ram.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drds</ProductName><DomainName>drds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Crm</ProductName><DomainName>crm-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>OssAdmin</ProductName><DomainName>oss-admin.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sales</ProductName><DomainName>sales.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>YundunDdos</ProductName><DomainName>inner-yundun-ddos.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-hongkong.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-beijing-nu16-b01">
+        <RegionIds><RegionId>cn-beijing-nu16-b01</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-beijing-am13-c01">
+        <RegionIds><RegionId>cn-beijing-am13-c01</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="in-west-antgroup-1">
+        <RegionIds><RegionId>in-west-antgroup-1</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-guizhou-gov">
+        <RegionIds><RegionId>cn-guizhou-gov</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="in-west-antgroup-2">
+        <RegionIds><RegionId>in-west-antgroup-2</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-qingdao-cm9">
+        <RegionIds><RegionId>cn-qingdao-cm9</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>CS</ProductName><DomainName>cs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Risk</ProductName><DomainName>risk-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>COS</ProductName><DomainName>cos.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ess</ProductName><DomainName>ess.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Billing</ProductName><DomainName>billing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dqs</ProductName><DomainName>dqs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dds</ProductName><DomainName>mongodb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alidns</ProductName><DomainName>alidns.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sms</ProductName><DomainName>sms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drds</ProductName><DomainName>drds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HPC</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location</ProductName><DomainName>location.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msg</ProductName><DomainName>msg-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ChargingService</ProductName><DomainName>chargingservice.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ocs</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alert</ProductName><DomainName>alert.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msc</ProductName><DomainName>msc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HighDDos</ProductName><DomainName>yd-highddos-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>R-kvstore</ProductName><DomainName>r-kvstore-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundun</ProductName><DomainName>yundun-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms-inner</ProductName><DomainName>ubsms-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dm</ProductName><DomainName>dm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Green</ProductName><DomainName>green.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>YundunDdos</ProductName><DomainName>inner-yundun-ddos.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>oceanbase</ProductName><DomainName>oceanbase.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Workorder</ProductName><DomainName>workorder.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundunhsm</ProductName><DomainName>yundunhsm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Iot</ProductName><DomainName>iot.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oms</ProductName><DomainName>oms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms</ProductName><DomainName>ubsms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CmsSiteMonitor</ProductName><DomainName>sitemonitor.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>AMS</ProductName><DomainName>ams.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Crm</ProductName><DomainName>crm-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>PTS</ProductName><DomainName>pts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Qualitycheck</ProductName><DomainName>qualitycheck.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Bss</ProductName><DomainName>bss.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>M-kvstore</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace</ProductName><DomainName>ace.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Mts</ProductName><DomainName>mts.cn-qingdao.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CF</ProductName><DomainName>cf.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Httpdns</ProductName><DomainName>httpdns-api.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location-inner</ProductName><DomainName>location-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Aas</ProductName><DomainName>aas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sts</ProductName><DomainName>sts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dts</ProductName><DomainName>dts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Emr</ProductName><DomainName>emr.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drc</ProductName><DomainName>drc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Push</ProductName><DomainName>cloudpush.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Commondriver</ProductName><DomainName>common.driver.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Domain</ProductName><DomainName>domain.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ots</ProductName><DomainName>ots-pop.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ROS</ProductName><DomainName>ros.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ram</ProductName><DomainName>ram.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sales</ProductName><DomainName>sales.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>OssAdmin</ProductName><DomainName>oss-admin.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ons</ProductName><DomainName>ons.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cdn</ProductName><DomainName>cdn.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="tw-snowcloud-kaohsiung">
+        <RegionIds><RegionId>tw-snowcloud-kaohsiung</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-shanghai-finance-1">
+        <RegionIds><RegionId>cn-shanghai-finance-1</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Kms</ProductName><DomainName>kms.cn-shanghai-finance-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-guizhou">
+        <RegionIds><RegionId>cn-guizhou</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-qingdao-finance">
+        <RegionIds><RegionId>cn-qingdao-finance</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-qdjbp-a.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-beijing-gov-1">
+        <RegionIds><RegionId>cn-beijing-gov-1</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-haidian-a.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-shanghai">
+        <RegionIds><RegionId>cn-shanghai</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>saf</ProductName><DomainName>saf.cn-shanghai.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ARMS</ProductName><DomainName>arms.cn-shanghai.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Risk</ProductName><DomainName>risk-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>COS</ProductName><DomainName>cos.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HPC</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Billing</ProductName><DomainName>billing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dqs</ProductName><DomainName>dqs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drc</ProductName><DomainName>drc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alidns</ProductName><DomainName>alidns.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sms</ProductName><DomainName>sms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drds</ProductName><DomainName>drds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CS</ProductName><DomainName>cs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Kms</ProductName><DomainName>kms.cn-shanghai.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location</ProductName><DomainName>location.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msg</ProductName><DomainName>msg-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ChargingService</ProductName><DomainName>chargingservice.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ocs</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alert</ProductName><DomainName>alert.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msc</ProductName><DomainName>msc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>R-kvstore</ProductName><DomainName>r-kvstore-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundun</ProductName><DomainName>yundun-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms-inner</ProductName><DomainName>ubsms-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dm</ProductName><DomainName>dm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Green</ProductName><DomainName>green.cn-shanghai.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Commondriver</ProductName><DomainName>common.driver.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>oceanbase</ProductName><DomainName>oceanbase.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Workorder</ProductName><DomainName>workorder.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundunhsm</ProductName><DomainName>yundunhsm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Iot</ProductName><DomainName>iot.cn-shanghai.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Bss</ProductName><DomainName>bss.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oms</ProductName><DomainName>oms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms</ProductName><DomainName>ubsms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace-ops</ProductName><DomainName>ace-ops.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CmsSiteMonitor</ProductName><DomainName>sitemonitor.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>BatchCompute</ProductName><DomainName>batchCompute.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>AMS</ProductName><DomainName>ams.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ROS</ProductName><DomainName>ros.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>PTS</ProductName><DomainName>pts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Qualitycheck</ProductName><DomainName>qualitycheck.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>M-kvstore</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Apigateway</ProductName><DomainName>apigateway.cn-shanghai.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CloudAPI</ProductName><DomainName>apigateway.cn-shanghai.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sts</ProductName><DomainName>sts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace</ProductName><DomainName>ace.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Mts</ProductName><DomainName>mts.cn-shanghai.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dds</ProductName><DomainName>mongodb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CF</ProductName><DomainName>cf.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Acs</ProductName><DomainName>acs.aliyun-inc.com</DomainName></Product>
+            <Product><ProductName>Httpdns</ProductName><DomainName>httpdns-api.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Push</ProductName><DomainName>cloudpush.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location-inner</ProductName><DomainName>location-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Aas</ProductName><DomainName>aas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Emr</ProductName><DomainName>emr.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dts</ProductName><DomainName>dts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HighDDos</ProductName><DomainName>yd-highddos-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Crm</ProductName><DomainName>crm-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Domain</ProductName><DomainName>domain.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ots</ProductName><DomainName>ots-pop.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cdn</ProductName><DomainName>cdn.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ram</ProductName><DomainName>ram.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sales</ProductName><DomainName>sales.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc-inner</ProductName><DomainName>vpc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>OssAdmin</ProductName><DomainName>oss-admin.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ons</ProductName><DomainName>ons.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ess</ProductName><DomainName>ess.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-shanghai.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>YundunDdos</ProductName><DomainName>inner-yundun-ddos.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>vod</ProductName><DomainName>vod.cn-shanghai.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-shenzhen-inner">
+        <RegionIds><RegionId>cn-shenzhen-inner</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Risk</ProductName><DomainName>risk-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>COS</ProductName><DomainName>cos.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ons</ProductName><DomainName>ons.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ess</ProductName><DomainName>ess.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Billing</ProductName><DomainName>billing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dqs</ProductName><DomainName>dqs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dds</ProductName><DomainName>mongodb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alidns</ProductName><DomainName>alidns.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sms</ProductName><DomainName>sms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sales</ProductName><DomainName>sales.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HPC</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location</ProductName><DomainName>location.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msg</ProductName><DomainName>msg-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ChargingService</ProductName><DomainName>chargingservice.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ocs</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msc</ProductName><DomainName>msc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HighDDos</ProductName><DomainName>yd-highddos-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>R-kvstore</ProductName><DomainName>r-kvstore-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Bss</ProductName><DomainName>bss.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms-inner</ProductName><DomainName>ubsms-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dm</ProductName><DomainName>dm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Commondriver</ProductName><DomainName>common.driver.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>oceanbase</ProductName><DomainName>oceanbase.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Workorder</ProductName><DomainName>workorder.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundunhsm</ProductName><DomainName>yundunhsm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Iot</ProductName><DomainName>iot.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alert</ProductName><DomainName>alert.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oms</ProductName><DomainName>oms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms</ProductName><DomainName>ubsms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CmsSiteMonitor</ProductName><DomainName>sitemonitor.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>AMS</ProductName><DomainName>ams.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Crm</ProductName><DomainName>crm-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>PTS</ProductName><DomainName>pts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Qualitycheck</ProductName><DomainName>qualitycheck.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>M-kvstore</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sts</ProductName><DomainName>sts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace</ProductName><DomainName>ace.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Mts</ProductName><DomainName>mts.cn-shenzhen.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CF</ProductName><DomainName>cf.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Httpdns</ProductName><DomainName>httpdns-api.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Green</ProductName><DomainName>green.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Aas</ProductName><DomainName>aas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Emr</ProductName><DomainName>emr.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CS</ProductName><DomainName>cs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drc</ProductName><DomainName>drc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Push</ProductName><DomainName>cloudpush.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>YundunDdos</ProductName><DomainName>inner-yundun-ddos.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dts</ProductName><DomainName>dts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Domain</ProductName><DomainName>domain.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ots</ProductName><DomainName>ots-pop.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ROS</ProductName><DomainName>ros.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cdn</ProductName><DomainName>cdn.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ram</ProductName><DomainName>ram.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drds</ProductName><DomainName>drds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>OssAdmin</ProductName><DomainName>oss-admin.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location-inner</ProductName><DomainName>location-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundun</ProductName><DomainName>yundun-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-fujian">
+        <RegionIds><RegionId>cn-fujian</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="in-mumbai-alipay">
+        <RegionIds><RegionId>in-mumbai-alipay</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="us-west-1">
+        <RegionIds><RegionId>us-west-1</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>CS</ProductName><DomainName>cs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>COS</ProductName><DomainName>cos.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ess</ProductName><DomainName>ess.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace-ops</ProductName><DomainName>ace-ops.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Billing</ProductName><DomainName>billing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dqs</ProductName><DomainName>dqs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dds</ProductName><DomainName>mongodb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sts</ProductName><DomainName>sts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sms</ProductName><DomainName>sms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Push</ProductName><DomainName>cloudpush.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alidns</ProductName><DomainName>alidns.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location</ProductName><DomainName>location.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msg</ProductName><DomainName>msg-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ChargingService</ProductName><DomainName>chargingservice.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ocs</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Bss</ProductName><DomainName>bss.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msc</ProductName><DomainName>msc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>R-kvstore</ProductName><DomainName>r-kvstore-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundun</ProductName><DomainName>yundun-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms-inner</ProductName><DomainName>ubsms-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dm</ProductName><DomainName>dm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Green</ProductName><DomainName>green.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Risk</ProductName><DomainName>risk-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>oceanbase</ProductName><DomainName>oceanbase.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Workorder</ProductName><DomainName>workorder.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundunhsm</ProductName><DomainName>yundunhsm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Iot</ProductName><DomainName>iot.us-west-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alert</ProductName><DomainName>alert.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oms</ProductName><DomainName>oms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>M-kvstore</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>BatchCompute</ProductName><DomainName>batchCompute.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace</ProductName><DomainName>ace.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>AMS</ProductName><DomainName>ams.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ROS</ProductName><DomainName>ros.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>PTS</ProductName><DomainName>pts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Qualitycheck</ProductName><DomainName>qualitycheck.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms</ProductName><DomainName>ubsms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HighDDos</ProductName><DomainName>yd-highddos-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CmsSiteMonitor</ProductName><DomainName>sitemonitor.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Mts</ProductName><DomainName>mts.us-west-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CF</ProductName><DomainName>cf.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Acs</ProductName><DomainName>acs.aliyun-inc.com</DomainName></Product>
+            <Product><ProductName>Httpdns</ProductName><DomainName>httpdns-api.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location-inner</ProductName><DomainName>location-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Aas</ProductName><DomainName>aas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Emr</ProductName><DomainName>emr.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HPC</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drc</ProductName><DomainName>drc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc-inner</ProductName><DomainName>vpc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Crm</ProductName><DomainName>crm-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dts</ProductName><DomainName>dts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Domain</ProductName><DomainName>domain.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ots</ProductName><DomainName>ots-pop.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Commondriver</ProductName><DomainName>common.driver.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cdn</ProductName><DomainName>cdn.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ram</ProductName><DomainName>ram.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drds</ProductName><DomainName>drds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>OssAdmin</ProductName><DomainName>oss-admin.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sales</ProductName><DomainName>sales.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ons</ProductName><DomainName>ons.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-us-west-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>YundunDdos</ProductName><DomainName>inner-yundun-ddos.cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-shanghai-inner">
+        <RegionIds><RegionId>cn-shanghai-inner</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>CS</ProductName><DomainName>cs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>COS</ProductName><DomainName>cos.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ess</ProductName><DomainName>ess.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Billing</ProductName><DomainName>billing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dqs</ProductName><DomainName>dqs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dds</ProductName><DomainName>mongodb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Emr</ProductName><DomainName>emr.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sms</ProductName><DomainName>sms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drds</ProductName><DomainName>drds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HPC</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location</ProductName><DomainName>location.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ChargingService</ProductName><DomainName>chargingservice.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msg</ProductName><DomainName>msg-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Commondriver</ProductName><DomainName>common.driver.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>R-kvstore</ProductName><DomainName>r-kvstore-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msc</ProductName><DomainName>msc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ocs</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundun</ProductName><DomainName>yundun-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms-inner</ProductName><DomainName>ubsms-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dm</ProductName><DomainName>dm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Green</ProductName><DomainName>green.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Risk</ProductName><DomainName>risk-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>oceanbase</ProductName><DomainName>oceanbase.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Workorder</ProductName><DomainName>workorder.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundunhsm</ProductName><DomainName>yundunhsm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Iot</ProductName><DomainName>iot.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Bss</ProductName><DomainName>bss.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oms</ProductName><DomainName>oms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>M-kvstore</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CmsSiteMonitor</ProductName><DomainName>sitemonitor.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alert</ProductName><DomainName>alert.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace</ProductName><DomainName>ace.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>AMS</ProductName><DomainName>ams.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ROS</ProductName><DomainName>ros.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>PTS</ProductName><DomainName>pts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Qualitycheck</ProductName><DomainName>qualitycheck.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms</ProductName><DomainName>ubsms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HighDDos</ProductName><DomainName>yd-highddos-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Mts</ProductName><DomainName>mts.cn-shanghai.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CF</ProductName><DomainName>cf.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Httpdns</ProductName><DomainName>httpdns-api.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location-inner</ProductName><DomainName>location-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Aas</ProductName><DomainName>aas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sts</ProductName><DomainName>sts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dts</ProductName><DomainName>dts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drc</ProductName><DomainName>drc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Push</ProductName><DomainName>cloudpush.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>YundunDdos</ProductName><DomainName>inner-yundun-ddos.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Domain</ProductName><DomainName>domain.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ots</ProductName><DomainName>ots-pop.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ram</ProductName><DomainName>ram.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sales</ProductName><DomainName>sales.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Crm</ProductName><DomainName>crm-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>OssAdmin</ProductName><DomainName>oss-admin.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alidns</ProductName><DomainName>alidns.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ons</ProductName><DomainName>ons.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cdn</ProductName><DomainName>cdn.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-anhui-gov-1">
+        <RegionIds><RegionId>cn-anhui-gov-1</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-hangzhou-finance">
+        <RegionIds><RegionId>cn-hangzhou-finance</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-hzjbp-b-console.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-hangzhou">
+        <RegionIds><RegionId>cn-hangzhou</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>ARMS</ProductName><DomainName>arms.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CS</ProductName><DomainName>cs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>COS</ProductName><DomainName>cos.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ess</ProductName><DomainName>ess.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace-ops</ProductName><DomainName>ace-ops.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Billing</ProductName><DomainName>billing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dqs</ProductName><DomainName>dqs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dds</ProductName><DomainName>mongodb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sts</ProductName><DomainName>sts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sms</ProductName><DomainName>sms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msg</ProductName><DomainName>msg-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Push</ProductName><DomainName>cloudpush.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Kms</ProductName><DomainName>kms.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location</ProductName><DomainName>location.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Hpc</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ChargingService</ProductName><DomainName>chargingservice.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>R-kvstore</ProductName><DomainName>r-kvstore-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alert</ProductName><DomainName>alert.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msc</ProductName><DomainName>msc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drc</ProductName><DomainName>drc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundun</ProductName><DomainName>yundun-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms-inner</ProductName><DomainName>ubsms-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ocs</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dm</ProductName><DomainName>dm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Green</ProductName><DomainName>green.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Commondriver</ProductName><DomainName>common.driver.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>oceanbase</ProductName><DomainName>oceanbase.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Workorder</ProductName><DomainName>workorder.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundunhsm</ProductName><DomainName>yundunhsm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Iot</ProductName><DomainName>iot.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oms</ProductName><DomainName>oms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>M-kvstore</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>BatchCompute</ProductName><DomainName>batchCompute.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Domain</ProductName><DomainName>domain.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>AMS</ProductName><DomainName>ams.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ROS</ProductName><DomainName>ros.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>PTS</ProductName><DomainName>pts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Qualitycheck</ProductName><DomainName>qualitycheck.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms</ProductName><DomainName>ubsms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Apigateway</ProductName><DomainName>apigateway.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CloudAPI</ProductName><DomainName>apigateway.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CmsSiteMonitor</ProductName><DomainName>sitemonitor.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace</ProductName><DomainName>ace.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Mts</ProductName><DomainName>mts.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oas</ProductName><DomainName>cn-hangzhou.oas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CF</ProductName><DomainName>cf.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Acs</ProductName><DomainName>acs.aliyun-inc.com</DomainName></Product>
+            <Product><ProductName>Httpdns</ProductName><DomainName>httpdns-api.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location-inner</ProductName><DomainName>location-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Aas</ProductName><DomainName>aas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alidns</ProductName><DomainName>alidns.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HPC</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Emr</ProductName><DomainName>emr.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HighDDos</ProductName><DomainName>yd-highddos-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc-inner</ProductName><DomainName>vpc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Risk</ProductName><DomainName>risk-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dts</ProductName><DomainName>dts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Bss</ProductName><DomainName>bss.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ots</ProductName><DomainName>ots-pop.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cdn</ProductName><DomainName>cdn.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ram</ProductName><DomainName>ram.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drds</ProductName><DomainName>drds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Crm</ProductName><DomainName>crm-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>OssAdmin</ProductName><DomainName>oss-admin.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sales</ProductName><DomainName>sales.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ons</ProductName><DomainName>ons.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>YundunDdos</ProductName><DomainName>inner-yundun-ddos.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dyvmsapi</ProductName><DomainName>dyvmsapi.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dysmsapi</ProductName><DomainName>dysmsapi.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dycdpapi</ProductName><DomainName>dycdpapi.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dyiotapi</ProductName><DomainName>dyiotapi.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dyplsapi</ProductName><DomainName>dyplsapi.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dypnsapi</ProductName><DomainName>dypnsapi.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Snsuapi</ProductName><DomainName>snsuapi.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-beijing-inner">
+        <RegionIds><RegionId>cn-beijing-inner</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Risk</ProductName><DomainName>risk-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>COS</ProductName><DomainName>cos.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HPC</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Billing</ProductName><DomainName>billing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dqs</ProductName><DomainName>dqs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dds</ProductName><DomainName>mongodb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Emr</ProductName><DomainName>emr.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sms</ProductName><DomainName>sms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drds</ProductName><DomainName>drds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CS</ProductName><DomainName>cs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location</ProductName><DomainName>location.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ChargingService</ProductName><DomainName>chargingservice.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msg</ProductName><DomainName>msg-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ess</ProductName><DomainName>ess.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>R-kvstore</ProductName><DomainName>r-kvstore-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Bss</ProductName><DomainName>bss.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Workorder</ProductName><DomainName>workorder.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drc</ProductName><DomainName>drc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundun</ProductName><DomainName>yundun-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms-inner</ProductName><DomainName>ubsms-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ocs</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dm</ProductName><DomainName>dm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>YundunDdos</ProductName><DomainName>inner-yundun-ddos.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>oceanbase</ProductName><DomainName>oceanbase.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msc</ProductName><DomainName>msc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundunhsm</ProductName><DomainName>yundunhsm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Iot</ProductName><DomainName>iot.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oms</ProductName><DomainName>oms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>M-kvstore</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alert</ProductName><DomainName>alert.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CmsSiteMonitor</ProductName><DomainName>sitemonitor.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace</ProductName><DomainName>ace.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>AMS</ProductName><DomainName>ams.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ots</ProductName><DomainName>ots-pop.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>PTS</ProductName><DomainName>pts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Qualitycheck</ProductName><DomainName>qualitycheck.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms</ProductName><DomainName>ubsms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sts</ProductName><DomainName>sts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Mts</ProductName><DomainName>mts.cn-beijing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location-inner</ProductName><DomainName>location-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CF</ProductName><DomainName>cf.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Httpdns</ProductName><DomainName>httpdns-api.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Green</ProductName><DomainName>green.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Aas</ProductName><DomainName>aas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alidns</ProductName><DomainName>alidns.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Push</ProductName><DomainName>cloudpush.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HighDDos</ProductName><DomainName>yd-highddos-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Commondriver</ProductName><DomainName>common.driver.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dts</ProductName><DomainName>dts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Domain</ProductName><DomainName>domain.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ROS</ProductName><DomainName>ros.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ram</ProductName><DomainName>ram.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sales</ProductName><DomainName>sales.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Crm</ProductName><DomainName>crm-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>OssAdmin</ProductName><DomainName>oss-admin.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ons</ProductName><DomainName>ons.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cdn</ProductName><DomainName>cdn.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-haidian-cm12-c01">
+        <RegionIds><RegionId>cn-haidian-cm12-c01</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-anhui-gov">
+        <RegionIds><RegionId>cn-anhui-gov</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-shenzhen">
+        <RegionIds><RegionId>cn-shenzhen</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>ARMS</ProductName><DomainName>arms.cn-shenzhen.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CS</ProductName><DomainName>cs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>COS</ProductName><DomainName>cos.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ons</ProductName><DomainName>ons.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ess</ProductName><DomainName>ess.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dqs</ProductName><DomainName>dqs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dds</ProductName><DomainName>mongodb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alidns</ProductName><DomainName>alidns.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sms</ProductName><DomainName>sms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Push</ProductName><DomainName>cloudpush.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Kms</ProductName><DomainName>kms.cn-shenzhen.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location</ProductName><DomainName>location.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ocs</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alert</ProductName><DomainName>alert.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drc</ProductName><DomainName>drc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>R-kvstore</ProductName><DomainName>r-kvstore-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundun</ProductName><DomainName>yundun-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms-inner</ProductName><DomainName>ubsms-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dm</ProductName><DomainName>dm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Commondriver</ProductName><DomainName>common.driver.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>oceanbase</ProductName><DomainName>oceanbase.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Iot</ProductName><DomainName>iot.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HPC</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Bss</ProductName><DomainName>bss.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oms</ProductName><DomainName>oms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms</ProductName><DomainName>ubsms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>M-kvstore</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CmsSiteMonitor</ProductName><DomainName>sitemonitor.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>BatchCompute</ProductName><DomainName>batchcompute.cn-shenzhen.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace</ProductName><DomainName>ace.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ROS</ProductName><DomainName>ros.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>PTS</ProductName><DomainName>pts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace-ops</ProductName><DomainName>ace-ops.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Apigateway</ProductName><DomainName>apigateway.cn-shenzhen.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CloudAPI</ProductName><DomainName>apigateway.cn-shenzhen.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sts</ProductName><DomainName>sts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Mts</ProductName><DomainName>mts.cn-shenzhen.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oas</ProductName><DomainName>cn-shenzhen.oas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CF</ProductName><DomainName>cf.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Acs</ProductName><DomainName>acs.aliyun-inc.com</DomainName></Product>
+            <Product><ProductName>Crm</ProductName><DomainName>crm-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location-inner</ProductName><DomainName>location-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Aas</ProductName><DomainName>aas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Emr</ProductName><DomainName>emr.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dts</ProductName><DomainName>dts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HighDDos</ProductName><DomainName>yd-highddos-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc-inner</ProductName><DomainName>vpc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Risk</ProductName><DomainName>risk-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Domain</ProductName><DomainName>domain.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ots</ProductName><DomainName>ots-pop.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cdn</ProductName><DomainName>cdn.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ram</ProductName><DomainName>ram.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drds</ProductName><DomainName>drds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>OssAdmin</ProductName><DomainName>oss-admin.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Green</ProductName><DomainName>green.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Httpdns</ProductName><DomainName>httpdns-api.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-shenzhen.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="ap-southeast-2">
+        <RegionIds><RegionId>ap-southeast-2</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.ap-southeast-2.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Kms</ProductName><DomainName>kms.ap-southeast-2.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.ap-southeast-2.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs.ap-southeast-2.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.ap-southeast-2.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-qingdao">
+        <RegionIds><RegionId>cn-qingdao</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>CS</ProductName><DomainName>cs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>COS</ProductName><DomainName>cos.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HPC</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dqs</ProductName><DomainName>dqs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dds</ProductName><DomainName>mongodb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Emr</ProductName><DomainName>emr.cn-qingdao.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sms</ProductName><DomainName>sms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dts</ProductName><DomainName>dts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location</ProductName><DomainName>location.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ess</ProductName><DomainName>ess.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>R-kvstore</ProductName><DomainName>r-kvstore-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alert</ProductName><DomainName>alert.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drc</ProductName><DomainName>drc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundun</ProductName><DomainName>yundun-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms-inner</ProductName><DomainName>ubsms-inner.cn-qingdao.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ocs</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dm</ProductName><DomainName>dm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Risk</ProductName><DomainName>risk-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>oceanbase</ProductName><DomainName>oceanbase.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Iot</ProductName><DomainName>iot.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Bss</ProductName><DomainName>bss.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oms</ProductName><DomainName>oms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms</ProductName><DomainName>ubsms.cn-qingdao.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>M-kvstore</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CmsSiteMonitor</ProductName><DomainName>sitemonitor.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>BatchCompute</ProductName><DomainName>batchcompute.cn-qingdao.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace</ProductName><DomainName>ace.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ots</ProductName><DomainName>ots-pop.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>PTS</ProductName><DomainName>pts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace-ops</ProductName><DomainName>ace-ops.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Apigateway</ProductName><DomainName>apigateway.cn-qingdao.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CloudAPI</ProductName><DomainName>apigateway.cn-qingdao.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sts</ProductName><DomainName>sts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Mts</ProductName><DomainName>mts.cn-qingdao.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location-inner</ProductName><DomainName>location-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CF</ProductName><DomainName>cf.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Acs</ProductName><DomainName>acs.aliyun-inc.com</DomainName></Product>
+            <Product><ProductName>Httpdns</ProductName><DomainName>httpdns-api.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Green</ProductName><DomainName>green.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Aas</ProductName><DomainName>aas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alidns</ProductName><DomainName>alidns.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Push</ProductName><DomainName>cloudpush.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HighDDos</ProductName><DomainName>yd-highddos-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc-inner</ProductName><DomainName>vpc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Commondriver</ProductName><DomainName>common.driver.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Domain</ProductName><DomainName>domain.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ROS</ProductName><DomainName>ros.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cdn</ProductName><DomainName>cdn.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ram</ProductName><DomainName>ram.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drds</ProductName><DomainName>drds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Crm</ProductName><DomainName>crm-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>OssAdmin</ProductName><DomainName>oss-admin.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ons</ProductName><DomainName>ons.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-qingdao.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-shenzhen-su18-b02">
+        <RegionIds><RegionId>cn-shenzhen-su18-b02</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-shenzhen-su18-b03">
+        <RegionIds><RegionId>cn-shenzhen-su18-b03</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-shenzhen-su18-b01">
+        <RegionIds><RegionId>cn-shenzhen-su18-b01</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="ap-southeast-antgroup-1">
+        <RegionIds><RegionId>ap-southeast-antgroup-1</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="oss-cn-bjzwy">
+        <RegionIds><RegionId>oss-cn-bjzwy</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-bjzwy.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-henan-am12001">
+        <RegionIds><RegionId>cn-henan-am12001</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-beijing">
+        <RegionIds><RegionId>cn-beijing</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>ARMS</ProductName><DomainName>arms.cn-beijing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CS</ProductName><DomainName>cs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>COS</ProductName><DomainName>cos.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ess</ProductName><DomainName>ess.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Billing</ProductName><DomainName>billing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dqs</ProductName><DomainName>dqs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dds</ProductName><DomainName>mongodb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sts</ProductName><DomainName>sts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sms</ProductName><DomainName>sms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msg</ProductName><DomainName>msg-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sales</ProductName><DomainName>sales.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HPC</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oas</ProductName><DomainName>cn-beijing.oas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location</ProductName><DomainName>location.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ons</ProductName><DomainName>ons.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ChargingService</ProductName><DomainName>chargingservice.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Hpc</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Commondriver</ProductName><DomainName>common.driver.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ocs</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Workorder</ProductName><DomainName>workorder.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>R-kvstore</ProductName><DomainName>r-kvstore-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Bss</ProductName><DomainName>bss.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms-inner</ProductName><DomainName>ubsms-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dm</ProductName><DomainName>dm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Risk</ProductName><DomainName>risk-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>oceanbase</ProductName><DomainName>oceanbase.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msc</ProductName><DomainName>msc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundunhsm</ProductName><DomainName>yundunhsm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Iot</ProductName><DomainName>iot.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alert</ProductName><DomainName>alert.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oms</ProductName><DomainName>oms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms</ProductName><DomainName>ubsms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace-ops</ProductName><DomainName>ace-ops.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>BatchCompute</ProductName><DomainName>batchCompute.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>AMS</ProductName><DomainName>ams.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ROS</ProductName><DomainName>ros.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>PTS</ProductName><DomainName>pts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>M-kvstore</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Apigateway</ProductName><DomainName>apigateway.cn-beijing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CloudAPI</ProductName><DomainName>apigateway.cn-beijing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Kms</ProductName><DomainName>kms.cn-beijing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HighDDos</ProductName><DomainName>yd-highddos-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CmsSiteMonitor</ProductName><DomainName>sitemonitor.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace</ProductName><DomainName>ace.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Mts</ProductName><DomainName>mts.cn-beijing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CF</ProductName><DomainName>cf.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Acs</ProductName><DomainName>acs.aliyun-inc.com</DomainName></Product>
+            <Product><ProductName>Httpdns</ProductName><DomainName>httpdns-api.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location-inner</ProductName><DomainName>location-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Aas</ProductName><DomainName>aas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Emr</ProductName><DomainName>emr.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dts</ProductName><DomainName>dts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drc</ProductName><DomainName>drc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Push</ProductName><DomainName>cloudpush.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Crm</ProductName><DomainName>crm-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Domain</ProductName><DomainName>domain.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ots</ProductName><DomainName>ots-pop.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-beijing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ram</ProductName><DomainName>ram.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drds</ProductName><DomainName>drds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc-inner</ProductName><DomainName>vpc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>OssAdmin</ProductName><DomainName>oss-admin.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alidns</ProductName><DomainName>alidns.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Green</ProductName><DomainName>green.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundun</ProductName><DomainName>yundun-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cdn</ProductName><DomainName>cdn.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>YundunDdos</ProductName><DomainName>inner-yundun-ddos.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>vod</ProductName><DomainName>vod.cn-beijing.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-hangzhou-d">
+        <RegionIds><RegionId>cn-hangzhou-d</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>CS</ProductName><DomainName>cs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>COS</ProductName><DomainName>cos.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ess</ProductName><DomainName>ess.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Billing</ProductName><DomainName>billing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dqs</ProductName><DomainName>dqs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dds</ProductName><DomainName>mongodb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Emr</ProductName><DomainName>emr.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sms</ProductName><DomainName>sms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sales</ProductName><DomainName>sales.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dts</ProductName><DomainName>dts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location</ProductName><DomainName>location.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msg</ProductName><DomainName>msg-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ChargingService</ProductName><DomainName>chargingservice.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>R-kvstore</ProductName><DomainName>r-kvstore-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Bss</ProductName><DomainName>bss.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msc</ProductName><DomainName>msc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ocs</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundun</ProductName><DomainName>yundun-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms-inner</ProductName><DomainName>ubsms-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dm</ProductName><DomainName>dm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Risk</ProductName><DomainName>risk-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>oceanbase</ProductName><DomainName>oceanbase.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Workorder</ProductName><DomainName>workorder.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alidns</ProductName><DomainName>alidns.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Iot</ProductName><DomainName>iot.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HPC</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oms</ProductName><DomainName>oms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>M-kvstore</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CmsSiteMonitor</ProductName><DomainName>sitemonitor.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alert</ProductName><DomainName>alert.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace</ProductName><DomainName>ace.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>AMS</ProductName><DomainName>ams.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ots</ProductName><DomainName>ots-pop.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>PTS</ProductName><DomainName>pts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Qualitycheck</ProductName><DomainName>qualitycheck.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms</ProductName><DomainName>ubsms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Mts</ProductName><DomainName>mts.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location-inner</ProductName><DomainName>location-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CF</ProductName><DomainName>cf.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Httpdns</ProductName><DomainName>httpdns-api.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Green</ProductName><DomainName>green.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Aas</ProductName><DomainName>aas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sts</ProductName><DomainName>sts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Push</ProductName><DomainName>cloudpush.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HighDDos</ProductName><DomainName>yd-highddos-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>YundunDdos</ProductName><DomainName>inner-yundun-ddos.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Domain</ProductName><DomainName>domain.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Commondriver</ProductName><DomainName>common.driver.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ROS</ProductName><DomainName>ros.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cdn</ProductName><DomainName>cdn.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ram</ProductName><DomainName>ram.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drds</ProductName><DomainName>drds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Crm</ProductName><DomainName>crm-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>OssAdmin</ProductName><DomainName>oss-admin.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ons</ProductName><DomainName>ons.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundunhsm</ProductName><DomainName>yundunhsm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drc</ProductName><DomainName>drc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-gansu-am6">
+        <RegionIds><RegionId>cn-gansu-am6</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-ningxiazhongwei">
+        <RegionIds><RegionId>cn-ningxiazhongwei</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-shanghai-et2-b01">
+        <RegionIds><RegionId>cn-shanghai-et2-b01</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>CS</ProductName><DomainName>cs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Risk</ProductName><DomainName>risk-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>COS</ProductName><DomainName>cos.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ons</ProductName><DomainName>ons.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ess</ProductName><DomainName>ess.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Billing</ProductName><DomainName>billing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dqs</ProductName><DomainName>dqs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dds</ProductName><DomainName>mongodb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alidns</ProductName><DomainName>alidns.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sms</ProductName><DomainName>sms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dts</ProductName><DomainName>dts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location</ProductName><DomainName>location.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msg</ProductName><DomainName>msg-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ChargingService</ProductName><DomainName>chargingservice.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ocs</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Bss</ProductName><DomainName>bss.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msc</ProductName><DomainName>msc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>R-kvstore</ProductName><DomainName>r-kvstore-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundun</ProductName><DomainName>yundun-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms-inner</ProductName><DomainName>ubsms-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dm</ProductName><DomainName>dm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Commondriver</ProductName><DomainName>common.driver.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>oceanbase</ProductName><DomainName>oceanbase.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Workorder</ProductName><DomainName>workorder.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundunhsm</ProductName><DomainName>yundunhsm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Iot</ProductName><DomainName>iot.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oms</ProductName><DomainName>oms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms</ProductName><DomainName>ubsms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace-ops</ProductName><DomainName>ace-ops.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CmsSiteMonitor</ProductName><DomainName>sitemonitor.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>BatchCompute</ProductName><DomainName>batchCompute.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace</ProductName><DomainName>ace.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>AMS</ProductName><DomainName>ams.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ots</ProductName><DomainName>ots-pop.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>PTS</ProductName><DomainName>pts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Qualitycheck</ProductName><DomainName>qualitycheck.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>M-kvstore</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Mts</ProductName><DomainName>mts.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CF</ProductName><DomainName>cf.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Acs</ProductName><DomainName>acs.aliyun-inc.com</DomainName></Product>
+            <Product><ProductName>Httpdns</ProductName><DomainName>httpdns-api.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location-inner</ProductName><DomainName>location-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Aas</ProductName><DomainName>aas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sts</ProductName><DomainName>sts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HPC</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Emr</ProductName><DomainName>emr.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HighDDos</ProductName><DomainName>yd-highddos-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Push</ProductName><DomainName>cloudpush.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Crm</ProductName><DomainName>crm-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alert</ProductName><DomainName>alert.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Domain</ProductName><DomainName>domain.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ROS</ProductName><DomainName>ros.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cdn</ProductName><DomainName>cdn.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ram</ProductName><DomainName>ram.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drds</ProductName><DomainName>drds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc-inner</ProductName><DomainName>vpc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>OssAdmin</ProductName><DomainName>oss-admin.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sales</ProductName><DomainName>sales.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Green</ProductName><DomainName>green.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drc</ProductName><DomainName>drc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>YundunDdos</ProductName><DomainName>inner-yundun-ddos.cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-ningxia-am7-c01">
+        <RegionIds><RegionId>cn-ningxia-am7-c01</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-shenzhen-finance-1">
+        <RegionIds><RegionId>cn-shenzhen-finance-1</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Kms</ProductName><DomainName>kms.cn-shenzhen-finance-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="ap-southeast-1">
+        <RegionIds><RegionId>ap-southeast-1</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>CS</ProductName><DomainName>cs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Risk</ProductName><DomainName>risk-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>COS</ProductName><DomainName>cos.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ess</ProductName><DomainName>ess.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Billing</ProductName><DomainName>billing.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dqs</ProductName><DomainName>dqs.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dds</ProductName><DomainName>mongodb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alidns</ProductName><DomainName>alidns.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sms</ProductName><DomainName>sms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drds</ProductName><DomainName>drds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dts</ProductName><DomainName>dts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Kms</ProductName><DomainName>kms.ap-southeast-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location</ProductName><DomainName>location.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msg</ProductName><DomainName>msg-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ChargingService</ProductName><DomainName>chargingservice.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>R-kvstore</ProductName><DomainName>r-kvstore-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Alert</ProductName><DomainName>alert.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Msc</ProductName><DomainName>msc-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HighDDos</ProductName><DomainName>yd-highddos-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundun</ProductName><DomainName>yundun-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms-inner</ProductName><DomainName>ubsms-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ocs</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dm</ProductName><DomainName>dm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Green</ProductName><DomainName>green.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Commondriver</ProductName><DomainName>common.driver.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>oceanbase</ProductName><DomainName>oceanbase.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Workorder</ProductName><DomainName>workorder.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Yundunhsm</ProductName><DomainName>yundunhsm.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Iot</ProductName><DomainName>iot.ap-southeast-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>HPC</ProductName><DomainName>hpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>jaq</ProductName><DomainName>jaq.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oms</ProductName><DomainName>oms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>live</ProductName><DomainName>live.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>M-kvstore</ProductName><DomainName>m-kvstore.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>BatchCompute</ProductName><DomainName>batchCompute.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>AMS</ProductName><DomainName>ams.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>ROS</ProductName><DomainName>ros.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>PTS</ProductName><DomainName>pts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Qualitycheck</ProductName><DomainName>qualitycheck.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Bss</ProductName><DomainName>bss.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ubsms</ProductName><DomainName>ubsms.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Apigateway</ProductName><DomainName>apigateway.ap-southeast-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CloudAPI</ProductName><DomainName>apigateway.ap-southeast-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sts</ProductName><DomainName>sts.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CmsSiteMonitor</ProductName><DomainName>sitemonitor.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ace</ProductName><DomainName>ace.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Mts</ProductName><DomainName>mts.ap-southeast-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>CF</ProductName><DomainName>cf.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Crm</ProductName><DomainName>crm-cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Location-inner</ProductName><DomainName>location-inner.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Aas</ProductName><DomainName>aas.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Emr</ProductName><DomainName>emr.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Httpdns</ProductName><DomainName>httpdns-api.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Drc</ProductName><DomainName>drc.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Push</ProductName><DomainName>cloudpush.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>YundunDdos</ProductName><DomainName>inner-yundun-ddos.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Domain</ProductName><DomainName>domain.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ots</ProductName><DomainName>ots-pop.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cdn</ProductName><DomainName>cdn.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ram</ProductName><DomainName>ram.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Sales</ProductName><DomainName>sales.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>OssAdmin</ProductName><DomainName>oss-admin.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ons</ProductName><DomainName>ons.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Oss</ProductName><DomainName>oss-ap-southeast-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Dysmsapi</ProductName><DomainName>dysmsapi.ap-southeast-1.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-shenzhen-st4-d01">
+        <RegionIds><RegionId>cn-shenzhen-st4-d01</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs-cn-hangzhou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="eu-central-1">
+        <RegionIds><RegionId>eu-central-1</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.eu-central-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs.eu-central-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.eu-central-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Kms</ProductName><DomainName>kms.eu-central-1.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.eu-central-1.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+    <Endpoint name="cn-zhangjiakou">
+        <RegionIds><RegionId>cn-zhangjiakou</RegionId></RegionIds>
+        <Products>
+            <Product><ProductName>Rds</ProductName><DomainName>rds.cn-zhangjiakou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Ecs</ProductName><DomainName>ecs.cn-zhangjiakou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Vpc</ProductName><DomainName>vpc.cn-zhangjiakou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Cms</ProductName><DomainName>metrics.cn-hangzhou.aliyuncs.com</DomainName></Product>
+            <Product><ProductName>Slb</ProductName><DomainName>slb.cn-zhangjiakou.aliyuncs.com</DomainName></Product>
+        </Products>
+    </Endpoint>
+</Endpoints>

+ 207 - 0
extend/api_sdk/lib/Core/RoaAcsRequest.php

@@ -0,0 +1,207 @@
+<?php
+
+namespace Aliyun\Core;
+
+abstract class RoaAcsRequest extends AcsRequest
+{
+	protected $uriPattern;
+	private $pathParameters = array();
+	private $domainParameters = array();
+	private $dateTimeFormat ="D, d M Y H:i:s \G\M\T";
+	private static $headerSeparator = "\n";
+	private static $querySeprator = "&"; 
+	
+	function  __construct($product, $version, $actionName)
+	{
+		parent::__construct($product, $version, $actionName);
+		$this->setVersion($version);
+		$this->initialize();
+	}
+	
+	private function initialize()
+	{
+		$this->setMethod("RAW");
+	}
+	
+	public function composeUrl($iSigner, $credential, $domain)
+	{
+		$this->prepareHeader($iSigner);
+
+		$signString = $this->getMethod().self::$headerSeparator;
+		if(isset($this->headers["Accept"]))
+		{
+			$signString = $signString.$this->headers["Accept"];
+		}
+		$signString = $signString.self::$headerSeparator;
+		
+		if(isset($this->headers["Content-MD5"]))
+		{
+			$signString = $signString.$this->headers["Content-MD5"];
+		}
+		$signString = $signString.self::$headerSeparator;
+		
+		if(isset($this->headers["Content-Type"]))
+		{
+			$signString = $signString.$this->headers["Content-Type"];
+		}
+		$signString = $signString.self::$headerSeparator;
+		
+		if(isset($this->headers["Date"]))
+		{
+			$signString = $signString.$this->headers["Date"];
+		}
+		$signString = $signString.self::$headerSeparator;
+		
+		$uri = $this->replaceOccupiedParameters();
+		$signString = $signString.$this->buildCanonicalHeaders();
+		$queryString = $this->buildQueryString($uri);
+		$signString .= $queryString;
+		$this->headers["Authorization"] = "acs ".$credential->getAccessKeyId().":"
+				.$iSigner->signString($signString, $credential->getAccessSecret());
+		$requestUrl = $this->getProtocol()."://".$domain.$queryString;
+		return $requestUrl;
+	}
+	
+	private function prepareHeader($iSigner)
+	{
+		$this->headers["Date"] = gmdate($this->dateTimeFormat);
+		if(null == $this->acceptFormat)
+		{
+			$this->acceptFormat = "RAW";
+		}
+		$this->headers["Accept"] = $this->formatToAccept($this->getAcceptFormat());
+		$this->headers["x-acs-signature-method"] = $iSigner->getSignatureMethod();
+		$this->headers["x-acs-signature-version"] = $iSigner->getSignatureVersion();
+		$this->headers["x-acs-region-id"] = $this->regionId;
+		$content = $this->getDomainParameter();
+        if ($content != null) {
+          $this->headers["Content-MD5"] = base64_encode(md5(json_encode($content),true));
+        }
+		$this->headers["Content-Type"] = "application/octet-stream;charset=utf-8";
+	}
+	
+	private function replaceOccupiedParameters()
+	{
+		$result = $this->uriPattern;
+		foreach ($this->pathParameters as $pathParameterKey => $apiParameterValue)
+		{
+			$target = "[".$pathParameterKey."]";
+			$result = str_replace($target,$apiParameterValue,$result);
+		}
+		return $result;
+	}
+	
+	private function buildCanonicalHeaders()
+	{
+		$sortMap = array();
+		foreach ($this->headers as $headerKey => $headerValue)
+		{
+			$key = strtolower($headerKey);
+			if(strpos($key, "x-acs-") === 0)
+			{
+				$sortMap[$key] = $headerValue;
+			}
+		}
+		ksort($sortMap);
+		$headerString = "";
+		foreach ($sortMap as $sortMapKey => $sortMapValue)
+		{
+			$headerString = $headerString.$sortMapKey.":".$sortMapValue.self::$headerSeparator;
+		}
+		return $headerString;
+	}
+	
+	private function splitSubResource($uri)
+	{
+		$queIndex = strpos($uri, "?");
+		$uriParts = array();
+		if(null != $queIndex)
+		{
+			array_push($uriParts, substr($uri,0,$queIndex));
+			array_push($uriParts, substr($uri,$queIndex+1));
+		}
+		else 
+		{
+			array_push($uriParts,$uri);
+		}
+		return $uriParts;
+	} 
+	
+	private function buildQueryString($uri)
+	{
+		$uriParts = $this->splitSubResource($uri);
+		$sortMap  = $this->queryParameters;
+		if(isset($uriParts[1]))
+		{
+			$sortMap[$uriParts[1]] = null;
+		}
+		$queryString = $uriParts[0];
+		if(count($uriParts))
+		{
+			$queryString = $queryString."?";
+		}
+		ksort($sortMap);
+		foreach ($sortMap as $sortMapKey => $sortMapValue)
+		{
+			$queryString = $queryString.$sortMapKey;
+			if(isset($sortMapValue))
+			{
+				$queryString = $queryString."=".$sortMapValue;
+			}
+			$queryString = $queryString.$querySeprator;
+		}
+		if(null==count($sortMap))
+		{
+			$queryString = substr($queryString, 0, strlen($queryString)-1);
+		}
+		return $queryString;
+	}
+	
+	private function formatToAccept($acceptFormat)
+	{
+		if($acceptFormat == "JSON")
+		{
+			return "application/json";
+		}
+		elseif ($acceptFormat == "XML") {
+			return "application/xml";
+		}
+		return "application/octet-stream";
+	}
+	
+	public function getPathParameters()
+	{
+		return $this->pathParameters;
+	}
+	
+	public function putPathParameter($name, $value)
+	{
+		$this->pathParameters[$name] = $value;
+	}
+	
+	public function getDomainParameter()	
+	{
+		return $this->domainParameters;
+	}
+	
+	public function putDomainParameters($name, $value)
+	{
+		$this->domainParameters[$name] = $value;
+	}
+	
+	public function getUriPattern()
+	{
+		return $this->uriPattern;
+	}
+	
+	public function setUriPattern($uriPattern)
+	{
+		return $this->uriPattern = $uriPattern;
+	}
+	
+	public function setVersion($version)
+	{
+		$this->version = $version;
+		$this->headers["x-acs-version"] = $version;
+	}
+}

+ 105 - 0
extend/api_sdk/lib/Core/RpcAcsRequest.php

@@ -0,0 +1,105 @@
+<?php
+
+namespace Aliyun\Core;
+
+abstract class RpcAcsRequest extends AcsRequest
+{
+	private $dateTimeFormat = 'Y-m-d\TH:i:s\Z'; 
+	private $domainParameters = array();
+	
+	function  __construct($product, $version, $actionName)
+	{
+		parent::__construct($product, $version, $actionName);
+		$this->initialize();
+	}
+	
+	private function initialize()
+	{
+		$this->setMethod("GET");	
+		$this->setAcceptFormat("JSON");
+	}
+	
+
+    private function prepareValue($value)
+    {
+        if (is_bool($value)) {
+            if ($value) {
+                return "true";
+            } else {
+                return "false";
+            }
+        } else {
+            return $value;
+        }
+    }
+
+	public function composeUrl($iSigner, $credential, $domain)
+	{
+		$apiParams = parent::getQueryParameters();
+        foreach ($apiParams as $key => $value) {
+            $apiParams[$key] = $this->prepareValue($value);
+        }
+		$apiParams["RegionId"] = $this->getRegionId();
+		$apiParams["AccessKeyId"] = $credential->getAccessKeyId();
+		$apiParams["Format"] = $this->getAcceptFormat();
+		$apiParams["SignatureMethod"] = $iSigner->getSignatureMethod();
+		$apiParams["SignatureVersion"] = $iSigner->getSignatureVersion();
+        $apiParams["SignatureNonce"] = md5(uniqid(mt_rand(), true));
+        $apiParams["Timestamp"] = gmdate($this->dateTimeFormat);
+		$apiParams["Action"] = $this->getActionName();
+		$apiParams["Version"] = $this->getVersion();
+		$apiParams["Signature"] = $this->computeSignature($apiParams, $credential->getAccessSecret(), $iSigner);
+		if(parent::getMethod() == "POST") {
+			
+			$requestUrl = $this->getProtocol()."://". $domain . "/";			
+			foreach ($apiParams as $apiParamKey => $apiParamValue)
+			{
+				$this->putDomainParameters($apiParamKey,$apiParamValue);
+			}
+			return $requestUrl;
+		}
+		else {	
+			$requestUrl = $this->getProtocol()."://". $domain . "/?";
+
+			foreach ($apiParams as $apiParamKey => $apiParamValue)
+			{
+				$requestUrl .= "$apiParamKey=" . urlencode($apiParamValue) . "&";
+			}
+			return substr($requestUrl, 0, -1);
+		}
+	}
+	
+	private function computeSignature($parameters, $accessKeySecret, $iSigner)
+	{
+	    ksort($parameters);
+	    $canonicalizedQueryString = '';
+	    foreach($parameters as $key => $value)
+	    {
+			$canonicalizedQueryString .= '&' . $this->percentEncode($key). '=' . $this->percentEncode($value);
+	    }
+	    $stringToSign = parent::getMethod().'&%2F&' . $this->percentencode(substr($canonicalizedQueryString, 1));
+	    $signature = $iSigner->signString($stringToSign, $accessKeySecret."&");
+
+	    return $signature;
+	}
+	
+	protected function percentEncode($str)
+	{
+	    $res = urlencode($str);
+	    $res = preg_replace('/\+/', '%20', $res);
+	    $res = preg_replace('/\*/', '%2A', $res);
+	    $res = preg_replace('/%7E/', '~', $res);
+	    return $res;
+	}
+	
+	public function getDomainParameter()	
+	{
+		return $this->domainParameters;
+	}
+	
+	public function putDomainParameters($name, $value)
+	{
+		$this->domainParameters[$name] = $value;
+	}
+	
+}

+ 7 - 0
extend/api_sdk/vendor/autoload.php

@@ -0,0 +1,7 @@
+<?php
+
+// autoload.php @generated by Composer
+
+require_once __DIR__ . '/composer/autoload_real.php';
+
+return ComposerAutoloaderInitee70723fd3132b6d05f0ff016c58b71b::getLoader();

+ 445 - 0
extend/api_sdk/vendor/composer/ClassLoader.php

@@ -0,0 +1,445 @@
+<?php
+
+/*
+ * This file is part of Composer.
+ *
+ * (c) Nils Adermann <naderman@naderman.de>
+ *     Jordi Boggiano <j.boggiano@seld.be>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+namespace Composer\Autoload;
+
+/**
+ * ClassLoader implements a PSR-0, PSR-4 and classmap class loader.
+ *
+ *     $loader = new \Composer\Autoload\ClassLoader();
+ *
+ *     // register classes with namespaces
+ *     $loader->add('Symfony\Component', __DIR__.'/component');
+ *     $loader->add('Symfony',           __DIR__.'/framework');
+ *
+ *     // activate the autoloader
+ *     $loader->register();
+ *
+ *     // to enable searching the include path (eg. for PEAR packages)
+ *     $loader->setUseIncludePath(true);
+ *
+ * In this example, if you try to use a class in the Symfony\Component
+ * namespace or one of its children (Symfony\Component\Console for instance),
+ * the autoloader will first look for the class under the component/
+ * directory, and it will then fallback to the framework/ directory if not
+ * found before giving up.
+ *
+ * This class is loosely based on the Symfony UniversalClassLoader.
+ *
+ * @author Fabien Potencier <fabien@symfony.com>
+ * @author Jordi Boggiano <j.boggiano@seld.be>
+ * @see    http://www.php-fig.org/psr/psr-0/
+ * @see    http://www.php-fig.org/psr/psr-4/
+ */
+class ClassLoader
+{
+    // PSR-4
+    private $prefixLengthsPsr4 = array();
+    private $prefixDirsPsr4 = array();
+    private $fallbackDirsPsr4 = array();
+
+    // PSR-0
+    private $prefixesPsr0 = array();
+    private $fallbackDirsPsr0 = array();
+
+    private $useIncludePath = false;
+    private $classMap = array();
+    private $classMapAuthoritative = false;
+    private $missingClasses = array();
+    private $apcuPrefix;
+
+    public function getPrefixes()
+    {
+        if (!empty($this->prefixesPsr0)) {
+            return call_user_func_array('array_merge', $this->prefixesPsr0);
+        }
+
+        return array();
+    }
+
+    public function getPrefixesPsr4()
+    {
+        return $this->prefixDirsPsr4;
+    }
+
+    public function getFallbackDirs()
+    {
+        return $this->fallbackDirsPsr0;
+    }
+
+    public function getFallbackDirsPsr4()
+    {
+        return $this->fallbackDirsPsr4;
+    }
+
+    public function getClassMap()
+    {
+        return $this->classMap;
+    }
+
+    /**
+     * @param array $classMap Class to filename map
+     */
+    public function addClassMap(array $classMap)
+    {
+        if ($this->classMap) {
+            $this->classMap = array_merge($this->classMap, $classMap);
+        } else {
+            $this->classMap = $classMap;
+        }
+    }
+
+    /**
+     * Registers a set of PSR-0 directories for a given prefix, either
+     * appending or prepending to the ones previously set for this prefix.
+     *
+     * @param string       $prefix  The prefix
+     * @param array|string $paths   The PSR-0 root directories
+     * @param bool         $prepend Whether to prepend the directories
+     */
+    public function add($prefix, $paths, $prepend = false)
+    {
+        if (!$prefix) {
+            if ($prepend) {
+                $this->fallbackDirsPsr0 = array_merge(
+                    (array) $paths,
+                    $this->fallbackDirsPsr0
+                );
+            } else {
+                $this->fallbackDirsPsr0 = array_merge(
+                    $this->fallbackDirsPsr0,
+                    (array) $paths
+                );
+            }
+
+            return;
+        }
+
+        $first = $prefix[0];
+        if (!isset($this->prefixesPsr0[$first][$prefix])) {
+            $this->prefixesPsr0[$first][$prefix] = (array) $paths;
+
+            return;
+        }
+        if ($prepend) {
+            $this->prefixesPsr0[$first][$prefix] = array_merge(
+                (array) $paths,
+                $this->prefixesPsr0[$first][$prefix]
+            );
+        } else {
+            $this->prefixesPsr0[$first][$prefix] = array_merge(
+                $this->prefixesPsr0[$first][$prefix],
+                (array) $paths
+            );
+        }
+    }
+
+    /**
+     * Registers a set of PSR-4 directories for a given namespace, either
+     * appending or prepending to the ones previously set for this namespace.
+     *
+     * @param string       $prefix  The prefix/namespace, with trailing '\\'
+     * @param array|string $paths   The PSR-4 base directories
+     * @param bool         $prepend Whether to prepend the directories
+     *
+     * @throws \InvalidArgumentException
+     */
+    public function addPsr4($prefix, $paths, $prepend = false)
+    {
+        if (!$prefix) {
+            // Register directories for the root namespace.
+            if ($prepend) {
+                $this->fallbackDirsPsr4 = array_merge(
+                    (array) $paths,
+                    $this->fallbackDirsPsr4
+                );
+            } else {
+                $this->fallbackDirsPsr4 = array_merge(
+                    $this->fallbackDirsPsr4,
+                    (array) $paths
+                );
+            }
+        } elseif (!isset($this->prefixDirsPsr4[$prefix])) {
+            // Register directories for a new namespace.
+            $length = strlen($prefix);
+            if ('\\' !== $prefix[$length - 1]) {
+                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+            }
+            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+            $this->prefixDirsPsr4[$prefix] = (array) $paths;
+        } elseif ($prepend) {
+            // Prepend directories for an already registered namespace.
+            $this->prefixDirsPsr4[$prefix] = array_merge(
+                (array) $paths,
+                $this->prefixDirsPsr4[$prefix]
+            );
+        } else {
+            // Append directories for an already registered namespace.
+            $this->prefixDirsPsr4[$prefix] = array_merge(
+                $this->prefixDirsPsr4[$prefix],
+                (array) $paths
+            );
+        }
+    }
+
+    /**
+     * Registers a set of PSR-0 directories for a given prefix,
+     * replacing any others previously set for this prefix.
+     *
+     * @param string       $prefix The prefix
+     * @param array|string $paths  The PSR-0 base directories
+     */
+    public function set($prefix, $paths)
+    {
+        if (!$prefix) {
+            $this->fallbackDirsPsr0 = (array) $paths;
+        } else {
+            $this->prefixesPsr0[$prefix[0]][$prefix] = (array) $paths;
+        }
+    }
+
+    /**
+     * Registers a set of PSR-4 directories for a given namespace,
+     * replacing any others previously set for this namespace.
+     *
+     * @param string       $prefix The prefix/namespace, with trailing '\\'
+     * @param array|string $paths  The PSR-4 base directories
+     *
+     * @throws \InvalidArgumentException
+     */
+    public function setPsr4($prefix, $paths)
+    {
+        if (!$prefix) {
+            $this->fallbackDirsPsr4 = (array) $paths;
+        } else {
+            $length = strlen($prefix);
+            if ('\\' !== $prefix[$length - 1]) {
+                throw new \InvalidArgumentException("A non-empty PSR-4 prefix must end with a namespace separator.");
+            }
+            $this->prefixLengthsPsr4[$prefix[0]][$prefix] = $length;
+            $this->prefixDirsPsr4[$prefix] = (array) $paths;
+        }
+    }
+
+    /**
+     * Turns on searching the include path for class files.
+     *
+     * @param bool $useIncludePath
+     */
+    public function setUseIncludePath($useIncludePath)
+    {
+        $this->useIncludePath = $useIncludePath;
+    }
+
+    /**
+     * Can be used to check if the autoloader uses the include path to check
+     * for classes.
+     *
+     * @return bool
+     */
+    public function getUseIncludePath()
+    {
+        return $this->useIncludePath;
+    }
+
+    /**
+     * Turns off searching the prefix and fallback directories for classes
+     * that have not been registered with the class map.
+     *
+     * @param bool $classMapAuthoritative
+     */
+    public function setClassMapAuthoritative($classMapAuthoritative)
+    {
+        $this->classMapAuthoritative = $classMapAuthoritative;
+    }
+
+    /**
+     * Should class lookup fail if not found in the current class map?
+     *
+     * @return bool
+     */
+    public function isClassMapAuthoritative()
+    {
+        return $this->classMapAuthoritative;
+    }
+
+    /**
+     * APCu prefix to use to cache found/not-found classes, if the extension is enabled.
+     *
+     * @param string|null $apcuPrefix
+     */
+    public function setApcuPrefix($apcuPrefix)
+    {
+        $this->apcuPrefix = function_exists('apcu_fetch') && ini_get('apc.enabled') ? $apcuPrefix : null;
+    }
+
+    /**
+     * The APCu prefix in use, or null if APCu caching is not enabled.
+     *
+     * @return string|null
+     */
+    public function getApcuPrefix()
+    {
+        return $this->apcuPrefix;
+    }
+
+    /**
+     * Registers this instance as an autoloader.
+     *
+     * @param bool $prepend Whether to prepend the autoloader or not
+     */
+    public function register($prepend = false)
+    {
+        spl_autoload_register(array($this, 'loadClass'), true, $prepend);
+    }
+
+    /**
+     * Unregisters this instance as an autoloader.
+     */
+    public function unregister()
+    {
+        spl_autoload_unregister(array($this, 'loadClass'));
+    }
+
+    /**
+     * Loads the given class or interface.
+     *
+     * @param  string    $class The name of the class
+     * @return bool|null True if loaded, null otherwise
+     */
+    public function loadClass($class)
+    {
+        if ($file = $this->findFile($class)) {
+            includeFile($file);
+
+            return true;
+        }
+    }
+
+    /**
+     * Finds the path to the file where the class is defined.
+     *
+     * @param string $class The name of the class
+     *
+     * @return string|false The path if found, false otherwise
+     */
+    public function findFile($class)
+    {
+        // class map lookup
+        if (isset($this->classMap[$class])) {
+            return $this->classMap[$class];
+        }
+        if ($this->classMapAuthoritative || isset($this->missingClasses[$class])) {
+            return false;
+        }
+        if (null !== $this->apcuPrefix) {
+            $file = apcu_fetch($this->apcuPrefix.$class, $hit);
+            if ($hit) {
+                return $file;
+            }
+        }
+
+        $file = $this->findFileWithExtension($class, '.php');
+
+        // Search for Hack files if we are running on HHVM
+        if (false === $file && defined('HHVM_VERSION')) {
+            $file = $this->findFileWithExtension($class, '.hh');
+        }
+
+        if (null !== $this->apcuPrefix) {
+            apcu_add($this->apcuPrefix.$class, $file);
+        }
+
+        if (false === $file) {
+            // Remember that this class does not exist.
+            $this->missingClasses[$class] = true;
+        }
+
+        return $file;
+    }
+
+    private function findFileWithExtension($class, $ext)
+    {
+        // PSR-4 lookup
+        $logicalPathPsr4 = strtr($class, '\\', DIRECTORY_SEPARATOR) . $ext;
+
+        $first = $class[0];
+        if (isset($this->prefixLengthsPsr4[$first])) {
+            $subPath = $class;
+            while (false !== $lastPos = strrpos($subPath, '\\')) {
+                $subPath = substr($subPath, 0, $lastPos);
+                $search = $subPath.'\\';
+                if (isset($this->prefixDirsPsr4[$search])) {
+                    foreach ($this->prefixDirsPsr4[$search] as $dir) {
+                        $length = $this->prefixLengthsPsr4[$first][$search];
+                        if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) {
+                            return $file;
+                        }
+                    }
+                }
+            }
+        }
+
+        // PSR-4 fallback dirs
+        foreach ($this->fallbackDirsPsr4 as $dir) {
+            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr4)) {
+                return $file;
+            }
+        }
+
+        // PSR-0 lookup
+        if (false !== $pos = strrpos($class, '\\')) {
+            // namespaced class name
+            $logicalPathPsr0 = substr($logicalPathPsr4, 0, $pos + 1)
+                . strtr(substr($logicalPathPsr4, $pos + 1), '_', DIRECTORY_SEPARATOR);
+        } else {
+            // PEAR-like class name
+            $logicalPathPsr0 = strtr($class, '_', DIRECTORY_SEPARATOR) . $ext;
+        }
+
+        if (isset($this->prefixesPsr0[$first])) {
+            foreach ($this->prefixesPsr0[$first] as $prefix => $dirs) {
+                if (0 === strpos($class, $prefix)) {
+                    foreach ($dirs as $dir) {
+                        if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+                            return $file;
+                        }
+                    }
+                }
+            }
+        }
+
+        // PSR-0 fallback dirs
+        foreach ($this->fallbackDirsPsr0 as $dir) {
+            if (file_exists($file = $dir . DIRECTORY_SEPARATOR . $logicalPathPsr0)) {
+                return $file;
+            }
+        }
+
+        // PSR-0 include paths.
+        if ($this->useIncludePath && $file = stream_resolve_include_path($logicalPathPsr0)) {
+            return $file;
+        }
+
+        return false;
+    }
+}
+
+/**
+ * Scope isolated include.
+ *
+ * Prevents access to $this/self from included files.
+ */
+function includeFile($file)
+{
+    include $file;
+}

+ 21 - 0
extend/api_sdk/vendor/composer/LICENSE

@@ -0,0 +1,21 @@
+
+Copyright (c) Nils Adermann, Jordi Boggiano
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is furnished
+to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+

+ 9 - 0
extend/api_sdk/vendor/composer/autoload_classmap.php

@@ -0,0 +1,9 @@
+<?php
+
+// autoload_classmap.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname($vendorDir);
+
+return array(
+);

+ 9 - 0
extend/api_sdk/vendor/composer/autoload_namespaces.php

@@ -0,0 +1,9 @@
+<?php
+
+// autoload_namespaces.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname($vendorDir);
+
+return array(
+);

+ 10 - 0
extend/api_sdk/vendor/composer/autoload_psr4.php

@@ -0,0 +1,10 @@
+<?php
+
+// autoload_psr4.php @generated by Composer
+
+$vendorDir = dirname(dirname(__FILE__));
+$baseDir = dirname($vendorDir);
+
+return array(
+    'Aliyun\\' => array($baseDir . '/lib'),
+);

+ 52 - 0
extend/api_sdk/vendor/composer/autoload_real.php

@@ -0,0 +1,52 @@
+<?php
+
+// autoload_real.php @generated by Composer
+
+class ComposerAutoloaderInitee70723fd3132b6d05f0ff016c58b71b
+{
+    private static $loader;
+
+    public static function loadClassLoader($class)
+    {
+        if ('Composer\Autoload\ClassLoader' === $class) {
+            require __DIR__ . '/ClassLoader.php';
+        }
+    }
+
+    public static function getLoader()
+    {
+        if (null !== self::$loader) {
+            return self::$loader;
+        }
+
+        spl_autoload_register(array('ComposerAutoloaderInitee70723fd3132b6d05f0ff016c58b71b', 'loadClassLoader'), true, true);
+        self::$loader = $loader = new \Composer\Autoload\ClassLoader();
+        spl_autoload_unregister(array('ComposerAutoloaderInitee70723fd3132b6d05f0ff016c58b71b', 'loadClassLoader'));
+
+        $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
+        if ($useStaticLoader) {
+            require_once __DIR__ . '/autoload_static.php';
+
+            call_user_func(\Composer\Autoload\ComposerStaticInitee70723fd3132b6d05f0ff016c58b71b::getInitializer($loader));
+        } else {
+            $map = require __DIR__ . '/autoload_namespaces.php';
+            foreach ($map as $namespace => $path) {
+                $loader->set($namespace, $path);
+            }
+
+            $map = require __DIR__ . '/autoload_psr4.php';
+            foreach ($map as $namespace => $path) {
+                $loader->setPsr4($namespace, $path);
+            }
+
+            $classMap = require __DIR__ . '/autoload_classmap.php';
+            if ($classMap) {
+                $loader->addClassMap($classMap);
+            }
+        }
+
+        $loader->register(true);
+
+        return $loader;
+    }
+}

+ 31 - 0
extend/api_sdk/vendor/composer/autoload_static.php

@@ -0,0 +1,31 @@
+<?php
+
+// autoload_static.php @generated by Composer
+
+namespace Composer\Autoload;
+
+class ComposerStaticInitee70723fd3132b6d05f0ff016c58b71b
+{
+    public static $prefixLengthsPsr4 = array (
+        'A' => 
+        array (
+            'Aliyun\\' => 7,
+        ),
+    );
+
+    public static $prefixDirsPsr4 = array (
+        'Aliyun\\' => 
+        array (
+            0 => __DIR__ . '/../..' . '/lib',
+        ),
+    );
+
+    public static function getInitializer(ClassLoader $loader)
+    {
+        return \Closure::bind(function () use ($loader) {
+            $loader->prefixLengthsPsr4 = ComposerStaticInitee70723fd3132b6d05f0ff016c58b71b::$prefixLengthsPsr4;
+            $loader->prefixDirsPsr4 = ComposerStaticInitee70723fd3132b6d05f0ff016c58b71b::$prefixDirsPsr4;
+
+        }, null, ClassLoader::class);
+    }
+}

+ 1 - 0
extend/api_sdk/vendor/composer/installed.json

@@ -0,0 +1 @@
+[]