zhangguidong 2 years ago
parent
commit
4afa5bd447
54 changed files with 4732 additions and 1 deletions
  1. 22 1
      application/api/controller/Sms.php
  2. 13 0
      vendor/aliyunafs/License
  3. 30 0
      vendor/aliyunafs/README.md
  4. 3 0
      vendor/aliyunafs/aliyun-php-sdk-afs/ChangeLog.txt
  5. 74 0
      vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/AnalyzeNvcRequest.php
  6. 118 0
      vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/AuthenticateSigRequest.php
  7. 85 0
      vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/ConfigurationStyleRequest.php
  8. 107 0
      vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/CreateConfigurationRequest.php
  9. 85 0
      vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/DescribeCaptchaDayRequest.php
  10. 85 0
      vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/DescribeCaptchaIpCityRequest.php
  11. 85 0
      vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/DescribeCaptchaMinRequest.php
  12. 74 0
      vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/DescribeCaptchaRiskRequest.php
  13. 52 0
      vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/DescribeConfigNameRequest.php
  14. 52 0
      vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/DescribeEarlyWarningRequest.php
  15. 52 0
      vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/DescribePersonMachineListRequest.php
  16. 129 0
      vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/SetEarlyWarningRequest.php
  17. 154 0
      vendor/aliyunafs/aliyun-php-sdk-core/AcsRequest.php
  18. 44 0
      vendor/aliyunafs/aliyun-php-sdk-core/AcsResponse.php
  19. 94 0
      vendor/aliyunafs/aliyun-php-sdk-core/Auth/Credential.php
  20. 27 0
      vendor/aliyunafs/aliyun-php-sdk-core/Auth/ISigner.php
  21. 36 0
      vendor/aliyunafs/aliyun-php-sdk-core/Auth/ShaHmac1Signer.php
  22. 36 0
      vendor/aliyunafs/aliyun-php-sdk-core/Auth/ShaHmac256Signer.php
  23. 48 0
      vendor/aliyunafs/aliyun-php-sdk-core/Autoloader/Autoloader.php
  24. 49 0
      vendor/aliyunafs/aliyun-php-sdk-core/Config.php
  25. 134 0
      vendor/aliyunafs/aliyun-php-sdk-core/DefaultAcsClient.php
  26. 63 0
      vendor/aliyunafs/aliyun-php-sdk-core/Exception/ClientException.php
  27. 44 0
      vendor/aliyunafs/aliyun-php-sdk-core/Exception/ServerException.php
  28. 80 0
      vendor/aliyunafs/aliyun-php-sdk-core/Http/HttpHelper.php
  29. 52 0
      vendor/aliyunafs/aliyun-php-sdk-core/Http/HttpResponse.php
  30. 23 0
      vendor/aliyunafs/aliyun-php-sdk-core/IAcsClient.php
  31. 146 0
      vendor/aliyunafs/aliyun-php-sdk-core/Profile/DefaultProfile.php
  32. 29 0
      vendor/aliyunafs/aliyun-php-sdk-core/Profile/IClientProfile.php
  33. 62 0
      vendor/aliyunafs/aliyun-php-sdk-core/Regions/Endpoint.php
  34. 65 0
      vendor/aliyunafs/aliyun-php-sdk-core/Regions/EndpointConfig.php
  35. 60 0
      vendor/aliyunafs/aliyun-php-sdk-core/Regions/EndpointProvider.php
  36. 120 0
      vendor/aliyunafs/aliyun-php-sdk-core/Regions/LocationService.php
  37. 47 0
      vendor/aliyunafs/aliyun-php-sdk-core/Regions/ProductDomain.php
  38. 1349 0
      vendor/aliyunafs/aliyun-php-sdk-core/Regions/endpoints.xml
  39. 206 0
      vendor/aliyunafs/aliyun-php-sdk-core/RoaAcsRequest.php
  40. 116 0
      vendor/aliyunafs/aliyun-php-sdk-core/RpcAcsRequest.php
  41. 35 0
      vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Auth/CredentialTest.php
  42. 28 0
      vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Auth/ShaHmac1SignerTest.php
  43. 30 0
      vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Auth/ShaHmac256SignerTest.php
  44. 40 0
      vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/BaseTest.php
  45. 30 0
      vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/BatchCompute/ListImagesRequest.php
  46. 42 0
      vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/DefaultAcsClientTest.php
  47. 80 0
      vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Ecs/Rquest/DescribeRegionsRequest.php
  48. 35 0
      vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Ft/InteTest.php
  49. 57 0
      vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Ft/TestRoaApiRequest.php
  50. 42 0
      vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Ft/TestRpcApiRequest.php
  51. 29 0
      vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Http/HttpHelperTest.php
  52. 60 0
      vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Profile/DefaultProfileTest.php
  53. 46 0
      vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Regions/EndPointByLocationTest.php
  54. 28 0
      vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Regions/EndpointProviderTest.php

+ 22 - 1
application/api/controller/Sms.php

@@ -1,12 +1,16 @@
 <?php
 
 namespace app\api\controller;
-
 use app\common\library\Common;
 use think\Db;
 use think\facade\Validate;
 use think\Request;
 use AlibabaCloud\Client\AlibabaCloud;
+use afs\Request\V20180112 as Afs;
+use DefaultProfile;
+use DefaultAcsClient;
+
+
 
 /**
  * @title 发送短信
@@ -15,6 +19,23 @@ use AlibabaCloud\Client\AlibabaCloud;
  */
 class Sms extends Base
 {
+    public function alyunyz(){
+
+        $iClientProfile = DefaultProfile::getProfile("cn-hangzhou", "LTAI5t9TuK5WBqLFmwsgD2s3", "jhvRfgY1cAD8DSc1oFsdU0Pij1TgL6");
+        $client = new DefaultAcsClient($iClientProfile);
+        DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", "afs", "afs.aliyuncs.com");
+
+        $request = new Afs\AuthenticateSigRequest();
+        $request->setSessionId("xxx");// 必填参数,从前端获取,不可更改,android和ios只传这个参数即可
+        $request->setToken("xxx");// 必填参数,从前端获取,不可更改
+        $request->setSig("xxx");// 必填参数,从前端获取,不可更改
+        $request->setScene("ic_message_h5");// 必填参数,从前端获取,不可更改
+        $request->setAppKey("FFFF0N0000000000ADC5");//必填参数,后端填写
+        $request->setRemoteIp("39.105.159.207");//必填参数,后端填写
+
+        $response = $client->getAcsResponse($request);//返回code 100表示验签通过,900表示验签失败
+        print_r($response);
+    }
     /**
      * @title 发送短信
      * @desc 发送短信

+ 13 - 0
vendor/aliyunafs/License

@@ -0,0 +1,13 @@
+Copyright 1999-2015 Alibaba Group Holding Ltd.
+
+Licensed 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.

+ 30 - 0
vendor/aliyunafs/README.md

@@ -0,0 +1,30 @@
+# Open API SDK for php developers
+
+## Requirements
+
+- PHP 5.3+
+
+## Build
+
+- to run unit tests, you will have to configure aliyun-sdk.properties files in your user directory, and make sure your project has corresponding service enabled, eg. openmr.
+
+## Example
+
+	include_once '../aliyun-php-sdk-core/Config.php';
+	use Ecs\Request\V20140526 as Ecs;
+	
+	$iClientProfile = DefaultProfile::getProfile("cn-hangzhou", "<your accessKey>", "<your accessSecret>");
+	$client = new DefaultAcsClient($iClientProfile);
+	
+	$request = new Ecs\DescribeRegionsRequest(); 
+	$request->setMethod("GET");
+	$response = $client->getAcsResponse($request);
+	print_r($response);
+
+## Authors && Contributors
+- [Zuhe]()
+- [Ma Lijie](https://github.com/malijiefoxmail)
+
+## License
+
+licensed under the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0.html)

+ 3 - 0
vendor/aliyunafs/aliyun-php-sdk-afs/ChangeLog.txt

@@ -0,0 +1,3 @@
+2018-02-02 Version: 1.0.0
+1, this version is new of captcha management and nvc analyze
+

+ 74 - 0
vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/AnalyzeNvcRequest.php

@@ -0,0 +1,74 @@
+<?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 afs\Request\V20180112;
+
+class AnalyzeNvcRequest extends \RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("afs", "2018-01-12", "AnalyzeNvc");
+		$this->setMethod("POST");
+	}
+
+	private  $resourceOwnerId;
+
+	private  $sourceIp;
+
+	private  $data;
+
+	private  $scoreJsonStr;
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getSourceIp() {
+		return $this->sourceIp;
+	}
+
+	public function setSourceIp($sourceIp) {
+		$this->sourceIp = $sourceIp;
+		$this->queryParameters["SourceIp"]=$sourceIp;
+	}
+
+	public function getData() {
+		return $this->data;
+	}
+
+	public function setData($data) {
+		$this->data = $data;
+		$this->queryParameters["Data"]=$data;
+	}
+
+	public function getScoreJsonStr() {
+		return $this->scoreJsonStr;
+	}
+
+	public function setScoreJsonStr($scoreJsonStr) {
+		$this->scoreJsonStr = $scoreJsonStr;
+		$this->queryParameters["ScoreJsonStr"]=$scoreJsonStr;
+	}
+	
+}

+ 118 - 0
vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/AuthenticateSigRequest.php

@@ -0,0 +1,118 @@
+<?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 afs\Request\V20180112;
+
+class AuthenticateSigRequest extends \RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("afs", "2018-01-12", "AuthenticateSig");
+		$this->setMethod("POST");
+	}
+
+	private  $sig;
+
+	private  $resourceOwnerId;
+
+	private  $remoteIp;
+
+	private  $sourceIp;
+
+	private  $appKey;
+
+	private  $sessionId;
+
+	private  $token;
+
+	private  $scene;
+
+	public function getSig() {
+		return $this->sig;
+	}
+
+	public function setSig($sig) {
+		$this->sig = $sig;
+		$this->queryParameters["Sig"]=$sig;
+	}
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getRemoteIp() {
+		return $this->remoteIp;
+	}
+
+	public function setRemoteIp($remoteIp) {
+		$this->remoteIp = $remoteIp;
+		$this->queryParameters["RemoteIp"]=$remoteIp;
+	}
+
+	public function getSourceIp() {
+		return $this->sourceIp;
+	}
+
+	public function setSourceIp($sourceIp) {
+		$this->sourceIp = $sourceIp;
+		$this->queryParameters["SourceIp"]=$sourceIp;
+	}
+
+	public function getAppKey() {
+		return $this->appKey;
+	}
+
+	public function setAppKey($appKey) {
+		$this->appKey = $appKey;
+		$this->queryParameters["AppKey"]=$appKey;
+	}
+
+	public function getSessionId() {
+		return $this->sessionId;
+	}
+
+	public function setSessionId($sessionId) {
+		$this->sessionId = $sessionId;
+		$this->queryParameters["SessionId"]=$sessionId;
+	}
+
+	public function getToken() {
+		return $this->token;
+	}
+
+	public function setToken($token) {
+		$this->token = $token;
+		$this->queryParameters["Token"]=$token;
+	}
+
+	public function getScene() {
+		return $this->scene;
+	}
+
+	public function setScene($scene) {
+		$this->scene = $scene;
+		$this->queryParameters["Scene"]=$scene;
+	}
+	
+}

+ 85 - 0
vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/ConfigurationStyleRequest.php

@@ -0,0 +1,85 @@
+<?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 afs\Request\V20180112;
+
+class ConfigurationStyleRequest extends \RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("afs", "2018-01-12", "ConfigurationStyle");
+		$this->setMethod("POST");
+	}
+
+	private  $resourceOwnerId;
+
+	private  $sourceIp;
+
+	private  $configurationMethod;
+
+	private  $applyType;
+
+	private  $scene;
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getSourceIp() {
+		return $this->sourceIp;
+	}
+
+	public function setSourceIp($sourceIp) {
+		$this->sourceIp = $sourceIp;
+		$this->queryParameters["SourceIp"]=$sourceIp;
+	}
+
+	public function getConfigurationMethod() {
+		return $this->configurationMethod;
+	}
+
+	public function setConfigurationMethod($configurationMethod) {
+		$this->configurationMethod = $configurationMethod;
+		$this->queryParameters["ConfigurationMethod"]=$configurationMethod;
+	}
+
+	public function getApplyType() {
+		return $this->applyType;
+	}
+
+	public function setApplyType($applyType) {
+		$this->applyType = $applyType;
+		$this->queryParameters["ApplyType"]=$applyType;
+	}
+
+	public function getScene() {
+		return $this->scene;
+	}
+
+	public function setScene($scene) {
+		$this->scene = $scene;
+		$this->queryParameters["Scene"]=$scene;
+	}
+	
+}

+ 107 - 0
vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/CreateConfigurationRequest.php

@@ -0,0 +1,107 @@
+<?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 afs\Request\V20180112;
+
+class CreateConfigurationRequest extends \RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("afs", "2018-01-12", "CreateConfiguration");
+		$this->setMethod("POST");
+	}
+
+	private  $resourceOwnerId;
+
+	private  $sourceIp;
+
+	private  $configurationName;
+
+	private  $maxPV;
+
+	private  $configurationMethod;
+
+	private  $applyType;
+
+	private  $scene;
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getSourceIp() {
+		return $this->sourceIp;
+	}
+
+	public function setSourceIp($sourceIp) {
+		$this->sourceIp = $sourceIp;
+		$this->queryParameters["SourceIp"]=$sourceIp;
+	}
+
+	public function getConfigurationName() {
+		return $this->configurationName;
+	}
+
+	public function setConfigurationName($configurationName) {
+		$this->configurationName = $configurationName;
+		$this->queryParameters["ConfigurationName"]=$configurationName;
+	}
+
+	public function getMaxPV() {
+		return $this->maxPV;
+	}
+
+	public function setMaxPV($maxPV) {
+		$this->maxPV = $maxPV;
+		$this->queryParameters["MaxPV"]=$maxPV;
+	}
+
+	public function getConfigurationMethod() {
+		return $this->configurationMethod;
+	}
+
+	public function setConfigurationMethod($configurationMethod) {
+		$this->configurationMethod = $configurationMethod;
+		$this->queryParameters["ConfigurationMethod"]=$configurationMethod;
+	}
+
+	public function getApplyType() {
+		return $this->applyType;
+	}
+
+	public function setApplyType($applyType) {
+		$this->applyType = $applyType;
+		$this->queryParameters["ApplyType"]=$applyType;
+	}
+
+	public function getScene() {
+		return $this->scene;
+	}
+
+	public function setScene($scene) {
+		$this->scene = $scene;
+		$this->queryParameters["Scene"]=$scene;
+	}
+	
+}

+ 85 - 0
vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/DescribeCaptchaDayRequest.php

@@ -0,0 +1,85 @@
+<?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 afs\Request\V20180112;
+
+class DescribeCaptchaDayRequest extends \RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("afs", "2018-01-12", "DescribeCaptchaDay");
+		$this->setMethod("POST");
+	}
+
+	private  $resourceOwnerId;
+
+	private  $sourceIp;
+
+	private  $configName;
+
+	private  $time;
+
+	private  $type;
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getSourceIp() {
+		return $this->sourceIp;
+	}
+
+	public function setSourceIp($sourceIp) {
+		$this->sourceIp = $sourceIp;
+		$this->queryParameters["SourceIp"]=$sourceIp;
+	}
+
+	public function getConfigName() {
+		return $this->configName;
+	}
+
+	public function setConfigName($configName) {
+		$this->configName = $configName;
+		$this->queryParameters["ConfigName"]=$configName;
+	}
+
+	public function getTime() {
+		return $this->time;
+	}
+
+	public function setTime($time) {
+		$this->time = $time;
+		$this->queryParameters["Time"]=$time;
+	}
+
+	public function getType() {
+		return $this->type;
+	}
+
+	public function setType($type) {
+		$this->type = $type;
+		$this->queryParameters["Type"]=$type;
+	}
+	
+}

+ 85 - 0
vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/DescribeCaptchaIpCityRequest.php

@@ -0,0 +1,85 @@
+<?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 afs\Request\V20180112;
+
+class DescribeCaptchaIpCityRequest extends \RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("afs", "2018-01-12", "DescribeCaptchaIpCity");
+		$this->setMethod("POST");
+	}
+
+	private  $resourceOwnerId;
+
+	private  $sourceIp;
+
+	private  $configName;
+
+	private  $time;
+
+	private  $type;
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getSourceIp() {
+		return $this->sourceIp;
+	}
+
+	public function setSourceIp($sourceIp) {
+		$this->sourceIp = $sourceIp;
+		$this->queryParameters["SourceIp"]=$sourceIp;
+	}
+
+	public function getConfigName() {
+		return $this->configName;
+	}
+
+	public function setConfigName($configName) {
+		$this->configName = $configName;
+		$this->queryParameters["ConfigName"]=$configName;
+	}
+
+	public function getTime() {
+		return $this->time;
+	}
+
+	public function setTime($time) {
+		$this->time = $time;
+		$this->queryParameters["Time"]=$time;
+	}
+
+	public function getType() {
+		return $this->type;
+	}
+
+	public function setType($type) {
+		$this->type = $type;
+		$this->queryParameters["Type"]=$type;
+	}
+	
+}

+ 85 - 0
vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/DescribeCaptchaMinRequest.php

@@ -0,0 +1,85 @@
+<?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 afs\Request\V20180112;
+
+class DescribeCaptchaMinRequest extends \RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("afs", "2018-01-12", "DescribeCaptchaMin");
+		$this->setMethod("POST");
+	}
+
+	private  $resourceOwnerId;
+
+	private  $sourceIp;
+
+	private  $configName;
+
+	private  $time;
+
+	private  $type;
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getSourceIp() {
+		return $this->sourceIp;
+	}
+
+	public function setSourceIp($sourceIp) {
+		$this->sourceIp = $sourceIp;
+		$this->queryParameters["SourceIp"]=$sourceIp;
+	}
+
+	public function getConfigName() {
+		return $this->configName;
+	}
+
+	public function setConfigName($configName) {
+		$this->configName = $configName;
+		$this->queryParameters["ConfigName"]=$configName;
+	}
+
+	public function getTime() {
+		return $this->time;
+	}
+
+	public function setTime($time) {
+		$this->time = $time;
+		$this->queryParameters["Time"]=$time;
+	}
+
+	public function getType() {
+		return $this->type;
+	}
+
+	public function setType($type) {
+		$this->type = $type;
+		$this->queryParameters["Type"]=$type;
+	}
+	
+}

+ 74 - 0
vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/DescribeCaptchaRiskRequest.php

@@ -0,0 +1,74 @@
+<?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 afs\Request\V20180112;
+
+class DescribeCaptchaRiskRequest extends \RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("afs", "2018-01-12", "DescribeCaptchaRisk");
+		$this->setMethod("POST");
+	}
+
+	private  $resourceOwnerId;
+
+	private  $sourceIp;
+
+	private  $configName;
+
+	private  $time;
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getSourceIp() {
+		return $this->sourceIp;
+	}
+
+	public function setSourceIp($sourceIp) {
+		$this->sourceIp = $sourceIp;
+		$this->queryParameters["SourceIp"]=$sourceIp;
+	}
+
+	public function getConfigName() {
+		return $this->configName;
+	}
+
+	public function setConfigName($configName) {
+		$this->configName = $configName;
+		$this->queryParameters["ConfigName"]=$configName;
+	}
+
+	public function getTime() {
+		return $this->time;
+	}
+
+	public function setTime($time) {
+		$this->time = $time;
+		$this->queryParameters["Time"]=$time;
+	}
+	
+}

+ 52 - 0
vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/DescribeConfigNameRequest.php

@@ -0,0 +1,52 @@
+<?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 afs\Request\V20180112;
+
+class DescribeConfigNameRequest extends \RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("afs", "2018-01-12", "DescribeConfigName");
+		$this->setMethod("POST");
+	}
+
+	private  $resourceOwnerId;
+
+	private  $sourceIp;
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getSourceIp() {
+		return $this->sourceIp;
+	}
+
+	public function setSourceIp($sourceIp) {
+		$this->sourceIp = $sourceIp;
+		$this->queryParameters["SourceIp"]=$sourceIp;
+	}
+	
+}

+ 52 - 0
vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/DescribeEarlyWarningRequest.php

@@ -0,0 +1,52 @@
+<?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 afs\Request\V20180112;
+
+class DescribeEarlyWarningRequest extends \RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("afs", "2018-01-12", "DescribeEarlyWarning");
+		$this->setMethod("POST");
+	}
+
+	private  $resourceOwnerId;
+
+	private  $sourceIp;
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getSourceIp() {
+		return $this->sourceIp;
+	}
+
+	public function setSourceIp($sourceIp) {
+		$this->sourceIp = $sourceIp;
+		$this->queryParameters["SourceIp"]=$sourceIp;
+	}
+	
+}

+ 52 - 0
vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/DescribePersonMachineListRequest.php

@@ -0,0 +1,52 @@
+<?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 afs\Request\V20180112;
+
+class DescribePersonMachineListRequest extends \RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("afs", "2018-01-12", "DescribePersonMachineList");
+		$this->setMethod("POST");
+	}
+
+	private  $resourceOwnerId;
+
+	private  $sourceIp;
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getSourceIp() {
+		return $this->sourceIp;
+	}
+
+	public function setSourceIp($sourceIp) {
+		$this->sourceIp = $sourceIp;
+		$this->queryParameters["SourceIp"]=$sourceIp;
+	}
+	
+}

+ 129 - 0
vendor/aliyunafs/aliyun-php-sdk-afs/afs/Request/V20180112/SetEarlyWarningRequest.php

@@ -0,0 +1,129 @@
+<?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 afs\Request\V20180112;
+
+class SetEarlyWarningRequest extends \RpcAcsRequest
+{
+	function  __construct()
+	{
+		parent::__construct("afs", "2018-01-12", "SetEarlyWarning");
+		$this->setMethod("POST");
+	}
+
+	private  $timeEnd;
+
+	private  $resourceOwnerId;
+
+	private  $warnOpen;
+
+	private  $sourceIp;
+
+	private  $channel;
+
+	private  $title;
+
+	private  $timeOpen;
+
+	private  $timeBegin;
+
+	private  $frequency;
+
+	public function getTimeEnd() {
+		return $this->timeEnd;
+	}
+
+	public function setTimeEnd($timeEnd) {
+		$this->timeEnd = $timeEnd;
+		$this->queryParameters["TimeEnd"]=$timeEnd;
+	}
+
+	public function getResourceOwnerId() {
+		return $this->resourceOwnerId;
+	}
+
+	public function setResourceOwnerId($resourceOwnerId) {
+		$this->resourceOwnerId = $resourceOwnerId;
+		$this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+	}
+
+	public function getWarnOpen() {
+		return $this->warnOpen;
+	}
+
+	public function setWarnOpen($warnOpen) {
+		$this->warnOpen = $warnOpen;
+		$this->queryParameters["WarnOpen"]=$warnOpen;
+	}
+
+	public function getSourceIp() {
+		return $this->sourceIp;
+	}
+
+	public function setSourceIp($sourceIp) {
+		$this->sourceIp = $sourceIp;
+		$this->queryParameters["SourceIp"]=$sourceIp;
+	}
+
+	public function getChannel() {
+		return $this->channel;
+	}
+
+	public function setChannel($channel) {
+		$this->channel = $channel;
+		$this->queryParameters["Channel"]=$channel;
+	}
+
+	public function getTitle() {
+		return $this->title;
+	}
+
+	public function setTitle($title) {
+		$this->title = $title;
+		$this->queryParameters["Title"]=$title;
+	}
+
+	public function getTimeOpen() {
+		return $this->timeOpen;
+	}
+
+	public function setTimeOpen($timeOpen) {
+		$this->timeOpen = $timeOpen;
+		$this->queryParameters["TimeOpen"]=$timeOpen;
+	}
+
+	public function getTimeBegin() {
+		return $this->timeBegin;
+	}
+
+	public function setTimeBegin($timeBegin) {
+		$this->timeBegin = $timeBegin;
+		$this->queryParameters["TimeBegin"]=$timeBegin;
+	}
+
+	public function getFrequency() {
+		return $this->frequency;
+	}
+
+	public function setFrequency($frequency) {
+		$this->frequency = $frequency;
+		$this->queryParameters["Frequency"]=$frequency;
+	}
+	
+}

+ 154 - 0
vendor/aliyunafs/aliyun-php-sdk-core/AcsRequest.php

@@ -0,0 +1,154 @@
+<?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.
+ */
+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();
+	
+	protected $locationServiceCode;
+	protected $locationEndpointType;
+	
+	function  __construct($product, $version, $actionName, $locationServiceCode = null, $locationEndpointType = "openAPI")
+	{
+	    $this->headers["x-sdk-client"] = "php/2.0.0";
+	    $this->product = $product;
+	    $this->version = $version;
+	    $this->actionName = $actionName;
+	    
+	    $this->locationServiceCode = $locationServiceCode;
+	    $this->locationEndpointType = $locationEndpointType;
+	}
+	
+	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;
+    } 
+	
+	public function getLocationServiceCode()
+	{
+		return $this->locationServiceCode;
+	}
+
+	public function getLocationEndpointType()
+	{
+		return $this->locationEndpointType;
+	}
+}

+ 44 - 0
vendor/aliyunafs/aliyun-php-sdk-core/AcsResponse.php

@@ -0,0 +1,44 @@
+<?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.
+ */
+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;
+    }
+}

+ 94 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Auth/Credential.php

@@ -0,0 +1,94 @@
+<?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.
+ */
+class Credential
+{
+    private $dateTimeFormat = 'Y-m-d\TH:i:s\Z';
+    private $refreshDate;
+    private $expiredDate;
+    private $accessKeyId;
+    private $accessSecret;
+    private $securityToken;
+    
+    public function __construct($accessKeyId, $accessSecret, $securityToken)
+    {
+        $this->accessKeyId = $accessKeyId;
+        $this->accessSecret = $accessSecret;
+        $this->securityToken = $securityToken;
+        $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;
+    }
+
+    public function getSecurityToken()
+    {
+        return $this->securityToken;
+    }
+
+    public function setSecurityToken($securityToken)
+    {
+        $this->securityToken = $securityToken;
+    }
+}

+ 27 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Auth/ISigner.php

@@ -0,0 +1,27 @@
+<?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.
+ */
+interface ISigner
+{
+    public function getSignatureMethod();
+    
+    public function getSignatureVersion();
+    
+    public function signString($source, $accessSecret);
+}

+ 36 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Auth/ShaHmac1Signer.php

@@ -0,0 +1,36 @@
+<?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.
+ */
+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";
+    }
+}

+ 36 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Auth/ShaHmac256Signer.php

@@ -0,0 +1,36 @@
+<?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.
+ */
+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";
+    }
+}

+ 48 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Autoloader/Autoloader.php

@@ -0,0 +1,48 @@
+<?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.
+ */
+spl_autoload_register("Autoloader::autoload");
+class Autoloader
+{
+    private static $autoloadPathArray = array(
+        "aliyun-php-sdk-core",
+        "aliyun-php-sdk-core/Auth",
+        "aliyun-php-sdk-core/Http",
+        "aliyun-php-sdk-core/Profile",
+        "aliyun-php-sdk-core/Regions",
+        "aliyun-php-sdk-core/Exception"
+    );
+    
+    public static function autoload($className)
+    {
+        foreach (self::$autoloadPathArray as $path) {
+            $file = dirname(dirname(__DIR__)).DIRECTORY_SEPARATOR.$path.DIRECTORY_SEPARATOR.$className.".php";
+            $file = str_replace('\\', DIRECTORY_SEPARATOR, $file);
+            if (is_file($file)) {
+                include_once $file;
+                break;
+            }
+        }
+    }
+    
+    public static function addAutoloadPath($path)
+    {
+        array_push(self::$autoloadPathArray, $path);
+    }
+}

+ 49 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Config.php

@@ -0,0 +1,49 @@
+<?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.
+ */
+include_once 'Autoloader/Autoloader.php';
+include_once 'Regions/EndpointConfig.php';
+include_once 'Regions/LocationService.php';
+
+//config sdk auto load path.
+Autoloader::addAutoloadPath("aliyun-php-sdk-ecs");
+Autoloader::addAutoloadPath("aliyun-php-sdk-batchcompute");
+Autoloader::addAutoloadPath("aliyun-php-sdk-sts");
+Autoloader::addAutoloadPath("aliyun-php-sdk-push");
+Autoloader::addAutoloadPath("aliyun-php-sdk-ram");
+Autoloader::addAutoloadPath("aliyun-php-sdk-ubsms");
+Autoloader::addAutoloadPath("aliyun-php-sdk-ubsms-inner");
+Autoloader::addAutoloadPath("aliyun-php-sdk-green");
+Autoloader::addAutoloadPath("aliyun-php-sdk-dm");
+Autoloader::addAutoloadPath("aliyun-php-sdk-iot");
+Autoloader::addAutoloadPath("aliyun-php-sdk-jaq");
+Autoloader::addAutoloadPath("aliyun-php-sdk-cs");
+Autoloader::addAutoloadPath("aliyun-php-sdk-live");
+Autoloader::addAutoloadPath("aliyun-php-sdk-vpc");
+Autoloader::addAutoloadPath("aliyun-php-sdk-kms");
+Autoloader::addAutoloadPath("aliyun-php-sdk-rds");
+Autoloader::addAutoloadPath("aliyun-php-sdk-slb");
+Autoloader::addAutoloadPath("aliyun-php-sdk-cms");
+Autoloader::addAutoloadPath("aliyun-php-sdk-idst");
+Autoloader::addAutoloadPath("aliyun-php-sdk-afs");
+
+//config http proxy
+define('ENABLE_HTTP_PROXY', false);
+define('HTTP_PROXY_IP', '127.0.0.1');
+define('HTTP_PROXY_PORT', '8888');

+ 134 - 0
vendor/aliyunafs/aliyun-php-sdk-core/DefaultAcsClient.php

@@ -0,0 +1,134 @@
+<?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.
+ */
+class DefaultAcsClient implements IAcsClient
+{
+    public $iClientProfile;
+    public $__urlTestFlag__;
+    private $locationService;
+    
+    public function __construct($iClientProfile)
+    {
+        $this->iClientProfile = $iClientProfile;
+        $this->__urlTestFlag__ = false;
+        $this->locationService = new LocationService($this->iClientProfile);
+    }
+    
+    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);
+
+        // Get the domain from the Location Service by speicified `ServiceCode` and `RegionId`.
+        $domain = null;
+        if (null != $request->getLocationServiceCode())
+        {
+            $domain = $this->locationService->findProductDomain($request->getRegionId(), $request->getLocationServiceCode(), $request->getLocationEndpointType(), $request->getProduct());
+        }       
+        if ($domain == null)
+        {
+            $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->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);
+        } elseif ("XML" == $format) {
+            $respObject = @simplexml_load_string($body);
+        } elseif ("RAW" == $format) {
+            $respObject = $body;
+        }
+        return $respObject;
+    }
+}

+ 63 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Exception/ClientException.php

@@ -0,0 +1,63 @@
+<?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.
+ */
+class ClientException extends Exception
+{
+    public 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;
+    }
+}

+ 44 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Exception/ServerException.php

@@ -0,0 +1,44 @@
+<?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.
+ */
+class ServerException extends ClientException
+{
+    private $httpStatus;
+    private $requestId;
+
+    public 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;
+    }
+}

+ 80 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Http/HttpHelper.php

@@ -0,0 +1,80 @@
+<?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.
+ */
+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;
+    }
+    public static function getPostHttpBody($postFildes)
+    {
+        $content = "";
+        foreach ($postFildes as $apiParamKey => $apiParamValue) {
+            $content .= "$apiParamKey=" . urlencode($apiParamValue) . "&";
+        }
+        return substr($content, 0, -1);
+    }
+    public static function getHttpHearders($headers)
+    {
+        $httpHeader = array();
+        foreach ($headers as $key => $value) {
+            array_push($httpHeader, $key.":".$value);
+        }
+        return $httpHeader;
+    }
+}

+ 52 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Http/HttpResponse.php

@@ -0,0 +1,52 @@
+<?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.
+ */
+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;
+    }
+}

+ 23 - 0
vendor/aliyunafs/aliyun-php-sdk-core/IAcsClient.php

@@ -0,0 +1,23 @@
+<?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.
+ */
+interface IAcsClient
+{
+    public function doAction($requst);
+}

+ 146 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Profile/DefaultProfile.php

@@ -0,0 +1,146 @@
+<?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.
+ */
+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, $securityToken = null)
+	{
+		$credential =new Credential($accessKeyId, $accessSecret, $securityToken);
+		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);
+		}
+
+		LocationService::addEndPoint($regionId, $product, $domain);
+	}
+	
+	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);
+		$productsDomains = array(new ProductDomain($product, $domain));
+		$endpoint = new Endpoint($endpointName, $regionIds, $productsDomains);
+		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::findProductDomainAndUpdate($productDomains, $product, $domain)) {
+            array_push($productDomains, new ProductDomain($product, $domain));
+        }
+
+        $endpoint->setProductDomains($productDomains);
+    }
+    
+    private static function findProductDomainAndUpdate($productDomains, $product, $domain)
+    {
+        foreach ($productDomains as $key => $productDomain) {
+            if ($productDomain->getProductName() == $product) {
+                $productDomain->setDomainName($domain);
+                return $productDomain;
+            }
+        }
+        return null;
+    }
+}

+ 29 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Profile/IClientProfile.php

@@ -0,0 +1,29 @@
+<?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.
+ */
+interface IClientProfile
+{
+    public function getSigner();
+    
+    public function getRegionId();
+    
+    public function getFormat();
+    
+    public function getCredential();
+}

+ 62 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Regions/Endpoint.php

@@ -0,0 +1,62 @@
+<?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.
+ */
+class Endpoint
+{
+    private $name;
+    private $regionIds;
+    private $productDomains;
+    
+    public 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;
+    }
+}

+ 65 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Regions/EndpointConfig.php

@@ -0,0 +1,65 @@
+<?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.
+ */
+$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();
+        } elseif (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);

+ 60 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Regions/EndpointProvider.php

@@ -0,0 +1,60 @@
+<?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.
+ */
+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;
+    }
+}

+ 120 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Regions/LocationService.php

@@ -0,0 +1,120 @@
+<?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.
+ */
+
+define("LOCATION_SERVICE_PRODUCT_NAME", "Location");
+define("LOCATION_SERVICE_DOMAIN", "location.aliyuncs.com");
+define("LOCATION_SERVICE_VERSION", "2015-06-12");
+define("LOCATION_SERVICE_DESCRIBE_ENDPOINT_ACTION", "DescribeEndpoints");
+define("LOCATION_SERVICE_REGION", "cn-hangzhou");
+define("CACHE_EXPIRE_TIME", 3600);
+
+class DescribeEndpointRequest extends RpcAcsRequest
+{
+	function __construct($id, $serviceCode, $endPointType) {
+		parent::__construct(LOCATION_SERVICE_PRODUCT_NAME, LOCATION_SERVICE_VERSION, LOCATION_SERVICE_DESCRIBE_ENDPOINT_ACTION);
+		
+		$this->queryParameters["Id"] = $id;
+		$this->queryParameters["ServiceCode"] = $serviceCode;
+		$this->queryParameters["Type"] = $endPointType;
+		$this->setRegionId(LOCATION_SERVICE_REGION);
+		
+		$this->setAcceptFormat("JSON");
+	}
+}
+
+class LocationService
+{	
+	private $clientProfile;
+	public static $cache = array();
+	public static $lastClearTimePerProduct = array();
+	public static $serviceDomain = LOCATION_SERVICE_DOMAIN;
+	
+	function __construct($clientProfile) {
+		$this->clientProfile = $clientProfile;
+	}
+	
+	public function findProductDomain($regionId, $serviceCode, $endPointType, $product)
+	{
+		$key = $regionId.'#'.$product;
+		@$domain = self::$cache[$key];
+		if ($domain == null || $this->checkCacheIsExpire($key) == true)
+		{
+			$domain = $this->findProductDomainFromLocationService($regionId, $serviceCode, $endPointType);
+            self::$cache[$key] = $domain;
+		}
+
+		return $domain;
+	}
+
+	public static function addEndPoint($regionId, $product, $domain)
+    {
+        $key = $regionId.'#'.$product;
+        self::$cache[$key] = $domain;
+        $lastClearTime = mktime(0, 0, 0, 1, 1, 2999);
+        self::$lastClearTimePerProduct[$key] = $lastClearTime;
+    }
+
+    public static function modifyServiceDomain($domain)
+    {
+        self::$serviceDomain = $domain;
+    }
+
+	private function checkCacheIsExpire($key)
+    {
+        $lastClearTime = self::$lastClearTimePerProduct[$key];
+        if ($lastClearTime == null)
+        {
+            $lastClearTime = time();
+            self::$lastClearTimePerProduct[$key] = $lastClearTime;
+        }
+
+        $now = time();
+        $elapsedTime = $now - $lastClearTime;
+
+        if ($elapsedTime > CACHE_EXPIRE_TIME)
+        {
+            $lastClearTime = time();
+            self::$lastClearTimePerProduct[$key] = $lastClearTime;
+            return true;
+        }
+
+        return false;
+    }
+	
+	private function findProductDomainFromLocationService($regionId, $serviceCode, $endPointType)
+	{
+		$request = new DescribeEndpointRequest($regionId, $serviceCode, $endPointType);
+		
+		$signer = $this->clientProfile->getSigner();
+		$credential = $this->clientProfile->getCredential();
+		
+		$requestUrl = $request->composeUrl($signer, $credential, self::$serviceDomain);
+		
+		$httpResponse = HttpHelper::curl($requestUrl, $request->getMethod(), null, $request->getHeaders());
+		
+		if (!$httpResponse->isSuccess())
+		{
+			return null;
+		}
+
+		$respObj = json_decode($httpResponse->getBody());
+		return $respObj->Endpoints->Endpoint[0]->Endpoint;
+	}
+}

+ 47 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Regions/ProductDomain.php

@@ -0,0 +1,47 @@
+<?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.
+ */
+class ProductDomain
+{
+    private $productName;
+    private $domainName;
+    
+    public 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;
+    }
+}

+ 1349 - 0
vendor/aliyunafs/aliyun-php-sdk-core/Regions/endpoints.xml

@@ -0,0 +1,1349 @@
+<?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>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>
+        </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>
+        </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>

+ 206 - 0
vendor/aliyunafs/aliyun-php-sdk-core/RoaAcsRequest.php

@@ -0,0 +1,206 @@
+<?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.
+ */
+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, $locationServiceCode = null, $locationEndpointType = "openAPI")
+    {
+        parent::__construct($product, $version, $actionName, $locationServiceCode, $locationEndpointType);
+        $this->setVersion($version);
+        $this->initialize();
+    }
+    
+    private function initialize()
+    {
+        $this->setMethod("RAW");
+    }
+    
+    public function composeUrl($iSigner, $credential, $domain)
+    {
+        $this->prepareHeader($iSigner, $credential);
+
+        $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, $credential)
+    {
+        $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";
+        if ($credential->getSecurityToken() != null) {
+            $this->headers["x-acs-security-token"] = $credential->getSecurityToken();
+        }
+    }
+    
+    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.self::$querySeprator;
+        }
+        if (0 < 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;
+    }
+}

+ 116 - 0
vendor/aliyunafs/aliyun-php-sdk-core/RpcAcsRequest.php

@@ -0,0 +1,116 @@
+<?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.
+ */
+abstract class RpcAcsRequest extends AcsRequest
+{
+    private $dateTimeFormat = 'Y-m-d\TH:i:s\Z';
+    private $domainParameters = array();
+
+    function  __construct($product, $version, $actionName, $locationServiceCode = null, $locationEndpointType = "openAPI")
+    {
+        parent::__construct($product, $version, $actionName, $locationServiceCode, $locationEndpointType);
+        $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();
+        if ($credential->getSecurityToken() != null) {
+            $apiParams["SecurityToken"] = $credential->getSecurityToken();
+        }
+        $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;
+    }
+}

+ 35 - 0
vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Auth/CredentialTest.php

@@ -0,0 +1,35 @@
+<?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.
+ */
+include_once '../../Config.php';
+class CredentialTest extends PHPUnit_Framework_TestCase
+{
+    public function testCredential()
+    {
+        $credential = new Credential("accessKeyId", "accessSecret");
+        $this->assertEquals("accessKeyId", $credential->getAccessKeyId());
+        $this->assertEquals("accessSecret", $credential->getAccessSecret());
+        $this->assertNotNull($credential->getRefreshDate());
+        
+        $dateNow = date("Y-m-d\TH:i:s\Z");
+        $credential->setExpiredDate(1);
+        $this->assertNotNull($credential->getExpiredDate());
+        $this->assertTrue($credential->getExpiredDate() > $dateNow);
+    }
+}

+ 28 - 0
vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Auth/ShaHmac1SignerTest.php

@@ -0,0 +1,28 @@
+<?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.
+ */
+include_once '../../Config.php';
+class ShaHmac1SignerTest extends PHPUnit_Framework_TestCase
+{
+    public function testShaHmac1Signer()
+    {
+        $signer = new ShaHmac1Signer();
+        $this->assertEquals("33nmIV5/p6kG/64eLXNljJ5vw84=", $signer->signString("this is a ShaHmac1 test.", "accessSecret"));
+    }
+}

+ 30 - 0
vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Auth/ShaHmac256SignerTest.php

@@ -0,0 +1,30 @@
+<?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.
+ */
+include_once '../../Config.php';
+
+class ShaHmac256SignerTest extends PHPUnit_Framework_TestCase
+{
+    public function testShaHmac256Signer()
+    {
+        $signer = new ShaHmac256Signer();
+        $this->assertEquals("TpF1lE/avV9EHGWGg9Vo/QTd2bLRwFCk9jjo56uRbCo=",
+            $signer->signString("this is a ShaHmac256 test.", "accessSecret"));
+    }
+}

+ 40 - 0
vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/BaseTest.php

@@ -0,0 +1,40 @@
+<?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.
+ */
+class BaseTest extends PHPUnit_Framework_TestCase
+{
+    public $client = null;
+    public function setUp()
+    {
+        $path = substr(dirname(__FILE__), 0, strripos(dirname(__FILE__), DIRECTORY_SEPARATOR)).DIRECTORY_SEPARATOR;
+        include_once $path.'Config.php';
+        include_once 'Ecs/Rquest/DescribeRegionsRequest.php';
+        include_once 'BatchCompute/ListImagesRequest.php';
+
+        $iClientProfile = DefaultProfile::getProfile("cn-hangzhou", "AccessKey", "AccessSecret");
+        $this->client = new DefaultAcsClient($iClientProfile);
+    }
+    
+    public function getProperty($propertyKey)
+    {
+        $accessKey = "";
+        $accessSecret = "";
+        $iClientProfile = DefaultProfile::getProfile("cn-hangzhou", "AccessKey", "AccessSecret");
+    }
+}

+ 30 - 0
vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/BatchCompute/ListImagesRequest.php

@@ -0,0 +1,30 @@
+<?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 UnitTest\BatchCompute\Request;
+
+class ListImagesRequest extends \RoaAcsRequest
+{
+    public function __construct()
+    {
+        parent::__construct("BatchCompute", "2013-01-11", "ListImages");
+        $this->setUriPattern("/images");
+        $this->setMethod("GET");
+    }
+}

+ 42 - 0
vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/DefaultAcsClientTest.php

@@ -0,0 +1,42 @@
+<?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.
+ */
+include_once 'BaseTest.php';
+use UnitTest\Ecs\Request as Ecs;
+use UnitTest\BatchCompute\Request as BC;
+
+class DefaultAcsClientTest extends BaseTest
+{
+    public function testDoActionRPC()
+    {
+        $request = new Ecs\DescribeRegionsRequest();
+        $response = $this->client->doAction($request);
+        
+        $this->assertNotNull($response->RequestId);
+        $this->assertNotNull($response->Regions->Region[0]->LocalName);
+        $this->assertNotNull($response->Regions->Region[0]->RegionId);
+    }
+    
+    public function testDoActionROA()
+    {
+        $request = new BC\ListImagesRequest();
+        $response = $this->client->doAction($request);
+        $this->assertNotNull($response);
+    }
+}

+ 80 - 0
vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Ecs/Rquest/DescribeRegionsRequest.php

@@ -0,0 +1,80 @@
+<?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 UnitTest\Ecs\Request;
+
+class DescribeRegionsRequest extends \RpcAcsRequest
+{
+    public function __construct()
+    {
+        parent::__construct("Ecs", "2014-05-26", "DescribeRegions");
+    }
+
+    private $ownerId;
+
+    private $resourceOwnerAccount;
+
+    private $resourceOwnerId;
+
+    private $ownerAccount;
+
+    public function getOwnerId()
+    {
+        return $this->ownerId;
+    }
+
+    public function setOwnerId($ownerId)
+    {
+        $this->ownerId = $ownerId;
+        $this->queryParameters["OwnerId"]=$ownerId;
+    }
+
+    public function getResourceOwnerAccount()
+    {
+        return $this->resourceOwnerAccount;
+    }
+
+    public function setResourceOwnerAccount($resourceOwnerAccount)
+    {
+        $this->resourceOwnerAccount = $resourceOwnerAccount;
+        $this->queryParameters["ResourceOwnerAccount"]=$resourceOwnerAccount;
+    }
+
+    public function getResourceOwnerId()
+    {
+        return $this->resourceOwnerId;
+    }
+
+    public function setResourceOwnerId($resourceOwnerId)
+    {
+        $this->resourceOwnerId = $resourceOwnerId;
+        $this->queryParameters["ResourceOwnerId"]=$resourceOwnerId;
+    }
+
+    public function getOwnerAccount()
+    {
+        return $this->ownerAccount;
+    }
+
+    public function setOwnerAccount($ownerAccount)
+    {
+        $this->ownerAccount = $ownerAccount;
+        $this->queryParameters["OwnerAccount"]=$ownerAccount;
+    }
+}

+ 35 - 0
vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Ft/InteTest.php

@@ -0,0 +1,35 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: zhangw
+ * Date: 2017/12/19
+ * Time: 下午6:47
+ */
+require_once '../../Config.php';
+
+use UnitTest\Ft\TestRpcApiRequest;
+use UnitTest\Ft\TestRoaApiRequest;
+
+$clientProfile = DefaultProfile::getProfile(
+    "cn-hangzhou",
+    "<your Ak>",
+    "<your secret>",
+    "<your StsToken>"
+);
+
+DefaultProfile::addEndpoint("cn-hangzhou", "cn-hangzhou", "Ft", "ft.aliyuncs.com");
+
+$client = new DefaultAcsClient($clientProfile);
+# 创建 API 请求并设置参数
+$request = new TestRpcApiRequest();
+$request->setQueryParam("conan");
+# 发起请求并处理返回
+$response = $client->getAcsResponse($request);
+print_r($response);
+
+# 创建 API 请求并设置参数
+$request = new TestRoaApiRequest();
+$request->setQueryParam("conan");
+# 发起请求并处理返回
+$response = $client->getAcsResponse($request);
+print_r($response);

+ 57 - 0
vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Ft/TestRoaApiRequest.php

@@ -0,0 +1,57 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: zhangw
+ * Date: 2017/12/19
+ * Time: 下午6:39
+ */
+namespace UnitTest\Ft;
+
+class TestRoaApiRequest extends \RoaAcsRequest
+{
+    public function __construct()
+    {
+        parent::__construct("Ft", "2016-01-02", "TestRoaApi");
+        $this->setUriPattern("/web/cloudapi");
+        $this->setMethod("GET");
+    }
+
+    private $queryParam;
+
+    private $bodyParam;
+
+    private $headerParam;
+
+    public function getQueryParam()
+    {
+        return $this->queryParam;
+    }
+
+    public function setQueryParam($queryParam)
+    {
+        $this->queryParam = $queryParam;
+        $this->queryParameters["QueryParam"]=$queryParam;
+    }
+
+    public function getBodyParam()
+    {
+        return $this->bodyParam;
+    }
+
+    public function setBodyParam($bodyParam)
+    {
+        $this->bodyParam = $bodyParam;
+        $this->queryParameters["BodyParam"]=$bodyParam;
+    }
+
+    public function getHeaderParam()
+    {
+        return $this->headerParam;
+    }
+
+    public function setHeaderParam($headerParam)
+    {
+        $this->headerParam = $headerParam;
+        $this->headerParam["HeaderParam"]=$headerParam;
+    }
+}

+ 42 - 0
vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Ft/TestRpcApiRequest.php

@@ -0,0 +1,42 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: zhangw
+ * Date: 2017/12/19
+ * Time: 下午6:39
+ */
+namespace UnitTest\Ft;
+
+class TestRpcApiRequest extends \RpcAcsRequest
+{
+    public function __construct()
+    {
+        parent::__construct("Ft", "2016-01-01", "TestRpcApi");
+    }
+
+    private $queryParam;
+
+    private $bodyParam;
+
+    public function getQueryParam()
+    {
+        return $this->queryParam;
+    }
+
+    public function setQueryParam($queryParam)
+    {
+        $this->queryParam = $queryParam;
+        $this->queryParameters["QueryParam"]=$queryParam;
+    }
+
+    public function getBodyParam()
+    {
+        return $this->bodyParam;
+    }
+
+    public function setBodyParam($bodyParam)
+    {
+        $this->bodyParam = $bodyParam;
+        $this->queryParameters["BodyParam"]=$bodyParam;
+    }
+}

+ 29 - 0
vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Http/HttpHelperTest.php

@@ -0,0 +1,29 @@
+<?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.
+ */
+include_once '../BaseTest.php';
+class HttpHelperTest extends BaseTest
+{
+    public function testCurl()
+    {
+        $httpResponse = HttpHelper::curl("ecs.aliyuncs.com");
+        $this->assertEquals(400, $httpResponse->getStatus());
+        $this->assertNotNull($httpResponse->getBody());
+    }
+}

+ 60 - 0
vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Profile/DefaultProfileTest.php

@@ -0,0 +1,60 @@
+<?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.
+ */
+include_once '../../Config.php';
+class DefaultProfileTest extends PHPUnit_Framework_TestCase
+{
+    public function testGetProfile()
+    {
+        $profile = DefaultProfile::getProfile("cn-hangzhou", "accessId", "accessSecret");
+        $this->assertEquals("cn-hangzhou", $profile->getRegionId());
+        $this->assertEquals("accessId", $profile->getCredential()->getAccessKeyId());
+        $this->assertEquals("accessSecret", $profile->getCredential()->getAccessSecret());
+    }
+    
+    public function testAddEndpoint()
+    {
+        $profile = DefaultProfile::getProfile("cn-hangzhou", "accessId", "accessSecret");
+        $profile->addEndpoint("cn-hangzhou", "cn-hangzhou", "TestProduct", "testproduct.aliyuncs.com");
+        $endpoints = $profile->getEndpoints();
+        foreach ($endpoints as $key => $endpoint) {
+            if ("cn-hangzhou" == $endpoint->getName()) {
+                $regionIds = $endpoint->getRegionIds();
+                $this->assertContains("cn-hangzhou", $regionIds);
+                
+                $productDomains= $endpoint->getProductDomains();
+                $this->assertNotNull($productDomains);
+                $productDomain = $this->getProductDomain($productDomains);
+                $this->assertNotNull($productDomain);
+                $this->assertEquals("TestProduct", $productDomain->getProductName());
+                $this->assertEquals("testproduct.aliyuncs.com", $productDomain->getDomainName());
+            }
+        }
+    }
+    
+    private function getProductDomain($productDomains)
+    {
+        foreach ($productDomains as $productDomain) {
+            if ($productDomain->getProductName() == "TestProduct") {
+                return $productDomain;
+            }
+        }
+        return null;
+    }
+}

+ 46 - 0
vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Regions/EndPointByLocationTest.php

@@ -0,0 +1,46 @@
+<?php
+/**
+ * Created by PhpStorm.
+ * User: zhangw
+ * Date: 2017/7/17
+ * Time: 下午4:57
+ */
+
+include_once '../../Config.php';
+
+use PHPUnit\Framework\TestCase;
+
+class EndPointByLocationTest extends TestCase
+{
+    private $locationService;
+
+    private $clientProfile;
+
+    private function initClient()
+    {
+        # 创建 DefaultAcsClient 实例并初始化
+        $this->clientProfile = DefaultProfile::getProfile(
+            "cn-shanghai",                   # 您的 Region ID
+            "<your AK>",               # 您的 Access Key ID
+            "<your Secret>"            # 您的 Access Key Secret
+        );
+
+        $this->locationService = new LocationService($this->clientProfile);
+    }
+
+    public function testFindProductDomain()
+    {
+        $this->initClient();
+        $domain = $this->locationService->findProductDomain("cn-shanghai", "apigateway", "openAPI", "CloudAPI");
+        $this->assertEquals("apigateway.cn-shanghai.aliyuncs.com", $domain);
+    }
+
+    public function testFindProductDomainWithAddEndPoint()
+    {
+        DefaultProfile::addEndpoint("cn-shanghai", "cn-shanghai", "CloudAPI", "apigateway.cn-shanghai123.aliyuncs.com");
+        $this->initClient();
+        $domain = $this->locationService->findProductDomain("cn-shanghai", "apigateway", "openAPI", "CloudAPI");
+        $this->assertEquals("apigateway.cn-shanghai123.aliyuncs.com", $domain);
+    }
+
+}

+ 28 - 0
vendor/aliyunafs/aliyun-php-sdk-core/UnitTest/Regions/EndpointProviderTest.php

@@ -0,0 +1,28 @@
+<?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.
+ */
+include_once '../../Config.php';
+
+class EndpointProviderTest extends PHPUnit_Framework_TestCase
+{
+    public function testFindProductDomain()
+    {
+        $this->assertEquals("ecs.aliyuncs.com", EndpointProvider::findProductDomain("cn-hangzhou", "Ecs"));
+    }
+}