Browse Source

composer require alibabacloud/sdk

lizhen_gitee 4 months ago
parent
commit
71713248e1
100 changed files with 28533 additions and 0 deletions
  1. 3944 0
      composer.lock
  2. 21 0
      vendor/adbario/php-dot-notation/LICENSE.md
  3. 29 0
      vendor/adbario/php-dot-notation/composer.json
  4. 623 0
      vendor/adbario/php-dot-notation/src/Dot.php
  5. 24 0
      vendor/adbario/php-dot-notation/src/helpers.php
  6. 311 0
      vendor/alibabacloud/client/CHANGELOG.md
  7. 30 0
      vendor/alibabacloud/client/CONTRIBUTING.md
  8. 13 0
      vendor/alibabacloud/client/LICENSE.md
  9. 88 0
      vendor/alibabacloud/client/NOTICE.md
  10. 168 0
      vendor/alibabacloud/client/README-zh-CN.md
  11. 167 0
      vendor/alibabacloud/client/README.md
  12. 6 0
      vendor/alibabacloud/client/UPGRADING.md
  13. 17 0
      vendor/alibabacloud/client/autoload.php
  14. 134 0
      vendor/alibabacloud/client/composer.json
  15. 53 0
      vendor/alibabacloud/client/src/Accept.php
  16. 62 0
      vendor/alibabacloud/client/src/AlibabaCloud.php
  17. 30 0
      vendor/alibabacloud/client/src/Clients/AccessKeyClient.php
  18. 29 0
      vendor/alibabacloud/client/src/Clients/BearerTokenClient.php
  19. 72 0
      vendor/alibabacloud/client/src/Clients/Client.php
  20. 26 0
      vendor/alibabacloud/client/src/Clients/EcsRamRoleClient.php
  21. 98 0
      vendor/alibabacloud/client/src/Clients/ManageTrait.php
  22. 33 0
      vendor/alibabacloud/client/src/Clients/RamRoleArnClient.php
  23. 30 0
      vendor/alibabacloud/client/src/Clients/RsaKeyPairClient.php
  24. 28 0
      vendor/alibabacloud/client/src/Clients/StsClient.php
  25. 62 0
      vendor/alibabacloud/client/src/Config/Config.php
  26. 3799 0
      vendor/alibabacloud/client/src/Config/Data.php
  27. 65 0
      vendor/alibabacloud/client/src/Credentials/AccessKeyCredential.php
  28. 66 0
      vendor/alibabacloud/client/src/Credentials/BearerTokenCredential.php
  29. 18 0
      vendor/alibabacloud/client/src/Credentials/CredentialsInterface.php
  30. 50 0
      vendor/alibabacloud/client/src/Credentials/EcsRamRoleCredential.php
  31. 181 0
      vendor/alibabacloud/client/src/Credentials/Ini/CreateTrait.php
  32. 209 0
      vendor/alibabacloud/client/src/Credentials/Ini/IniCredential.php
  33. 111 0
      vendor/alibabacloud/client/src/Credentials/Ini/OptionsTrait.php
  34. 170 0
      vendor/alibabacloud/client/src/Credentials/Providers/CredentialsProvider.php
  35. 128 0
      vendor/alibabacloud/client/src/Credentials/Providers/EcsRamRoleProvider.php
  36. 88 0
      vendor/alibabacloud/client/src/Credentials/Providers/Provider.php
  37. 84 0
      vendor/alibabacloud/client/src/Credentials/Providers/RamRoleArnProvider.php
  38. 86 0
      vendor/alibabacloud/client/src/Credentials/Providers/RsaKeyPairProvider.php
  39. 110 0
      vendor/alibabacloud/client/src/Credentials/RamRoleArnCredential.php
  40. 47 0
      vendor/alibabacloud/client/src/Credentials/Requests/AssumeRole.php
  41. 37 0
      vendor/alibabacloud/client/src/Credentials/Requests/GenerateSessionAccessKey.php
  42. 75 0
      vendor/alibabacloud/client/src/Credentials/RsaKeyPairCredential.php
  43. 80 0
      vendor/alibabacloud/client/src/Credentials/StsCredential.php
  44. 55 0
      vendor/alibabacloud/client/src/DefaultAcsClient.php
  45. 68 0
      vendor/alibabacloud/client/src/Encode.php
  46. 70 0
      vendor/alibabacloud/client/src/Exception/AlibabaCloudException.php
  47. 38 0
      vendor/alibabacloud/client/src/Exception/ClientException.php
  48. 158 0
      vendor/alibabacloud/client/src/Exception/ServerException.php
  49. 259 0
      vendor/alibabacloud/client/src/Filter/ApiFilter.php
  50. 146 0
      vendor/alibabacloud/client/src/Filter/ClientFilter.php
  51. 152 0
      vendor/alibabacloud/client/src/Filter/CredentialFilter.php
  52. 67 0
      vendor/alibabacloud/client/src/Filter/Filter.php
  53. 166 0
      vendor/alibabacloud/client/src/Filter/HttpFilter.php
  54. 289 0
      vendor/alibabacloud/client/src/Functions.php
  55. 79 0
      vendor/alibabacloud/client/src/Log/LogFormatter.php
  56. 74 0
      vendor/alibabacloud/client/src/Profile/DefaultProfile.php
  57. 18 0
      vendor/alibabacloud/client/src/Regions/EndpointProvider.php
  58. 160 0
      vendor/alibabacloud/client/src/Regions/LocationService.php
  59. 46 0
      vendor/alibabacloud/client/src/Regions/LocationServiceRequest.php
  60. 112 0
      vendor/alibabacloud/client/src/Release.php
  61. 451 0
      vendor/alibabacloud/client/src/Request/Request.php
  62. 333 0
      vendor/alibabacloud/client/src/Request/RoaRequest.php
  63. 203 0
      vendor/alibabacloud/client/src/Request/RpcRequest.php
  64. 259 0
      vendor/alibabacloud/client/src/Request/Traits/AcsTrait.php
  65. 98 0
      vendor/alibabacloud/client/src/Request/Traits/ClientTrait.php
  66. 55 0
      vendor/alibabacloud/client/src/Request/Traits/DeprecatedRoaTrait.php
  67. 246 0
      vendor/alibabacloud/client/src/Request/Traits/DeprecatedTrait.php
  68. 149 0
      vendor/alibabacloud/client/src/Request/Traits/RetryTrait.php
  69. 142 0
      vendor/alibabacloud/client/src/Request/UserAgent.php
  70. 50 0
      vendor/alibabacloud/client/src/Resolver/ActionResolverTrait.php
  71. 113 0
      vendor/alibabacloud/client/src/Resolver/ApiResolver.php
  72. 66 0
      vendor/alibabacloud/client/src/Resolver/CallTrait.php
  73. 43 0
      vendor/alibabacloud/client/src/Resolver/Roa.php
  74. 41 0
      vendor/alibabacloud/client/src/Resolver/Rpc.php
  75. 74 0
      vendor/alibabacloud/client/src/Resolver/VersionResolver.php
  76. 151 0
      vendor/alibabacloud/client/src/Result/Result.php
  77. 57 0
      vendor/alibabacloud/client/src/SDK.php
  78. 47 0
      vendor/alibabacloud/client/src/Signature/BearerTokenSignature.php
  79. 47 0
      vendor/alibabacloud/client/src/Signature/ShaHmac1Signature.php
  80. 47 0
      vendor/alibabacloud/client/src/Signature/ShaHmac256Signature.php
  81. 67 0
      vendor/alibabacloud/client/src/Signature/ShaHmac256WithRsaSignature.php
  82. 49 0
      vendor/alibabacloud/client/src/Signature/Signature.php
  83. 35 0
      vendor/alibabacloud/client/src/Signature/SignatureInterface.php
  84. 41 0
      vendor/alibabacloud/client/src/Support/Arrays.php
  85. 28 0
      vendor/alibabacloud/client/src/Support/Path.php
  86. 143 0
      vendor/alibabacloud/client/src/Support/Sign.php
  87. 47 0
      vendor/alibabacloud/client/src/Support/Stringy.php
  88. 61 0
      vendor/alibabacloud/client/src/Traits/ArrayAccessTrait.php
  89. 273 0
      vendor/alibabacloud/client/src/Traits/ClientTrait.php
  90. 66 0
      vendor/alibabacloud/client/src/Traits/DefaultRegionTrait.php
  91. 134 0
      vendor/alibabacloud/client/src/Traits/EndpointTrait.php
  92. 324 0
      vendor/alibabacloud/client/src/Traits/HasDataTrait.php
  93. 68 0
      vendor/alibabacloud/client/src/Traits/HistoryTrait.php
  94. 141 0
      vendor/alibabacloud/client/src/Traits/HttpTrait.php
  95. 97 0
      vendor/alibabacloud/client/src/Traits/LogTrait.php
  96. 97 0
      vendor/alibabacloud/client/src/Traits/MockTrait.php
  97. 54 0
      vendor/alibabacloud/client/src/Traits/ObjectAccessTrait.php
  98. 33 0
      vendor/alibabacloud/client/src/Traits/RegionTrait.php
  99. 90 0
      vendor/alibabacloud/client/src/Traits/RequestTrait.php
  100. 10554 0
      vendor/alibabacloud/sdk/CHANGELOG.md

+ 3944 - 0
composer.lock

@@ -0,0 +1,3944 @@
+{
+    "_readme": [
+        "This file locks the dependencies of your project to a known state",
+        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
+        "This file is @generated automatically"
+    ],
+    "content-hash": "911c8eb0798fbbada65c2e8b0d81d7c9",
+    "packages": [
+        {
+            "name": "adbario/php-dot-notation",
+            "version": "2.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/adbario/php-dot-notation.git",
+                "reference": "081e2cca50c84bfeeea2e3ef9b2c8d206d80ccae"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/adbario/php-dot-notation/zipball/081e2cca50c84bfeeea2e3ef9b2c8d206d80ccae",
+                "reference": "081e2cca50c84bfeeea2e3ef9b2c8d206d80ccae",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "ext-json": "*",
+                "php": "^5.5 || ^7.0 || ^8.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^4.8|^5.7|^6.6|^7.5|^8.5|^9.5",
+                "squizlabs/php_codesniffer": "^3.6"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "src/helpers.php"
+                ],
+                "psr-4": {
+                    "Adbar\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Riku Särkinen",
+                    "email": "riku@adbar.io"
+                }
+            ],
+            "description": "PHP dot notation access to arrays",
+            "homepage": "https://github.com/adbario/php-dot-notation",
+            "keywords": [
+                "ArrayAccess",
+                "dotnotation"
+            ],
+            "support": {
+                "issues": "https://github.com/adbario/php-dot-notation/issues",
+                "source": "https://github.com/adbario/php-dot-notation/tree/2.5.0"
+            },
+            "time": "2022-10-14T20:31:46+00:00"
+        },
+        {
+            "name": "alibabacloud/client",
+            "version": "1.5.32",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/aliyun/openapi-sdk-php-client.git",
+                "reference": "5bc6f6d660797dcee2c3aef29700ab41ee764f4d"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/aliyun/openapi-sdk-php-client/zipball/5bc6f6d660797dcee2c3aef29700ab41ee764f4d",
+                "reference": "5bc6f6d660797dcee2c3aef29700ab41ee764f4d",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "adbario/php-dot-notation": "^2.4.1",
+                "clagiordano/weblibs-configmanager": "^1.0",
+                "ext-curl": "*",
+                "ext-json": "*",
+                "ext-libxml": "*",
+                "ext-mbstring": "*",
+                "ext-openssl": "*",
+                "ext-simplexml": "*",
+                "ext-xmlwriter": "*",
+                "guzzlehttp/guzzle": "^6.3|^7.0",
+                "mtdowling/jmespath.php": "^2.5",
+                "php": ">=5.5"
+            },
+            "require-dev": {
+                "composer/composer": "^1.8",
+                "drupal/coder": "^8.3",
+                "ext-dom": "*",
+                "ext-pcre": "*",
+                "ext-sockets": "*",
+                "ext-spl": "*",
+                "league/climate": "^3.2.4",
+                "mikey179/vfsstream": "^1.6",
+                "monolog/monolog": "^1.24",
+                "phpunit/phpunit": "^5.7|^6.6|^7.5|^8.5|^9.5",
+                "psr/cache": "^1.0",
+                "symfony/dotenv": "^3.4",
+                "symfony/var-dumper": "^3.4"
+            },
+            "suggest": {
+                "ext-sockets": "To use client-side monitoring"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "src/Functions.php"
+                ],
+                "psr-4": {
+                    "AlibabaCloud\\Client\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Alibaba Cloud SDK",
+                    "email": "sdk-team@alibabacloud.com",
+                    "homepage": "http://www.alibabacloud.com"
+                }
+            ],
+            "description": "Alibaba Cloud Client for PHP - Use Alibaba Cloud in your PHP project",
+            "homepage": "https://www.alibabacloud.com/",
+            "keywords": [
+                "alibaba",
+                "alibabacloud",
+                "aliyun",
+                "client",
+                "cloud",
+                "library",
+                "sdk",
+                "tool"
+            ],
+            "support": {
+                "issues": "https://github.com/aliyun/openapi-sdk-php-client/issues",
+                "source": "https://github.com/aliyun/openapi-sdk-php-client"
+            },
+            "time": "2022-12-09T04:05:55+00:00"
+        },
+        {
+            "name": "alibabacloud/sdk",
+            "version": "1.8.2198",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/aliyun/openapi-sdk-php.git",
+                "reference": "e9536c02ab2c6315a81c5973963d4bc9e9efce57"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/aliyun/openapi-sdk-php/zipball/e9536c02ab2c6315a81c5973963d4bc9e9efce57",
+                "reference": "e9536c02ab2c6315a81c5973963d4bc9e9efce57",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "alibabacloud/client": "^1.5",
+                "ext-curl": "*",
+                "ext-json": "*",
+                "ext-libxml": "*",
+                "ext-mbstring": "*",
+                "ext-openssl": "*",
+                "ext-simplexml": "*",
+                "ext-xmlwriter": "*",
+                "php": ">=5.5"
+            },
+            "replace": {
+                "alibabacloud/aas": "self.version",
+                "alibabacloud/actiontrail": "self.version",
+                "alibabacloud/adb": "self.version",
+                "alibabacloud/aegis": "self.version",
+                "alibabacloud/afs": "self.version",
+                "alibabacloud/airec": "self.version",
+                "alibabacloud/alidns": "self.version",
+                "alibabacloud/alikafka": "self.version",
+                "alibabacloud/alimt": "self.version",
+                "alibabacloud/aliprobe": "self.version",
+                "alibabacloud/aliyuncvc": "self.version",
+                "alibabacloud/appmallsservice": "self.version",
+                "alibabacloud/arms": "self.version",
+                "alibabacloud/arms4finance": "self.version",
+                "alibabacloud/baas": "self.version",
+                "alibabacloud/batchcompute": "self.version",
+                "alibabacloud/bss": "self.version",
+                "alibabacloud/bssopenapi": "self.version",
+                "alibabacloud/cas": "self.version",
+                "alibabacloud/cbn": "self.version",
+                "alibabacloud/ccc": "self.version",
+                "alibabacloud/ccs": "self.version",
+                "alibabacloud/cdn": "self.version",
+                "alibabacloud/cds": "self.version",
+                "alibabacloud/cf": "self.version",
+                "alibabacloud/chatbot": "self.version",
+                "alibabacloud/cloudapi": "self.version",
+                "alibabacloud/cloudauth": "self.version",
+                "alibabacloud/cloudesl": "self.version",
+                "alibabacloud/cloudmarketing": "self.version",
+                "alibabacloud/cloudphoto": "self.version",
+                "alibabacloud/cloudwf": "self.version",
+                "alibabacloud/cms": "self.version",
+                "alibabacloud/commondriver": "self.version",
+                "alibabacloud/companyreg": "self.version",
+                "alibabacloud/cr": "self.version",
+                "alibabacloud/crm": "self.version",
+                "alibabacloud/cs": "self.version",
+                "alibabacloud/csb": "self.version",
+                "alibabacloud/cusanalyticsconline": "self.version",
+                "alibabacloud/dataworkspublic": "self.version",
+                "alibabacloud/dbs": "self.version",
+                "alibabacloud/dcdn": "self.version",
+                "alibabacloud/dds": "self.version",
+                "alibabacloud/democenter": "self.version",
+                "alibabacloud/dm": "self.version",
+                "alibabacloud/dmsenterprise": "self.version",
+                "alibabacloud/domain": "self.version",
+                "alibabacloud/domainintl": "self.version",
+                "alibabacloud/drcloud": "self.version",
+                "alibabacloud/drds": "self.version",
+                "alibabacloud/dts": "self.version",
+                "alibabacloud/dybaseapi": "self.version",
+                "alibabacloud/dyplsapi": "self.version",
+                "alibabacloud/dypnsapi": "self.version",
+                "alibabacloud/dysmsapi": "self.version",
+                "alibabacloud/dyvmsapi": "self.version",
+                "alibabacloud/eci": "self.version",
+                "alibabacloud/ecs": "self.version",
+                "alibabacloud/ecsinc": "self.version",
+                "alibabacloud/edas": "self.version",
+                "alibabacloud/ehpc": "self.version",
+                "alibabacloud/elasticsearch": "self.version",
+                "alibabacloud/emr": "self.version",
+                "alibabacloud/ess": "self.version",
+                "alibabacloud/facebody": "self.version",
+                "alibabacloud/fnf": "self.version",
+                "alibabacloud/foas": "self.version",
+                "alibabacloud/ft": "self.version",
+                "alibabacloud/goodstech": "self.version",
+                "alibabacloud/gpdb": "self.version",
+                "alibabacloud/green": "self.version",
+                "alibabacloud/hbase": "self.version",
+                "alibabacloud/hiknoengine": "self.version",
+                "alibabacloud/hpc": "self.version",
+                "alibabacloud/hsm": "self.version",
+                "alibabacloud/httpdns": "self.version",
+                "alibabacloud/idst": "self.version",
+                "alibabacloud/imageaudit": "self.version",
+                "alibabacloud/imageenhan": "self.version",
+                "alibabacloud/imagerecog": "self.version",
+                "alibabacloud/imagesearch": "self.version",
+                "alibabacloud/imageseg": "self.version",
+                "alibabacloud/imm": "self.version",
+                "alibabacloud/industrybrain": "self.version",
+                "alibabacloud/iot": "self.version",
+                "alibabacloud/iqa": "self.version",
+                "alibabacloud/itaas": "self.version",
+                "alibabacloud/ivision": "self.version",
+                "alibabacloud/ivpd": "self.version",
+                "alibabacloud/jaq": "self.version",
+                "alibabacloud/jarvis": "self.version",
+                "alibabacloud/jarvispublic": "self.version",
+                "alibabacloud/kms": "self.version",
+                "alibabacloud/linkedmall": "self.version",
+                "alibabacloud/linkface": "self.version",
+                "alibabacloud/linkwan": "self.version",
+                "alibabacloud/live": "self.version",
+                "alibabacloud/lubancloud": "self.version",
+                "alibabacloud/lubanruler": "self.version",
+                "alibabacloud/market": "self.version",
+                "alibabacloud/mopen": "self.version",
+                "alibabacloud/mpserverless": "self.version",
+                "alibabacloud/mts": "self.version",
+                "alibabacloud/multimediaai": "self.version",
+                "alibabacloud/nas": "self.version",
+                "alibabacloud/netana": "self.version",
+                "alibabacloud/nlp": "self.version",
+                "alibabacloud/nlpautoml": "self.version",
+                "alibabacloud/nlscloudmeta": "self.version",
+                "alibabacloud/nlsfiletrans": "self.version",
+                "alibabacloud/objectdet": "self.version",
+                "alibabacloud/ocr": "self.version",
+                "alibabacloud/ocs": "self.version",
+                "alibabacloud/oms": "self.version",
+                "alibabacloud/ons": "self.version",
+                "alibabacloud/onsmqtt": "self.version",
+                "alibabacloud/oos": "self.version",
+                "alibabacloud/openanalytics": "self.version",
+                "alibabacloud/ossadmin": "self.version",
+                "alibabacloud/ots": "self.version",
+                "alibabacloud/outboundbot": "self.version",
+                "alibabacloud/petadata": "self.version",
+                "alibabacloud/polardb": "self.version",
+                "alibabacloud/productcatalog": "self.version",
+                "alibabacloud/pts": "self.version",
+                "alibabacloud/push": "self.version",
+                "alibabacloud/pvtz": "self.version",
+                "alibabacloud/qualitycheck": "self.version",
+                "alibabacloud/ram": "self.version",
+                "alibabacloud/rds": "self.version",
+                "alibabacloud/reid": "self.version",
+                "alibabacloud/retailcloud": "self.version",
+                "alibabacloud/rkvstore": "self.version",
+                "alibabacloud/ros": "self.version",
+                "alibabacloud/rtc": "self.version",
+                "alibabacloud/saf": "self.version",
+                "alibabacloud/sas": "self.version",
+                "alibabacloud/sasapi": "self.version",
+                "alibabacloud/scdn": "self.version",
+                "alibabacloud/schedulerx2": "self.version",
+                "alibabacloud/skyeye": "self.version",
+                "alibabacloud/slb": "self.version",
+                "alibabacloud/smartag": "self.version",
+                "alibabacloud/smc": "self.version",
+                "alibabacloud/sms": "self.version",
+                "alibabacloud/smsintl": "self.version",
+                "alibabacloud/snsuapi": "self.version",
+                "alibabacloud/sts": "self.version",
+                "alibabacloud/taginner": "self.version",
+                "alibabacloud/tesladam": "self.version",
+                "alibabacloud/teslamaxcompute": "self.version",
+                "alibabacloud/teslastream": "self.version",
+                "alibabacloud/ubsms": "self.version",
+                "alibabacloud/ubsmsinner": "self.version",
+                "alibabacloud/uis": "self.version",
+                "alibabacloud/unimkt": "self.version",
+                "alibabacloud/visionai": "self.version",
+                "alibabacloud/vod": "self.version",
+                "alibabacloud/voicenavigator": "self.version",
+                "alibabacloud/vpc": "self.version",
+                "alibabacloud/vs": "self.version",
+                "alibabacloud/wafopenapi": "self.version",
+                "alibabacloud/welfareinner": "self.version",
+                "alibabacloud/xspace": "self.version",
+                "alibabacloud/xtrace": "self.version",
+                "alibabacloud/yqbridge": "self.version",
+                "alibabacloud/yundun": "self.version"
+            },
+            "require-dev": {
+                "composer/composer": "^1.8",
+                "league/climate": "^3.2.4",
+                "phpunit/phpunit": "^4.8",
+                "symfony/dotenv": "^3.4",
+                "symfony/var-dumper": "^3.4"
+            },
+            "suggest": {
+                "ext-sockets": "To use client-side monitoring"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "AlibabaCloud\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Alibaba Cloud SDK",
+                    "email": "sdk-team@alibabacloud.com",
+                    "homepage": "http://www.alibabacloud.com"
+                }
+            ],
+            "description": "Alibaba Cloud SDK for PHP - Easier to Use Alibaba Cloud in your PHP project",
+            "homepage": "https://www.alibabacloud.com/",
+            "keywords": [
+                "alibaba",
+                "alibabacloud",
+                "aliyun",
+                "cloud",
+                "library",
+                "sdk"
+            ],
+            "support": {
+                "issues": "https://github.com/aliyun/openapi-sdk-php/issues",
+                "source": "https://github.com/aliyun/openapi-sdk-php"
+            },
+            "time": "2024-10-10T02:00:29+00:00"
+        },
+        {
+            "name": "clagiordano/weblibs-configmanager",
+            "version": "v1.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/clagiordano/weblibs-configmanager.git",
+                "reference": "8802c7396d61a923c9a73e37ead062b24bb1b273"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/clagiordano/weblibs-configmanager/zipball/8802c7396d61a923c9a73e37ead062b24bb1b273",
+                "reference": "8802c7396d61a923c9a73e37ead062b24bb1b273",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "ext-json": "*",
+                "php": ">=5.4",
+                "symfony/yaml": "^2.8"
+            },
+            "require-dev": {
+                "clagiordano/phpunit-result-printer": "^1",
+                "php-coveralls/php-coveralls": "^1.1",
+                "phpunit/phpunit": "^4.8"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "clagiordano\\weblibs\\configmanager\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "LGPL-3.0-or-later"
+            ],
+            "authors": [
+                {
+                    "name": "Claudio Giordano",
+                    "email": "claudio.giordano@autistici.org",
+                    "role": "Developer"
+                }
+            ],
+            "description": "weblibs-configmanager is a tool library for easily read and access to php config array file and direct read/write configuration file / object",
+            "keywords": [
+                "clagiordano",
+                "configuration",
+                "manager",
+                "tool",
+                "weblibs"
+            ],
+            "support": {
+                "issues": "https://github.com/clagiordano/weblibs-configmanager/issues",
+                "source": "https://github.com/clagiordano/weblibs-configmanager/tree/v1.5.0"
+            },
+            "time": "2021-07-12T15:27:21+00:00"
+        },
+        {
+            "name": "easywechat-composer/easywechat-composer",
+            "version": "1.4.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/mingyoung/easywechat-composer.git",
+                "reference": "3fc6a7ab6d3853c0f4e2922539b56cc37ef361cd"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/mingyoung/easywechat-composer/zipball/3fc6a7ab6d3853c0f4e2922539b56cc37ef361cd",
+                "reference": "3fc6a7ab6d3853c0f4e2922539b56cc37ef361cd",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "composer-plugin-api": "^1.0 || ^2.0",
+                "php": ">=7.0"
+            },
+            "require-dev": {
+                "composer/composer": "^1.0 || ^2.0",
+                "phpunit/phpunit": "^6.5 || ^7.0"
+            },
+            "type": "composer-plugin",
+            "extra": {
+                "class": "EasyWeChatComposer\\Plugin"
+            },
+            "autoload": {
+                "psr-4": {
+                    "EasyWeChatComposer\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "张铭阳",
+                    "email": "mingyoungcheung@gmail.com"
+                }
+            ],
+            "description": "The composer plugin for EasyWeChat",
+            "support": {
+                "issues": "https://github.com/mingyoung/easywechat-composer/issues",
+                "source": "https://github.com/mingyoung/easywechat-composer/tree/1.4.1"
+            },
+            "time": "2021-07-05T04:03:22+00:00"
+        },
+        {
+            "name": "ezyang/htmlpurifier",
+            "version": "v4.18.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/ezyang/htmlpurifier.git",
+                "reference": "cb56001e54359df7ae76dc522d08845dc741621b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/cb56001e54359df7ae76dc522d08845dc741621b",
+                "reference": "cb56001e54359df7ae76dc522d08845dc741621b",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0 || ~8.4.0"
+            },
+            "require-dev": {
+                "cerdic/css-tidy": "^1.7 || ^2.0",
+                "simpletest/simpletest": "dev-master"
+            },
+            "suggest": {
+                "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.",
+                "ext-bcmath": "Used for unit conversion and imagecrash protection",
+                "ext-iconv": "Converts text to and from non-UTF-8 encodings",
+                "ext-tidy": "Used for pretty-printing HTML"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "library/HTMLPurifier.composer.php"
+                ],
+                "psr-0": {
+                    "HTMLPurifier": "library/"
+                },
+                "exclude-from-classmap": [
+                    "/library/HTMLPurifier/Language/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "LGPL-2.1-or-later"
+            ],
+            "authors": [
+                {
+                    "name": "Edward Z. Yang",
+                    "email": "admin@htmlpurifier.org",
+                    "homepage": "http://ezyang.com"
+                }
+            ],
+            "description": "Standards compliant HTML filter written in PHP",
+            "homepage": "http://htmlpurifier.org/",
+            "keywords": [
+                "html"
+            ],
+            "support": {
+                "issues": "https://github.com/ezyang/htmlpurifier/issues",
+                "source": "https://github.com/ezyang/htmlpurifier/tree/v4.18.0"
+            },
+            "time": "2024-11-01T03:51:45+00:00"
+        },
+        {
+            "name": "guzzlehttp/guzzle",
+            "version": "7.9.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/guzzle/guzzle.git",
+                "reference": "d281ed313b989f213357e3be1a179f02196ac99b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/guzzle/guzzle/zipball/d281ed313b989f213357e3be1a179f02196ac99b",
+                "reference": "d281ed313b989f213357e3be1a179f02196ac99b",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "ext-json": "*",
+                "guzzlehttp/promises": "^1.5.3 || ^2.0.3",
+                "guzzlehttp/psr7": "^2.7.0",
+                "php": "^7.2.5 || ^8.0",
+                "psr/http-client": "^1.0",
+                "symfony/deprecation-contracts": "^2.2 || ^3.0"
+            },
+            "provide": {
+                "psr/http-client-implementation": "1.0"
+            },
+            "require-dev": {
+                "bamarni/composer-bin-plugin": "^1.8.2",
+                "ext-curl": "*",
+                "guzzle/client-integration-tests": "3.0.2",
+                "php-http/message-factory": "^1.1",
+                "phpunit/phpunit": "^8.5.39 || ^9.6.20",
+                "psr/log": "^1.1 || ^2.0 || ^3.0"
+            },
+            "suggest": {
+                "ext-curl": "Required for CURL handler support",
+                "ext-intl": "Required for Internationalized Domain Name (IDN) support",
+                "psr/log": "Required for using the Log middleware"
+            },
+            "type": "library",
+            "extra": {
+                "bamarni-bin": {
+                    "bin-links": true,
+                    "forward-command": false
+                }
+            },
+            "autoload": {
+                "files": [
+                    "src/functions_include.php"
+                ],
+                "psr-4": {
+                    "GuzzleHttp\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Graham Campbell",
+                    "email": "hello@gjcampbell.co.uk",
+                    "homepage": "https://github.com/GrahamCampbell"
+                },
+                {
+                    "name": "Michael Dowling",
+                    "email": "mtdowling@gmail.com",
+                    "homepage": "https://github.com/mtdowling"
+                },
+                {
+                    "name": "Jeremy Lindblom",
+                    "email": "jeremeamia@gmail.com",
+                    "homepage": "https://github.com/jeremeamia"
+                },
+                {
+                    "name": "George Mponos",
+                    "email": "gmponos@gmail.com",
+                    "homepage": "https://github.com/gmponos"
+                },
+                {
+                    "name": "Tobias Nyholm",
+                    "email": "tobias.nyholm@gmail.com",
+                    "homepage": "https://github.com/Nyholm"
+                },
+                {
+                    "name": "Márk Sági-Kazár",
+                    "email": "mark.sagikazar@gmail.com",
+                    "homepage": "https://github.com/sagikazarmark"
+                },
+                {
+                    "name": "Tobias Schultze",
+                    "email": "webmaster@tubo-world.de",
+                    "homepage": "https://github.com/Tobion"
+                }
+            ],
+            "description": "Guzzle is a PHP HTTP client library",
+            "keywords": [
+                "client",
+                "curl",
+                "framework",
+                "http",
+                "http client",
+                "psr-18",
+                "psr-7",
+                "rest",
+                "web service"
+            ],
+            "support": {
+                "issues": "https://github.com/guzzle/guzzle/issues",
+                "source": "https://github.com/guzzle/guzzle/tree/7.9.2"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/GrahamCampbell",
+                    "type": "github"
+                },
+                {
+                    "url": "https://github.com/Nyholm",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-07-24T11:22:20+00:00"
+        },
+        {
+            "name": "guzzlehttp/promises",
+            "version": "2.0.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/guzzle/promises.git",
+                "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/guzzle/promises/zipball/6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
+                "reference": "6ea8dd08867a2a42619d65c3deb2c0fcbf81c8f8",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": "^7.2.5 || ^8.0"
+            },
+            "require-dev": {
+                "bamarni/composer-bin-plugin": "^1.8.2",
+                "phpunit/phpunit": "^8.5.39 || ^9.6.20"
+            },
+            "type": "library",
+            "extra": {
+                "bamarni-bin": {
+                    "bin-links": true,
+                    "forward-command": false
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "GuzzleHttp\\Promise\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Graham Campbell",
+                    "email": "hello@gjcampbell.co.uk",
+                    "homepage": "https://github.com/GrahamCampbell"
+                },
+                {
+                    "name": "Michael Dowling",
+                    "email": "mtdowling@gmail.com",
+                    "homepage": "https://github.com/mtdowling"
+                },
+                {
+                    "name": "Tobias Nyholm",
+                    "email": "tobias.nyholm@gmail.com",
+                    "homepage": "https://github.com/Nyholm"
+                },
+                {
+                    "name": "Tobias Schultze",
+                    "email": "webmaster@tubo-world.de",
+                    "homepage": "https://github.com/Tobion"
+                }
+            ],
+            "description": "Guzzle promises library",
+            "keywords": [
+                "promise"
+            ],
+            "support": {
+                "issues": "https://github.com/guzzle/promises/issues",
+                "source": "https://github.com/guzzle/promises/tree/2.0.3"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/GrahamCampbell",
+                    "type": "github"
+                },
+                {
+                    "url": "https://github.com/Nyholm",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-07-18T10:29:17+00:00"
+        },
+        {
+            "name": "guzzlehttp/psr7",
+            "version": "2.7.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/guzzle/psr7.git",
+                "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/guzzle/psr7/zipball/a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
+                "reference": "a70f5c95fb43bc83f07c9c948baa0dc1829bf201",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": "^7.2.5 || ^8.0",
+                "psr/http-factory": "^1.0",
+                "psr/http-message": "^1.1 || ^2.0",
+                "ralouphie/getallheaders": "^3.0"
+            },
+            "provide": {
+                "psr/http-factory-implementation": "1.0",
+                "psr/http-message-implementation": "1.0"
+            },
+            "require-dev": {
+                "bamarni/composer-bin-plugin": "^1.8.2",
+                "http-interop/http-factory-tests": "0.9.0",
+                "phpunit/phpunit": "^8.5.39 || ^9.6.20"
+            },
+            "suggest": {
+                "laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
+            },
+            "type": "library",
+            "extra": {
+                "bamarni-bin": {
+                    "bin-links": true,
+                    "forward-command": false
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "GuzzleHttp\\Psr7\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Graham Campbell",
+                    "email": "hello@gjcampbell.co.uk",
+                    "homepage": "https://github.com/GrahamCampbell"
+                },
+                {
+                    "name": "Michael Dowling",
+                    "email": "mtdowling@gmail.com",
+                    "homepage": "https://github.com/mtdowling"
+                },
+                {
+                    "name": "George Mponos",
+                    "email": "gmponos@gmail.com",
+                    "homepage": "https://github.com/gmponos"
+                },
+                {
+                    "name": "Tobias Nyholm",
+                    "email": "tobias.nyholm@gmail.com",
+                    "homepage": "https://github.com/Nyholm"
+                },
+                {
+                    "name": "Márk Sági-Kazár",
+                    "email": "mark.sagikazar@gmail.com",
+                    "homepage": "https://github.com/sagikazarmark"
+                },
+                {
+                    "name": "Tobias Schultze",
+                    "email": "webmaster@tubo-world.de",
+                    "homepage": "https://github.com/Tobion"
+                },
+                {
+                    "name": "Márk Sági-Kazár",
+                    "email": "mark.sagikazar@gmail.com",
+                    "homepage": "https://sagikazarmark.hu"
+                }
+            ],
+            "description": "PSR-7 message implementation that also provides common utility methods",
+            "keywords": [
+                "http",
+                "message",
+                "psr-7",
+                "request",
+                "response",
+                "stream",
+                "uri",
+                "url"
+            ],
+            "support": {
+                "issues": "https://github.com/guzzle/psr7/issues",
+                "source": "https://github.com/guzzle/psr7/tree/2.7.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/GrahamCampbell",
+                    "type": "github"
+                },
+                {
+                    "url": "https://github.com/Nyholm",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-07-18T11:15:46+00:00"
+        },
+        {
+            "name": "karsonzhang/fastadmin-addons",
+            "version": "1.4.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/karsonzhang/fastadmin-addons.git",
+                "reference": "12b0b146bbdcb12c9f50c96baa3b7cc5f4c48ad6"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/karsonzhang/fastadmin-addons/zipball/12b0b146bbdcb12c9f50c96baa3b7cc5f4c48ad6",
+                "reference": "12b0b146bbdcb12c9f50c96baa3b7cc5f4c48ad6",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "nelexa/zip": "^3.3 || ^4.0",
+                "php": ">=7.0.0"
+            },
+            "type": "library",
+            "extra": {
+                "think-config": {
+                    "addons": "src/config.php"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "src/common.php"
+                ],
+                "psr-4": {
+                    "think\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "Karson",
+                    "email": "karson@fastadmin.net"
+                },
+                {
+                    "name": "xiaobo.sun",
+                    "email": "xiaobo.sun@qq.com"
+                }
+            ],
+            "description": "addons package for fastadmin",
+            "homepage": "https://github.com/karsonzhang/fastadmin-addons",
+            "support": {
+                "issues": "https://github.com/karsonzhang/fastadmin-addons/issues",
+                "source": "https://github.com/karsonzhang/fastadmin-addons/tree/v1.4.0"
+            },
+            "time": "2024-03-28T04:15:16+00:00"
+        },
+        {
+            "name": "maennchen/zipstream-php",
+            "version": "2.2.6",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/maennchen/ZipStream-PHP.git",
+                "reference": "30ad6f93cf3efe4192bc7a4c9cad11ff8f4f237f"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/30ad6f93cf3efe4192bc7a4c9cad11ff8f4f237f",
+                "reference": "30ad6f93cf3efe4192bc7a4c9cad11ff8f4f237f",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "myclabs/php-enum": "^1.5",
+                "php": "^7.4 || ^8.0",
+                "psr/http-message": "^1.0",
+                "symfony/polyfill-mbstring": "^1.0"
+            },
+            "require-dev": {
+                "ext-zip": "*",
+                "friendsofphp/php-cs-fixer": "^3.9",
+                "guzzlehttp/guzzle": "^6.5.3 || ^7.2.0",
+                "mikey179/vfsstream": "^1.6",
+                "php-coveralls/php-coveralls": "^2.4",
+                "phpunit/phpunit": "^8.5.8 || ^9.4.2",
+                "vimeo/psalm": "^4.1"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "ZipStream\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Paul Duncan",
+                    "email": "pabs@pablotron.org"
+                },
+                {
+                    "name": "Jonatan Männchen",
+                    "email": "jonatan@maennchen.ch"
+                },
+                {
+                    "name": "Jesse Donat",
+                    "email": "donatj@gmail.com"
+                },
+                {
+                    "name": "András Kolesár",
+                    "email": "kolesar@kolesar.hu"
+                }
+            ],
+            "description": "ZipStream is a library for dynamically streaming dynamic zip files from PHP without writing to the disk at all on the server.",
+            "keywords": [
+                "stream",
+                "zip"
+            ],
+            "support": {
+                "issues": "https://github.com/maennchen/ZipStream-PHP/issues",
+                "source": "https://github.com/maennchen/ZipStream-PHP/tree/2.2.6"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/maennchen",
+                    "type": "github"
+                },
+                {
+                    "url": "https://opencollective.com/zipstream",
+                    "type": "open_collective"
+                }
+            ],
+            "time": "2022-11-25T18:57:19+00:00"
+        },
+        {
+            "name": "markbaker/complex",
+            "version": "3.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/MarkBaker/PHPComplex.git",
+                "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/95c56caa1cf5c766ad6d65b6344b807c1e8405b9",
+                "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": "^7.2 || ^8.0"
+            },
+            "require-dev": {
+                "dealerdirect/phpcodesniffer-composer-installer": "dev-master",
+                "phpcompatibility/php-compatibility": "^9.3",
+                "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
+                "squizlabs/php_codesniffer": "^3.7"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Complex\\": "classes/src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Mark Baker",
+                    "email": "mark@lange.demon.co.uk"
+                }
+            ],
+            "description": "PHP Class for working with complex numbers",
+            "homepage": "https://github.com/MarkBaker/PHPComplex",
+            "keywords": [
+                "complex",
+                "mathematics"
+            ],
+            "support": {
+                "issues": "https://github.com/MarkBaker/PHPComplex/issues",
+                "source": "https://github.com/MarkBaker/PHPComplex/tree/3.0.2"
+            },
+            "time": "2022-12-06T16:21:08+00:00"
+        },
+        {
+            "name": "markbaker/matrix",
+            "version": "3.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/MarkBaker/PHPMatrix.git",
+                "reference": "728434227fe21be27ff6d86621a1b13107a2562c"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/728434227fe21be27ff6d86621a1b13107a2562c",
+                "reference": "728434227fe21be27ff6d86621a1b13107a2562c",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": "^7.1 || ^8.0"
+            },
+            "require-dev": {
+                "dealerdirect/phpcodesniffer-composer-installer": "dev-master",
+                "phpcompatibility/php-compatibility": "^9.3",
+                "phpdocumentor/phpdocumentor": "2.*",
+                "phploc/phploc": "^4.0",
+                "phpmd/phpmd": "2.*",
+                "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0",
+                "sebastian/phpcpd": "^4.0",
+                "squizlabs/php_codesniffer": "^3.7"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Matrix\\": "classes/src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Mark Baker",
+                    "email": "mark@demon-angel.eu"
+                }
+            ],
+            "description": "PHP Class for working with matrices",
+            "homepage": "https://github.com/MarkBaker/PHPMatrix",
+            "keywords": [
+                "mathematics",
+                "matrix",
+                "vector"
+            ],
+            "support": {
+                "issues": "https://github.com/MarkBaker/PHPMatrix/issues",
+                "source": "https://github.com/MarkBaker/PHPMatrix/tree/3.0.1"
+            },
+            "time": "2022-12-02T22:17:43+00:00"
+        },
+        {
+            "name": "monolog/monolog",
+            "version": "2.9.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/Seldaek/monolog.git",
+                "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/a30bfe2e142720dfa990d0a7e573997f5d884215",
+                "reference": "a30bfe2e142720dfa990d0a7e573997f5d884215",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.2",
+                "psr/log": "^1.0.1 || ^2.0 || ^3.0"
+            },
+            "provide": {
+                "psr/log-implementation": "1.0.0 || 2.0.0 || 3.0.0"
+            },
+            "require-dev": {
+                "aws/aws-sdk-php": "^2.4.9 || ^3.0",
+                "doctrine/couchdb": "~1.0@dev",
+                "elasticsearch/elasticsearch": "^7 || ^8",
+                "ext-json": "*",
+                "graylog2/gelf-php": "^1.4.2 || ^2@dev",
+                "guzzlehttp/guzzle": "^7.4",
+                "guzzlehttp/psr7": "^2.2",
+                "mongodb/mongodb": "^1.8",
+                "php-amqplib/php-amqplib": "~2.4 || ^3",
+                "phpspec/prophecy": "^1.15",
+                "phpstan/phpstan": "^1.10",
+                "phpunit/phpunit": "^8.5.38 || ^9.6.19",
+                "predis/predis": "^1.1 || ^2.0",
+                "rollbar/rollbar": "^1.3 || ^2 || ^3",
+                "ruflin/elastica": "^7",
+                "swiftmailer/swiftmailer": "^5.3|^6.0",
+                "symfony/mailer": "^5.4 || ^6",
+                "symfony/mime": "^5.4 || ^6"
+            },
+            "suggest": {
+                "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
+                "doctrine/couchdb": "Allow sending log messages to a CouchDB server",
+                "elasticsearch/elasticsearch": "Allow sending log messages to an Elasticsearch server via official client",
+                "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
+                "ext-curl": "Required to send log messages using the IFTTTHandler, the LogglyHandler, the SendGridHandler, the SlackWebhookHandler or the TelegramBotHandler",
+                "ext-mbstring": "Allow to work properly with unicode symbols",
+                "ext-mongodb": "Allow sending log messages to a MongoDB server (via driver)",
+                "ext-openssl": "Required to send log messages using SSL",
+                "ext-sockets": "Allow sending log messages to a Syslog server (via UDP driver)",
+                "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
+                "mongodb/mongodb": "Allow sending log messages to a MongoDB server (via library)",
+                "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
+                "rollbar/rollbar": "Allow sending log messages to Rollbar",
+                "ruflin/elastica": "Allow sending log messages to an Elastic Search server"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Monolog\\": "src/Monolog"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Jordi Boggiano",
+                    "email": "j.boggiano@seld.be",
+                    "homepage": "https://seld.be"
+                }
+            ],
+            "description": "Sends your logs to files, sockets, inboxes, databases and various web services",
+            "homepage": "https://github.com/Seldaek/monolog",
+            "keywords": [
+                "log",
+                "logging",
+                "psr-3"
+            ],
+            "support": {
+                "issues": "https://github.com/Seldaek/monolog/issues",
+                "source": "https://github.com/Seldaek/monolog/tree/2.9.3"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/Seldaek",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/monolog/monolog",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-04-12T20:52:51+00:00"
+        },
+        {
+            "name": "mtdowling/jmespath.php",
+            "version": "2.7.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/jmespath/jmespath.php.git",
+                "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/jmespath/jmespath.php/zipball/bbb69a935c2cbb0c03d7f481a238027430f6440b",
+                "reference": "bbb69a935c2cbb0c03d7f481a238027430f6440b",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": "^7.2.5 || ^8.0",
+                "symfony/polyfill-mbstring": "^1.17"
+            },
+            "require-dev": {
+                "composer/xdebug-handler": "^3.0.3",
+                "phpunit/phpunit": "^8.5.33"
+            },
+            "bin": [
+                "bin/jp.php"
+            ],
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.7-dev"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "src/JmesPath.php"
+                ],
+                "psr-4": {
+                    "JmesPath\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Graham Campbell",
+                    "email": "hello@gjcampbell.co.uk",
+                    "homepage": "https://github.com/GrahamCampbell"
+                },
+                {
+                    "name": "Michael Dowling",
+                    "email": "mtdowling@gmail.com",
+                    "homepage": "https://github.com/mtdowling"
+                }
+            ],
+            "description": "Declaratively specify how to extract elements from a JSON document",
+            "keywords": [
+                "json",
+                "jsonpath"
+            ],
+            "support": {
+                "issues": "https://github.com/jmespath/jmespath.php/issues",
+                "source": "https://github.com/jmespath/jmespath.php/tree/2.7.0"
+            },
+            "time": "2023-08-25T10:54:48+00:00"
+        },
+        {
+            "name": "myclabs/php-enum",
+            "version": "1.8.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/myclabs/php-enum.git",
+                "reference": "a867478eae49c9f59ece437ae7f9506bfaa27483"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/myclabs/php-enum/zipball/a867478eae49c9f59ece437ae7f9506bfaa27483",
+                "reference": "a867478eae49c9f59ece437ae7f9506bfaa27483",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "ext-json": "*",
+                "php": "^7.3 || ^8.0"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "^9.5",
+                "squizlabs/php_codesniffer": "1.*",
+                "vimeo/psalm": "^4.6.2"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "MyCLabs\\Enum\\": "src/"
+                },
+                "classmap": [
+                    "stubs/Stringable.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP Enum contributors",
+                    "homepage": "https://github.com/myclabs/php-enum/graphs/contributors"
+                }
+            ],
+            "description": "PHP Enum implementation",
+            "homepage": "http://github.com/myclabs/php-enum",
+            "keywords": [
+                "enum"
+            ],
+            "support": {
+                "issues": "https://github.com/myclabs/php-enum/issues",
+                "source": "https://github.com/myclabs/php-enum/tree/1.8.4"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/mnapoli",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2022-08-04T09:53:51+00:00"
+        },
+        {
+            "name": "nelexa/zip",
+            "version": "4.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/Ne-Lexa/php-zip.git",
+                "reference": "88a1b6549be813278ff2dd3b6b2ac188827634a7"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/Ne-Lexa/php-zip/zipball/88a1b6549be813278ff2dd3b6b2ac188827634a7",
+                "reference": "88a1b6549be813278ff2dd3b6b2ac188827634a7",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "ext-zlib": "*",
+                "php": "^7.4 || ^8.0",
+                "psr/http-message": "*",
+                "symfony/finder": "*"
+            },
+            "require-dev": {
+                "ext-bz2": "*",
+                "ext-dom": "*",
+                "ext-fileinfo": "*",
+                "ext-iconv": "*",
+                "ext-openssl": "*",
+                "ext-xml": "*",
+                "friendsofphp/php-cs-fixer": "^3.4.0",
+                "guzzlehttp/psr7": "^1.6",
+                "phpunit/phpunit": "^9",
+                "symfony/http-foundation": "*",
+                "symfony/var-dumper": "*",
+                "vimeo/psalm": "^4.6"
+            },
+            "suggest": {
+                "ext-bz2": "Needed to support BZIP2 compression",
+                "ext-fileinfo": "Needed to get mime-type file",
+                "ext-iconv": "Needed to support convert zip entry name to requested character encoding",
+                "ext-openssl": "Needed to support encrypt zip entries or use ext-mcrypt"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "PhpZip\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Ne-Lexa",
+                    "email": "alexey@nelexa.ru",
+                    "role": "Developer"
+                }
+            ],
+            "description": "PhpZip is a php-library for extended work with ZIP-archives. Open, create, update, delete, extract and get info tool. Supports appending to existing ZIP files, WinZip AES encryption, Traditional PKWARE Encryption, BZIP2 compression, external file attributes and ZIP64 extensions. Alternative ZipArchive. It does not require php-zip extension.",
+            "homepage": "https://github.com/Ne-Lexa/php-zip",
+            "keywords": [
+                "archive",
+                "extract",
+                "unzip",
+                "winzip",
+                "zip",
+                "ziparchive"
+            ],
+            "support": {
+                "issues": "https://github.com/Ne-Lexa/php-zip/issues",
+                "source": "https://github.com/Ne-Lexa/php-zip/tree/4.0.2"
+            },
+            "time": "2022-06-17T11:17:46+00:00"
+        },
+        {
+            "name": "overtrue/pinyin",
+            "version": "3.0.6",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/overtrue/pinyin.git",
+                "reference": "3b781d267197b74752daa32814d3a2cf5d140779"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/overtrue/pinyin/zipball/3b781d267197b74752daa32814d3a2cf5d140779",
+                "reference": "3b781d267197b74752daa32814d3a2cf5d140779",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=5.3"
+            },
+            "require-dev": {
+                "phpunit/phpunit": "~4.8"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Overtrue\\Pinyin\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Carlos",
+                    "homepage": "http://github.com/overtrue"
+                }
+            ],
+            "description": "Chinese to pinyin translator.",
+            "homepage": "https://github.com/overtrue/pinyin",
+            "keywords": [
+                "Chinese",
+                "Pinyin",
+                "cn2pinyin"
+            ],
+            "support": {
+                "issues": "https://github.com/overtrue/pinyin/issues",
+                "source": "https://github.com/overtrue/pinyin/tree/master"
+            },
+            "time": "2017-07-10T07:20:01+00:00"
+        },
+        {
+            "name": "overtrue/socialite",
+            "version": "2.0.24",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/overtrue/socialite.git",
+                "reference": "ee7e7b000ec7d64f2b8aba1f6a2eec5cdf3f8bec"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/overtrue/socialite/zipball/ee7e7b000ec7d64f2b8aba1f6a2eec5cdf3f8bec",
+                "reference": "ee7e7b000ec7d64f2b8aba1f6a2eec5cdf3f8bec",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "ext-json": "*",
+                "guzzlehttp/guzzle": "^5.0|^6.0|^7.0",
+                "php": ">=5.6",
+                "symfony/http-foundation": "^2.7|^3.0|^4.0|^5.0"
+            },
+            "require-dev": {
+                "mockery/mockery": "~1.2",
+                "phpunit/phpunit": "^6.0|^7.0|^8.0|^9.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Overtrue\\Socialite\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "overtrue",
+                    "email": "anzhengchao@gmail.com"
+                }
+            ],
+            "description": "A collection of OAuth 2 packages that extracts from laravel/socialite.",
+            "keywords": [
+                "login",
+                "oauth",
+                "qq",
+                "social",
+                "wechat",
+                "weibo"
+            ],
+            "support": {
+                "issues": "https://github.com/overtrue/socialite/issues",
+                "source": "https://github.com/overtrue/socialite/tree/2.0.24"
+            },
+            "funding": [
+                {
+                    "url": "https://www.patreon.com/overtrue",
+                    "type": "patreon"
+                }
+            ],
+            "time": "2021-05-13T16:04:48+00:00"
+        },
+        {
+            "name": "overtrue/wechat",
+            "version": "4.6.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/w7corp/easywechat.git",
+                "reference": "52af4cbe777cd4aea307beafa0a4518c347467b1"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/w7corp/easywechat/zipball/52af4cbe777cd4aea307beafa0a4518c347467b1",
+                "reference": "52af4cbe777cd4aea307beafa0a4518c347467b1",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "easywechat-composer/easywechat-composer": "^1.1",
+                "ext-fileinfo": "*",
+                "ext-openssl": "*",
+                "ext-simplexml": "*",
+                "guzzlehttp/guzzle": "^6.2 || ^7.0",
+                "monolog/monolog": "^1.22 || ^2.0",
+                "overtrue/socialite": "~2.0",
+                "php": ">=7.2",
+                "pimple/pimple": "^3.0",
+                "psr/simple-cache": "^1.0",
+                "symfony/cache": "^3.3 || ^4.3 || ^5.0",
+                "symfony/event-dispatcher": "^4.3 || ^5.0",
+                "symfony/http-foundation": "^2.7 || ^3.0 || ^4.0 || ^5.0",
+                "symfony/psr-http-message-bridge": "^0.3 || ^1.0 || ^2.0"
+            },
+            "require-dev": {
+                "friendsofphp/php-cs-fixer": "^2.15",
+                "mikey179/vfsstream": "^1.6",
+                "mockery/mockery": "^1.2.3",
+                "phpstan/phpstan": "^0.12.0",
+                "phpunit/phpunit": "^7.5"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "src/Kernel/Support/Helpers.php",
+                    "src/Kernel/Helpers.php"
+                ],
+                "psr-4": {
+                    "EasyWeChat\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "overtrue",
+                    "email": "anzhengchao@gmail.com"
+                }
+            ],
+            "description": "微信SDK",
+            "keywords": [
+                "easywechat",
+                "sdk",
+                "wechat",
+                "weixin",
+                "weixin-sdk"
+            ],
+            "support": {
+                "issues": "https://github.com/w7corp/easywechat/issues",
+                "source": "https://github.com/w7corp/easywechat/tree/4.6.0"
+            },
+            "funding": [
+                {
+                    "url": "https://github.com/overtrue",
+                    "type": "github"
+                }
+            ],
+            "abandoned": "w7corp/easywechat",
+            "time": "2022-08-24T07:30:42+00:00"
+        },
+        {
+            "name": "phpoffice/phpspreadsheet",
+            "version": "1.19.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/PHPOffice/PhpSpreadsheet.git",
+                "reference": "a9ab55bfae02eecffb3df669a2e19ba0e2f04bbf"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/a9ab55bfae02eecffb3df669a2e19ba0e2f04bbf",
+                "reference": "a9ab55bfae02eecffb3df669a2e19ba0e2f04bbf",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "ext-ctype": "*",
+                "ext-dom": "*",
+                "ext-fileinfo": "*",
+                "ext-gd": "*",
+                "ext-iconv": "*",
+                "ext-libxml": "*",
+                "ext-mbstring": "*",
+                "ext-simplexml": "*",
+                "ext-xml": "*",
+                "ext-xmlreader": "*",
+                "ext-xmlwriter": "*",
+                "ext-zip": "*",
+                "ext-zlib": "*",
+                "ezyang/htmlpurifier": "^4.13",
+                "maennchen/zipstream-php": "^2.1",
+                "markbaker/complex": "^3.0",
+                "markbaker/matrix": "^3.0",
+                "php": "^7.2 || ^8.0",
+                "psr/http-client": "^1.0",
+                "psr/http-factory": "^1.0",
+                "psr/simple-cache": "^1.0"
+            },
+            "require-dev": {
+                "dealerdirect/phpcodesniffer-composer-installer": "dev-master",
+                "dompdf/dompdf": "^1.0",
+                "friendsofphp/php-cs-fixer": "^2.18",
+                "jpgraph/jpgraph": "^4.0",
+                "mpdf/mpdf": "^8.0",
+                "phpcompatibility/php-compatibility": "^9.3",
+                "phpstan/phpstan": "^0.12.82",
+                "phpstan/phpstan-phpunit": "^0.12.18",
+                "phpunit/phpunit": "^8.5",
+                "squizlabs/php_codesniffer": "^3.5",
+                "tecnickcom/tcpdf": "^6.3"
+            },
+            "suggest": {
+                "dompdf/dompdf": "Option for rendering PDF with PDF Writer (doesn't yet support PHP8)",
+                "jpgraph/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers",
+                "mpdf/mpdf": "Option for rendering PDF with PDF Writer",
+                "tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer (doesn't yet support PHP8)"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Maarten Balliauw",
+                    "homepage": "https://blog.maartenballiauw.be"
+                },
+                {
+                    "name": "Mark Baker",
+                    "homepage": "https://markbakeruk.net"
+                },
+                {
+                    "name": "Franck Lefevre",
+                    "homepage": "https://rootslabs.net"
+                },
+                {
+                    "name": "Erik Tilt"
+                },
+                {
+                    "name": "Adrien Crivelli"
+                }
+            ],
+            "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine",
+            "homepage": "https://github.com/PHPOffice/PhpSpreadsheet",
+            "keywords": [
+                "OpenXML",
+                "excel",
+                "gnumeric",
+                "ods",
+                "php",
+                "spreadsheet",
+                "xls",
+                "xlsx"
+            ],
+            "support": {
+                "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues",
+                "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.19.0"
+            },
+            "time": "2021-10-31T15:09:20+00:00"
+        },
+        {
+            "name": "pimple/pimple",
+            "version": "v3.5.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/silexphp/Pimple.git",
+                "reference": "a94b3a4db7fb774b3d78dad2315ddc07629e1bed"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/silexphp/Pimple/zipball/a94b3a4db7fb774b3d78dad2315ddc07629e1bed",
+                "reference": "a94b3a4db7fb774b3d78dad2315ddc07629e1bed",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "psr/container": "^1.1 || ^2.0"
+            },
+            "require-dev": {
+                "symfony/phpunit-bridge": "^5.4@dev"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "3.4.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-0": {
+                    "Pimple": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                }
+            ],
+            "description": "Pimple, a simple Dependency Injection Container",
+            "homepage": "https://pimple.symfony.com",
+            "keywords": [
+                "container",
+                "dependency injection"
+            ],
+            "support": {
+                "source": "https://github.com/silexphp/Pimple/tree/v3.5.0"
+            },
+            "time": "2021-10-28T11:13:42+00:00"
+        },
+        {
+            "name": "psr/cache",
+            "version": "1.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/cache.git",
+                "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
+                "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=5.3.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Cache\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "http://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interface for caching libraries",
+            "keywords": [
+                "cache",
+                "psr",
+                "psr-6"
+            ],
+            "support": {
+                "source": "https://github.com/php-fig/cache/tree/master"
+            },
+            "time": "2016-08-06T20:24:11+00:00"
+        },
+        {
+            "name": "psr/container",
+            "version": "2.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/container.git",
+                "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/container/zipball/c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+                "reference": "c71ecc56dfe541dbd90c5360474fbc405f8d5963",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.4.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Container\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common Container Interface (PHP FIG PSR-11)",
+            "homepage": "https://github.com/php-fig/container",
+            "keywords": [
+                "PSR-11",
+                "container",
+                "container-interface",
+                "container-interop",
+                "psr"
+            ],
+            "support": {
+                "issues": "https://github.com/php-fig/container/issues",
+                "source": "https://github.com/php-fig/container/tree/2.0.2"
+            },
+            "time": "2021-11-05T16:47:00+00:00"
+        },
+        {
+            "name": "psr/event-dispatcher",
+            "version": "1.0.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/event-dispatcher.git",
+                "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/event-dispatcher/zipball/dbefd12671e8a14ec7f180cab83036ed26714bb0",
+                "reference": "dbefd12671e8a14ec7f180cab83036ed26714bb0",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.2.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\EventDispatcher\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "http://www.php-fig.org/"
+                }
+            ],
+            "description": "Standard interfaces for event handling.",
+            "keywords": [
+                "events",
+                "psr",
+                "psr-14"
+            ],
+            "support": {
+                "issues": "https://github.com/php-fig/event-dispatcher/issues",
+                "source": "https://github.com/php-fig/event-dispatcher/tree/1.0.0"
+            },
+            "time": "2019-01-08T18:20:26+00:00"
+        },
+        {
+            "name": "psr/http-client",
+            "version": "1.0.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/http-client.git",
+                "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90",
+                "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": "^7.0 || ^8.0",
+                "psr/http-message": "^1.0 || ^2.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Http\\Client\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interface for HTTP clients",
+            "homepage": "https://github.com/php-fig/http-client",
+            "keywords": [
+                "http",
+                "http-client",
+                "psr",
+                "psr-18"
+            ],
+            "support": {
+                "source": "https://github.com/php-fig/http-client"
+            },
+            "time": "2023-09-23T14:17:50+00:00"
+        },
+        {
+            "name": "psr/http-factory",
+            "version": "1.0.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/http-factory.git",
+                "reference": "e616d01114759c4c489f93b099585439f795fe35"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
+                "reference": "e616d01114759c4c489f93b099585439f795fe35",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.0.0",
+                "psr/http-message": "^1.0 || ^2.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Http\\Message\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interfaces for PSR-7 HTTP message factories",
+            "keywords": [
+                "factory",
+                "http",
+                "message",
+                "psr",
+                "psr-17",
+                "psr-7",
+                "request",
+                "response"
+            ],
+            "support": {
+                "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
+            },
+            "time": "2023-04-10T20:10:41+00:00"
+        },
+        {
+            "name": "psr/http-message",
+            "version": "1.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/http-message.git",
+                "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
+                "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": "^7.2 || ^8.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.1.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Http\\Message\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "http://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interface for HTTP messages",
+            "homepage": "https://github.com/php-fig/http-message",
+            "keywords": [
+                "http",
+                "http-message",
+                "psr",
+                "psr-7",
+                "request",
+                "response"
+            ],
+            "support": {
+                "source": "https://github.com/php-fig/http-message/tree/1.1"
+            },
+            "time": "2023-04-04T09:50:52+00:00"
+        },
+        {
+            "name": "psr/log",
+            "version": "1.1.4",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/log.git",
+                "reference": "d49695b909c3b7628b6289db5479a1c204601f11"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/log/zipball/d49695b909c3b7628b6289db5479a1c204601f11",
+                "reference": "d49695b909c3b7628b6289db5479a1c204601f11",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=5.3.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.1.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\Log\\": "Psr/Log/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "https://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interface for logging libraries",
+            "homepage": "https://github.com/php-fig/log",
+            "keywords": [
+                "log",
+                "psr",
+                "psr-3"
+            ],
+            "support": {
+                "source": "https://github.com/php-fig/log/tree/1.1.4"
+            },
+            "time": "2021-05-03T11:20:27+00:00"
+        },
+        {
+            "name": "psr/simple-cache",
+            "version": "1.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/php-fig/simple-cache.git",
+                "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+                "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=5.3.0"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.0.x-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Psr\\SimpleCache\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "PHP-FIG",
+                    "homepage": "http://www.php-fig.org/"
+                }
+            ],
+            "description": "Common interfaces for simple caching",
+            "keywords": [
+                "cache",
+                "caching",
+                "psr",
+                "psr-16",
+                "simple-cache"
+            ],
+            "support": {
+                "source": "https://github.com/php-fig/simple-cache/tree/master"
+            },
+            "time": "2017-10-23T01:57:42+00:00"
+        },
+        {
+            "name": "ralouphie/getallheaders",
+            "version": "3.0.3",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/ralouphie/getallheaders.git",
+                "reference": "120b605dfeb996808c31b6477290a714d356e822"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
+                "reference": "120b605dfeb996808c31b6477290a714d356e822",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=5.6"
+            },
+            "require-dev": {
+                "php-coveralls/php-coveralls": "^2.1",
+                "phpunit/phpunit": "^5 || ^6.5"
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "src/getallheaders.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Ralph Khattar",
+                    "email": "ralph.khattar@gmail.com"
+                }
+            ],
+            "description": "A polyfill for getallheaders.",
+            "support": {
+                "issues": "https://github.com/ralouphie/getallheaders/issues",
+                "source": "https://github.com/ralouphie/getallheaders/tree/develop"
+            },
+            "time": "2019-03-08T08:55:37+00:00"
+        },
+        {
+            "name": "symfony/cache",
+            "version": "v5.4.45",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/cache.git",
+                "reference": "12b03e3cc5c6fd495e56b2b9e7aca777f8608721"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/cache/zipball/12b03e3cc5c6fd495e56b2b9e7aca777f8608721",
+                "reference": "12b03e3cc5c6fd495e56b2b9e7aca777f8608721",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "psr/cache": "^1.0|^2.0",
+                "psr/log": "^1.1|^2|^3",
+                "symfony/cache-contracts": "^1.1.7|^2",
+                "symfony/deprecation-contracts": "^2.1|^3",
+                "symfony/polyfill-php73": "^1.9",
+                "symfony/polyfill-php80": "^1.16",
+                "symfony/service-contracts": "^1.1|^2|^3",
+                "symfony/var-exporter": "^4.4|^5.0|^6.0"
+            },
+            "conflict": {
+                "doctrine/dbal": "<2.13.1",
+                "symfony/dependency-injection": "<4.4",
+                "symfony/http-kernel": "<4.4",
+                "symfony/var-dumper": "<4.4"
+            },
+            "provide": {
+                "psr/cache-implementation": "1.0|2.0",
+                "psr/simple-cache-implementation": "1.0|2.0",
+                "symfony/cache-implementation": "1.0|2.0"
+            },
+            "require-dev": {
+                "cache/integration-tests": "dev-master",
+                "doctrine/cache": "^1.6|^2.0",
+                "doctrine/dbal": "^2.13.1|^3|^4",
+                "predis/predis": "^1.1|^2.0",
+                "psr/simple-cache": "^1.0|^2.0",
+                "symfony/config": "^4.4|^5.0|^6.0",
+                "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+                "symfony/filesystem": "^4.4|^5.0|^6.0",
+                "symfony/http-kernel": "^4.4|^5.0|^6.0",
+                "symfony/messenger": "^4.4|^5.0|^6.0",
+                "symfony/var-dumper": "^4.4|^5.0|^6.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Cache\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Provides extended PSR-6, PSR-16 (and tags) implementations",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "caching",
+                "psr6"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/cache/tree/v5.4.45"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-10-25T15:37:00+00:00"
+        },
+        {
+            "name": "symfony/cache-contracts",
+            "version": "v2.5.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/cache-contracts.git",
+                "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/cache-contracts/zipball/64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
+                "reference": "64be4a7acb83b6f2bf6de9a02cee6dad41277ebc",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "psr/cache": "^1.0|^2.0|^3.0"
+            },
+            "suggest": {
+                "symfony/cache-implementation": ""
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.5-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Contracts\\Cache\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Generic abstractions related to caching",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "abstractions",
+                "contracts",
+                "decoupling",
+                "interfaces",
+                "interoperability",
+                "standards"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/cache-contracts/tree/v2.5.2"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2022-01-02T09:53:40+00:00"
+        },
+        {
+            "name": "symfony/deprecation-contracts",
+            "version": "v2.5.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/deprecation-contracts.git",
+                "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
+                "reference": "e8b495ea28c1d97b5e0c121748d6f9b53d075c66",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.5-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "function.php"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "A generic function and convention to trigger deprecation notices",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.2"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2022-01-02T09:53:40+00:00"
+        },
+        {
+            "name": "symfony/event-dispatcher",
+            "version": "v5.4.45",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/event-dispatcher.git",
+                "reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/72982eb416f61003e9bb6e91f8b3213600dcf9e9",
+                "reference": "72982eb416f61003e9bb6e91f8b3213600dcf9e9",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "symfony/deprecation-contracts": "^2.1|^3",
+                "symfony/event-dispatcher-contracts": "^2|^3",
+                "symfony/polyfill-php80": "^1.16"
+            },
+            "conflict": {
+                "symfony/dependency-injection": "<4.4"
+            },
+            "provide": {
+                "psr/event-dispatcher-implementation": "1.0",
+                "symfony/event-dispatcher-implementation": "2.0"
+            },
+            "require-dev": {
+                "psr/log": "^1|^2|^3",
+                "symfony/config": "^4.4|^5.0|^6.0",
+                "symfony/dependency-injection": "^4.4|^5.0|^6.0",
+                "symfony/error-handler": "^4.4|^5.0|^6.0",
+                "symfony/expression-language": "^4.4|^5.0|^6.0",
+                "symfony/http-foundation": "^4.4|^5.0|^6.0",
+                "symfony/service-contracts": "^1.1|^2|^3",
+                "symfony/stopwatch": "^4.4|^5.0|^6.0"
+            },
+            "suggest": {
+                "symfony/dependency-injection": "",
+                "symfony/http-kernel": ""
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\EventDispatcher\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/event-dispatcher/tree/v5.4.45"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-09-25T14:11:13+00:00"
+        },
+        {
+            "name": "symfony/event-dispatcher-contracts",
+            "version": "v2.5.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/event-dispatcher-contracts.git",
+                "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/f98b54df6ad059855739db6fcbc2d36995283fe1",
+                "reference": "f98b54df6ad059855739db6fcbc2d36995283fe1",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "psr/event-dispatcher": "^1"
+            },
+            "suggest": {
+                "symfony/event-dispatcher-implementation": ""
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.5-dev"
+                },
+                "thanks": {
+                    "name": "symfony/contracts",
+                    "url": "https://github.com/symfony/contracts"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Contracts\\EventDispatcher\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Generic abstractions related to dispatching event",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "abstractions",
+                "contracts",
+                "decoupling",
+                "interfaces",
+                "interoperability",
+                "standards"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v2.5.2"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2022-01-02T09:53:40+00:00"
+        },
+        {
+            "name": "symfony/finder",
+            "version": "v5.4.45",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/finder.git",
+                "reference": "63741784cd7b9967975eec610b256eed3ede022b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/finder/zipball/63741784cd7b9967975eec610b256eed3ede022b",
+                "reference": "63741784cd7b9967975eec610b256eed3ede022b",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "symfony/deprecation-contracts": "^2.1|^3",
+                "symfony/polyfill-php80": "^1.16"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Finder\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Finds files and directories via an intuitive fluent interface",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/finder/tree/v5.4.45"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-09-28T13:32:08+00:00"
+        },
+        {
+            "name": "symfony/http-foundation",
+            "version": "v5.4.45",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/http-foundation.git",
+                "reference": "3f38426b9447521b044fbee56a1b31b18e049042"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/http-foundation/zipball/3f38426b9447521b044fbee56a1b31b18e049042",
+                "reference": "3f38426b9447521b044fbee56a1b31b18e049042",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "symfony/deprecation-contracts": "^2.1|^3",
+                "symfony/polyfill-mbstring": "~1.1",
+                "symfony/polyfill-php80": "^1.16"
+            },
+            "require-dev": {
+                "predis/predis": "^1.0|^2.0",
+                "symfony/cache": "^4.4|^5.0|^6.0",
+                "symfony/dependency-injection": "^5.4|^6.0",
+                "symfony/expression-language": "^4.4|^5.0|^6.0",
+                "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4",
+                "symfony/mime": "^4.4|^5.0|^6.0",
+                "symfony/rate-limiter": "^5.2|^6.0"
+            },
+            "suggest": {
+                "symfony/mime": "To use the file extension guesser"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\HttpFoundation\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Defines an object-oriented layer for the HTTP specification",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/http-foundation/tree/v5.4.45"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-10-21T20:36:41+00:00"
+        },
+        {
+            "name": "symfony/polyfill-ctype",
+            "version": "v1.31.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-ctype.git",
+                "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638",
+                "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.2"
+            },
+            "provide": {
+                "ext-ctype": "*"
+            },
+            "suggest": {
+                "ext-ctype": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Ctype\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Gert de Pagter",
+                    "email": "BackEndTea@gmail.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for ctype functions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "ctype",
+                "polyfill",
+                "portable"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-09-09T11:45:10+00:00"
+        },
+        {
+            "name": "symfony/polyfill-mbstring",
+            "version": "v1.29.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-mbstring.git",
+                "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+                "reference": "9773676c8a1bb1f8d4340a62efe641cf76eda7ec",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.1"
+            },
+            "provide": {
+                "ext-mbstring": "*"
+            },
+            "suggest": {
+                "ext-mbstring": "For best performance"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Mbstring\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill for the Mbstring extension",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "mbstring",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.29.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-01-29T20:11:03+00:00"
+        },
+        {
+            "name": "symfony/polyfill-php73",
+            "version": "v1.31.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-php73.git",
+                "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-php73/zipball/0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
+                "reference": "0f68c03565dcaaf25a890667542e8bd75fe7e5bb",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.2"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Php73\\": ""
+                },
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-php73/tree/v1.31.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-09-09T11:45:10+00:00"
+        },
+        {
+            "name": "symfony/polyfill-php80",
+            "version": "v1.31.0",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/polyfill-php80.git",
+                "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+                "reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.2"
+            },
+            "type": "library",
+            "extra": {
+                "thanks": {
+                    "name": "symfony/polyfill",
+                    "url": "https://github.com/symfony/polyfill"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "bootstrap.php"
+                ],
+                "psr-4": {
+                    "Symfony\\Polyfill\\Php80\\": ""
+                },
+                "classmap": [
+                    "Resources/stubs"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Ion Bazan",
+                    "email": "ion.bazan@gmail.com"
+                },
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "compatibility",
+                "polyfill",
+                "portable",
+                "shim"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-09-09T11:45:10+00:00"
+        },
+        {
+            "name": "symfony/psr-http-message-bridge",
+            "version": "v2.3.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/psr-http-message-bridge.git",
+                "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/psr-http-message-bridge/zipball/581ca6067eb62640de5ff08ee1ba6850a0ee472e",
+                "reference": "581ca6067eb62640de5ff08ee1ba6850a0ee472e",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "psr/http-message": "^1.0 || ^2.0",
+                "symfony/deprecation-contracts": "^2.5 || ^3.0",
+                "symfony/http-foundation": "^5.4 || ^6.0"
+            },
+            "require-dev": {
+                "nyholm/psr7": "^1.1",
+                "psr/log": "^1.1 || ^2 || ^3",
+                "symfony/browser-kit": "^5.4 || ^6.0",
+                "symfony/config": "^5.4 || ^6.0",
+                "symfony/event-dispatcher": "^5.4 || ^6.0",
+                "symfony/framework-bundle": "^5.4 || ^6.0",
+                "symfony/http-kernel": "^5.4 || ^6.0",
+                "symfony/phpunit-bridge": "^6.2"
+            },
+            "suggest": {
+                "nyholm/psr7": "For a super lightweight PSR-7/17 implementation"
+            },
+            "type": "symfony-bridge",
+            "extra": {
+                "branch-alias": {
+                    "dev-main": "2.3-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Bridge\\PsrHttpMessage\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "http://symfony.com/contributors"
+                }
+            ],
+            "description": "PSR HTTP message bridge",
+            "homepage": "http://symfony.com",
+            "keywords": [
+                "http",
+                "http-message",
+                "psr-17",
+                "psr-7"
+            ],
+            "support": {
+                "issues": "https://github.com/symfony/psr-http-message-bridge/issues",
+                "source": "https://github.com/symfony/psr-http-message-bridge/tree/v2.3.1"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2023-07-26T11:53:26+00:00"
+        },
+        {
+            "name": "symfony/service-contracts",
+            "version": "v1.1.2",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/service-contracts.git",
+                "reference": "191afdcb5804db960d26d8566b7e9a2843cab3a0"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/service-contracts/zipball/191afdcb5804db960d26d8566b7e9a2843cab3a0",
+                "reference": "191afdcb5804db960d26d8566b7e9a2843cab3a0",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": "^7.1.3"
+            },
+            "suggest": {
+                "psr/container": "",
+                "symfony/service-implementation": ""
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "1.1-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Contracts\\Service\\": ""
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Generic abstractions related to writing services",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "abstractions",
+                "contracts",
+                "decoupling",
+                "interfaces",
+                "interoperability",
+                "standards"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/service-contracts/tree/v1.1.2"
+            },
+            "time": "2019-05-28T07:50:59+00:00"
+        },
+        {
+            "name": "symfony/var-exporter",
+            "version": "v5.4.45",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/var-exporter.git",
+                "reference": "862700068db0ddfd8c5b850671e029a90246ec75"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/var-exporter/zipball/862700068db0ddfd8c5b850671e029a90246ec75",
+                "reference": "862700068db0ddfd8c5b850671e029a90246ec75",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=7.2.5",
+                "symfony/polyfill-php80": "^1.16"
+            },
+            "require-dev": {
+                "symfony/var-dumper": "^4.4.9|^5.0.9|^6.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\VarExporter\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Nicolas Grekas",
+                    "email": "p@tchwork.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Allows exporting any serializable PHP data structure to plain PHP code",
+            "homepage": "https://symfony.com",
+            "keywords": [
+                "clone",
+                "construct",
+                "export",
+                "hydrate",
+                "instantiate",
+                "serialize"
+            ],
+            "support": {
+                "source": "https://github.com/symfony/var-exporter/tree/v5.4.45"
+            },
+            "funding": [
+                {
+                    "url": "https://symfony.com/sponsor",
+                    "type": "custom"
+                },
+                {
+                    "url": "https://github.com/fabpot",
+                    "type": "github"
+                },
+                {
+                    "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
+                    "type": "tidelift"
+                }
+            ],
+            "time": "2024-09-25T14:11:13+00:00"
+        },
+        {
+            "name": "symfony/yaml",
+            "version": "v2.8.52",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/symfony/yaml.git",
+                "reference": "02c1859112aa779d9ab394ae4f3381911d84052b"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/symfony/yaml/zipball/02c1859112aa779d9ab394ae4f3381911d84052b",
+                "reference": "02c1859112aa779d9ab394ae4f3381911d84052b",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=5.3.9",
+                "symfony/polyfill-ctype": "~1.8"
+            },
+            "type": "library",
+            "extra": {
+                "branch-alias": {
+                    "dev-master": "2.8-dev"
+                }
+            },
+            "autoload": {
+                "psr-4": {
+                    "Symfony\\Component\\Yaml\\": ""
+                },
+                "exclude-from-classmap": [
+                    "/Tests/"
+                ]
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Fabien Potencier",
+                    "email": "fabien@symfony.com"
+                },
+                {
+                    "name": "Symfony Community",
+                    "homepage": "https://symfony.com/contributors"
+                }
+            ],
+            "description": "Symfony Yaml Component",
+            "homepage": "https://symfony.com",
+            "support": {
+                "source": "https://github.com/symfony/yaml/tree/v2.8.52"
+            },
+            "time": "2018-11-11T11:18:13+00:00"
+        },
+        {
+            "name": "topthink/framework",
+            "version": "dev-master",
+            "source": {
+                "type": "git",
+                "url": "https://gitee.com/fastadminnet/framework.git",
+                "reference": "c859e712f50362d8ee3a7cd2e495af5494847bef"
+            },
+            "require": {
+                "php": ">=7.1.0",
+                "topthink/think-installer": "~1.0"
+            },
+            "require-dev": {
+                "johnkary/phpunit-speedtrap": "^1.0",
+                "mikey179/vfsstream": "~1.6",
+                "phpdocumentor/reflection-docblock": "^2.0",
+                "phploc/phploc": "2.*",
+                "phpunit/phpunit": "4.8.*",
+                "sebastian/phpcpd": "2.*"
+            },
+            "default-branch": true,
+            "type": "think-framework",
+            "autoload": {
+                "psr-4": {
+                    "think\\": "library/think"
+                }
+            },
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "liu21st",
+                    "email": "liu21st@gmail.com"
+                }
+            ],
+            "description": "the new thinkphp framework",
+            "homepage": "http://thinkphp.cn/",
+            "keywords": [
+                "ORM",
+                "framework",
+                "thinkphp"
+            ],
+            "time": "2024-06-25T09:03:56+00:00"
+        },
+        {
+            "name": "topthink/think-captcha",
+            "version": "v1.0.9",
+            "source": {
+                "type": "git",
+                "url": "https://gitee.com/fastadminnet/think-captcha.git",
+                "reference": "9be9dd7e61c7fa3c478c4b92910d7230b94d0d23"
+            },
+            "require": {
+                "topthink/framework": "~5.0.0 || dev-master",
+                "topthink/think-installer": ">=1.0.10"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "think\\captcha\\": "src/"
+                },
+                "files": [
+                    "src/helper.php"
+                ]
+            },
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "yunwuxin",
+                    "email": "448901948@qq.com"
+                }
+            ],
+            "description": "captcha package for thinkphp5",
+            "time": "2023-07-16T09:41:14+00:00"
+        },
+        {
+            "name": "topthink/think-helper",
+            "version": "v1.0.7",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/top-think/think-helper.git",
+                "reference": "5f92178606c8ce131d36b37a57c58eb71e55f019"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/top-think/think-helper/zipball/5f92178606c8ce131d36b37a57c58eb71e55f019",
+                "reference": "5f92178606c8ce131d36b37a57c58eb71e55f019",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "type": "library",
+            "autoload": {
+                "files": [
+                    "src/helper.php"
+                ],
+                "psr-4": {
+                    "think\\helper\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "yunwuxin",
+                    "email": "448901948@qq.com"
+                }
+            ],
+            "description": "The ThinkPHP5 Helper Package",
+            "support": {
+                "issues": "https://github.com/top-think/think-helper/issues",
+                "source": "https://github.com/top-think/think-helper/tree/master"
+            },
+            "time": "2018-10-05T00:43:21+00:00"
+        },
+        {
+            "name": "topthink/think-installer",
+            "version": "v1.0.14",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/top-think/think-installer.git",
+                "reference": "eae1740ac264a55c06134b6685dfb9f837d004d1"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/top-think/think-installer/zipball/eae1740ac264a55c06134b6685dfb9f837d004d1",
+                "reference": "eae1740ac264a55c06134b6685dfb9f837d004d1",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "composer-plugin-api": "^1.0||^2.0"
+            },
+            "require-dev": {
+                "composer/composer": "^1.0||^2.0"
+            },
+            "type": "composer-plugin",
+            "extra": {
+                "class": "think\\composer\\Plugin"
+            },
+            "autoload": {
+                "psr-4": {
+                    "think\\composer\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "yunwuxin",
+                    "email": "448901948@qq.com"
+                }
+            ],
+            "support": {
+                "issues": "https://github.com/top-think/think-installer/issues",
+                "source": "https://github.com/top-think/think-installer/tree/v1.0.14"
+            },
+            "time": "2021-03-25T08:34:02+00:00"
+        },
+        {
+            "name": "topthink/think-queue",
+            "version": "v1.1.6",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/top-think/think-queue.git",
+                "reference": "250650eb0e8ea5af4cfdc7ae46f3f4e0a24ac245"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/top-think/think-queue/zipball/250650eb0e8ea5af4cfdc7ae46f3f4e0a24ac245",
+                "reference": "250650eb0e8ea5af4cfdc7ae46f3f4e0a24ac245",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "topthink/think-helper": ">=1.0.4",
+                "topthink/think-installer": ">=1.0.10"
+            },
+            "require-dev": {
+                "topthink/framework": "~5.0.0"
+            },
+            "type": "think-extend",
+            "extra": {
+                "think-config": {
+                    "queue": "src/config.php"
+                }
+            },
+            "autoload": {
+                "files": [
+                    "src/common.php"
+                ],
+                "psr-4": {
+                    "think\\": "src"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "Apache-2.0"
+            ],
+            "authors": [
+                {
+                    "name": "yunwuxin",
+                    "email": "448901948@qq.com"
+                }
+            ],
+            "description": "The ThinkPHP5 Queue Package",
+            "support": {
+                "issues": "https://github.com/top-think/think-queue/issues",
+                "source": "https://github.com/top-think/think-queue/tree/master"
+            },
+            "time": "2018-10-15T10:16:55+00:00"
+        },
+        {
+            "name": "txthinking/mailer",
+            "version": "v2.0.1",
+            "source": {
+                "type": "git",
+                "url": "https://github.com/txthinking/Mailer.git",
+                "reference": "09013cf9dad3aac195f66ae5309e8c3343c018e9"
+            },
+            "dist": {
+                "type": "zip",
+                "url": "https://api.github.com/repos/txthinking/Mailer/zipball/09013cf9dad3aac195f66ae5309e8c3343c018e9",
+                "reference": "09013cf9dad3aac195f66ae5309e8c3343c018e9",
+                "shasum": "",
+                "mirrors": [
+                    {
+                        "url": "https://mirrors.aliyun.com/composer/dists/%package%/%reference%.%type%",
+                        "preferred": true
+                    }
+                ]
+            },
+            "require": {
+                "php": ">=5.3.2",
+                "psr/log": "~1.0"
+            },
+            "require-dev": {
+                "monolog/monolog": "~1.13",
+                "phpunit/phpunit": "~4.0"
+            },
+            "type": "library",
+            "autoload": {
+                "psr-4": {
+                    "Tx\\": "src/"
+                }
+            },
+            "notification-url": "https://packagist.org/downloads/",
+            "license": [
+                "MIT"
+            ],
+            "authors": [
+                {
+                    "name": "Cloud",
+                    "email": "cloud@txthinking.com",
+                    "homepage": "http://www.txthinking.com",
+                    "role": "Thinker"
+                },
+                {
+                    "name": "Matt Sowers",
+                    "email": "msowers@erblearn.org"
+                }
+            ],
+            "description": "A very lightweight PHP SMTP mail sender",
+            "homepage": "http://github.com/txthinking/Mailer",
+            "keywords": [
+                "mail",
+                "smtp"
+            ],
+            "support": {
+                "issues": "https://github.com/txthinking/Mailer/issues",
+                "source": "https://github.com/txthinking/Mailer/tree/master"
+            },
+            "time": "2018-10-09T10:47:23+00:00"
+        }
+    ],
+    "packages-dev": [],
+    "aliases": [],
+    "minimum-stability": "stable",
+    "stability-flags": {
+        "topthink/framework": 20
+    },
+    "prefer-stable": false,
+    "prefer-lowest": false,
+    "platform": {
+        "php": ">=7.2.0",
+        "ext-json": "*",
+        "ext-curl": "*",
+        "ext-pdo": "*",
+        "ext-bcmath": "*"
+    },
+    "platform-dev": [],
+    "plugin-api-version": "2.1.0"
+}

+ 21 - 0
vendor/adbario/php-dot-notation/LICENSE.md

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

+ 29 - 0
vendor/adbario/php-dot-notation/composer.json

@@ -0,0 +1,29 @@
+{
+    "name": "adbario/php-dot-notation",
+    "description": "PHP dot notation access to arrays",
+    "keywords": ["dotnotation", "arrayaccess"],
+    "homepage": "https://github.com/adbario/php-dot-notation",
+    "license": "MIT",
+    "authors": [
+        {
+            "name": "Riku Särkinen",
+            "email": "riku@adbar.io"
+        }
+    ],
+    "require": {
+        "php": "^5.5 || ^7.0 || ^8.0",
+        "ext-json": "*"
+    },
+    "require-dev": {
+        "phpunit/phpunit": "^4.8|^5.7|^6.6|^7.5|^8.5|^9.5",
+        "squizlabs/php_codesniffer": "^3.6"
+    },
+    "autoload": {
+        "files": [
+            "src/helpers.php"
+        ],
+        "psr-4": {
+            "Adbar\\": "src"
+        }
+    }
+}

+ 623 - 0
vendor/adbario/php-dot-notation/src/Dot.php

@@ -0,0 +1,623 @@
+<?php
+/**
+ * Dot - PHP dot notation access to arrays
+ *
+ * @author  Riku Särkinen <riku@adbar.io>
+ * @link    https://github.com/adbario/php-dot-notation
+ * @license https://github.com/adbario/php-dot-notation/blob/2.x/LICENSE.md (MIT License)
+ */
+namespace Adbar;
+
+use Countable;
+use ArrayAccess;
+use ArrayIterator;
+use JsonSerializable;
+use IteratorAggregate;
+
+/**
+ * Dot
+ *
+ * This class provides a dot notation access and helper functions for
+ * working with arrays of data. Inspired by Laravel Collection.
+ */
+class Dot implements ArrayAccess, Countable, IteratorAggregate, JsonSerializable
+{
+    /**
+     * The stored items
+     *
+     * @var array
+     */
+    protected $items = [];
+
+
+    /**
+     * The delimiter (alternative to a '.') to be used.
+     *
+     * @var string
+     */
+    protected $delimiter = '.';
+
+
+    /**
+     * Create a new Dot instance
+     *
+     * @param mixed $items
+     * @param string $delimiter
+     */
+    public function __construct($items = [], $delimiter = '.')
+    {
+        $this->items = $this->getArrayItems($items);
+        $this->delimiter = strlen($delimiter) ? $delimiter : '.';
+    }
+
+    /**
+     * Set a given key / value pair or pairs
+     * if the key doesn't exist already
+     *
+     * @param array|int|string $keys
+     * @param mixed            $value
+     */
+    public function add($keys, $value = null)
+    {
+        if (is_array($keys)) {
+            foreach ($keys as $key => $value) {
+                $this->add($key, $value);
+            }
+        } elseif (is_null($this->get($keys))) {
+            $this->set($keys, $value);
+        }
+    }
+
+    /**
+     * Return all the stored items
+     *
+     * @return array
+     */
+    public function all()
+    {
+        return $this->items;
+    }
+
+    /**
+     * Delete the contents of a given key or keys
+     *
+     * @param array|int|string|null $keys
+     */
+    public function clear($keys = null)
+    {
+        if (is_null($keys)) {
+            $this->items = [];
+
+            return;
+        }
+
+        $keys = (array) $keys;
+
+        foreach ($keys as $key) {
+            $this->set($key, []);
+        }
+    }
+
+    /**
+     * Delete the given key or keys
+     *
+     * @param array|int|string $keys
+     */
+    public function delete($keys)
+    {
+        $keys = (array) $keys;
+
+        foreach ($keys as $key) {
+            if ($this->exists($this->items, $key)) {
+                unset($this->items[$key]);
+
+                continue;
+            }
+
+            $items = &$this->items;
+            $segments = explode($this->delimiter, $key);
+            $lastSegment = array_pop($segments);
+
+            foreach ($segments as $segment) {
+                if (!isset($items[$segment]) || !is_array($items[$segment])) {
+                    continue 2;
+                }
+
+                $items = &$items[$segment];
+            }
+
+            unset($items[$lastSegment]);
+        }
+    }
+
+    /**
+     * Checks if the given key exists in the provided array.
+     *
+     * @param  array      $array Array to validate
+     * @param  int|string $key   The key to look for
+     *
+     * @return bool
+     */
+    protected function exists($array, $key)
+    {
+        return array_key_exists($key, $array);
+    }
+
+    /**
+     * Flatten an array with the given character as a key delimiter
+     *
+     * @param  string     $delimiter
+     * @param  array|null $items
+     * @param  string     $prepend
+     * @return array
+     */
+    public function flatten($delimiter = '.', $items = null, $prepend = '')
+    {
+        $flatten = [];
+
+        if (is_null($items)) {
+            $items = $this->items;
+        }
+
+        if (!func_num_args()) {
+            $delimiter = $this->delimiter;
+        }
+
+        foreach ($items as $key => $value) {
+            if (is_array($value) && !empty($value)) {
+                $flatten = array_merge(
+                    $flatten,
+                    $this->flatten($delimiter, $value, $prepend.$key.$delimiter)
+                );
+            } else {
+                $flatten[$prepend.$key] = $value;
+            }
+        }
+
+        return $flatten;
+    }
+
+    /**
+     * Return the value of a given key
+     *
+     * @param  int|string|null $key
+     * @param  mixed           $default
+     * @return mixed
+     */
+    public function get($key = null, $default = null)
+    {
+        if (is_null($key)) {
+            return $this->items;
+        }
+
+        if ($this->exists($this->items, $key)) {
+            return $this->items[$key];
+        }
+
+        if (strpos($key, $this->delimiter) === false) {
+            return $default;
+        }
+
+        $items = $this->items;
+
+        foreach (explode($this->delimiter, $key) as $segment) {
+            if (!is_array($items) || !$this->exists($items, $segment)) {
+                return $default;
+            }
+
+            $items = &$items[$segment];
+        }
+
+        return $items;
+    }
+
+    /**
+     * Return the given items as an array
+     *
+     * @param  mixed $items
+     * @return array
+     */
+    protected function getArrayItems($items)
+    {
+        if (is_array($items)) {
+            return $items;
+        } elseif ($items instanceof self) {
+            return $items->all();
+        }
+
+        return (array) $items;
+    }
+
+    /**
+     * Check if a given key or keys exists
+     *
+     * @param  array|int|string $keys
+     * @return bool
+     */
+    public function has($keys)
+    {
+        $keys = (array) $keys;
+
+        if (!$this->items || $keys === []) {
+            return false;
+        }
+
+        foreach ($keys as $key) {
+            $items = $this->items;
+
+            if ($this->exists($items, $key)) {
+                continue;
+            }
+
+            foreach (explode($this->delimiter, $key) as $segment) {
+                if (!is_array($items) || !$this->exists($items, $segment)) {
+                    return false;
+                }
+
+                $items = $items[$segment];
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Check if a given key or keys are empty
+     *
+     * @param  array|int|string|null $keys
+     * @return bool
+     */
+    public function isEmpty($keys = null)
+    {
+        if (is_null($keys)) {
+            return empty($this->items);
+        }
+
+        $keys = (array) $keys;
+
+        foreach ($keys as $key) {
+            if (!empty($this->get($key))) {
+                return false;
+            }
+        }
+
+        return true;
+    }
+
+    /**
+     * Merge a given array or a Dot object with the given key
+     * or with the whole Dot object
+     *
+     * @param array|string|self $key
+     * @param array|self        $value
+     */
+    public function merge($key, $value = [])
+    {
+        if (is_array($key)) {
+            $this->items = array_merge($this->items, $key);
+        } elseif (is_string($key)) {
+            $items = (array) $this->get($key);
+            $value = array_merge($items, $this->getArrayItems($value));
+
+            $this->set($key, $value);
+        } elseif ($key instanceof self) {
+            $this->items = array_merge($this->items, $key->all());
+        }
+    }
+
+    /**
+     * Recursively merge a given array or a Dot object with the given key
+     * or with the whole Dot object.
+     *
+     * Duplicate keys are converted to arrays.
+     *
+     * @param array|string|self $key
+     * @param array|self        $value
+     */
+    public function mergeRecursive($key, $value = [])
+    {
+        if (is_array($key)) {
+            $this->items = array_merge_recursive($this->items, $key);
+        } elseif (is_string($key)) {
+            $items = (array) $this->get($key);
+            $value = array_merge_recursive($items, $this->getArrayItems($value));
+
+            $this->set($key, $value);
+        } elseif ($key instanceof self) {
+            $this->items = array_merge_recursive($this->items, $key->all());
+        }
+    }
+
+    /**
+     * Recursively merge a given array or a Dot object with the given key
+     * or with the whole Dot object.
+     *
+     * Instead of converting duplicate keys to arrays, the value from
+     * given array will replace the value in Dot object.
+     *
+     * @param array|string|self $key
+     * @param array|self        $value
+     */
+    public function mergeRecursiveDistinct($key, $value = [])
+    {
+        if (is_array($key)) {
+            $this->items = $this->arrayMergeRecursiveDistinct($this->items, $key);
+        } elseif (is_string($key)) {
+            $items = (array) $this->get($key);
+            $value = $this->arrayMergeRecursiveDistinct($items, $this->getArrayItems($value));
+
+            $this->set($key, $value);
+        } elseif ($key instanceof self) {
+            $this->items = $this->arrayMergeRecursiveDistinct($this->items, $key->all());
+        }
+    }
+
+    /**
+     * Merges two arrays recursively. In contrast to array_merge_recursive,
+     * duplicate keys are not converted to arrays but rather overwrite the
+     * value in the first array with the duplicate value in the second array.
+     *
+     * @param  array $array1 Initial array to merge
+     * @param  array $array2 Array to recursively merge
+     * @return array
+     */
+    protected function arrayMergeRecursiveDistinct(array $array1, array $array2)
+    {
+        $merged = &$array1;
+
+        foreach ($array2 as $key => $value) {
+            if (is_array($value) && isset($merged[$key]) && is_array($merged[$key])) {
+                $merged[$key] = $this->arrayMergeRecursiveDistinct($merged[$key], $value);
+            } else {
+                $merged[$key] = $value;
+            }
+        }
+
+        return $merged;
+    }
+
+    /**
+     * Return the value of a given key and
+     * delete the key
+     *
+     * @param  int|string|null $key
+     * @param  mixed           $default
+     * @return mixed
+     */
+    public function pull($key = null, $default = null)
+    {
+        if (is_null($key)) {
+            $value = $this->all();
+            $this->clear();
+
+            return $value;
+        }
+
+        $value = $this->get($key, $default);
+        $this->delete($key);
+
+        return $value;
+    }
+
+    /**
+     * Push a given value to the end of the array
+     * in a given key
+     *
+     * @param mixed $key
+     * @param mixed $value
+     */
+    public function push($key, $value = null)
+    {
+        if (is_null($value)) {
+            $this->items[] = $key;
+
+            return;
+        }
+
+        $items = $this->get($key);
+
+        if (is_array($items) || is_null($items)) {
+            $items[] = $value;
+            $this->set($key, $items);
+        }
+    }
+
+    /**
+     * Replace all values or values within the given key
+     * with an array or Dot object
+     *
+     * @param array|string|self $key
+     * @param array|self        $value
+     */
+    public function replace($key, $value = [])
+    {
+        if (is_array($key)) {
+            $this->items = array_replace($this->items, $key);
+        } elseif (is_string($key)) {
+            $items = (array) $this->get($key);
+            $value = array_replace($items, $this->getArrayItems($value));
+
+            $this->set($key, $value);
+        } elseif ($key instanceof self) {
+            $this->items = array_replace($this->items, $key->all());
+        }
+    }
+
+    /**
+     * Set a given key / value pair or pairs
+     *
+     * @param array|int|string $keys
+     * @param mixed            $value
+     */
+    public function set($keys, $value = null)
+    {
+        if (is_array($keys)) {
+            foreach ($keys as $key => $value) {
+                $this->set($key, $value);
+            }
+
+            return;
+        }
+
+        $items = &$this->items;
+
+        foreach (explode($this->delimiter, $keys) as $key) {
+            if (!isset($items[$key]) || !is_array($items[$key])) {
+                $items[$key] = [];
+            }
+
+            $items = &$items[$key];
+        }
+
+        $items = $value;
+    }
+
+    /**
+     * Replace all items with a given array
+     *
+     * @param mixed $items
+     */
+    public function setArray($items)
+    {
+        $this->items = $this->getArrayItems($items);
+    }
+
+    /**
+     * Replace all items with a given array as a reference
+     *
+     * @param array $items
+     */
+    public function setReference(array &$items)
+    {
+        $this->items = &$items;
+    }
+
+    /**
+     * Return the value of a given key or all the values as JSON
+     *
+     * @param  mixed  $key
+     * @param  int    $options
+     * @return string
+     */
+    public function toJson($key = null, $options = 0)
+    {
+        if (is_string($key)) {
+            return json_encode($this->get($key), $options);
+        }
+
+        $options = $key === null ? 0 : $key;
+
+        return json_encode($this->items, $options);
+    }
+
+    /*
+     * --------------------------------------------------------------
+     * ArrayAccess interface
+     * --------------------------------------------------------------
+     */
+
+    /**
+     * Check if a given key exists
+     *
+     * @param  int|string $key
+     * @return bool
+     */
+    #[\ReturnTypeWillChange]
+    public function offsetExists($key)
+    {
+        return $this->has($key);
+    }
+
+    /**
+     * Return the value of a given key
+     *
+     * @param  int|string $key
+     * @return mixed
+     */
+    #[\ReturnTypeWillChange]
+    public function offsetGet($key)
+    {
+        return $this->get($key);
+    }
+
+    /**
+     * Set a given value to the given key
+     *
+     * @param int|string|null $key
+     * @param mixed           $value
+     */
+    #[\ReturnTypeWillChange]
+    public function offsetSet($key, $value)
+    {
+        if (is_null($key)) {
+            $this->items[] = $value;
+
+            return;
+        }
+
+        $this->set($key, $value);
+    }
+
+    /**
+     * Delete the given key
+     *
+     * @param int|string $key
+     */
+    #[\ReturnTypeWillChange]
+    public function offsetUnset($key)
+    {
+        $this->delete($key);
+    }
+
+    /*
+     * --------------------------------------------------------------
+     * Countable interface
+     * --------------------------------------------------------------
+     */
+
+    /**
+     * Return the number of items in a given key
+     *
+     * @param  int|string|null $key
+     * @return int
+     */
+    #[\ReturnTypeWillChange]
+    public function count($key = null)
+    {
+        return count($this->get($key));
+    }
+
+    /*
+     * --------------------------------------------------------------
+     * IteratorAggregate interface
+     * --------------------------------------------------------------
+     */
+
+     /**
+     * Get an iterator for the stored items
+     *
+     * @return \ArrayIterator
+     */
+    #[\ReturnTypeWillChange]
+    public function getIterator()
+    {
+        return new ArrayIterator($this->items);
+    }
+
+    /*
+     * --------------------------------------------------------------
+     * JsonSerializable interface
+     * --------------------------------------------------------------
+     */
+
+    /**
+     * Return items for JSON serialization
+     *
+     * @return array
+     */
+    #[\ReturnTypeWillChange]
+    public function jsonSerialize()
+    {
+        return $this->items;
+    }
+}

+ 24 - 0
vendor/adbario/php-dot-notation/src/helpers.php

@@ -0,0 +1,24 @@
+<?php
+/**
+ * Dot - PHP dot notation access to arrays
+ *
+ * @author  Riku Särkinen <riku@adbar.io>
+ * @link    https://github.com/adbario/php-dot-notation
+ * @license https://github.com/adbario/php-dot-notation/blob/2.x/LICENSE.md (MIT License)
+ */
+
+use Adbar\Dot;
+
+if (! function_exists('dot')) {
+    /**
+     * Create a new Dot object with the given items and optional delimiter
+     *
+     * @param  mixed  $items
+     * @param  string $delimiter
+     * @return \Adbar\Dot
+     */
+    function dot($items, $delimiter = '.')
+    {
+        return new Dot($items, $delimiter);
+    }
+}

+ 311 - 0
vendor/alibabacloud/client/CHANGELOG.md

@@ -0,0 +1,311 @@
+# CHANGELOG
+
+## 1.5.32 - 2022-12-08
+
+- Support PHP versions: From 5.5 up to 8.1
+
+## 1.5.31 - 2021-05-13
+
+- Deprecate `\GuzzleHttp\Psr7\parse_query` method
+
+## 1.5.30 - 2021-03-22
+- Fixed incompatibility in PHP 5.6 version.
+
+## 1.5.29 - 2020-08-03
+- Fixed RPC Signature.
+
+## 1.5.28 - 2020-08-03
+- Updated `endpoints`.
+
+## 1.5.27 - 2020-07-17
+- Fixed composer error config.
+
+## 1.5.26 - 2020-07-17
+- Validate RegionID/EndpointSuffix/Network.
+
+## 1.5.25 - 2020-07-04
+- Fixed ROA signature.
+- Deprecated `LogFormatter`.
+
+## 1.5.24 - 2020-06-04
+- Fixed Resolve Host.
+
+## 1.5.23 - 2020-05-22
+- Optimized global product support.
+
+## 1.5.22 - 2020-05-12
+- Updated Endpoints.
+
+## 1.5.21 - 2020-02-26
+- Improved Nonce.
+- Updated Endpoints.
+
+## 1.5.20 - 2019-12-30
+- Improved Docs.
+- Updated Endpoints.
+
+## 1.5.19 - 2019-12-17
+- Updated Endpoints.
+
+## 1.5.18 - 2019-10-11
+- Updated Request link.
+- Updated Endpoints data.
+
+## 1.5.17 - 2019-09-15
+- Improved Host Finder.
+- Updated Endpoints Data.
+
+## 1.5.16 - 2019-08-21
+- Updated Endpoints Data.
+
+## 1.5.15 - 2019-08-14
+- Improved Client.
+
+
+## 1.5.14 - 2019-07-25
+- Improved Credential Filter.
+
+
+## 1.5.13 - 2019-07-18
+- Improved API Resolver.
+
+
+## 1.5.12 - 2019-06-20
+- Fixed Signature for ROA.
+
+
+## 1.5.11 - 2019-06-14
+- Added endpoint rules.
+
+
+## 1.5.10 - 2019-06-13
+- Improved `Resovler`.
+- Updated `endpoints`.
+
+
+## 1.5.9 - 2019-06-04
+- Improved `UUID`.
+
+
+## 1.5.8 - 2019-05-30
+- Improved `Arrays`.
+
+
+## 1.5.7 - 2019-05-29
+- Improved `uuid`.
+
+
+## 1.5.6 - 2019-05-29
+- Fixed `uuid` version lock.
+
+
+## 1.5.5 - 2019-05-23
+- Improved `Signature`.
+
+
+## 1.5.4 - 2019-05-22
+- Updated `Endpoints`.
+- Fixed `Content-Type` in header.
+
+
+## 1.5.3 - 2019-05-13
+- Improved `Endpoint` tips.
+- Improved `Endpoints` for `STS`.
+
+
+## 1.5.2 - 2019-05-10
+- Improved `Result` object.
+
+
+## 1.5.1 - 2019-05-09
+- Supported `Resolver` for Third-party dependencies.
+
+
+## 1.5.0 - 2019-05-07
+- Improved `Resolver` for products.
+
+
+## 1.4.0 - 2019-05-06
+- Support `Retry` and `Asynchronous` for Request.
+
+
+## 1.3.1 - 2019-04-30
+- Allow timeouts to be set in microseconds.
+
+
+## 1.3.0 - 2019-04-18
+- Improved parameters methods.
+- Optimized the logic for body encode.
+
+
+## 1.2.1 - 2019-04-11
+- Improve exception code and message for `Region ID`.
+
+
+## 1.2.0 - 2019-04-11
+- Improve exception message for `Region ID`.
+
+
+## 1.1.1 - 2019-04-02
+- Added endpoints for `batchcomputenew`, `privatelink`.
+- Improve Region ID tips.
+
+
+## 1.1.0 - 2019-04-01
+- Updated `composer.json`.
+
+
+## 1.0.27 - 2019-03-31
+- Support `Policy` for `ramRoleArnClient`.
+
+
+## 1.0.26 - 2019-03-27
+- Support `pid`, `cost`, `start_time` for Log.
+
+
+## 1.0.25 - 2019-03-27
+- Updated default log format.
+- Add endpoints for `dbs`.
+
+
+## 1.0.24 - 2019-03-26
+- Support Log.
+
+
+## 1.0.23 - 2019-03-23
+- Remove SVG.
+
+
+## 1.0.22 - 2019-03-20
+- Add endpoint `cn-hangzhou` for `idaas` .
+
+
+## 1.0.21 - 2019-03-19
+- Installing by Using the ZIP file.
+- Update Docs.
+
+
+## 1.0.20 - 2019-03-13
+- Improve Tests.
+- Update Docs.
+
+
+## 1.0.19 - 2019-03-12
+- Add SSL Verify Option `verify()`.
+
+
+## 1.0.18 - 2019-03-11
+- Add endpoints for `acr`.
+- Add endpoints for `faas`.
+- Add endpoints for `ehs`.
+- SSL certificates are not validated by default.
+
+
+## 1.0.17 - 2019-03-08
+- Support Mock for Test.
+
+
+## 1.0.16 - 2019-03-07
+- Support Credential Provider Chain.
+- Support `CCC`.
+- Add `ap-south-1` for `cas`.
+- Add `ap-southeast-1` for `waf`.
+- Update Docs.
+
+
+## 1.0.15 - 2019-02-27
+- Add endpoints for `Chatbot`.
+- Change endpoints for `drdspost` and `drdspre`.
+
+
+## 1.0.14 - 2019-02-21
+- Enable debug mode by set environment variable `DEBUG=sdk`.
+
+
+## 1.0.13 - 2019-02-18
+- Support Release Script `composer release`.
+- Add endpoints for apigateway in `drdspre` in `cn-qingdao`.
+- Add endpoints for apigateway in `drdspre` in `cn-beijing`.
+- Add endpoints for apigateway in `drdspre` in `cn-hangzhou`.
+- Add endpoints for apigateway in `drdspre` in `cn-shanghai`.
+- Add endpoints for apigateway in `drdspre` in `cn-shenzhen`.
+- Add endpoints for apigateway in `drdspre` in `cn-hongkong`.
+- Add endpoints for apigateway in `drdspost` in `ap-southeast-1`.
+- Add endpoints for apigateway in `drdspost` in `cn-shanghai`.
+- Add endpoints for apigateway in `drdspost` in `cn-hongkong`.
+- Add endpoints for apigateway in `vod` in `ap-southeast-1`.
+- Add endpoints for apigateway in `vod` in `eu-central-1`.
+
+
+## 1.0.12 - 2019-02-16
+- Support `open_basedir`.
+
+
+## 1.0.11 - 2019-02-13
+- Improve User Agent.
+
+
+## 1.0.10 - 2019-02-12
+- `userAgentAppend` is renamed to `appendUserAgent`.
+
+
+## 1.0.9 - 2019-02-12
+- `userAgent` is renamed to `userAgentAppend`.
+
+
+## 1.0.8 - 2019-02-11
+- `userAgent` - Support DIY User Agent.
+- Add endpoints for apigateway in Zhangjiakou.
+- Add endpoints for apigateway in Hu He Hao Te.
+- Add endpoints for vod in Hu He Hao Te.
+- Add endpoints for hsm in Zhangjiakou.
+- Add endpoints for luban in Germany.
+- Add endpoints for linkwan in Hangzhou.
+- Add endpoints for drdspost in Singapore.
+
+
+## 1.0.7 - 2019-01-28
+- Add endpoints for gpdb in Tokyo.
+- Add endpoints for elasticsearch in Beijing.
+
+
+## 1.0.6 - 2019-01-23
+- Add endpoints for dysmsapi in Singapore.
+- Add endpoints for dybaseapi.
+- Add endpoints for dyiotapi.
+- Add endpoints for dycdpapi.
+- Add endpoints for dyplsapi.
+- Add endpoints for dypnsapi.
+- Add endpoints for dyvmsapi.
+- Add endpoints for snsuapi.
+
+
+## 1.0.5 - 2019-01-21
+- Add endpoints for ApiGateway in Silicon Valley, Virginia.
+- Add endpoints for Image Search in Shanghai.
+
+
+## 1.0.4 - 2019-01-17
+- Support fixer all.
+- Add Endpoints.
+
+
+## 1.0.3 - 2019-01-15
+- Update Endpoints.
+- Update README.md.
+- Update Return Result Message.
+
+
+## 1.0.2 - 2019-01-15
+- Optimize the documentation.
+- Adjust the CI configuration.
+
+
+## 1.0.1 - 2019-01-09
+- Distinguish credential error.
+- Add endpoints for NLS.
+- Add not found product tip.
+
+
+## 1.0.0 - 2019-01-07
+- Initial release of the Alibaba Cloud Client for PHP Version 1.0.0 on Packagist See <https://github.com/aliyun/openapi-sdk-php-client> for more information.

+ 30 - 0
vendor/alibabacloud/client/CONTRIBUTING.md

@@ -0,0 +1,30 @@
+# Contributing to the Alibaba Cloud Client for PHP
+
+We work hard to provide a high-quality and useful SDK for Alibaba Cloud, and
+we greatly value feedback and contributions from our community. Please submit
+your [issues][issues] or [pull requests][pull-requests] through GitHub.
+
+## Tips
+
+- The SDK is released under the [Apache license][license]. Any code you submit
+   will be released under that license. For substantial contributions, we may
+   ask you to sign a [Alibaba Documentation Corporate Contributor License 
+   Agreement (CLA)][cla].
+- We follow all of the relevant PSR recommendations from the [PHP Framework
+   Interop Group][php-fig]. Please submit code that follows these standards.
+   The [PHP CS Fixer][cs-fixer] tool can be helpful for formatting your code.
+   Your can use `composer fixer` to fix code.
+- We maintain a high percentage of code coverage in our unit tests. If you make
+   changes to the code, please add, update, and/or remove tests as appropriate.
+- If your code does not conform to the PSR standards, does not include adequate
+   tests, or does not contain a changelog document, we may ask you to update
+   your pull requests before we accept them. We also reserve the right to deny
+   any pull requests that do not align with our standards or goals.
+
+[issues]: https://github.com/aliyun/openapi-sdk-php-client/issues
+[pull-requests]: https://github.com/aliyun/openapi-sdk-php-client/pulls
+[license]: http://www.apache.org/licenses/LICENSE-2.0
+[cla]: https://alibaba-cla-2018.oss-cn-beijing.aliyuncs.com/Alibaba_Documentation_Open_Source_Corporate_CLA.pdf
+[php-fig]: http://php-fig.org
+[cs-fixer]: http://cs.sensiolabs.org/
+[docs-readme]: https://github.com/aliyun/openapi-sdk-php-client/blob/master/README.md

+ 13 - 0
vendor/alibabacloud/client/LICENSE.md

@@ -0,0 +1,13 @@
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.
+
+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.

+ 88 - 0
vendor/alibabacloud/client/NOTICE.md

@@ -0,0 +1,88 @@
+# Alibaba Cloud Client for PHP
+
+<https://www.alibabacloud.com/>
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.
+
+Licensed under the Apache License, Version 2.0 (the "License").
+You may not use this file except in compliance with the License.
+A copy of the License is located at
+
+<http://www.apache.org/licenses/LICENSE-2.0>
+
+or in the "license" file accompanying this file. This file 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.
+
+# Guzzle
+
+<https://github.com/guzzle/guzzle>
+
+Copyright (c) 2011-2018 Michael Dowling, https://github.com/mtdowling <mtdowling@gmail.com>
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+# jmespath.php
+
+<https://github.com/mtdowling/jmespath.php>
+
+Copyright (c) 2014 Michael Dowling, https://github.com/mtdowling
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+# Dot
+
+<https://github.com/adbario/php-dot-notation>
+
+Copyright (c) 2016-2019 Riku Särkinen
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.

+ 168 - 0
vendor/alibabacloud/client/README-zh-CN.md

@@ -0,0 +1,168 @@
+[English](/README.md) | 简体中文
+
+
+# Alibaba Cloud Client for PHP
+[![Latest Stable Version](https://poser.pugx.org/alibabacloud/client/v/stable)](https://packagist.org/packages/alibabacloud/client)
+[![composer.lock](https://poser.pugx.org/alibabacloud/client/composerlock)](https://packagist.org/packages/alibabacloud/client)
+[![Total Downloads](https://poser.pugx.org/alibabacloud/client/downloads)](https://packagist.org/packages/alibabacloud/client)
+[![License](https://poser.pugx.org/alibabacloud/client/license)](https://packagist.org/packages/alibabacloud/client)
+[![codecov](https://codecov.io/gh/aliyun/openapi-sdk-php-client/branch/master/graph/badge.svg?token=90Yd5Bne3S)](https://codecov.io/gh/aliyun/openapi-sdk-php-client)
+[![PHP Version Require](http://poser.pugx.org/alibabacloud/client/require/php)](https://packagist.org/packages/alibabacloud/client)
+
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+
+Alibaba Cloud Client for PHP 是帮助 PHP 开发者管理凭据、发送请求的客户端工具,[Alibaba Cloud SDK for PHP][SDK] 由本工具提供底层支持。
+
+
+## 使用诊断
+[Troubleshoot](https://troubleshoot.api.aliyun.com/?source=github_sdk) 提供 OpenAPI 使用诊断服务,通过 `RequestID` 或 `报错信息` ,帮助开发者快速定位,为开发者提供解决方案。
+
+## 在线示例
+[阿里云 OpenAPI 开发者门户]https://next.api.aliyun.com/) 提供在线调用阿里云产品,并动态生成 SDK 代码和快速检索接口等能力,能显著降低使用云 API 的难度。
+
+
+## 先决条件
+您的系统需要满足[先决条件](/docs/zh-CN/0-Prerequisites.md),包括 PHP> = 5.5。 我们强烈建议使用cURL扩展,并使用TLS后端编译cURL 7.16.2+。
+
+
+## 安装依赖
+如果已在系统上[全局安装 Composer](https://getcomposer.org/doc/00-intro.md#globally),请直接在项目目录中运行以下内容来安装 Alibaba Cloud Client for PHP 作为依赖项:
+```
+composer require alibabacloud/client
+```
+> 一些用户可能由于网络问题无法安装,可以使用[阿里云 Composer 全量镜像](https://developer.aliyun.com/composer)。
+
+请看[安装](/docs/zh-CN/1-Installation.md)有关通过 Composer 和其他方式安装的详细信息。
+
+
+## 快速使用
+在您开始之前,您需要注册阿里云帐户并获取您的[凭证](https://usercenter.console.aliyun.com/#/manage/ak)。
+
+```php
+<?php
+
+use AlibabaCloud\Client\AlibabaCloud;
+
+AlibabaCloud::accessKeyClient('accessKeyId', 'accessKeySecret')->asDefaultClient();
+```
+
+
+## 请求
+> 请求风格分为 `ROA` 和 `RPC`,不同产品风格不同,使用前,请参考产品文档。推荐使用 [Alibaba Cloud SDK for PHP][SDK] ,细节已被封装,无需关心风格。
+
+
+### ROA 请求
+```php
+<?php
+
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Exception\ServerException;
+
+try {
+    $result = AlibabaCloud::roa()
+                          ->regionId('cn-hangzhou') // 指定请求的区域,不指定则使用客户端区域、默认区域
+                          ->product('CS') // 指定产品
+                          ->version('2015-12-15') // 指定产品版本
+                          ->action('DescribeClusterServices') // 指定产品接口
+                          ->serviceCode('cs') // 设置 ServiceCode 以备寻址,非必须
+                          ->endpointType('openAPI') // 设置类型,非必须
+                          ->method('GET') // 指定请求方式
+                          ->host('cs.aliyun.com') // 指定域名则不会寻址,如认证方式为 Bearer Token 的服务则需要指定
+                          ->pathPattern('/clusters/[ClusterId]/services') // 指定ROA风格路径规则
+                          ->withClusterId('123456') // 为路径中参数赋值,方法名:with + 参数
+                          ->request(); // 发起请求并返回结果对象,请求需要放在设置的最后面
+
+    print_r($result->toArray());
+    
+} catch (ClientException $exception) {
+    print_r($exception->getErrorMessage());
+} catch (ServerException $exception) {
+    print_r($exception->getErrorMessage());
+}
+```
+
+### RPC 请求
+```php
+<?php
+
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Exception\ServerException;
+
+try {
+    $result = AlibabaCloud::rpc()
+                          ->product('Cdn')
+                          ->version('2014-11-11')
+                          ->action('DescribeCdnService')
+                          ->method('POST')
+                          ->request();
+
+    print_r($result->toArray());
+
+} catch (ClientException $exception) {
+    print_r($exception->getErrorMessage());
+} catch (ServerException $exception) {
+    print_r($exception->getErrorMessage());
+}
+```
+
+
+## 文档
+* [先决条件](/docs/zh-CN/0-Prerequisites.md)
+* [安装](/docs/zh-CN/1-Installation.md)
+* [客户端和凭证](/docs/zh-CN/2-Client.md)
+* [请求](/docs/zh-CN/3-Request.md)
+* [结果](/docs/zh-CN/4-Result.md)
+* [区域](/docs/zh-CN/5-Region.md)
+* [域名](/docs/zh-CN/6-Host.md)
+* [SSL 验证](/docs/zh-CN/7-Verify.md)
+* [调试](/docs/zh-CN/8-Debug.md)
+* [日志](/docs/zh-CN/9-Log.md)
+* [测试](/docs/zh-CN/10-Test.md)
+
+
+## 问题
+[提交 Issue](https://github.com/aliyun/openapi-sdk-php-client/issues/new/choose),不符合指南的问题可能会立即关闭。
+
+
+## 发行说明
+每个版本的详细更改记录在[发行说明](/CHANGELOG.md)中。
+
+
+## 贡献
+提交 Pull Request 之前请阅读[贡献指南](/CONTRIBUTING.md)。
+
+
+## 相关
+* [阿里云服务 Regions & Endpoints][endpoints]
+* [阿里云 OpenAPI 开发者门户][open-api]
+* [Packagist][packagist]
+* [Composer][composer]
+* [Guzzle中文文档][guzzle-docs]
+* [最新源码][latest-release]
+
+
+## 许可证
+[Apache-2.0](/LICENSE.md)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.
+
+
+[SDK]: https://github.com/aliyun/openapi-sdk-php
+[open-api]: https://next.api.aliyun.com/
+[latest-release]: https://github.com/aliyun/openapi-sdk-php-client
+[guzzle-docs]: https://guzzle-cn.readthedocs.io/zh_CN/latest/request-options.html
+[composer]: https://getcomposer.org
+[packagist]: https://packagist.org/packages/alibabacloud/sdk
+[home]: https://home.console.aliyun.com
+[aliyun]: https://www.aliyun.com
+[regions]: https://help.aliyun.com/document_detail/40654.html
+[endpoints]: https://developer.aliyun.com/endpoints
+[cURL]: http://php.net/manual/zh/book.curl.php
+[OPCache]: http://php.net/manual/zh/book.opcache.php
+[xdebug]: http://xdebug.org
+[OpenSSL]: http://php.net/manual/zh/book.openssl.php
+[client]: https://github.com/aliyun/openapi-sdk-php-client

+ 167 - 0
vendor/alibabacloud/client/README.md

@@ -0,0 +1,167 @@
+English | [简体中文](/README-zh-CN.md)
+
+
+# Alibaba Cloud Client for PHP
+[![Latest Stable Version](https://poser.pugx.org/alibabacloud/client/v/stable)](https://packagist.org/packages/alibabacloud/client)
+[![composer.lock](https://poser.pugx.org/alibabacloud/client/composerlock)](https://packagist.org/packages/alibabacloud/client)
+[![Total Downloads](https://poser.pugx.org/alibabacloud/client/downloads)](https://packagist.org/packages/alibabacloud/client)
+[![License](https://poser.pugx.org/alibabacloud/client/license)](https://packagist.org/packages/alibabacloud/client)
+[![codecov](https://codecov.io/gh/aliyun/openapi-sdk-php-client/branch/master/graph/badge.svg?token=90Yd5Bne3S)](https://codecov.io/gh/aliyun/openapi-sdk-php-client)
+[![PHP Version Require](http://poser.pugx.org/alibabacloud/client/require/php)](https://packagist.org/packages/alibabacloud/client)
+
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+
+Alibaba Cloud Client for PHP is a client tool that helps PHP developers manage credentials and send requests, [Alibaba Cloud SDK for PHP][SDK] dependency on this tool.
+
+## Troubleshoot
+[Troubleshoot](https://troubleshoot.api.aliyun.com/?source=github_sdk) Provide OpenAPI diagnosis service to help developers locate quickly and provide solutions for developers through `RequestID` or `error message`.
+
+## Online Demo
+[Alibaba Cloud OpenAPI Developer Portal](https://next.api.aliyun.com/) provides the ability to call the cloud product OpenAPI online, and dynamically generate SDK Example code and quick retrieval interface, which can significantly reduce the difficulty of using the cloud API.
+
+## Prerequisites
+Your system will need to meet the [Prerequisites](/docs/en-US/0-Prerequisites.md), including having PHP >= 5.5. We highly recommend having it compiled with the cURL extension and cURL 7.16.2+.
+
+
+## Installation
+If Composer is already [installed globally on your system](https://getcomposer.org/doc/00-intro.md#globally), run the following in the base directory of your project to install Alibaba Cloud Client for PHP as a dependency:
+```
+composer require alibabacloud/client
+```
+> Some users may not be able to install due to network problems, you can try to switch the Composer mirror.
+
+Please see the [Installation](/docs/en-US/1-Installation.md) for more detailed information about installing the Alibaba Cloud Client for PHP through Composer and other means.
+
+
+## Quick Examples
+Before you begin, you need to sign up for an Alibaba Cloud account and retrieve your [Credentials](https://usercenter.console.aliyun.com/#/manage/ak).
+
+### Create Client
+```php
+<?php
+
+use AlibabaCloud\Client\AlibabaCloud;
+
+AlibabaCloud::accessKeyClient('accessKeyId', 'accessKeySecret')->asDefaultClient();
+```
+
+
+## Request
+> Request styles are divided into `ROA` and `RPC`. Different product styles are different. Please refer to the product documentation before using. It is recommended to use [Alibaba cloud SDK for PHP][SDK], the details have been encapsulated, and you do not need to care about the style.
+
+
+### ROA Request
+```php
+<?php
+
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Exception\ServerException;
+
+try {
+    $result = AlibabaCloud::roa()
+                          ->regionId('cn-hangzhou') // Specify the requested regionId, if not specified, use the client regionId, then default regionId
+                          ->product('CS') // Specify product
+                          ->version('2015-12-15') // Specify product version
+                          ->action('DescribeClusterServices') // Specify product interface
+                          ->serviceCode('cs') // Set ServiceCode for addressing, optional
+                          ->endpointType('openAPI') // Set type, optional
+                          ->method('GET') // Set request method
+                          ->host('cs.aliyun.com') // Location Service will not be enabled if the host is specified. For example, service with a Certification type-Bearer Token should be specified
+                          ->pathPattern('/clusters/[ClusterId]/services') // Specify path rule with ROA-style
+                          ->withClusterId('123456') // Assign values to parameters in the path. Method: with + Parameter
+                          ->request(); // Make a request and return to result object. The request is to be placed at the end of the setting
+                          
+    print_r($result->toArray());
+    
+} catch (ClientException $exception) {
+    print_r($exception->getErrorMessage());
+} catch (ServerException $exception) {
+    print_r($exception->getErrorMessage());
+}
+```
+
+### RPC Request
+```php
+<?php
+
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Exception\ServerException;
+
+try {
+    $result = AlibabaCloud::rpc()
+                          ->product('Cdn')
+                          ->version('2014-11-11')
+                          ->action('DescribeCdnService')
+                          ->method('POST')
+                          ->request();
+    
+    print_r($result->toArray());
+    
+} catch (ClientException $exception) {
+    print_r($exception->getErrorMessage());
+} catch (ServerException $exception) {
+    print_r($exception->getErrorMessage());
+}
+```
+
+
+## Documentation
+* [Prerequisites](/docs/en-US/0-Prerequisites.md)
+* [Installation](/docs/en-US/1-Installation.md)
+* [Client & Credentials](/docs/en-US/2-Client.md)
+* [Request](/docs/en-US/3-Request.md)
+* [Result](/docs/en-US/4-Result.md)
+* [Region](/docs/en-US/5-Region.md)
+* [Host](/docs/en-US/6-Host.md)
+* [SSL Verify](/docs/en-US/7-Verify.md)
+* [Debug](/docs/en-US/8-Debug.md)
+* [Log](/docs/en-US/9-Log.md)
+* [Test](/docs/en-US/10-Test.md)
+
+
+## Issues
+[Opening an Issue](https://github.com/aliyun/openapi-sdk-php-client/issues/new/choose), Issues not conforming to the guidelines may be closed immediately.
+
+
+## Changelog
+Detailed changes for each release are documented in the [release notes](/CHANGELOG.md).
+
+
+## Contribution
+Please make sure to read the [Contributing Guide](/CONTRIBUTING.md) before making a pull request.
+
+
+## References
+* [Alibaba Cloud Regions & Endpoints][endpoints]
+* [Alibaba Cloud OpenAPI Developer Portal][open-api]
+* [Packagist][packagist]
+* [Composer][composer]
+* [Guzzle Documentation][guzzle-docs]
+* [Latest Release][latest-release]
+
+
+## License
+[Apache-2.0](/LICENSE.md)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.
+
+
+[SDK]: https://github.com/aliyun/openapi-sdk-php
+[open-api]: https://next.api.aliyun.com/
+[latest-release]: https://github.com/aliyun/openapi-sdk-php-client
+[guzzle-docs]: http://docs.guzzlephp.org/en/stable/request-options.html
+[composer]: https://getcomposer.org
+[packagist]: https://packagist.org/packages/alibabacloud/sdk
+[home]: https://home.console.aliyun.com
+[alibabacloud]: https://www.alibabacloud.com
+[regions]: https://www.alibabacloud.com/help/doc-detail/40654.html
+[endpoints]: https://developer.aliyun.com/endpoints
+[cURL]: http://php.net/manual/en/book.curl.php
+[OPCache]: http://php.net/manual/en/book.opcache.php
+[xdebug]: http://xdebug.org
+[OpenSSL]: http://php.net/manual/en/book.openssl.php
+[client]: https://github.com/aliyun/openapi-sdk-php-client

+ 6 - 0
vendor/alibabacloud/client/UPGRADING.md

@@ -0,0 +1,6 @@
+Upgrading Guide
+===============
+
+1.x
+-----------------------
+- This is the first version. See <https://github.com/aliyun/openapi-sdk-php-client> for more information.

+ 17 - 0
vendor/alibabacloud/client/autoload.php

@@ -0,0 +1,17 @@
+<?php
+
+if (\file_exists(__DIR__ . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php')) {
+    require_once __DIR__ . \DIRECTORY_SEPARATOR . 'vendor' . \DIRECTORY_SEPARATOR . 'autoload.php';
+}
+
+spl_autoload_register(function ($class) {
+    $name = \str_replace('AlibabaCloud\\Client\\', '', $class);
+    $file = __DIR__ . \DIRECTORY_SEPARATOR . 'src' . \DIRECTORY_SEPARATOR . \str_replace('\\', \DIRECTORY_SEPARATOR, $name) . '.php';
+    if (\file_exists($file)) {
+        require_once $file;
+
+        return true;
+    }
+
+    return false;
+});

+ 134 - 0
vendor/alibabacloud/client/composer.json

@@ -0,0 +1,134 @@
+{
+  "name": "alibabacloud/client",
+  "homepage": "https://www.alibabacloud.com/",
+  "description": "Alibaba Cloud Client for PHP - Use Alibaba Cloud in your PHP project",
+  "keywords": [
+    "sdk",
+    "tool",
+    "cloud",
+    "client",
+    "aliyun",
+    "library",
+    "alibaba",
+    "alibabacloud"
+  ],
+  "type": "library",
+  "license": "Apache-2.0",
+  "support": {
+    "source": "https://github.com/aliyun/openapi-sdk-php-client",
+    "issues": "https://github.com/aliyun/openapi-sdk-php-client/issues"
+  },
+  "authors": [
+    {
+      "name": "Alibaba Cloud SDK",
+      "email": "sdk-team@alibabacloud.com",
+      "homepage": "http://www.alibabacloud.com"
+    }
+  ],
+  "require": {
+    "php": ">=5.5",
+    "ext-curl": "*",
+    "ext-json": "*",
+    "ext-libxml": "*",
+    "ext-openssl": "*",
+    "ext-mbstring": "*",
+    "ext-simplexml": "*",
+    "ext-xmlwriter": "*",
+    "guzzlehttp/guzzle": "^6.3|^7.0",
+    "mtdowling/jmespath.php": "^2.5",
+    "adbario/php-dot-notation": "^2.4.1",
+    "clagiordano/weblibs-configmanager": "^1.0"
+  },
+  "require-dev": {
+    "ext-spl": "*",
+    "ext-dom": "*",
+    "ext-pcre": "*",
+    "psr/cache": "^1.0",
+    "ext-sockets": "*",
+    "drupal/coder": "^8.3",
+    "symfony/dotenv": "^3.4",
+    "league/climate": "^3.2.4",
+    "phpunit/phpunit": "^5.7|^6.6|^7.5|^8.5|^9.5",
+    "monolog/monolog": "^1.24",
+    "composer/composer": "^1.8",
+    "mikey179/vfsstream": "^1.6",
+    "symfony/var-dumper": "^3.4"
+  },
+  "suggest": {
+    "ext-sockets": "To use client-side monitoring"
+  },
+  "autoload": {
+    "psr-4": {
+      "AlibabaCloud\\Client\\": "src"
+    },
+    "files": [
+      "src/Functions.php"
+    ]
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "AlibabaCloud\\Client\\Tests\\": "tests/"
+    }
+  },
+  "config": {
+    "preferred-install": "dist",
+    "optimize-autoloader": true,
+    "allow-plugins": {
+      "dealerdirect/phpcodesniffer-composer-installer": true
+    }
+  },
+  "minimum-stability": "dev",
+  "prefer-stable": true,
+  "scripts-descriptions": {
+    "cs": "Tokenizes PHP, JavaScript and CSS files to detect violations of a defined coding standard.",
+    "cbf": "Automatically correct coding standard violations.",
+    "fixer": "Fixes code to follow standards.",
+    "test": "Run all tests.",
+    "unit": "Run Unit tests.",
+    "feature": "Run Feature tests.",
+    "clearCache": "Clear cache like coverage.",
+    "coverage": "Show Coverage html.",
+    "endpoints": "Update endpoints from OSS."
+  },
+  "scripts": {
+    "cs": "phpcs --standard=PSR2 -n ./",
+    "cbf": "phpcbf --standard=PSR2 -n ./",
+    "fixer": "php-cs-fixer fix ./",
+    "test": [
+      "phpunit --colors=always"
+    ],
+    "test4HighVersion": [
+      "@clearCache",
+      "phpunit --testsuite=Test4HighVersion --colors=always"
+    ],
+    "test4LowVersion": [
+      "@clearCache",
+      "phpunit --testsuite=Test4LowVersion --colors=always"
+    ],
+    "unit4HighVersion": [
+      "@clearCache",
+      "phpunit --testsuite=Unit4HighVersion --colors=always"
+    ],
+    "unit4LowVersion": [
+      "@clearCache",
+      "phpunit --testsuite=Unit4LowVersion --colors=always"
+    ],
+    "feature4HighVersion": [
+      "@clearCache",
+      "phpunit --testsuite=Feature4HighVersion --colors=always"
+    ],
+    "feature4LowVersion": [
+      "@clearCache",
+      "phpunit --testsuite=Feature4LowVersion --colors=always"
+    ],
+    "coverage": "open cache/coverage/index.html",
+    "clearCache": "rm -rf cache/*",
+    "endpoints": [
+      "AlibabaCloud\\Client\\Regions\\LocationService::updateEndpoints",
+      "@fixer"
+    ],
+    "release": [
+      "AlibabaCloud\\Client\\Release::release"
+    ]
+  }
+}

+ 53 - 0
vendor/alibabacloud/client/src/Accept.php

@@ -0,0 +1,53 @@
+<?php
+
+namespace AlibabaCloud\Client;
+
+/**
+ * Class Accept
+ *
+ * @package AlibabaCloud\Client
+ */
+class Accept
+{
+    /**
+     * @var string
+     */
+    private $format;
+
+    /**
+     * Accept constructor.
+     *
+     * @param string $format
+     */
+    private function __construct($format)
+    {
+        $this->format = $format;
+    }
+
+    /**
+     * @param $format
+     *
+     * @return Accept
+     */
+    public static function create($format)
+    {
+        return new static($format);
+    }
+
+    /**
+     * @return mixed|string
+     */
+    public function toString()
+    {
+        $key = \strtoupper($this->format);
+
+        $list = [
+            'JSON' => 'application/json',
+            'XML'  => 'application/xml',
+            'RAW'  => 'application/octet-stream',
+            'FORM' => 'application/x-www-form-urlencoded'
+        ];
+
+        return isset($list[$key]) ? $list[$key] : $list['RAW'];
+    }
+}

+ 62 - 0
vendor/alibabacloud/client/src/AlibabaCloud.php

@@ -0,0 +1,62 @@
+<?php
+
+namespace AlibabaCloud\Client;
+
+use AlibabaCloud\Client\Traits\LogTrait;
+use AlibabaCloud\Client\Traits\MockTrait;
+use AlibabaCloud\Client\Traits\ClientTrait;
+use AlibabaCloud\Client\Traits\HistoryTrait;
+use AlibabaCloud\Client\Traits\RequestTrait;
+use AlibabaCloud\Client\Traits\EndpointTrait;
+use AlibabaCloud\Client\Traits\DefaultRegionTrait;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Class AlibabaCloud
+ *
+ * @package   AlibabaCloud\Client
+ * @mixin     \AlibabaCloud\IdeHelper
+ */
+class AlibabaCloud
+{
+    use ClientTrait;
+    use DefaultRegionTrait;
+    use EndpointTrait;
+    use RequestTrait;
+    use MockTrait;
+    use HistoryTrait;
+    use LogTrait;
+
+    /**
+     * Version of the Client
+     */
+    const VERSION = '1.5.32';
+
+    /**
+     * This static method can directly call the specific service.
+     *
+     * @param string $product
+     * @param array  $arguments
+     *
+     * @codeCoverageIgnore
+     * @return object
+     * @throws ClientException
+     */
+    public static function __callStatic($product, $arguments)
+    {
+        $product = \ucfirst($product);
+
+        $product_class = 'AlibabaCloud' . '\\' . $product . '\\' . $product;
+
+        if (\class_exists($product_class)) {
+            return new $product_class;
+        }
+
+        throw new ClientException(
+            "May not yet support product $product quick access, "
+            . 'you can use [Alibaba Cloud Client for PHP] to send any custom '
+            . 'requests: https://github.com/aliyun/openapi-sdk-php-client/blob/master/docs/en-US/3-Request.md',
+            SDK::SERVICE_NOT_FOUND
+        );
+    }
+}

+ 30 - 0
vendor/alibabacloud/client/src/Clients/AccessKeyClient.php

@@ -0,0 +1,30 @@
+<?php
+
+namespace AlibabaCloud\Client\Clients;
+
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Signature\ShaHmac1Signature;
+use AlibabaCloud\Client\Credentials\AccessKeyCredential;
+
+/**
+ * Use the AccessKey to complete the authentication.
+ *
+ * @package   AlibabaCloud\Client\Clients
+ */
+class AccessKeyClient extends Client
+{
+
+    /**
+     * @param string $accessKeyId
+     * @param string $accessKeySecret
+     *
+     * @throws ClientException
+     */
+    public function __construct($accessKeyId, $accessKeySecret)
+    {
+        parent::__construct(
+            new AccessKeyCredential($accessKeyId, $accessKeySecret),
+            new ShaHmac1Signature()
+        );
+    }
+}

+ 29 - 0
vendor/alibabacloud/client/src/Clients/BearerTokenClient.php

@@ -0,0 +1,29 @@
+<?php
+
+namespace AlibabaCloud\Client\Clients;
+
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Signature\BearerTokenSignature;
+use AlibabaCloud\Client\Credentials\BearerTokenCredential;
+
+/**
+ * Use the Bearer Token to complete the authentication.
+ *
+ * @package   AlibabaCloud\Client\Clients
+ */
+class BearerTokenClient extends Client
+{
+
+    /**
+     * @param string $bearerToken
+     *
+     * @throws ClientException
+     */
+    public function __construct($bearerToken)
+    {
+        parent::__construct(
+            new BearerTokenCredential($bearerToken),
+            new BearerTokenSignature()
+        );
+    }
+}

+ 72 - 0
vendor/alibabacloud/client/src/Clients/Client.php

@@ -0,0 +1,72 @@
+<?php
+
+namespace AlibabaCloud\Client\Clients;
+
+use AlibabaCloud\Client\Request\Request;
+use AlibabaCloud\Client\Traits\HttpTrait;
+use AlibabaCloud\Client\Traits\RegionTrait;
+use AlibabaCloud\Client\Credentials\StsCredential;
+use AlibabaCloud\Client\Signature\ShaHmac1Signature;
+use AlibabaCloud\Client\Signature\SignatureInterface;
+use AlibabaCloud\Client\Signature\ShaHmac256Signature;
+use AlibabaCloud\Client\Signature\BearerTokenSignature;
+use AlibabaCloud\Client\Credentials\AccessKeyCredential;
+use AlibabaCloud\Client\Credentials\CredentialsInterface;
+use AlibabaCloud\Client\Credentials\EcsRamRoleCredential;
+use AlibabaCloud\Client\Credentials\RamRoleArnCredential;
+use AlibabaCloud\Client\Credentials\RsaKeyPairCredential;
+use AlibabaCloud\Client\Credentials\BearerTokenCredential;
+use AlibabaCloud\Client\Signature\ShaHmac256WithRsaSignature;
+
+/**
+ * Custom Client.
+ *
+ * @package   AlibabaCloud\Client\Clients
+ */
+class Client
+{
+    use HttpTrait;
+    use RegionTrait;
+    use ManageTrait;
+
+    /**
+     * @var CredentialsInterface|AccessKeyCredential|BearerTokenCredential|StsCredential|EcsRamRoleCredential|RamRoleArnCredential|RsaKeyPairCredential
+     */
+    private $credential;
+
+    /**
+     * @var SignatureInterface
+     */
+    private $signature;
+
+    /**
+     * Self constructor.
+     *
+     * @param CredentialsInterface $credential
+     * @param SignatureInterface   $signature
+     */
+    public function __construct(CredentialsInterface $credential, SignatureInterface $signature)
+    {
+        $this->credential                 = $credential;
+        $this->signature                  = $signature;
+        $this->options['connect_timeout'] = Request::CONNECT_TIMEOUT;
+        $this->options['timeout']         = Request::TIMEOUT;
+        $this->options['verify']          = false;
+    }
+
+    /**
+     * @return AccessKeyCredential|BearerTokenCredential|CredentialsInterface|EcsRamRoleCredential|RamRoleArnCredential|RsaKeyPairCredential|StsCredential
+     */
+    public function getCredential()
+    {
+        return $this->credential;
+    }
+
+    /**
+     * @return SignatureInterface|BearerTokenSignature|ShaHmac1Signature|ShaHmac256Signature|ShaHmac256WithRsaSignature
+     */
+    public function getSignature()
+    {
+        return $this->signature;
+    }
+}

+ 26 - 0
vendor/alibabacloud/client/src/Clients/EcsRamRoleClient.php

@@ -0,0 +1,26 @@
+<?php
+
+namespace AlibabaCloud\Client\Clients;
+
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Signature\ShaHmac1Signature;
+use AlibabaCloud\Client\Credentials\EcsRamRoleCredential;
+
+/**
+ * Use the RAM role of an ECS instance to complete the authentication.
+ */
+class EcsRamRoleClient extends Client
+{
+    /**
+     * @param string $roleName
+     *
+     * @throws ClientException
+     */
+    public function __construct($roleName)
+    {
+        parent::__construct(
+            new EcsRamRoleCredential($roleName),
+            new ShaHmac1Signature()
+        );
+    }
+}

+ 98 - 0
vendor/alibabacloud/client/src/Clients/ManageTrait.php

@@ -0,0 +1,98 @@
+<?php
+
+namespace AlibabaCloud\Client\Clients;
+
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Filter\Filter;
+use AlibabaCloud\Client\Request\Request;
+use AlibabaCloud\Client\Credentials\StsCredential;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Exception\ServerException;
+use AlibabaCloud\Client\Credentials\CredentialsInterface;
+use AlibabaCloud\Client\Credentials\EcsRamRoleCredential;
+use AlibabaCloud\Client\Credentials\RamRoleArnCredential;
+use AlibabaCloud\Client\Credentials\RsaKeyPairCredential;
+use AlibabaCloud\Client\Credentials\Providers\EcsRamRoleProvider;
+use AlibabaCloud\Client\Credentials\Providers\RamRoleArnProvider;
+use AlibabaCloud\Client\Credentials\Providers\RsaKeyPairProvider;
+use AlibabaCloud\Client\Credentials\Providers\CredentialsProvider;
+
+/**
+ * Trait ManageTrait.
+ *
+ * @mixin     Client
+ */
+trait ManageTrait
+{
+    /**
+     * @param int $timeout
+     * @param int $connectTimeout
+     *
+     * @return CredentialsInterface|StsCredential
+     *
+     * @throws ClientException
+     * @throws ServerException
+     */
+    public function getSessionCredential($timeout = Request::TIMEOUT, $connectTimeout = Request::CONNECT_TIMEOUT)
+    {
+        switch (\get_class($this->credential)) {
+            case EcsRamRoleCredential::class:
+                return (new EcsRamRoleProvider($this))->get();
+            case RamRoleArnCredential::class:
+                return (new RamRoleArnProvider($this))->get($timeout, $connectTimeout);
+            case RsaKeyPairCredential::class:
+                return (new RsaKeyPairProvider($this))->get($timeout, $connectTimeout);
+            default:
+                return $this->credential;
+        }
+    }
+
+    /**
+     * @return static
+     * @throws ClientException
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function asGlobalClient()
+    {
+        return $this->asDefaultClient();
+    }
+
+    /**
+     * Set the current client as the default client.
+     *
+     * @return static
+     * @throws ClientException
+     */
+    public function asDefaultClient()
+    {
+        return $this->name(CredentialsProvider::getDefaultName());
+    }
+
+    /**
+     * Naming clients.
+     *
+     * @param string $name
+     *
+     * @return static
+     * @throws ClientException
+     */
+    public function name($name)
+    {
+        Filter::name($name);
+
+        return AlibabaCloud::set($name, $this);
+    }
+
+    /**
+     * @return bool
+     */
+    public function isDebug()
+    {
+        if (isset($this->options['debug'])) {
+            return $this->options['debug'] === true && PHP_SAPI === 'cli';
+        }
+
+        return false;
+    }
+}

+ 33 - 0
vendor/alibabacloud/client/src/Clients/RamRoleArnClient.php

@@ -0,0 +1,33 @@
+<?php
+
+namespace AlibabaCloud\Client\Clients;
+
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Signature\ShaHmac1Signature;
+use AlibabaCloud\Client\Credentials\RamRoleArnCredential;
+
+/**
+ * Use the AssumeRole of the RAM account to complete  the authentication.
+ *
+ * @package   AlibabaCloud\Client\Clients
+ */
+class RamRoleArnClient extends Client
+{
+
+    /**
+     * @param string       $accessKeyId
+     * @param string       $accessKeySecret
+     * @param string       $roleArn
+     * @param string       $roleSessionName
+     * @param string|array $policy
+     *
+     * @throws ClientException
+     */
+    public function __construct($accessKeyId, $accessKeySecret, $roleArn, $roleSessionName, $policy = '')
+    {
+        parent::__construct(
+            new RamRoleArnCredential($accessKeyId, $accessKeySecret, $roleArn, $roleSessionName, $policy),
+            new ShaHmac1Signature()
+        );
+    }
+}

+ 30 - 0
vendor/alibabacloud/client/src/Clients/RsaKeyPairClient.php

@@ -0,0 +1,30 @@
+<?php
+
+namespace AlibabaCloud\Client\Clients;
+
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Signature\ShaHmac1Signature;
+use AlibabaCloud\Client\Credentials\RsaKeyPairCredential;
+
+/**
+ * Use the RSA key pair to complete the authentication (supported only on Japanese site)
+ *
+ * @package   AlibabaCloud\Client\Clients
+ */
+class RsaKeyPairClient extends Client
+{
+
+    /**
+     * @param string $publicKeyId
+     * @param string $privateKeyFile
+     *
+     * @throws ClientException
+     */
+    public function __construct($publicKeyId, $privateKeyFile)
+    {
+        parent::__construct(
+            new RsaKeyPairCredential($publicKeyId, $privateKeyFile),
+            new ShaHmac1Signature()
+        );
+    }
+}

+ 28 - 0
vendor/alibabacloud/client/src/Clients/StsClient.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace AlibabaCloud\Client\Clients;
+
+use AlibabaCloud\Client\Credentials\StsCredential;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Signature\ShaHmac1Signature;
+
+/**
+ * Use the STS Token to complete the authentication.
+ */
+class StsClient extends Client
+{
+    /**
+     * @param string $accessKeyId     Access key ID
+     * @param string $accessKeySecret Access Key Secret
+     * @param string $securityToken   Security Token
+     *
+     * @throws ClientException
+     */
+    public function __construct($accessKeyId, $accessKeySecret, $securityToken = '')
+    {
+        parent::__construct(
+            new StsCredential($accessKeyId, $accessKeySecret, $securityToken),
+            new ShaHmac1Signature()
+        );
+    }
+}

+ 62 - 0
vendor/alibabacloud/client/src/Config/Config.php

@@ -0,0 +1,62 @@
+<?php
+
+namespace AlibabaCloud\Client\Config;
+
+use Exception;
+use clagiordano\weblibs\configmanager\ConfigManager;
+
+/**
+ * Class Config
+ *
+ * @package   AlibabaCloud\Client\Config
+ */
+class Config
+{
+
+    /**
+     * @var ConfigManager|null
+     */
+    private static $configManager;
+
+    /**
+     * @param string      $configPath
+     *
+     * @param string|null $defaultValue
+     *
+     * @return mixed
+     */
+    public static function get($configPath, $defaultValue = null)
+    {
+        return self::getConfigManager()
+                   ->getValue(
+                       \strtolower($configPath),
+                       $defaultValue
+                   );
+    }
+
+    /**
+     * @return ConfigManager
+     */
+    private static function getConfigManager()
+    {
+        if (!self::$configManager instanceof ConfigManager) {
+            self::$configManager = new ConfigManager(__DIR__ . DIRECTORY_SEPARATOR . 'Data.php');
+        }
+
+        return self::$configManager;
+    }
+
+    /**
+     * @param string $configPath
+     * @param mixed  $newValue
+     *
+     * @return ConfigManager
+     * @throws Exception
+     */
+    public static function set($configPath, $newValue)
+    {
+        self::getConfigManager()->setValue(\strtolower($configPath), $newValue);
+
+        return self::getConfigManager()->saveConfigFile();
+    }
+}

+ 3799 - 0
vendor/alibabacloud/client/src/Config/Data.php

@@ -0,0 +1,3799 @@
+<?php
+
+return [
+    'endpoints' =>
+        [
+            'dysmsapi'        =>
+                [
+                    'cn-hangzhou'    => 'dysmsapi.aliyuncs.com',
+                    'ap-southeast-1' => 'dysmsapi.ap-southeast-1.aliyuncs.com',
+                ],
+            'ccc'             =>
+                [
+                    'global'      => 'ccc.cn-shanghai.aliyuncs.com',
+                    'cn-shanghai' => 'ccc.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou' => 'ccc.cn-hangzhou.aliyuncs.com',
+                ],
+            'dbs'             =>
+                [
+                    'cn-hangzhou'    => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao'     => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'     => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'    => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'cn-hongkong'    => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1' => 'dbs-api.ap-southeast-1.aliyuncs.com',
+                    'ap-northeast-1' => 'dbs-api.ap-northeast-1.aliyuncs.com',
+                ],
+            'dybaseapi'       =>
+                [
+                    'global'      => 'dybaseapi.aliyuncs.com',
+                    'cn-hangzhou' => 'dybaseapi.aliyuncs.com',
+                ],
+            'dyiotapi'        =>
+                [
+                    'global'      => 'dyiotapi.aliyuncs.com',
+                    'cn-hangzhou' => 'dyiotapi.aliyuncs.com',
+                ],
+            'dycdpapi'        =>
+                [
+                    'global'      => 'dycdpapi.aliyuncs.com',
+                    'cn-hangzhou' => 'dycdpapi.aliyuncs.com',
+                ],
+            'dyplsapi'        =>
+                [
+                    'global'      => 'dyplsapi.aliyuncs.com',
+                    'cn-hangzhou' => 'dyplsapi.aliyuncs.com',
+                ],
+            'dypnsapi'        =>
+                [
+                    'global'      => 'dypnsapi.aliyuncs.com',
+                    'cn-hangzhou' => 'dypnsapi.aliyuncs.com',
+                ],
+            'dyvmsapi'        =>
+                [
+                    'global'      => 'dyvmsapi.aliyuncs.com',
+                    'cn-hangzhou' => 'dyvmsapi.aliyuncs.com',
+                ],
+            'snsuapi'         =>
+                [
+                    'global'      => 'snsuapi.aliyuncs.com',
+                    'cn-hangzhou' => 'snsuapi.aliyuncs.com',
+                ],
+            'ecs'             =>
+                [
+                    'jp-fudao-1'                  => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'me-east-1'                   => 'ecs.me-east-1.aliyuncs.com',
+                    'us-east-1'                   => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'ap-northeast-1'              => 'ecs.ap-northeast-1.aliyuncs.com',
+                    'cn-hangzhou-bj-b01'          => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-hongkong'                 => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-nu16-b01'         => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-am13-c01'         => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'in-west-antgroup-1'          => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-guizhou-gov'              => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'in-west-antgroup-2'          => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao-cm9'              => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'tw-snowcloud-kaohsiung'      => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-finance-1'       => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-guizhou'                  => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'                 => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-inner'           => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-fujian'                   => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'in-mumbai-alipay'            => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'us-west-1'                   => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-inner'           => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-anhui-gov-1'              => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou'                 => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'            => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-haidian-cm12-c01'         => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-anhui-gov'                => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'                 => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-2'              => 'ecs.ap-southeast-2.aliyuncs.com',
+                    'cn-qingdao'                  => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-su18-b02'        => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-su18-b03'        => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-su18-b01'        => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-antgroup-1'     => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-henan-am12001'            => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'                  => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou-d'               => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-gansu-am6'                => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-ningxiazhongwei'          => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-et2-b01'         => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-ningxia-am7-c01'          => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-finance-1'       => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'              => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-st4-d01'         => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'eu-central-1'                => 'ecs.eu-central-1.aliyuncs.com',
+                    'cn-zhangjiakou'              => 'ecs.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'                => 'ecs.cn-huhehaote.aliyuncs.com',
+                    'ap-southeast-3'              => 'ecs.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'              => 'ecs.ap-southeast-5.aliyuncs.com',
+                    'eu-west-1'                   => 'ecs.eu-west-1.aliyuncs.com',
+                    'ap-south-1'                  => 'ecs.ap-south-1.aliyuncs.com',
+                    'cn-chengdu'                  => 'ecs.cn-chengdu.aliyuncs.com',
+                    'cn-north-2-gov-1'            => 'ecs.aliyuncs.com',
+                    'cn-edge-1'                   => 'ecs.cn-qingdao-nebula.aliyuncs.com',
+                    'cn-hangzhou-internal-prod-1' => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou-internal-test-1' => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou-internal-test-2' => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou-internal-test-3' => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-huhehaote-nebula-1'       => 'ecs.cn-qingdao-nebula.aliyuncs.com',
+                    'cn-qingdao-nebula'           => 'ecs.cn-qingdao-nebula.aliyuncs.com',
+                    'cn-shanghai-internal-test-1' => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-zhangbei-na61-b01'        => 'ecs-cn-hangzhou.aliyuncs.com',
+                    'cn-zhengzhou-nebula-1'       => 'ecs.cn-qingdao-nebula.aliyuncs.com',
+                    'eu-west-1-oxs'               => 'ecs.cn-shenzhen-cloudstone.aliyuncs.com',
+                    'cn-heyuan'                   => 'ecs.cn-heyuan.aliyuncs.com',
+                    'cn-wulanchabu'               => 'ecs.cn-wulanchabu.aliyuncs.com',
+                ],
+            'rds'             =>
+                [
+                    'me-east-1'             => 'rds.me-east-1.aliyuncs.com',
+                    'us-east-1'             => 'rds.aliyuncs.com',
+                    'ap-northeast-1'        => 'rds.ap-northeast-1.aliyuncs.com',
+                    'cn-hongkong'           => 'rds.aliyuncs.com',
+                    'cn-qingdao-cm9'        => 'rds.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'rds.aliyuncs.com',
+                    'cn-beijing-gov-1'      => 'rds.aliyuncs.com',
+                    'cn-shanghai'           => 'rds.aliyuncs.com',
+                    'cn-shenzhen-inner'     => 'rds.aliyuncs.com',
+                    'cn-fujian'             => 'rds.aliyuncs.com',
+                    'us-west-1'             => 'rds.aliyuncs.com',
+                    'cn-shanghai-inner'     => 'rds.aliyuncs.com',
+                    'cn-hangzhou'           => 'rds.aliyuncs.com',
+                    'cn-beijing-inner'      => 'rds.aliyuncs.com',
+                    'cn-haidian-cm12-c01'   => 'rds.aliyuncs.com',
+                    'cn-shenzhen'           => 'rds.aliyuncs.com',
+                    'ap-southeast-2'        => 'rds.ap-southeast-2.aliyuncs.com',
+                    'cn-qingdao'            => 'rds.aliyuncs.com',
+                    'cn-beijing'            => 'rds.aliyuncs.com',
+                    'cn-hangzhou-d'         => 'rds.aliyuncs.com',
+                    'cn-gansu-am6'          => 'rds.aliyuncs.com',
+                    'cn-shanghai-et2-b01'   => 'rds.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'rds.aliyuncs.com',
+                    'ap-southeast-1'        => 'rds.aliyuncs.com',
+                    'eu-central-1'          => 'rds.eu-central-1.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'rds.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'rds.cn-huhehaote.aliyuncs.com',
+                    'ap-southeast-3'        => 'rds.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'rds.ap-southeast-5.aliyuncs.com',
+                    'eu-west-1'             => 'rds.eu-west-1.aliyuncs.com',
+                    'ap-south-1'            => 'rds.ap-south-1.aliyuncs.com',
+                    'cn-chengdu'            => 'rds.cn-chengdu.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'rds.aliyuncs.com',
+                    'cn-yushanfang'         => 'rds.aliyuncs.com',
+                    'cn-huhehaote-nebula-1' => 'rds.cn-chengdu.aliyuncs.com',
+                    'cn-heyuan'             => 'rds.aliyuncs.com',
+                ],
+            'vpc'             =>
+                [
+                    'me-east-1'                   => 'vpc.me-east-1.aliyuncs.com',
+                    'us-east-1'                   => 'vpc.aliyuncs.com',
+                    'ap-northeast-1'              => 'vpc.ap-northeast-1.aliyuncs.com',
+                    'cn-hongkong'                 => 'vpc.aliyuncs.com',
+                    'cn-beijing-am13-c01'         => 'vpc.aliyuncs.com',
+                    'cn-guizhou-gov'              => 'vpc.aliyuncs.com',
+                    'cn-shanghai-finance-1'       => 'vpc.aliyuncs.com',
+                    'cn-guizhou'                  => 'vpc.aliyuncs.com',
+                    'cn-shanghai'                 => 'vpc.aliyuncs.com',
+                    'us-west-1'                   => 'vpc.aliyuncs.com',
+                    'cn-hangzhou'                 => 'vpc.aliyuncs.com',
+                    'cn-haidian-cm12-c01'         => 'vpc.aliyuncs.com',
+                    'cn-anhui-gov'                => 'vpc.aliyuncs.com',
+                    'cn-shenzhen'                 => 'vpc.aliyuncs.com',
+                    'ap-southeast-2'              => 'vpc.ap-southeast-2.aliyuncs.com',
+                    'cn-henan-am12001'            => 'vpc.aliyuncs.com',
+                    'cn-beijing'                  => 'vpc.aliyuncs.com',
+                    'cn-gansu-am6'                => 'vpc.aliyuncs.com',
+                    'cn-ningxiazhongwei'          => 'vpc.aliyuncs.com',
+                    'cn-ningxia-am7-c01'          => 'vpc.aliyuncs.com',
+                    'cn-shenzhen-finance-1'       => 'vpc.aliyuncs.com',
+                    'ap-southeast-1'              => 'vpc.aliyuncs.com',
+                    'eu-central-1'                => 'vpc.eu-central-1.aliyuncs.com',
+                    'cn-zhangjiakou'              => 'vpc.cn-zhangjiakou.aliyuncs.com',
+                    'cn-qingdao'                  => 'vpc.aliyuncs.com',
+                    'cn-huhehaote'                => 'vpc.cn-huhehaote.aliyuncs.com',
+                    'ap-southeast-3'              => 'vpc.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'              => 'vpc.ap-southeast-5.aliyuncs.com',
+                    'eu-west-1'                   => 'vpc.eu-west-1.aliyuncs.com',
+                    'ap-south-1'                  => 'vpc.ap-south-1.aliyuncs.com',
+                    'cn-chengdu'                  => 'vpc.cn-chengdu.aliyuncs.com',
+                    'cn-north-2-gov-1'            => 'vpc.aliyuncs.com',
+                    'ap-northeast-2-pop'          => 'vpc.aliyuncs.com',
+                    'cn-beijing-finance-1'        => 'vpc.aliyuncs.com',
+                    'cn-beijing-finance-pop'      => 'vpc.aliyuncs.com',
+                    'cn-edge-1'                   => 'vpc-nebula.cn-qingdao-nebula.aliyuncs.com',
+                    'cn-hangzhou-internal-test-1' => 'vpc.aliyuncs.com',
+                    'cn-hangzhou-internal-test-2' => 'vpc.aliyuncs.com',
+                    'cn-hangzhou-internal-test-3' => 'vpc.aliyuncs.com',
+                    'cn-hongkong-finance-pop'     => 'vpc.aliyuncs.com',
+                    'cn-huhehaote-nebula-1'       => 'vpc-nebula.cn-qingdao-nebula.aliyuncs.com',
+                    'cn-qingdao-nebula'           => 'vpc-nebula.cn-qingdao-nebula.aliyuncs.com',
+                    'cn-shanghai-et15-b01'        => 'vpc.aliyuncs.com',
+                    'cn-wuhan'                    => 'vpc.aliyuncs.com',
+                    'cn-zhangbei-na61-b01'        => 'vpc.aliyuncs.com',
+                    'cn-zhengzhou-nebula-1'       => 'vpc-nebula.cn-qingdao-nebula.aliyuncs.com',
+                    'eu-west-1-oxs'               => 'vpc-nebula.cn-shenzhen-cloudstone.aliyuncs.com',
+                    'rus-west-1-pop'              => 'vpc.aliyuncs.com',
+                    'cn-heyuan'                   => 'vpc.cn-heyuan.aliyuncs.com',
+                    'cn-wulanchabu'               => 'vpc.cn-wulanchabu.aliyuncs.com',
+                ],
+            'kms'             =>
+                [
+                    'me-east-1'                   => 'kms.me-east-1.aliyuncs.com',
+                    'ap-northeast-1'              => 'kms.ap-northeast-1.aliyuncs.com',
+                    'cn-hongkong'                 => 'kms.cn-hongkong.aliyuncs.com',
+                    'cn-shanghai-finance-1'       => 'kms.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-shanghai'                 => 'kms.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou'                 => 'kms.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'                 => 'kms.cn-shenzhen.aliyuncs.com',
+                    'ap-southeast-2'              => 'kms.ap-southeast-2.aliyuncs.com',
+                    'cn-beijing'                  => 'kms.cn-beijing.aliyuncs.com',
+                    'cn-shenzhen-finance-1'       => 'kms.cn-shenzhen-finance-1.aliyuncs.com',
+                    'ap-southeast-1'              => 'kms.ap-southeast-1.aliyuncs.com',
+                    'eu-central-1'                => 'kms.eu-central-1.aliyuncs.com',
+                    'cn-qingdao'                  => 'kms.cn-qingdao.aliyuncs.com',
+                    'cn-zhangjiakou'              => 'kms.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'                => 'kms.cn-huhehaote.aliyuncs.com',
+                    'ap-southeast-3'              => 'kms.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'              => 'kms.ap-southeast-5.aliyuncs.com',
+                    'eu-west-1'                   => 'kms.eu-west-1.aliyuncs.com',
+                    'us-west-1'                   => 'kms.us-west-1.aliyuncs.com',
+                    'us-east-1'                   => 'kms.us-east-1.aliyuncs.com',
+                    'ap-south-1'                  => 'kms.ap-south-1.aliyuncs.com',
+                    'cn-chengdu'                  => 'kms.cn-chengdu.aliyuncs.com',
+                    'cn-hangzhou-finance'         => 'kms.cn-hangzhou-finance.aliyuncs.com',
+                    'cn-north-2-gov-1'            => 'kms.cn-north-2-gov-1.aliyuncs.com',
+                    'cn-hangzhou-internal-test-1' => 'kms.cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou-internal-test-2' => 'kms.cn-hangzhou.aliyuncs.com',
+                    'cn-heyuan'                   => 'kms.cn-heyuan.aliyuncs.com',
+                    'cn-wulanchabu'               => 'kms.cn-wulanchabu.aliyuncs.com',
+                ],
+            'cms'             =>
+                [
+                    'me-east-1'             => 'metrics.cn-hangzhou.aliyuncs.com',
+                    'us-east-1'             => 'metrics.cn-hangzhou.aliyuncs.com',
+                    'ap-northeast-1'        => 'metrics.ap-northeast-1.aliyuncs.com',
+                    'cn-hongkong'           => 'metrics.cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao-cm9'        => 'metrics.aliyuncs.com',
+                    'cn-shanghai'           => 'metrics.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-inner'     => 'metrics.aliyuncs.com',
+                    'us-west-1'             => 'metrics.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-inner'     => 'metrics.aliyuncs.com',
+                    'cn-hangzhou'           => 'metrics.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'      => 'metrics.aliyuncs.com',
+                    'cn-shenzhen'           => 'metrics.cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-2'        => 'metrics.cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao'            => 'metrics.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'            => 'metrics.cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou-d'         => 'metrics.aliyuncs.com',
+                    'cn-shanghai-et2-b01'   => 'metrics.aliyuncs.com',
+                    'ap-southeast-1'        => 'metrics.cn-hangzhou.aliyuncs.com',
+                    'eu-central-1'          => 'metrics.cn-hangzhou.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'metrics.cn-hangzhou.aliyuncs.com',
+                    'cn-huhehaote'          => 'metrics.cn-huhehaote.aliyuncs.com',
+                    'ap-southeast-3'        => 'metrics.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'metrics.ap-southeast-5.aliyuncs.com',
+                    'eu-west-1'             => 'metrics.eu-west-1.aliyuncs.com',
+                    'ap-south-1'            => 'metrics.ap-south-1.aliyuncs.com',
+                    'cn-chengdu'            => 'metrics.cn-chengdu.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'metrics.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'metrics.cn-shenzhen-finance-1.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'metrics.cn-north-2-gov-1.aliyuncs.com',
+                    'cn-qingdao-nebula'     => 'metrics.cn-qingdao-nebula.aliyuncs.com',
+                    'cn-heyuan'             => 'metrics.cn-heyuan.aliyuncs.com',
+                    'cn-wulanchabu'         => 'metrics.cn-wulanchabu.aliyuncs.com',
+                ],
+            'slb'             =>
+                [
+                    'me-east-1'             => 'slb.me-east-1.aliyuncs.com',
+                    'us-east-1'             => 'slb.aliyuncs.com',
+                    'ap-northeast-1'        => 'slb.ap-northeast-1.aliyuncs.com',
+                    'cn-hongkong'           => 'slb.aliyuncs.com',
+                    'cn-qingdao-cm9'        => 'slb.aliyuncs.com',
+                    'cn-shanghai'           => 'slb.aliyuncs.com',
+                    'cn-shenzhen-inner'     => 'slb.aliyuncs.com',
+                    'us-west-1'             => 'slb.aliyuncs.com',
+                    'cn-shanghai-inner'     => 'slb.aliyuncs.com',
+                    'cn-hangzhou'           => 'slb.aliyuncs.com',
+                    'cn-beijing-inner'      => 'slb.aliyuncs.com',
+                    'cn-shenzhen'           => 'slb.aliyuncs.com',
+                    'ap-southeast-2'        => 'slb.ap-southeast-2.aliyuncs.com',
+                    'cn-qingdao'            => 'slb.aliyuncs.com',
+                    'cn-beijing'            => 'slb.aliyuncs.com',
+                    'cn-hangzhou-d'         => 'slb.aliyuncs.com',
+                    'cn-shanghai-et2-b01'   => 'slb.aliyuncs.com',
+                    'ap-southeast-1'        => 'slb.aliyuncs.com',
+                    'eu-central-1'          => 'slb.eu-central-1.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'slb.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'slb.cn-huhehaote.aliyuncs.com',
+                    'ap-southeast-3'        => 'slb.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'slb.ap-southeast-5.aliyuncs.com',
+                    'eu-west-1'             => 'slb.eu-west-1.aliyuncs.com',
+                    'ap-south-1'            => 'slb.ap-south-1.aliyuncs.com',
+                    'cn-chengdu'            => 'slb.cn-chengdu.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'slb.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'slb.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'slb.aliyuncs.com',
+                    'cn-fujian'             => 'slb.aliyuncs.com',
+                    'cn-haidian-cm12-c01'   => 'slb.aliyuncs.com',
+                    'cn-hangzhou-test-306'  => 'slb.aliyuncs.com',
+                    'cn-huhehaote-nebula-1' => 'slb-api.cn-qingdao-nebula.aliyuncs.com',
+                    'cn-heyuan'             => 'slb.cn-heyuan.aliyuncs.com',
+                    'cn-wulanchabu'         => 'slb.cn-wulanchabu.aliyuncs.com',
+                ],
+            'cs'              =>
+                [
+                    'us-east-1'             => 'cs.us-east-1.aliyuncs.com',
+                    'cn-hongkong'           => 'cs.cn-hongkong.aliyuncs.com',
+                    'cn-qingdao-cm9'        => 'cs.aliyuncs.com',
+                    'cn-shanghai'           => 'cs.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen-inner'     => 'cs.aliyuncs.com',
+                    'us-west-1'             => 'cs.us-west-1.aliyuncs.com',
+                    'cn-shanghai-inner'     => 'cs.aliyuncs.com',
+                    'cn-hangzhou'           => 'cs.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'      => 'cs.aliyuncs.com',
+                    'cn-shenzhen'           => 'cs.cn-shenzhen.aliyuncs.com',
+                    'cn-qingdao'            => 'cs.aliyuncs.com',
+                    'cn-beijing'            => 'cs.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou-d'         => 'cs.aliyuncs.com',
+                    'cn-shanghai-et2-b01'   => 'cs.aliyuncs.com',
+                    'ap-southeast-1'        => 'cs.ap-southeast-1.aliyuncs.com',
+                    'cn-chengdu'            => 'cs.cn-chengdu.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'cs.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'cs.cn-huhehaote.aliyuncs.com',
+                    'ap-southeast-2'        => 'cs.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'cs.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'cs.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1'        => 'cs.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'cs.eu-west-1.aliyuncs.com',
+                    'eu-central-1'          => 'cs.eu-central-1.aliyuncs.com',
+                    'me-east-1'             => 'cs.me-east-1.aliyuncs.com',
+                    'ap-south-1'            => 'cs.ap-south-1.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'cs.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'cs.cn-shenzhen-finance-1.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'cs.cn-north-2-gov-1.aliyuncs.com',
+                ],
+            'push'            =>
+                [
+                    'us-east-1'           => 'cloudpush.aliyuncs.com',
+                    'cn-hongkong'         => 'cloudpush.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'cloudpush.aliyuncs.com',
+                    'cn-shanghai'         => 'cloudpush.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'cloudpush.aliyuncs.com',
+                    'us-west-1'           => 'cloudpush.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'cloudpush.aliyuncs.com',
+                    'cn-hangzhou'         => 'cloudpush.aliyuncs.com',
+                    'cn-beijing-inner'    => 'cloudpush.aliyuncs.com',
+                    'cn-shenzhen'         => 'cloudpush.aliyuncs.com',
+                    'cn-qingdao'          => 'cloudpush.aliyuncs.com',
+                    'cn-beijing'          => 'cloudpush.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'cloudpush.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'cloudpush.aliyuncs.com',
+                    'ap-southeast-1'      => 'cloudpush.aliyuncs.com',
+                ],
+            'cos'             =>
+                [
+                    'us-east-1'           => 'cos.aliyuncs.com',
+                    'cn-hongkong'         => 'cos.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'cos.aliyuncs.com',
+                    'cn-shanghai'         => 'cos.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'cos.aliyuncs.com',
+                    'us-west-1'           => 'cos.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'cos.aliyuncs.com',
+                    'cn-hangzhou'         => 'cos.aliyuncs.com',
+                    'cn-beijing-inner'    => 'cos.aliyuncs.com',
+                    'cn-shenzhen'         => 'cos.aliyuncs.com',
+                    'cn-qingdao'          => 'cos.aliyuncs.com',
+                    'cn-beijing'          => 'cos.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'cos.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'cos.aliyuncs.com',
+                    'ap-southeast-1'      => 'cos.aliyuncs.com',
+                ],
+            'ess'             =>
+                [
+                    'us-east-1'             => 'ess.aliyuncs.com',
+                    'cn-hongkong'           => 'ess.aliyuncs.com',
+                    'cn-qingdao-cm9'        => 'ess.aliyuncs.com',
+                    'cn-shanghai'           => 'ess.aliyuncs.com',
+                    'cn-shenzhen-inner'     => 'ess.aliyuncs.com',
+                    'us-west-1'             => 'ess.aliyuncs.com',
+                    'cn-shanghai-inner'     => 'ess.aliyuncs.com',
+                    'cn-hangzhou'           => 'ess.aliyuncs.com',
+                    'cn-beijing-inner'      => 'ess.aliyuncs.com',
+                    'cn-shenzhen'           => 'ess.aliyuncs.com',
+                    'cn-qingdao'            => 'ess.aliyuncs.com',
+                    'cn-beijing'            => 'ess.aliyuncs.com',
+                    'cn-hangzhou-d'         => 'ess.aliyuncs.com',
+                    'cn-shanghai-et2-b01'   => 'ess.aliyuncs.com',
+                    'ap-southeast-1'        => 'ess.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'ess.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'ess.cn-huhehaote.aliyuncs.com',
+                    'ap-southeast-2'        => 'ess.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'ess.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'ess.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1'        => 'ess.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'ess.eu-west-1.aliyuncs.com',
+                    'eu-central-1'          => 'ess.eu-central-1.aliyuncs.com',
+                    'me-east-1'             => 'ess.me-east-1.aliyuncs.com',
+                    'ap-south-1'            => 'ess.ap-south-1.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'ess.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'ess.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'ess.aliyuncs.com',
+                    'cn-chengdu'            => 'ess.cn-chengdu.aliyuncs.com',
+                    'cn-haidian-cm12-c01'   => 'ess.aliyuncs.com',
+                    'cn-heyuan'             => 'ess.cn-heyuan.aliyuncs.com',
+                    'cn-wulanchabu'         => 'ess.cn-wulanchabu.aliyuncs.com',
+                ],
+            'ace-ops'         =>
+                [
+                    'us-east-1'           => 'ace-ops.cn-hangzhou.aliyuncs.com',
+                    'cn-hongkong'         => 'ace-ops.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'         => 'ace-ops.cn-hangzhou.aliyuncs.com',
+                    'us-west-1'           => 'ace-ops.cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou'         => 'ace-ops.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'         => 'ace-ops.cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao'          => 'ace-ops.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'          => 'ace-ops.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'ace-ops.cn-hangzhou.aliyuncs.com',
+                ],
+            'billing'         =>
+                [
+                    'us-east-1'           => 'billing.aliyuncs.com',
+                    'cn-hongkong'         => 'billing.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'billing.aliyuncs.com',
+                    'cn-shanghai'         => 'billing.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'billing.aliyuncs.com',
+                    'us-west-1'           => 'billing.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'billing.aliyuncs.com',
+                    'cn-hangzhou'         => 'billing.aliyuncs.com',
+                    'cn-beijing-inner'    => 'billing.aliyuncs.com',
+                    'cn-beijing'          => 'billing.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'billing.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'billing.aliyuncs.com',
+                    'ap-southeast-1'      => 'billing.aliyuncs.com',
+                ],
+            'dqs'             =>
+                [
+                    'us-east-1'           => 'dqs.aliyuncs.com',
+                    'cn-hongkong'         => 'dqs.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'dqs.aliyuncs.com',
+                    'cn-shanghai'         => 'dqs.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'dqs.aliyuncs.com',
+                    'us-west-1'           => 'dqs.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'dqs.aliyuncs.com',
+                    'cn-hangzhou'         => 'dqs.aliyuncs.com',
+                    'cn-beijing-inner'    => 'dqs.aliyuncs.com',
+                    'cn-shenzhen'         => 'dqs.aliyuncs.com',
+                    'cn-qingdao'          => 'dqs.aliyuncs.com',
+                    'cn-beijing'          => 'dqs.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'dqs.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'dqs.aliyuncs.com',
+                    'ap-southeast-1'      => 'dqs.aliyuncs.com',
+                ],
+            'dds'             =>
+                [
+                    'us-east-1'             => 'mongodb.aliyuncs.com',
+                    'cn-hongkong'           => 'mongodb.aliyuncs.com',
+                    'cn-qingdao-cm9'        => 'mongodb.aliyuncs.com',
+                    'cn-shanghai'           => 'mongodb.aliyuncs.com',
+                    'cn-shenzhen-inner'     => 'mongodb.aliyuncs.com',
+                    'us-west-1'             => 'mongodb.aliyuncs.com',
+                    'cn-shanghai-inner'     => 'mongodb.aliyuncs.com',
+                    'cn-hangzhou'           => 'mongodb.aliyuncs.com',
+                    'cn-beijing-inner'      => 'mongodb.aliyuncs.com',
+                    'cn-shenzhen'           => 'mongodb.aliyuncs.com',
+                    'cn-qingdao'            => 'mongodb.aliyuncs.com',
+                    'cn-beijing'            => 'mongodb.aliyuncs.com',
+                    'cn-hangzhou-d'         => 'mongodb.aliyuncs.com',
+                    'cn-shanghai-et2-b01'   => 'mongodb.aliyuncs.com',
+                    'ap-southeast-1'        => 'mongodb.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'mongodb.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'mongodb.cn-huhehaote.aliyuncs.com',
+                    'ap-southeast-2'        => 'mongodb.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'mongodb.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'mongodb.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1'        => 'mongodb.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'mongodb.eu-west-1.aliyuncs.com',
+                    'eu-central-1'          => 'mongodb.eu-central-1.aliyuncs.com',
+                    'me-east-1'             => 'mongodb.me-east-1.aliyuncs.com',
+                    'ap-south-1'            => 'mongodb.ap-south-1.aliyuncs.com',
+                    'cn-chengdu'            => 'mongodb.cn-chengdu.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'mongodb.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'mongodb.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'mongodb.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'mongodb.aliyuncs.com',
+                    'cn-heyuan'             => 'mongodb.aliyuncs.com',
+                    'cn-wulanchabu'         => 'mongodb.aliyuncs.com',
+                ],
+            'emr'             =>
+                [
+                    'us-east-1'             => 'emr.us-east-1.aliyuncs.com',
+                    'cn-hongkong'           => 'emr.cn-hongkong.aliyuncs.com',
+                    'cn-qingdao-cm9'        => 'emr.aliyuncs.com',
+                    'cn-shanghai'           => 'emr.aliyuncs.com',
+                    'cn-shenzhen-inner'     => 'emr.aliyuncs.com',
+                    'us-west-1'             => 'emr.aliyuncs.com',
+                    'cn-shanghai-inner'     => 'emr.aliyuncs.com',
+                    'cn-hangzhou'           => 'emr.aliyuncs.com',
+                    'cn-beijing-inner'      => 'emr.aliyuncs.com',
+                    'cn-shenzhen'           => 'emr.aliyuncs.com',
+                    'cn-qingdao'            => 'emr.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'            => 'emr.aliyuncs.com',
+                    'cn-hangzhou-d'         => 'emr.aliyuncs.com',
+                    'cn-shanghai-et2-b01'   => 'emr.aliyuncs.com',
+                    'ap-southeast-1'        => 'emr.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'emr.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'emr.cn-huhehaote.aliyuncs.com',
+                    'ap-southeast-2'        => 'emr.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'emr.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'emr.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1'        => 'emr.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'emr.eu-west-1.aliyuncs.com',
+                    'eu-central-1'          => 'emr.eu-central-1.aliyuncs.com',
+                    'me-east-1'             => 'emr.me-east-1.aliyuncs.com',
+                    'ap-south-1'            => 'emr.ap-south-1.aliyuncs.com',
+                    'cn-chengdu'            => 'emr.cn-chengdu.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'emr.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'emr.aliyuncs.com',
+                ],
+            'sms'             =>
+                [
+                    'us-east-1'           => 'sms.aliyuncs.com',
+                    'cn-hongkong'         => 'sms.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'sms.aliyuncs.com',
+                    'cn-shanghai'         => 'sms.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'sms.aliyuncs.com',
+                    'us-west-1'           => 'sms.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'sms.aliyuncs.com',
+                    'cn-hangzhou'         => 'sms.aliyuncs.com',
+                    'cn-beijing-inner'    => 'sms.aliyuncs.com',
+                    'cn-shenzhen'         => 'sms.aliyuncs.com',
+                    'cn-qingdao'          => 'sms.aliyuncs.com',
+                    'cn-beijing'          => 'sms.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'sms.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'sms.aliyuncs.com',
+                    'ap-southeast-1'      => 'sms.aliyuncs.com',
+                ],
+            'jaq'             =>
+                [
+                    'us-east-1'           => 'jaq.aliyuncs.com',
+                    'cn-hongkong'         => 'jaq.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'jaq.aliyuncs.com',
+                    'cn-shanghai'         => 'jaq.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'jaq.aliyuncs.com',
+                    'us-west-1'           => 'jaq.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'jaq.aliyuncs.com',
+                    'cn-hangzhou'         => 'jaq.aliyuncs.com',
+                    'cn-beijing-inner'    => 'jaq.aliyuncs.com',
+                    'cn-shenzhen'         => 'jaq.aliyuncs.com',
+                    'cn-qingdao'          => 'jaq.aliyuncs.com',
+                    'cn-beijing'          => 'jaq.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'jaq.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'jaq.aliyuncs.com',
+                    'ap-southeast-1'      => 'jaq.aliyuncs.com',
+                ],
+            'hpc'             =>
+                [
+                    'us-east-1'           => 'hpc.aliyuncs.com',
+                    'cn-hongkong'         => 'hpc.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'hpc.aliyuncs.com',
+                    'cn-shanghai'         => 'hpc.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'hpc.aliyuncs.com',
+                    'us-west-1'           => 'hpc.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'hpc.aliyuncs.com',
+                    'cn-hangzhou'         => 'hpc.aliyuncs.com',
+                    'cn-beijing-inner'    => 'hpc.aliyuncs.com',
+                    'cn-shenzhen'         => 'hpc.aliyuncs.com',
+                    'cn-qingdao'          => 'hpc.aliyuncs.com',
+                    'cn-beijing'          => 'hpc.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'hpc.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'hpc.aliyuncs.com',
+                    'ap-southeast-1'      => 'hpc.aliyuncs.com',
+                ],
+            'location'        =>
+                [
+                    'us-east-1'           => 'location.aliyuncs.com',
+                    'cn-hongkong'         => 'location.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'location.aliyuncs.com',
+                    'cn-shanghai'         => 'location.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'location.aliyuncs.com',
+                    'us-west-1'           => 'location.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'location.aliyuncs.com',
+                    'cn-hangzhou'         => 'location.aliyuncs.com',
+                    'cn-beijing-inner'    => 'location.aliyuncs.com',
+                    'cn-shenzhen'         => 'location.aliyuncs.com',
+                    'cn-qingdao'          => 'location.aliyuncs.com',
+                    'cn-beijing'          => 'location.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'location.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'location.aliyuncs.com',
+                    'ap-southeast-1'      => 'location.aliyuncs.com',
+                ],
+            'chargingservice' =>
+                [
+                    'us-east-1'           => 'chargingservice.aliyuncs.com',
+                    'cn-hongkong'         => 'chargingservice.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'chargingservice.aliyuncs.com',
+                    'cn-shanghai'         => 'chargingservice.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'chargingservice.aliyuncs.com',
+                    'us-west-1'           => 'chargingservice.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'chargingservice.aliyuncs.com',
+                    'cn-hangzhou'         => 'chargingservice.aliyuncs.com',
+                    'cn-beijing-inner'    => 'chargingservice.aliyuncs.com',
+                    'cn-beijing'          => 'chargingservice.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'chargingservice.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'chargingservice.aliyuncs.com',
+                    'ap-southeast-1'      => 'chargingservice.aliyuncs.com',
+                ],
+            'msg'             =>
+                [
+                    'us-east-1'           => 'msg-inner.aliyuncs.com',
+                    'cn-hongkong'         => 'msg-inner.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'msg-inner.aliyuncs.com',
+                    'cn-shanghai'         => 'msg-inner.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'msg-inner.aliyuncs.com',
+                    'us-west-1'           => 'msg-inner.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'msg-inner.aliyuncs.com',
+                    'cn-hangzhou'         => 'msg-inner.aliyuncs.com',
+                    'cn-beijing-inner'    => 'msg-inner.aliyuncs.com',
+                    'cn-beijing'          => 'msg-inner.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'msg-inner.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'msg-inner.aliyuncs.com',
+                    'ap-southeast-1'      => 'msg-inner.aliyuncs.com',
+                ],
+            'commondriver'    =>
+                [
+                    'us-east-1'           => 'common.driver.aliyuncs.com',
+                    'cn-hongkong'         => 'common.driver.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'common.driver.aliyuncs.com',
+                    'cn-shanghai'         => 'common.driver.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'common.driver.aliyuncs.com',
+                    'us-west-1'           => 'common.driver.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'common.driver.aliyuncs.com',
+                    'cn-hangzhou'         => 'common.driver.aliyuncs.com',
+                    'cn-beijing-inner'    => 'common.driver.aliyuncs.com',
+                    'cn-shenzhen'         => 'common.driver.aliyuncs.com',
+                    'cn-qingdao'          => 'common.driver.aliyuncs.com',
+                    'cn-beijing'          => 'common.driver.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'common.driver.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'common.driver.aliyuncs.com',
+                    'ap-southeast-1'      => 'common.driver.aliyuncs.com',
+                ],
+            'r-kvstore'       =>
+                [
+                    'us-east-1'           => 'r-kvstore-cn-hangzhou.aliyuncs.com',
+                    'cn-hongkong'         => 'r-kvstore-cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'r-kvstore-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'         => 'r-kvstore-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'r-kvstore-cn-hangzhou.aliyuncs.com',
+                    'us-west-1'           => 'r-kvstore-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'r-kvstore-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou'         => 'r-kvstore-cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'    => 'r-kvstore-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'         => 'r-kvstore-cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao'          => 'r-kvstore-cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'          => 'r-kvstore-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'r-kvstore-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'r-kvstore-cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'      => 'r-kvstore-cn-hangzhou.aliyuncs.com',
+                ],
+            'bss'             =>
+                [
+                    'us-east-1'           => 'bss.aliyuncs.com',
+                    'cn-hongkong'         => 'bss.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'bss.aliyuncs.com',
+                    'cn-shanghai'         => 'bss.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'bss.aliyuncs.com',
+                    'us-west-1'           => 'bss.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'bss.aliyuncs.com',
+                    'cn-hangzhou'         => 'bss.aliyuncs.com',
+                    'cn-beijing-inner'    => 'bss.aliyuncs.com',
+                    'cn-shenzhen'         => 'bss.aliyuncs.com',
+                    'cn-qingdao'          => 'bss.aliyuncs.com',
+                    'cn-beijing'          => 'bss.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'bss.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'bss.aliyuncs.com',
+                    'ap-southeast-1'      => 'bss.aliyuncs.com',
+                ],
+            'workorder'       =>
+                [
+                    'us-east-1'           => 'workorder.aliyuncs.com',
+                    'cn-hongkong'         => 'workorder.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'workorder.aliyuncs.com',
+                    'cn-shanghai'         => 'workorder.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'workorder.aliyuncs.com',
+                    'us-west-1'           => 'workorder.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'workorder.aliyuncs.com',
+                    'cn-hangzhou'         => 'workorder.aliyuncs.com',
+                    'cn-beijing-inner'    => 'workorder.aliyuncs.com',
+                    'cn-beijing'          => 'workorder.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'workorder.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'workorder.aliyuncs.com',
+                    'ap-southeast-1'      => 'workorder.aliyuncs.com',
+                ],
+            'ocs'             =>
+                [
+                    'us-east-1'           => 'm-kvstore.aliyuncs.com',
+                    'cn-hongkong'         => 'm-kvstore.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'm-kvstore.aliyuncs.com',
+                    'cn-shanghai'         => 'm-kvstore.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'm-kvstore.aliyuncs.com',
+                    'us-west-1'           => 'm-kvstore.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'm-kvstore.aliyuncs.com',
+                    'cn-hangzhou'         => 'm-kvstore.aliyuncs.com',
+                    'cn-beijing-inner'    => 'm-kvstore.aliyuncs.com',
+                    'cn-shenzhen'         => 'm-kvstore.aliyuncs.com',
+                    'cn-qingdao'          => 'm-kvstore.aliyuncs.com',
+                    'cn-beijing'          => 'm-kvstore.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'm-kvstore.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'm-kvstore.aliyuncs.com',
+                    'ap-southeast-1'      => 'm-kvstore.aliyuncs.com',
+                ],
+            'yundun'          =>
+                [
+                    'us-east-1'           => 'yundun-cn-hangzhou.aliyuncs.com',
+                    'cn-hongkong'         => 'yundun-cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'yundun-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'         => 'yundun-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'yundun-cn-hangzhou.aliyuncs.com',
+                    'us-west-1'           => 'yundun-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'yundun-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou'         => 'yundun-cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'    => 'yundun-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'         => 'yundun-cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao'          => 'yundun-cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'          => 'yundun-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'yundun-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'yundun-cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'      => 'yundun-cn-hangzhou.aliyuncs.com',
+                ],
+            'ubsms-inner'     =>
+                [
+                    'us-east-1'           => 'ubsms-inner.aliyuncs.com',
+                    'cn-hongkong'         => 'ubsms-inner.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'ubsms-inner.aliyuncs.com',
+                    'cn-shanghai'         => 'ubsms-inner.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'ubsms-inner.aliyuncs.com',
+                    'us-west-1'           => 'ubsms-inner.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'ubsms-inner.aliyuncs.com',
+                    'cn-hangzhou'         => 'ubsms-inner.aliyuncs.com',
+                    'cn-beijing-inner'    => 'ubsms-inner.aliyuncs.com',
+                    'cn-shenzhen'         => 'ubsms-inner.aliyuncs.com',
+                    'cn-qingdao'          => 'ubsms-inner.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'          => 'ubsms-inner.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'ubsms-inner.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'ubsms-inner.aliyuncs.com',
+                    'ap-southeast-1'      => 'ubsms-inner.aliyuncs.com',
+                ],
+            'dm'              =>
+                [
+                    'us-east-1'           => 'dm.aliyuncs.com',
+                    'cn-hongkong'         => 'dm.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'dm.aliyuncs.com',
+                    'cn-shanghai'         => 'dm.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'dm.aliyuncs.com',
+                    'us-west-1'           => 'dm.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'dm.aliyuncs.com',
+                    'cn-hangzhou'         => 'dm.aliyuncs.com',
+                    'cn-beijing-inner'    => 'dm.aliyuncs.com',
+                    'cn-shenzhen'         => 'dm.aliyuncs.com',
+                    'cn-qingdao'          => 'dm.aliyuncs.com',
+                    'cn-beijing'          => 'dm.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'dm.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'dm.aliyuncs.com',
+                    'ap-southeast-1'      => 'dm.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2'      => 'dm.ap-southeast-2.aliyuncs.com',
+                ],
+            'green'           =>
+                [
+                    'us-east-1'           => 'green.aliyuncs.com',
+                    'cn-hongkong'         => 'green.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'green.aliyuncs.com',
+                    'cn-shanghai'         => 'green.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'green.aliyuncs.com',
+                    'us-west-1'           => 'green.us-west-1.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'green.aliyuncs.com',
+                    'cn-hangzhou'         => 'green.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'    => 'green.aliyuncs.com',
+                    'cn-shenzhen'         => 'green.cn-shenzhen.aliyuncs.com',
+                    'cn-qingdao'          => 'green.aliyuncs.com',
+                    'cn-beijing'          => 'green.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'green.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'green.aliyuncs.com',
+                    'ap-southeast-1'      => 'green.ap-southeast-1.aliyuncs.com',
+                ],
+            'risk'            =>
+                [
+                    'us-east-1'           => 'risk-cn-hangzhou.aliyuncs.com',
+                    'cn-hongkong'         => 'risk-cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'risk-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'         => 'risk-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'risk-cn-hangzhou.aliyuncs.com',
+                    'us-west-1'           => 'risk-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'risk-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou'         => 'risk-cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'    => 'risk-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'         => 'risk-cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao'          => 'risk-cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'          => 'risk-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'risk-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'risk-cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'      => 'risk-cn-hangzhou.aliyuncs.com',
+                ],
+            'oceanbase'       =>
+                [
+                    'us-east-1'             => 'oceanbase.aliyuncs.com',
+                    'cn-hongkong'           => 'oceanbase.aliyuncs.com',
+                    'cn-qingdao-cm9'        => 'oceanbase.aliyuncs.com',
+                    'cn-shanghai'           => 'oceanbasepro-share.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen-inner'     => 'oceanbase.aliyuncs.com',
+                    'us-west-1'             => 'oceanbase.aliyuncs.com',
+                    'cn-shanghai-inner'     => 'oceanbase.aliyuncs.com',
+                    'cn-hangzhou'           => 'oceanbasepro-share.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'      => 'oceanbase.aliyuncs.com',
+                    'cn-shenzhen'           => 'oceanbase.aliyuncs.com',
+                    'cn-qingdao'            => 'oceanbase.aliyuncs.com',
+                    'cn-beijing'            => 'oceanbasepro-share.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou-d'         => 'oceanbase.aliyuncs.com',
+                    'cn-shanghai-et2-b01'   => 'oceanbase.aliyuncs.com',
+                    'ap-southeast-1'        => 'oceanbasepro-share.ap-southeast-1.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'oceanbasepro-share.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'oceanbasepro-share.cn-hangzhou.aliyuncs.com',
+                ],
+            'msc'             =>
+                [
+                    'us-east-1'           => 'msc-inner.aliyuncs.com',
+                    'cn-hongkong'         => 'msc-inner.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'msc-inner.aliyuncs.com',
+                    'cn-shanghai'         => 'msc-inner.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'msc-inner.aliyuncs.com',
+                    'us-west-1'           => 'msc-inner.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'msc-inner.aliyuncs.com',
+                    'cn-hangzhou'         => 'msc-inner.aliyuncs.com',
+                    'cn-beijing-inner'    => 'msc-inner.aliyuncs.com',
+                    'cn-beijing'          => 'msc-inner.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'msc-inner.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'msc-inner.aliyuncs.com',
+                    'ap-southeast-1'      => 'msc-inner.aliyuncs.com',
+                ],
+            'yundunhsm'       =>
+                [
+                    'us-east-1'           => 'yundunhsm.aliyuncs.com',
+                    'cn-hongkong'         => 'yundunhsm.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'yundunhsm.aliyuncs.com',
+                    'cn-shanghai'         => 'yundunhsm.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'yundunhsm.aliyuncs.com',
+                    'us-west-1'           => 'yundunhsm.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'yundunhsm.aliyuncs.com',
+                    'cn-hangzhou'         => 'yundunhsm.aliyuncs.com',
+                    'cn-beijing-inner'    => 'yundunhsm.aliyuncs.com',
+                    'cn-beijing'          => 'yundunhsm.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'yundunhsm.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'yundunhsm.aliyuncs.com',
+                    'ap-southeast-1'      => 'yundunhsm.aliyuncs.com',
+                ],
+            'iot'             =>
+                [
+                    'cn-hongkong'         => 'iot.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'iot.aliyuncs.com',
+                    'cn-shanghai'         => 'iot.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'iot.aliyuncs.com',
+                    'us-west-1'           => 'iot.us-west-1.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'iot.aliyuncs.com',
+                    'cn-hangzhou'         => 'iot.aliyuncs.com',
+                    'cn-beijing-inner'    => 'iot.aliyuncs.com',
+                    'cn-shenzhen'         => 'iot.aliyuncs.com',
+                    'cn-qingdao'          => 'iot.aliyuncs.com',
+                    'cn-beijing'          => 'iot.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'iot.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'iot.aliyuncs.com',
+                    'ap-southeast-1'      => 'iot.ap-southeast-1.aliyuncs.com',
+                    'ap-northeast-1'      => 'iot.ap-northeast-1.aliyuncs.com',
+                    'us-east-1'           => 'iot.us-east-1.aliyuncs.com',
+                    'eu-central-1'        => 'iot.eu-central-1.aliyuncs.com',
+                ],
+            'oms'             =>
+                [
+                    'us-east-1'           => 'oms.aliyuncs.com',
+                    'cn-hongkong'         => 'oms.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'oms.aliyuncs.com',
+                    'cn-shanghai'         => 'oms.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'oms.aliyuncs.com',
+                    'us-west-1'           => 'oms.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'oms.aliyuncs.com',
+                    'cn-hangzhou'         => 'oms.aliyuncs.com',
+                    'cn-beijing-inner'    => 'oms.aliyuncs.com',
+                    'cn-shenzhen'         => 'oms.aliyuncs.com',
+                    'cn-qingdao'          => 'oms.aliyuncs.com',
+                    'cn-beijing'          => 'oms.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'oms.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'oms.aliyuncs.com',
+                    'ap-southeast-1'      => 'oms.aliyuncs.com',
+                ],
+            'live'            =>
+                [
+                    'us-east-1'           => 'live.aliyuncs.com',
+                    'cn-hongkong'         => 'live.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'live.aliyuncs.com',
+                    'cn-shanghai'         => 'live.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'live.aliyuncs.com',
+                    'us-west-1'           => 'live.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'live.aliyuncs.com',
+                    'cn-hangzhou'         => 'live.aliyuncs.com',
+                    'cn-beijing-inner'    => 'live.aliyuncs.com',
+                    'cn-shenzhen'         => 'live.aliyuncs.com',
+                    'cn-qingdao'          => 'live.aliyuncs.com',
+                    'cn-beijing'          => 'live.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'live.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'live.aliyuncs.com',
+                    'ap-southeast-1'      => 'live.aliyuncs.com',
+                    'ap-northeast-1'      => 'live.aliyuncs.com',
+                    'eu-central-1'        => 'live.aliyuncs.com',
+                    'ap-southeast-5'      => 'live.aliyuncs.com',
+                    'ap-south-1'          => 'live.aliyuncs.com',
+                ],
+            'ubsms'           =>
+                [
+                    'us-east-1'           => 'ubsms.aliyuncs.com',
+                    'cn-hongkong'         => 'ubsms.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'ubsms.aliyuncs.com',
+                    'cn-shanghai'         => 'ubsms.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'ubsms.aliyuncs.com',
+                    'us-west-1'           => 'ubsms.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'ubsms.aliyuncs.com',
+                    'cn-hangzhou'         => 'ubsms.aliyuncs.com',
+                    'cn-beijing-inner'    => 'ubsms.aliyuncs.com',
+                    'cn-shenzhen'         => 'ubsms.aliyuncs.com',
+                    'cn-qingdao'          => 'ubsms.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'          => 'ubsms.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'ubsms.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'ubsms.aliyuncs.com',
+                    'ap-southeast-1'      => 'ubsms.aliyuncs.com',
+                ],
+            'alert'           =>
+                [
+                    'us-east-1'           => 'alert.aliyuncs.com',
+                    'cn-hongkong'         => 'alert.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'alert.aliyuncs.com',
+                    'cn-shanghai'         => 'alert.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'alert.aliyuncs.com',
+                    'us-west-1'           => 'alert.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'alert.aliyuncs.com',
+                    'cn-hangzhou'         => 'alert.aliyuncs.com',
+                    'cn-beijing-inner'    => 'alert.aliyuncs.com',
+                    'cn-shenzhen'         => 'alert.aliyuncs.com',
+                    'cn-qingdao'          => 'alert.aliyuncs.com',
+                    'cn-beijing'          => 'alert.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'alert.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'alert.aliyuncs.com',
+                    'ap-southeast-1'      => 'alert.aliyuncs.com',
+                ],
+            'ace'             =>
+                [
+                    'us-east-1'           => 'ace.cn-hangzhou.aliyuncs.com',
+                    'cn-hongkong'         => 'ace.cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'ace.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'         => 'ace.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'ace.cn-hangzhou.aliyuncs.com',
+                    'us-west-1'           => 'ace.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'ace.cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou'         => 'ace.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'    => 'ace.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'         => 'ace.cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao'          => 'ace.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'          => 'ace.cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'ace.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'ace.cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'      => 'ace.cn-hangzhou.aliyuncs.com',
+                ],
+            'ams'             =>
+                [
+                    'us-east-1'           => 'ams.aliyuncs.com',
+                    'cn-hongkong'         => 'ams.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'ams.aliyuncs.com',
+                    'cn-shanghai'         => 'ams.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'ams.aliyuncs.com',
+                    'us-west-1'           => 'ams.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'ams.aliyuncs.com',
+                    'cn-hangzhou'         => 'ams.aliyuncs.com',
+                    'cn-beijing-inner'    => 'ams.aliyuncs.com',
+                    'cn-beijing'          => 'ams.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'ams.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'ams.aliyuncs.com',
+                    'ap-southeast-1'      => 'ams.aliyuncs.com',
+                ],
+            'ros'             =>
+                [
+                    'us-east-1'           => 'ros.aliyuncs.com',
+                    'cn-hongkong'         => 'ros.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'ros.aliyuncs.com',
+                    'cn-shanghai'         => 'ros.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'ros.aliyuncs.com',
+                    'us-west-1'           => 'ros.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'ros.aliyuncs.com',
+                    'cn-hangzhou'         => 'ros.aliyuncs.com',
+                    'cn-beijing-inner'    => 'ros.aliyuncs.com',
+                    'cn-shenzhen'         => 'ros.aliyuncs.com',
+                    'cn-qingdao'          => 'ros.aliyuncs.com',
+                    'cn-beijing'          => 'ros.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'ros.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'ros.aliyuncs.com',
+                    'ap-southeast-1'      => 'ros.aliyuncs.com',
+                ],
+            'pts'             =>
+                [
+                    'us-east-1'           => 'pts.aliyuncs.com',
+                    'cn-hongkong'         => 'pts.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'pts.aliyuncs.com',
+                    'cn-shanghai'         => 'pts.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'pts.aliyuncs.com',
+                    'us-west-1'           => 'pts.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'pts.aliyuncs.com',
+                    'cn-hangzhou'         => 'pts.aliyuncs.com',
+                    'cn-beijing-inner'    => 'pts.aliyuncs.com',
+                    'cn-shenzhen'         => 'pts.aliyuncs.com',
+                    'cn-qingdao'          => 'pts.aliyuncs.com',
+                    'cn-beijing'          => 'pts.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'pts.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'pts.aliyuncs.com',
+                    'ap-southeast-1'      => 'pts.aliyuncs.com',
+                ],
+            'qualitycheck'    =>
+                [
+                    'us-east-1'           => 'qualitycheck.aliyuncs.com',
+                    'cn-hongkong'         => 'qualitycheck.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'qualitycheck.aliyuncs.com',
+                    'cn-shanghai'         => 'qualitycheck.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'qualitycheck.aliyuncs.com',
+                    'us-west-1'           => 'qualitycheck.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'qualitycheck.aliyuncs.com',
+                    'cn-hangzhou'         => 'qualitycheck.aliyuncs.com',
+                    'cn-beijing-inner'    => 'qualitycheck.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'qualitycheck.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'qualitycheck.aliyuncs.com',
+                    'ap-southeast-1'      => 'qualitycheck.aliyuncs.com',
+                ],
+            'm-kvstore'       =>
+                [
+                    'us-east-1'           => 'm-kvstore.aliyuncs.com',
+                    'cn-hongkong'         => 'm-kvstore.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'm-kvstore.aliyuncs.com',
+                    'cn-shanghai'         => 'm-kvstore.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'm-kvstore.aliyuncs.com',
+                    'us-west-1'           => 'm-kvstore.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'm-kvstore.aliyuncs.com',
+                    'cn-hangzhou'         => 'm-kvstore.aliyuncs.com',
+                    'cn-beijing-inner'    => 'm-kvstore.aliyuncs.com',
+                    'cn-shenzhen'         => 'm-kvstore.aliyuncs.com',
+                    'cn-qingdao'          => 'm-kvstore.aliyuncs.com',
+                    'cn-beijing'          => 'm-kvstore.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'm-kvstore.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'm-kvstore.aliyuncs.com',
+                    'ap-southeast-1'      => 'm-kvstore.aliyuncs.com',
+                ],
+            'highddos'        =>
+                [
+                    'us-east-1'           => 'yd-highddos-cn-hangzhou.aliyuncs.com',
+                    'cn-hongkong'         => 'yd-highddos-cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'yd-highddos-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'         => 'yd-highddos-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'yd-highddos-cn-hangzhou.aliyuncs.com',
+                    'us-west-1'           => 'yd-highddos-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'yd-highddos-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou'         => 'yd-highddos-cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'    => 'yd-highddos-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'         => 'yd-highddos-cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao'          => 'yd-highddos-cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'          => 'yd-highddos-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'yd-highddos-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'yd-highddos-cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'      => 'yd-highddos-cn-hangzhou.aliyuncs.com',
+                ],
+            'cmssitemonitor'  =>
+                [
+                    'us-east-1'           => 'sitemonitor.aliyuncs.com',
+                    'cn-hongkong'         => 'sitemonitor.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'sitemonitor.aliyuncs.com',
+                    'cn-shanghai'         => 'sitemonitor.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'sitemonitor.aliyuncs.com',
+                    'us-west-1'           => 'sitemonitor.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'sitemonitor.aliyuncs.com',
+                    'cn-hangzhou'         => 'sitemonitor.aliyuncs.com',
+                    'cn-beijing-inner'    => 'sitemonitor.aliyuncs.com',
+                    'cn-shenzhen'         => 'sitemonitor.aliyuncs.com',
+                    'cn-qingdao'          => 'sitemonitor.aliyuncs.com',
+                    'cn-beijing'          => 'sitemonitor.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'sitemonitor.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'sitemonitor.aliyuncs.com',
+                    'ap-southeast-1'      => 'sitemonitor.aliyuncs.com',
+                ],
+            'batchcompute'    =>
+                [
+                    'us-east-1'           => 'batchCompute.us-east-1.aliyuncs.com',
+                    'cn-hongkong'         => 'batchCompute.cn-hongkong.aliyuncs.com',
+                    'cn-shanghai'         => 'batchCompute.cn-shanghai.aliyuncs.com',
+                    'us-west-1'           => 'batchCompute.us-west-1.aliyuncs.com',
+                    'cn-hangzhou'         => 'batchCompute.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'         => 'batchcompute.cn-shenzhen.aliyuncs.com',
+                    'cn-qingdao'          => 'batchcompute.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'          => 'batchCompute.cn-beijing.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'batchCompute.cn-shanghai-et2-b01.aliyuncs.com',
+                    'ap-southeast-1'      => 'batchCompute.ap-southeast-1.aliyuncs.com',
+                ],
+            'cf'              =>
+                [
+                    'us-east-1'           => 'cf.aliyuncs.com',
+                    'cn-hongkong'         => 'cf.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'cf.aliyuncs.com',
+                    'cn-shanghai'         => 'cf.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'cf.aliyuncs.com',
+                    'us-west-1'           => 'cf.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'cf.aliyuncs.com',
+                    'cn-hangzhou'         => 'cf.aliyuncs.com',
+                    'cn-beijing-inner'    => 'cf.aliyuncs.com',
+                    'cn-shenzhen'         => 'cf.aliyuncs.com',
+                    'cn-qingdao'          => 'cf.aliyuncs.com',
+                    'cn-beijing'          => 'cf.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'cf.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'cf.aliyuncs.com',
+                    'ap-southeast-1'      => 'cf.aliyuncs.com',
+                ],
+            'drds'            =>
+                [
+                    'us-east-1'           => 'drds.aliyuncs.com',
+                    'cn-hongkong'         => 'drds.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'drds.aliyuncs.com',
+                    'cn-shanghai'         => 'drds.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'drds.aliyuncs.com',
+                    'us-west-1'           => 'drds.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'drds.aliyuncs.com',
+                    'cn-hangzhou'         => 'drds.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'    => 'drds.aliyuncs.com',
+                    'cn-shenzhen'         => 'drds.aliyuncs.com',
+                    'cn-qingdao'          => 'drds.aliyuncs.com',
+                    'cn-beijing'          => 'drds.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'drds.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'drds.aliyuncs.com',
+                    'ap-southeast-1'      => 'drds.aliyuncs.com',
+                ],
+            'acs'             =>
+                [
+                    'us-east-1'           => 'acs.aliyun-inc.com',
+                    'cn-hongkong'         => 'acs.aliyun-inc.com',
+                    'cn-shanghai'         => 'acs.aliyun-inc.com',
+                    'us-west-1'           => 'acs.aliyun-inc.com',
+                    'cn-hangzhou'         => 'acs.aliyun-inc.com',
+                    'cn-shenzhen'         => 'acs.aliyun-inc.com',
+                    'cn-qingdao'          => 'acs.aliyun-inc.com',
+                    'cn-beijing'          => 'acs.aliyun-inc.com',
+                    'cn-shanghai-et2-b01' => 'acs.aliyun-inc.com',
+                ],
+            'httpdns'         =>
+                [
+                    'us-east-1'           => 'httpdns-api.aliyuncs.com',
+                    'cn-hongkong'         => 'httpdns-api.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'httpdns-api.aliyuncs.com',
+                    'cn-shanghai'         => 'httpdns-api.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'httpdns-api.aliyuncs.com',
+                    'us-west-1'           => 'httpdns-api.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'httpdns-api.aliyuncs.com',
+                    'cn-hangzhou'         => 'httpdns-api.aliyuncs.com',
+                    'cn-beijing-inner'    => 'httpdns-api.aliyuncs.com',
+                    'cn-shenzhen'         => 'httpdns-api.aliyuncs.com',
+                    'cn-qingdao'          => 'httpdns-api.aliyuncs.com',
+                    'cn-beijing'          => 'httpdns-api.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'httpdns-api.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'httpdns-api.aliyuncs.com',
+                    'ap-southeast-1'      => 'httpdns-api.aliyuncs.com',
+                ],
+            'location-inner'  =>
+                [
+                    'us-east-1'           => 'location-inner.aliyuncs.com',
+                    'cn-hongkong'         => 'location-inner.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'location-inner.aliyuncs.com',
+                    'cn-shanghai'         => 'location-inner.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'location-inner.aliyuncs.com',
+                    'us-west-1'           => 'location-inner.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'location-inner.aliyuncs.com',
+                    'cn-hangzhou'         => 'location-inner.aliyuncs.com',
+                    'cn-beijing-inner'    => 'location-inner.aliyuncs.com',
+                    'cn-shenzhen'         => 'location-inner.aliyuncs.com',
+                    'cn-qingdao'          => 'location-inner.aliyuncs.com',
+                    'cn-beijing'          => 'location-inner.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'location-inner.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'location-inner.aliyuncs.com',
+                    'ap-southeast-1'      => 'location-inner.aliyuncs.com',
+                ],
+            'aas'             =>
+                [
+                    'us-east-1'           => 'aas.aliyuncs.com',
+                    'cn-hongkong'         => 'aas.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'aas.aliyuncs.com',
+                    'cn-shanghai'         => 'aas.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'aas.aliyuncs.com',
+                    'us-west-1'           => 'aas.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'aas.aliyuncs.com',
+                    'cn-hangzhou'         => 'aas.aliyuncs.com',
+                    'cn-beijing-inner'    => 'aas.aliyuncs.com',
+                    'cn-shenzhen'         => 'aas.aliyuncs.com',
+                    'cn-qingdao'          => 'aas.aliyuncs.com',
+                    'cn-beijing'          => 'aas.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'aas.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'aas.aliyuncs.com',
+                    'ap-southeast-1'      => 'aas.aliyuncs.com',
+                ],
+            'sts'             =>
+                [
+                    'cn-hangzhou'    => 'sts.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'sts.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'sts.cn-shenzhen.aliyuncs.com',
+                    'cn-qingdao'     => 'sts.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'     => 'sts.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou' => 'sts.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'   => 'sts.cn-huhehaote.aliyuncs.com',
+                    'cn-hongkong'    => 'sts.cn-hongkong.aliyuncs.com',
+                    'cn-chengdu'     => 'sts.cn-chengdu.aliyuncs.com',
+                    'ap-southeast-1' => 'sts.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2' => 'sts.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3' => 'sts.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5' => 'sts.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1' => 'sts.ap-northeast-1.aliyuncs.com',
+                    'ap-south-1'     => 'sts.ap-south-1.aliyuncs.com',
+                    'us-west-1'      => 'sts.us-west-1.aliyuncs.com',
+                    'us-east-1'      => 'sts.us-east-1.aliyuncs.com',
+                    'eu-central-1'   => 'sts.eu-central-1.aliyuncs.com',
+                    'me-east-1'      => 'sts.me-east-1.aliyuncs.com',
+                    'eu-west-1'      => 'sts.eu-west-1.aliyuncs.com',
+                ],
+            'dts'             =>
+                [
+                    'us-east-1'             => 'dts.aliyuncs.com',
+                    'cn-hongkong'           => 'dts.aliyuncs.com',
+                    'cn-qingdao-cm9'        => 'dts.aliyuncs.com',
+                    'cn-shanghai'           => 'dts.aliyuncs.com',
+                    'cn-shenzhen-inner'     => 'dts.aliyuncs.com',
+                    'us-west-1'             => 'dts.aliyuncs.com',
+                    'cn-shanghai-inner'     => 'dts.aliyuncs.com',
+                    'cn-hangzhou'           => 'dts.aliyuncs.com',
+                    'cn-beijing-inner'      => 'dts.aliyuncs.com',
+                    'cn-shenzhen'           => 'dts.aliyuncs.com',
+                    'cn-qingdao'            => 'dts.aliyuncs.com',
+                    'cn-beijing'            => 'dts.aliyuncs.com',
+                    'cn-hangzhou-d'         => 'dts.aliyuncs.com',
+                    'cn-shanghai-et2-b01'   => 'dts.aliyuncs.com',
+                    'ap-southeast-1'        => 'dts.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'dts.aliyuncs.com',
+                    'cn-huhehaote'          => 'dts.aliyuncs.com',
+                    'ap-southeast-2'        => 'dts.aliyuncs.com',
+                    'ap-southeast-3'        => 'dts.aliyuncs.com',
+                    'ap-southeast-5'        => 'dts.aliyuncs.com',
+                    'eu-west-1'             => 'dts.aliyuncs.com',
+                    'eu-central-1'          => 'dts.aliyuncs.com',
+                    'me-east-1'             => 'dts.aliyuncs.com',
+                    'ap-south-1'            => 'dts.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'dts.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'dts.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'dts.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'dts.aliyuncs.com',
+                    'cn-beijing-gov-1'      => 'dts.aliyuncs.com',
+                ],
+            'drc'             =>
+                [
+                    'us-east-1'           => 'drc.aliyuncs.com',
+                    'cn-hongkong'         => 'drc.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'drc.aliyuncs.com',
+                    'cn-shanghai'         => 'drc.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'drc.aliyuncs.com',
+                    'us-west-1'           => 'drc.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'drc.aliyuncs.com',
+                    'cn-hangzhou'         => 'drc.aliyuncs.com',
+                    'cn-beijing-inner'    => 'drc.aliyuncs.com',
+                    'cn-shenzhen'         => 'drc.aliyuncs.com',
+                    'cn-qingdao'          => 'drc.aliyuncs.com',
+                    'cn-beijing'          => 'drc.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'drc.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'drc.aliyuncs.com',
+                    'ap-southeast-1'      => 'drc.aliyuncs.com',
+                ],
+            'vpc-inner'       =>
+                [
+                    'us-east-1'           => 'vpc-inner.aliyuncs.com',
+                    'cn-hongkong'         => 'vpc-inner.aliyuncs.com',
+                    'cn-shanghai'         => 'vpc-inner.aliyuncs.com',
+                    'us-west-1'           => 'vpc-inner.aliyuncs.com',
+                    'cn-hangzhou'         => 'vpc-inner.aliyuncs.com',
+                    'cn-shenzhen'         => 'vpc-inner.aliyuncs.com',
+                    'cn-qingdao'          => 'vpc-inner.aliyuncs.com',
+                    'cn-beijing'          => 'vpc-inner.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'vpc-inner.aliyuncs.com',
+                ],
+            'crm'             =>
+                [
+                    'us-east-1'           => 'crm-cn-hangzhou.aliyuncs.com',
+                    'cn-hongkong'         => 'crm-cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'crm-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'         => 'crm-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'crm-cn-hangzhou.aliyuncs.com',
+                    'us-west-1'           => 'crm-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'crm-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou'         => 'crm-cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'    => 'crm-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'         => 'crm-cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao'          => 'crm-cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'          => 'crm-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'crm-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'crm-cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'      => 'crm-cn-hangzhou.aliyuncs.com',
+                ],
+            'domain'          =>
+                [
+                    'us-east-1'           => 'domain.aliyuncs.com',
+                    'cn-hongkong'         => 'domain.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'domain.aliyuncs.com',
+                    'cn-shanghai'         => 'domain.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'domain.aliyuncs.com',
+                    'us-west-1'           => 'domain.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'domain.aliyuncs.com',
+                    'cn-hangzhou'         => 'domain.aliyuncs.com',
+                    'cn-beijing-inner'    => 'domain.aliyuncs.com',
+                    'cn-shenzhen'         => 'domain.aliyuncs.com',
+                    'cn-qingdao'          => 'domain.aliyuncs.com',
+                    'cn-beijing'          => 'domain.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'domain.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'domain.aliyuncs.com',
+                    'ap-southeast-1'      => 'domain.aliyuncs.com',
+                ],
+            'ots'             =>
+                [
+                    'us-east-1'             => 'ots.us-east-1.aliyuncs.com',
+                    'cn-hongkong'           => 'ots.cn-hongkong.aliyuncs.com',
+                    'cn-qingdao-cm9'        => 'ots-pop.aliyuncs.com',
+                    'cn-shanghai'           => 'ots.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen-inner'     => 'ots-pop.aliyuncs.com',
+                    'us-west-1'             => 'ots.us-west-1.aliyuncs.com',
+                    'cn-shanghai-inner'     => 'ots-pop.aliyuncs.com',
+                    'cn-hangzhou'           => 'ots.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'      => 'ots-pop.aliyuncs.com',
+                    'cn-shenzhen'           => 'ots.cn-shenzhen.aliyuncs.com',
+                    'cn-qingdao'            => 'ots.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'            => 'ots.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou-d'         => 'ots-pop.aliyuncs.com',
+                    'cn-shanghai-et2-b01'   => 'ots-pop.aliyuncs.com',
+                    'ap-southeast-1'        => 'ots.ap-southeast-1.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'ots.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'ots.cn-huhehaote.aliyuncs.com',
+                    'ap-southeast-2'        => 'ots.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'ots.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'ots.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1'        => 'ots.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'ots.eu-west-1.aliyuncs.com',
+                    'eu-central-1'          => 'ots.eu-central-1.aliyuncs.com',
+                    'me-east-1'             => 'ots.me-east-1.aliyuncs.com',
+                    'ap-south-1'            => 'ots.ap-south-1.aliyuncs.com',
+                    'cn-chengdu'            => 'ots.cn-chengdu.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'ots.cn-shanghai-finance-1.aliyuncs.com',
+                ],
+            'oss'             =>
+                [
+                    'us-east-1'             => 'oss-cn-hangzhou.aliyuncs.com',
+                    'cn-hongkong'           => 'oss-cn-hongkong.aliyuncs.com',
+                    'cn-qingdao-cm9'        => 'oss-cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao-finance'    => 'oss-cn-qdjbp-a.aliyuncs.com',
+                    'cn-beijing-gov-1'      => 'oss-cn-haidian-a.aliyuncs.com',
+                    'cn-shanghai'           => 'oss-cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen-inner'     => 'oss-cn-hangzhou.aliyuncs.com',
+                    'us-west-1'             => 'oss-us-west-1.aliyuncs.com',
+                    'cn-shanghai-inner'     => 'oss-cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'oss-cn-hzjbp-b-console.aliyuncs.com',
+                    'cn-hangzhou'           => 'oss-cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'      => 'oss-cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'           => 'oss-cn-shenzhen.aliyuncs.com',
+                    'cn-qingdao'            => 'oss-cn-qingdao.aliyuncs.com',
+                    'oss-cn-bjzwy'          => 'oss-cn-bjzwy.aliyuncs.com',
+                    'cn-beijing'            => 'oss-cn-beijing.aliyuncs.com',
+                    'cn-hangzhou-d'         => 'oss-cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-et2-b01'   => 'oss-cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'        => 'oss-ap-southeast-1.aliyuncs.com',
+                    'cn-chengdu'            => 'oss-cn-chengdu.aliyuncs.com',
+                    'ap-northeast-1'        => 'oss-ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'oss-eu-west-1.aliyuncs.com',
+                    'me-east-1'             => 'oss-me-east-1.aliyuncs.com',
+                    'ap-south-1'            => 'oss-ap-south-1.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'oss-cn-shanghai-finance-1-internal.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'oss-cn-shenzhen-finance-1-internal.aliyuncs.com',
+                    'cn-huhehaote-nebula-1' => 'oss-cn-huhehaote-nebula-1.aliyuncs.com',
+                    'cn-zhengzhou-nebula-1' => 'oss-cn-zhengzhou-nebula-1.aliyuncs.com',
+                    'cn-heyuan'             => 'oss-cn-heyuan.aliyuncs.com',
+                    'cn-wulanchabu'         => 'oss-cn-wulanchabu.aliyuncs.com',
+                ],
+            'ram'             =>
+                [
+                    'global'              => 'ram.aliyuncs.com',
+                    'us-east-1'           => 'ram.aliyuncs.com',
+                    'cn-hongkong'         => 'ram.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'ram.aliyuncs.com',
+                    'cn-shanghai'         => 'ram.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'ram.aliyuncs.com',
+                    'us-west-1'           => 'ram.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'ram.aliyuncs.com',
+                    'cn-hangzhou'         => 'ram.aliyuncs.com',
+                    'cn-beijing-inner'    => 'ram.aliyuncs.com',
+                    'cn-shenzhen'         => 'ram.aliyuncs.com',
+                    'cn-qingdao'          => 'ram.aliyuncs.com',
+                    'cn-beijing'          => 'ram.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'ram.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'ram.aliyuncs.com',
+                    'ap-southeast-1'      => 'ram.aliyuncs.com',
+                ],
+            'sales'           =>
+                [
+                    'us-east-1'           => 'sales.cn-hangzhou.aliyuncs.com',
+                    'cn-hongkong'         => 'sales.cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'sales.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'         => 'sales.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'sales.cn-hangzhou.aliyuncs.com',
+                    'us-west-1'           => 'sales.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'sales.cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou'         => 'sales.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'    => 'sales.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'          => 'sales.cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'sales.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'sales.cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'      => 'sales.cn-hangzhou.aliyuncs.com',
+                ],
+            'ossadmin'        =>
+                [
+                    'us-east-1'           => 'oss-admin.aliyuncs.com',
+                    'cn-hongkong'         => 'oss-admin.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'oss-admin.aliyuncs.com',
+                    'cn-shanghai'         => 'oss-admin.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'oss-admin.aliyuncs.com',
+                    'us-west-1'           => 'oss-admin.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'oss-admin.aliyuncs.com',
+                    'cn-hangzhou'         => 'oss-admin.aliyuncs.com',
+                    'cn-beijing-inner'    => 'oss-admin.aliyuncs.com',
+                    'cn-shenzhen'         => 'oss-admin.aliyuncs.com',
+                    'cn-qingdao'          => 'oss-admin.aliyuncs.com',
+                    'cn-beijing'          => 'oss-admin.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'oss-admin.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'oss-admin.aliyuncs.com',
+                    'ap-southeast-1'      => 'oss-admin.aliyuncs.com',
+                ],
+            'alidns'          =>
+                [
+                    'us-east-1'           => 'alidns.aliyuncs.com',
+                    'cn-hongkong'         => 'alidns.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'alidns.aliyuncs.com',
+                    'cn-shanghai'         => 'alidns.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'alidns.aliyuncs.com',
+                    'us-west-1'           => 'alidns.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'alidns.aliyuncs.com',
+                    'cn-hangzhou'         => 'alidns.aliyuncs.com',
+                    'cn-beijing-inner'    => 'alidns.aliyuncs.com',
+                    'cn-shenzhen'         => 'alidns.aliyuncs.com',
+                    'cn-qingdao'          => 'alidns.aliyuncs.com',
+                    'cn-beijing'          => 'alidns.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'alidns.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'alidns.aliyuncs.com',
+                    'ap-southeast-1'      => 'alidns.aliyuncs.com',
+                ],
+            'ons'             =>
+                [
+                    'us-east-1'             => 'ons.us-east-1.aliyuncs.com',
+                    'cn-hongkong'           => 'ons.cn-hongkong.aliyuncs.com',
+                    'cn-qingdao-cm9'        => 'ons.aliyuncs.com',
+                    'cn-shanghai'           => 'ons.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen-inner'     => 'ons.aliyuncs.com',
+                    'us-west-1'             => 'ons.us-west-1.aliyuncs.com',
+                    'cn-shanghai-inner'     => 'ons.aliyuncs.com',
+                    'cn-hangzhou'           => 'ons.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'      => 'ons.aliyuncs.com',
+                    'cn-shenzhen'           => 'ons.cn-shenzhen.aliyuncs.com',
+                    'cn-qingdao'            => 'ons.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'            => 'ons.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou-d'         => 'ons.aliyuncs.com',
+                    'cn-shanghai-et2-b01'   => 'ons.aliyuncs.com',
+                    'ap-southeast-1'        => 'ons.ap-southeast-1.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'ons.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'ons.cn-huhehaote.aliyuncs.com',
+                    'ap-southeast-2'        => 'ons.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'ons.ap-southeast-3.aliyuncs.com',
+                    'ap-northeast-1'        => 'ons.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'ons.eu-west-1.aliyuncs.com',
+                    'eu-central-1'          => 'ons.eu-central-1.aliyuncs.com',
+                    'me-east-1'             => 'ons.me-east-1.aliyuncs.com',
+                    'ap-south-1'            => 'ons.ap-south-1.aliyuncs.com',
+                    'cn-chengdu'            => 'ons.cn-chengdu.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'ons.cn-hangzhou-finance.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'ons.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'ons.cn-shenzhen-finance-1.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'ons.cn-north-2-gov-1.aliyuncs.com',
+                    'ap-southeast-5'        => 'ons.ap-southeast-5.aliyuncs.com',
+                ],
+            'cdn'             =>
+                [
+                    'global'              => 'cdn.aliyuncs.com',
+                    'us-east-1'           => 'cdn.aliyuncs.com',
+                    'cn-hongkong'         => 'cdn.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'cdn.aliyuncs.com',
+                    'cn-shanghai'         => 'cdn.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'cdn.aliyuncs.com',
+                    'us-west-1'           => 'cdn.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'cdn.aliyuncs.com',
+                    'cn-hangzhou'         => 'cdn.aliyuncs.com',
+                    'cn-beijing-inner'    => 'cdn.aliyuncs.com',
+                    'cn-shenzhen'         => 'cdn.aliyuncs.com',
+                    'cn-qingdao'          => 'cdn.aliyuncs.com',
+                    'cn-beijing'          => 'cdn.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'cdn.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'cdn.aliyuncs.com',
+                    'ap-southeast-1'      => 'cdn.aliyuncs.com',
+                ],
+            'yundunddos'      =>
+                [
+                    'us-east-1'           => 'inner-yundun-ddos.cn-hangzhou.aliyuncs.com',
+                    'cn-hongkong'         => 'inner-yundun-ddos.cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'inner-yundun-ddos.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'         => 'inner-yundun-ddos.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'inner-yundun-ddos.cn-hangzhou.aliyuncs.com',
+                    'us-west-1'           => 'inner-yundun-ddos.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'inner-yundun-ddos.cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou'         => 'inner-yundun-ddos.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'    => 'inner-yundun-ddos.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'          => 'inner-yundun-ddos.cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'inner-yundun-ddos.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'inner-yundun-ddos.cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'      => 'inner-yundun-ddos.cn-hangzhou.aliyuncs.com',
+                ],
+            'kvstore'         =>
+                [
+                    'ap-northeast-1' => 'r-kvstore.ap-northeast-1.aliyuncs.com',
+                ],
+            'cloudapi'        =>
+                [
+                    'cn-hongkong'    => 'apigateway.cn-hongkong.aliyuncs.com',
+                    'cn-shanghai'    => 'apigateway.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou'    => 'apigateway.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'    => 'apigateway.cn-shenzhen.aliyuncs.com',
+                    'cn-qingdao'     => 'apigateway.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'     => 'apigateway.cn-beijing.aliyuncs.com',
+                    'ap-southeast-1' => 'apigateway.ap-southeast-1.aliyuncs.com',
+                ],
+            'mts'             =>
+                [
+                    'cn-hongkong'         => 'mts.cn-hongkong.aliyuncs.com',
+                    'cn-qingdao-cm9'      => 'mts.cn-qingdao.aliyuncs.com',
+                    'cn-shanghai'         => 'mts.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen-inner'   => 'mts.cn-shenzhen.aliyuncs.com',
+                    'us-west-1'           => 'mts.us-west-1.aliyuncs.com',
+                    'cn-shanghai-inner'   => 'mts.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou'         => 'mts.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing-inner'    => 'mts.cn-beijing.aliyuncs.com',
+                    'cn-shenzhen'         => 'mts.cn-shenzhen.aliyuncs.com',
+                    'cn-qingdao'          => 'mts.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'          => 'mts.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou-d'       => 'mts.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-et2-b01' => 'mts.cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'      => 'mts.ap-southeast-1.aliyuncs.com',
+                    'cn-zhangjiakou'      => 'mts.cn-zhangjiakou.aliyuncs.com',
+                    'ap-northeast-1'      => 'mts.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'           => 'mts.eu-west-1.aliyuncs.com',
+                    'eu-central-1'        => 'mts.eu-central-1.aliyuncs.com',
+                    'ap-south-1'          => 'mts.ap-south-1.aliyuncs.com',
+                    'ap-southeast-5'      => 'mts.ap-southeast-5.aliyuncs.com',
+                ],
+            'saf'             =>
+                [
+                    'cn-shanghai'      => 'saf.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou'      => 'saf.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'      => 'saf.cn-shenzhen.aliyuncs.com',
+                    'ap-southeast-1'   => 'saf.ap-southeast-1.aliyuncs.com',
+                    'cn-north-2-gov-1' => 'saf.cn-north-2-gov-1.aliyuncs.com',
+                    'cn-zhangjiakou'   => 'saf.cn-zhangjiakou.aliyuncs.com',
+                ],
+            'arms'            =>
+                [
+                    'cn-shanghai'    => 'arms.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou'    => 'arms.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'    => 'arms.cn-shenzhen.aliyuncs.com',
+                    'cn-beijing'     => 'arms.cn-beijing.aliyuncs.com',
+                    'cn-qingdao'     => 'arms.cn-qingdao.aliyuncs.com',
+                    'cn-zhangjiakou' => 'arms.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hongkong'    => 'arms.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1' => 'arms.ap-southeast-1.aliyuncs.com',
+                    'ap-south-1'     => 'arms.ap-south-1.aliyuncs.com',
+                ],
+            'apigateway'      =>
+                [
+                    'cn-shanghai'           => 'apigateway.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou'           => 'apigateway.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'           => 'apigateway.cn-shenzhen.aliyuncs.com',
+                    'cn-qingdao'            => 'apigateway.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'            => 'apigateway.cn-beijing.aliyuncs.com',
+                    'ap-southeast-1'        => 'apigateway.ap-southeast-1.aliyuncs.com',
+                    'cn-hongkong'           => 'apigateway.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-2'        => 'apigateway.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'apigateway.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'apigateway.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1'        => 'apigateway.ap-northeast-1.aliyuncs.com',
+                    'eu-central-1'          => 'apigateway.eu-central-1.aliyuncs.com',
+                    'ap-south-1'            => 'apigateway.ap-south-1.aliyuncs.com',
+                    'eu-west-1'             => 'apigateway.eu-west-1.aliyuncs.com',
+                    'me-east-1'             => 'apigateway.me-east-1.aliyuncs.com',
+                    'us-east-1'             => 'apigateway.us-east-1.aliyuncs.com',
+                    'us-west-1'             => 'apigateway.us-west-1.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'apigateway.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'apigateway.cn-huhehaote.aliyuncs.com',
+                    'cn-chengdu'            => 'apigateway.cn-chengdu.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'apigateway.cn-north-2-gov-1.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'apigateway.cn-hangzhou-finance.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'apigateway.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'apigateway.cn-shenzhen-finance-1.aliyuncs.com',
+                    'cn-shanghai-inner'     => 'apigateway.cn-shanghai-inner.aliyuncs.com',
+                    'cn-heyuan'             => 'apigateway.cn-heyuan.aliyuncs.com',
+                ],
+            'vod'             =>
+                [
+                    'cn-shanghai'      => 'vod.cn-shanghai.aliyuncs.com',
+                    'cn-beijing'       => 'vod.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou'      => 'vod.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'      => 'vod.cn-shenzhen.aliyuncs.com',
+                    'ap-southeast-1'   => 'vod.ap-southeast-1.aliyuncs.com',
+                    'eu-central-1'     => 'vod.eu-central-1.aliyuncs.com',
+                    'cn-zhangjiakou'   => 'vod.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hongkong'      => 'vod.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-5'   => 'vod.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1'   => 'vod.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'        => 'vod.eu-west-1.aliyuncs.com',
+                    'us-west-1'        => 'vod.us-west-1.aliyuncs.com',
+                    'ap-south-1'       => 'vod.ap-south-1.aliyuncs.com',
+                    'cn-north-2-gov-1' => 'vod.cn-north-2-gov-1.aliyuncs.com',
+                ],
+            'afs'             =>
+                [
+                    'cn-hangzhou' => 'afs.aliyuncs.com',
+                ],
+            'oas'             =>
+                [
+                    'cn-hangzhou' => 'cn-hangzhou.oas.aliyuncs.com',
+                    'cn-shenzhen' => 'cn-shenzhen.oas.aliyuncs.com',
+                    'cn-beijing'  => 'cn-beijing.oas.aliyuncs.com',
+                ],
+            'alikafka'        =>
+                [
+                    'cn-qingdao'            => 'alikafka.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'            => 'alikafka.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou'           => 'alikafka.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'alikafka.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'           => 'alikafka.cn-shenzhen.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'alikafka.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'alikafka.cn-huhehaote.aliyuncs.com',
+                    'cn-hongkong'           => 'alikafka.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1'        => 'alikafka.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-5'        => 'alikafka.ap-southeast-5.aliyuncs.com',
+                    'ap-south-1'            => 'alikafka.ap-south-1.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'alikafka.cn-hangzhou-finance.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'alikafka.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'alikafka.cn-shenzhen-finance-1.aliyuncs.com',
+                    'cn-chengdu'            => 'alikafka.cn-chengdu.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'alikafka.cn-north-2-gov-1.aliyuncs.com',
+                    'cn-heyuan'             => 'alikafka.cn-heyuan.aliyuncs.com',
+                    'ap-southeast-3'        => 'alikafka.ap-southeast-3.aliyuncs.com',
+                    'ap-northeast-1'        => 'alikafka.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'alikafka.eu-west-1.aliyuncs.com',
+                    'eu-central-1'          => 'alikafka.eu-central-1.aliyuncs.com',
+                ],
+            'cbn'             =>
+                [
+                    'cn-qingdao'                  => 'cbn.aliyuncs.com',
+                    'cn-beijing'                  => 'cbn.aliyuncs.com',
+                    'cn-zhangjiakou'              => 'cbn.aliyuncs.com',
+                    'cn-huhehaote'                => 'cbn.aliyuncs.com',
+                    'cn-hangzhou'                 => 'cbn.aliyuncs.com',
+                    'cn-shanghai'                 => 'cbn.aliyuncs.com',
+                    'cn-shenzhen'                 => 'cbn.aliyuncs.com',
+                    'cn-hongkong'                 => 'cbn.aliyuncs.com',
+                    'ap-southeast-1'              => 'cbn.aliyuncs.com',
+                    'ap-southeast-2'              => 'cbn.aliyuncs.com',
+                    'ap-southeast-3'              => 'cbn.aliyuncs.com',
+                    'ap-southeast-5'              => 'cbn.aliyuncs.com',
+                    'ap-northeast-1'              => 'cbn.aliyuncs.com',
+                    'eu-west-1'                   => 'cbn.aliyuncs.com',
+                    'us-west-1'                   => 'cbn.aliyuncs.com',
+                    'us-east-1'                   => 'cbn.aliyuncs.com',
+                    'eu-central-1'                => 'cbn.aliyuncs.com',
+                    'me-east-1'                   => 'cbn.aliyuncs.com',
+                    'ap-south-1'                  => 'cbn.aliyuncs.com',
+                    'cn-chengdu'                  => 'cbn.aliyuncs.com',
+                    'cn-shanghai-finance-1'       => 'cbn.aliyuncs.com',
+                    'cn-shenzhen-finance-1'       => 'cbn.aliyuncs.com',
+                    'ap-northeast-2-pop'          => 'cbn.aliyuncs.com',
+                    'cn-beijing-finance-pop'      => 'cbn.aliyuncs.com',
+                    'cn-hangzhou-internal-test-1' => 'cbn.aliyuncs.com',
+                    'cn-hangzhou-internal-test-2' => 'cbn.aliyuncs.com',
+                    'cn-hangzhou-internal-test-3' => 'cbn.aliyuncs.com',
+                    'cn-wuhan'                    => 'cbn.aliyuncs.com',
+                    'cn-heyuan'                   => 'cbn.aliyuncs.com',
+                    'cn-wulanchabu'               => 'cbn.aliyuncs.com',
+                    'cn-north-2-gov-1'            => 'cbn.aliyuncs.com',
+                ],
+            'onsvip'          =>
+                [
+                    'cn-qingdao'            => 'ons.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'            => 'ons.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou'           => 'ons.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'ons.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'           => 'ons.cn-shenzhen.aliyuncs.com',
+                    'ap-southeast-1'        => 'ons.ap-southeast-1.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'ons.cn-hangzhou-finance.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'ons.cn-shanghai-finance.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'ons.cn-shenzhen-finance.aliyuncs.com',
+                ],
+            'ddosbgp'         =>
+                [
+                    'cn-qingdao'     => 'ddosbgp.aliyuncs.com',
+                    'cn-beijing'     => 'ddosbgp.aliyuncs.com',
+                    'cn-zhangjiakou' => 'ddosbgp.aliyuncs.com',
+                    'cn-huhehaote'   => 'ddosbgp.aliyuncs.com',
+                    'cn-hangzhou'    => 'ddosbgp.aliyuncs.com',
+                    'cn-shanghai'    => 'ddosbgp.aliyuncs.com',
+                    'cn-shenzhen'    => 'ddosbgp.aliyuncs.com',
+                    'cn-hongkong'    => 'ddosbgp.cn-hongkong.aliyuncs.com',
+                    'us-west-1'      => 'ddosbgp.us-west-1.aliyuncs.com',
+                    'ap-southeast-1' => 'ddosbgp.ap-southeast-1.aliyuncs.com',
+                    'us-east-1'      => 'ddosbgp.us-east-1.aliyuncs.com',
+                    'cn-chengdu'     => 'ddosbgp.aliyuncs.com',
+                    'cn-heyuan'      => 'ddosbgp.aliyuncs.com',
+                    'cn-wulanchabu'  => 'ddosbgp.aliyuncs.com',
+                    'ap-southeast-2' => 'ddosbgp.aliyuncs.com',
+                    'ap-southeast-3' => 'ddosbgp.aliyuncs.com',
+                    'ap-southeast-5' => 'ddosbgp.aliyuncs.com',
+                    'ap-northeast-1' => 'ddosbgp.aliyuncs.com',
+                    'eu-west-1'      => 'ddosbgp.aliyuncs.com',
+                    'eu-central-1'   => 'ddosbgp.aliyuncs.com',
+                    'me-east-1'      => 'ddosbgp.aliyuncs.com',
+                    'ap-south-1'     => 'ddosbgp.aliyuncs.com',
+                ],
+            'ehs'             =>
+                [
+                    'cn-qingdao'     => 'ehpc.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'     => 'ehpc.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou' => 'ehpc.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'   => 'ehpc.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'    => 'ehpc.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'ehpc.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'ehpc.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'    => 'ehpc.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1' => 'ehpc.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2' => 'ehpc.ap-southeast-2.aliyuncs.com',
+                    'eu-central-1'   => 'ehpc.eu-central-1.aliyuncs.com',
+                    'ap-northeast-1' => 'ehpc.ap-northeast-1.aliyuncs.com',
+                ],
+            'redisa'          =>
+                [
+                    'cn-qingdao'            => 'r-kvstore.aliyuncs.com',
+                    'cn-beijing'            => 'r-kvstore.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'r-kvstore.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'r-kvstore.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'           => 'r-kvstore.aliyuncs.com',
+                    'cn-shanghai'           => 'r-kvstore.aliyuncs.com',
+                    'cn-shenzhen'           => 'r-kvstore.aliyuncs.com',
+                    'cn-hongkong'           => 'r-kvstore.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1'        => 'r-kvstore.aliyuncs.com',
+                    'ap-southeast-2'        => 'r-kvstore.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'r-kvstore.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'r-kvstore.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1'        => 'r-kvstore.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'r-kvstore.eu-west-1.aliyuncs.com',
+                    'us-west-1'             => 'r-kvstore.aliyuncs.com',
+                    'us-east-1'             => 'r-kvstore.aliyuncs.com',
+                    'eu-central-1'          => 'r-kvstore.eu-central-1.aliyuncs.com',
+                    'me-east-1'             => 'r-kvstore.me-east-1.aliyuncs.com',
+                    'ap-south-1'            => 'r-kvstore.ap-south-1.aliyuncs.com',
+                    'cn-chengdu'            => 'r-kvstore.cn-chengdu.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'r-kvstore.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'r-kvstore.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'r-kvstore.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'r-kvstore.aliyuncs.com',
+                    'cn-heyuan'             => 'r-kvstore.aliyuncs.com',
+                    'cn-wulanchabu'         => 'r-kvstore.aliyuncs.com',
+                ],
+            'nas'             =>
+                [
+                    'cn-qingdao'            => 'nas.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'            => 'nas.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'nas.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'nas.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'           => 'nas.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'nas.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'           => 'nas.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'           => 'nas.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1'        => 'nas.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2'        => 'nas.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'nas.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'nas.ap-southeast-5.aliyuncs.com',
+                    'us-east-1'             => 'nas.us-east-1.aliyuncs.com',
+                    'eu-central-1'          => 'nas.eu-central-1.aliyuncs.com',
+                    'ap-south-1'            => 'nas.ap-south-1.aliyuncs.com',
+                    'ap-northeast-1'        => 'nas.ap-northeast-1.aliyuncs.com',
+                    'us-west-1'             => 'nas.us-west-1.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'nas.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'nas.cn-shenzhen-finance-1.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'nas.cn-north-2-gov-1.aliyuncs.com',
+                    'eu-west-1'             => 'nas.eu-west-1.aliyuncs.com',
+                    'cn-chengdu'            => 'nas.cn-chengdu.aliyuncs.com',
+                    'cn-heyuan'             => 'nas.cn-heyuan.aliyuncs.com',
+                ],
+            'hbase'           =>
+                [
+                    'cn-qingdao'            => 'hbase.aliyuncs.com',
+                    'cn-beijing'            => 'hbase.aliyuncs.com',
+                    'cn-huhehaote'          => 'hbase.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'           => 'hbase.aliyuncs.com',
+                    'cn-shanghai'           => 'hbase.aliyuncs.com',
+                    'cn-shenzhen'           => 'hbase.aliyuncs.com',
+                    'ap-southeast-1'        => 'hbase.aliyuncs.com',
+                    'ap-southeast-2'        => 'hbase.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'hbase.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'hbase.ap-southeast-5.aliyuncs.com',
+                    'us-west-1'             => 'hbase.aliyuncs.com',
+                    'us-east-1'             => 'hbase.aliyuncs.com',
+                    'eu-central-1'          => 'hbase.eu-central-1.aliyuncs.com',
+                    'me-east-1'             => 'hbase.me-east-1.aliyuncs.com',
+                    'ap-south-1'            => 'hbase.ap-south-1.aliyuncs.com',
+                    'eu-west-1'             => 'hbase.eu-west-1.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'hbase.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'hbase.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'hbase.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'hbase.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'hbase.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hongkong'           => 'hbase.aliyuncs.com',
+                    'ap-northeast-1'        => 'hbase.ap-northeast-1.aliyuncs.com',
+                ],
+            'ddosbasic'       =>
+                [
+                    'cn-qingdao'            => 'antiddos.aliyuncs.com',
+                    'cn-beijing'            => 'antiddos.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'antiddos-openapi.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'antiddos-openapi.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'           => 'antiddos.aliyuncs.com',
+                    'cn-shanghai'           => 'antiddos.aliyuncs.com',
+                    'cn-shenzhen'           => 'antiddos.aliyuncs.com',
+                    'cn-hongkong'           => 'antiddos.aliyuncs.com',
+                    'ap-southeast-1'        => 'antiddos.aliyuncs.com',
+                    'ap-southeast-2'        => 'antiddos-openapi.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'antiddos-openapi.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'antiddos-openapi.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1'        => 'antiddos-openapi.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'antiddos-openapi.eu-west-1.aliyuncs.com',
+                    'us-west-1'             => 'antiddos.aliyuncs.com',
+                    'us-east-1'             => 'antiddos.aliyuncs.com',
+                    'eu-central-1'          => 'antiddos-openapi.eu-central-1.aliyuncs.com',
+                    'me-east-1'             => 'antiddos-openapi.me-east-1.aliyuncs.com',
+                    'ap-south-1'            => 'antiddos-openapi.ap-south-1.aliyuncs.com',
+                    'cn-chengdu'            => 'antiddos-openapi.cn-chengdu.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'antiddos.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'antiddos.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'antiddos.aliyuncs.com',
+                    'cn-fujian'             => 'antiddos.aliyuncs.com',
+                    'cn-haidian-cm12-c01'   => 'antiddos.aliyuncs.com',
+                    'cn-heyuan'             => 'antiddos-openapi.cn-heyuan.aliyuncs.com',
+                    'cn-wulanchabu'         => 'antiddos-openapi.cn-wulanchabu.aliyuncs.com',
+                ],
+            'polardb'         =>
+                [
+                    'cn-qingdao'            => 'polardb.aliyuncs.com',
+                    'cn-beijing'            => 'polardb.aliyuncs.com',
+                    'cn-huhehaote'          => 'polardb.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'           => 'polardb.aliyuncs.com',
+                    'cn-shanghai'           => 'polardb.aliyuncs.com',
+                    'cn-shenzhen'           => 'polardb.aliyuncs.com',
+                    'cn-hongkong'           => 'polardb.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'polardb.cn-zhangjiakou.aliyuncs.com',
+                    'ap-southeast-1'        => 'polardb.aliyuncs.com',
+                    'ap-southeast-3'        => 'polardb.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'polardb.ap-southeast-5.aliyuncs.com',
+                    'us-west-1'             => 'polardb.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'polardb.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'polardb.aliyuncs.com',
+                    'eu-central-1'          => 'polardb.eu-central-1.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'polardb.aliyuncs.com',
+                    'ap-south-1'            => 'polardb.ap-south-1.aliyuncs.com',
+                    'cn-chengdu'            => 'polardb.cn-chengdu.aliyuncs.com',
+                    'ap-northeast-1'        => 'polardb.ap-northeast-1.aliyuncs.com',
+                    'us-east-1'             => 'polardb.aliyuncs.com',
+                ],
+            'actiontrail'     =>
+                [
+                    'cn-qingdao'            => 'actiontrail.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'            => 'actiontrail.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'actiontrail.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'actiontrail.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'           => 'actiontrail.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'actiontrail.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'           => 'actiontrail.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'           => 'actiontrail.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1'        => 'actiontrail.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2'        => 'actiontrail.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'actiontrail.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'actiontrail.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1'        => 'actiontrail.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'actiontrail.eu-west-1.aliyuncs.com',
+                    'us-west-1'             => 'actiontrail.us-west-1.aliyuncs.com',
+                    'us-east-1'             => 'actiontrail.us-east-1.aliyuncs.com',
+                    'eu-central-1'          => 'actiontrail.eu-central-1.aliyuncs.com',
+                    'me-east-1'             => 'actiontrail.me-east-1.aliyuncs.com',
+                    'ap-south-1'            => 'actiontrail.ap-south-1.aliyuncs.com',
+                    'cn-chengdu'            => 'actiontrail.cn-chengdu.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'actiontrail.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'actiontrail.cn-north-2-gov-1.aliyuncs.com',
+                    'cn-heyuan'             => 'actiontrail.cn-heyuan.aliyuncs.com',
+                ],
+            'codepipeline'    =>
+                [
+                    'cn-beijing' => 'cds.cn-beijing.aliyuncs.com',
+                ],
+            'hcs_sgw'         =>
+                [
+                    'cn-beijing'       => 'sgw.cn-shanghai.aliyuncs.com',
+                    'cn-zhangjiakou'   => 'sgw.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou'      => 'sgw.cn-shanghai.aliyuncs.com',
+                    'cn-shanghai'      => 'sgw.cn-shanghai.aliyuncs.com',
+                    'cn-hongkong'      => 'sgw.cn-shanghai.aliyuncs.com',
+                    'ap-southeast-1'   => 'sgw.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2'   => 'sgw.ap-southeast-2.aliyuncs.com',
+                    'eu-central-1'     => 'sgw.eu-central-1.aliyuncs.com',
+                    'cn-qingdao'       => 'sgw.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'      => 'sgw.cn-shanghai.aliyuncs.com',
+                    'cn-huhehaote'     => 'sgw.cn-shanghai.aliyuncs.com',
+                    'cn-chengdu'       => 'sgw.cn-shanghai.aliyuncs.com',
+                    'ap-southeast-5'   => 'sgw.ap-southeast-5.aliyuncs.com',
+                    'ap-southeast-3'   => 'sgw.ap-southeast-3.aliyuncs.com',
+                    'ap-northeast-1'   => 'sgw.ap-northeast-1.aliyuncs.com',
+                    'us-west-1'        => 'sgw.us-west-1.aliyuncs.com',
+                    'us-east-1'        => 'sgw.us-west-1.aliyuncs.com',
+                    'cn-heyuan'        => 'sgw.cn-shanghai.aliyuncs.com',
+                    'cn-north-2-gov-1' => 'sgw.cn-north-2-gov-1.aliyuncs.com',
+                ],
+            'openanalytics'   =>
+                [
+                    'cn-beijing'     => 'openanalytics.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou' => 'openanalytics.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'    => 'openanalytics.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'openanalytics.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'openanalytics.cn-shenzhen.aliyuncs.com',
+                    'ap-southeast-1' => 'openanalytics.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-3' => 'openanalytics.ap-southeast-3.aliyuncs.com',
+                    'eu-west-1'      => 'openanalytics.eu-west-1.aliyuncs.com',
+                    'cn-hongkong'    => 'openanalytics.cn-hongkong.aliyuncs.com',
+                    'us-west-1'      => 'openanalytics.us-west-1.aliyuncs.com',
+                    'ap-southeast-2' => 'datalakeanalytics.ap-southeast-2.aliyuncs.com',
+                    'ap-northeast-1' => 'datalakeanalytics.ap-northeast-1.aliyuncs.com',
+                    'us-east-1'      => 'datalakeanalytics.us-east-1.aliyuncs.com',
+                    'eu-central-1'   => 'datalakeanalytics.eu-central-1.aliyuncs.com',
+                    'ap-south-1'     => 'openanalytics.ap-south-1.aliyuncs.com',
+                    'ap-southeast-5' => 'openanalytics.ap-southeast-5.aliyuncs.com',
+                ],
+            'clouddesktop'    =>
+                [
+                    'cn-beijing'  => 'clouddesktop.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou' => 'clouddesktop.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'clouddesktop.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen' => 'clouddesktop.cn-shenzhen.aliyuncs.com',
+                ],
+            'ivision'         =>
+                [
+                    'cn-beijing'  => 'ivision.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou' => 'ivision.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'ivision.cn-shanghai.aliyuncs.com',
+                ],
+            'fc'              =>
+                [
+                    'cn-beijing'          => 'cn-beijing.fc.aliyuncs.com',
+                    'cn-hangzhou'         => 'cn-hangzhou.fc.aliyuncs.com',
+                    'cn-shanghai'         => 'cn-shanghai.fc.aliyuncs.com',
+                    'cn-shenzhen'         => 'cn-shenzhen.fc.aliyuncs.com',
+                    'ap-southeast-2'      => 'ap-southeast-2.fc.aliyuncs.com',
+                    'cn-huhehaote'        => 'cn-huhehaote.fc.aliyuncs.com',
+                    'cn-qingdao'          => 'cn-qingdao.fc.aliyuncs.com',
+                    'cn-chengdu'          => 'cn-chengdu.fc.aliyuncs.com',
+                    'cn-zhangjiakou'      => 'cn-zhangjiakou.fc.aliyuncs.com',
+                    'cn-hongkong'         => 'cn-hongkong.fc.aliyuncs.com',
+                    'ap-southeast-1'      => 'ap-southeast-1.fc.aliyuncs.com',
+                    'ap-southeast-3'      => 'ap-southeast-3.fc.aliyuncs.com',
+                    'ap-southeast-5'      => 'ap-southeast-5.fc.aliyuncs.com',
+                    'ap-northeast-1'      => 'ap-northeast-1.fc.aliyuncs. com',
+                    'eu-west-1'           => 'eu-west-1.fc.aliyuncs.com',
+                    'us-west-1'           => 'us-west-1.fc.aliyuncs.com',
+                    'us-east-1'           => 'us-east-1.fc.aliyuncs.com',
+                    'eu-central-1'        => 'eu-central-1.fc.aliyuncs.com',
+                    'ap-south-1'          => 'ap-south-1.fc.aliyuncs.com',
+                    'cn-hangzhou-finance' => 'cn-hangzhou-finance.fc.aliyuncs.com',
+                ],
+            'hsm'             =>
+                [
+                    'cn-beijing'            => 'hsm.aliyuncs.com',
+                    'cn-hangzhou'           => 'hsm.aliyuncs.com',
+                    'cn-shanghai'           => 'hsm.aliyuncs.com',
+                    'cn-shenzhen'           => 'hsm.aliyuncs.com',
+                    'cn-hongkong'           => 'hsm.aliyuncs.com',
+                    'ap-southeast-1'        => 'hsm.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'hsm.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'hsm.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'hsm.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'hsm.aliyuncs.com',
+                    'cn-haidian-cm12-c01'   => 'hsm.aliyuncs.com',
+                    'cn-heyuan'             => 'hsm.aliyuncs.com',
+                    'ap-southeast-3'        => 'hsm.aliyuncs.com',
+                ],
+            'petadata'        =>
+                [
+                    'cn-beijing'              => 'petadata.aliyuncs.com',
+                    'cn-zhangjiakou'          => 'petadata.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'            => 'petadata.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'             => 'petadata.aliyuncs.com',
+                    'cn-shanghai'             => 'petadata.aliyuncs.com',
+                    'cn-shenzhen'             => 'petadata.aliyuncs.com',
+                    'ap-southeast-1'          => 'petadata.aliyuncs.com',
+                    'ap-southeast-2'          => 'petadata.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-5'          => 'petadata.ap-southeast-5.aliyuncs.com',
+                    'us-west-1'               => 'petadata.aliyuncs.com',
+                    'us-east-1'               => 'petadata.aliyuncs.com',
+                    'eu-central-1'            => 'petadata.eu-central-1.aliyuncs.com',
+                    'me-east-1'               => 'petadata.me-east-1.aliyuncs.com',
+                    'cn-hongkong'             => 'petadata.aliyuncs.com',
+                    'cn-qingdao'              => 'petadata.aliyuncs.com',
+                    'cn-shanghai-et2-b01'     => 'petadata.aliyuncs.com',
+                    'cn-zhangjiakou-na62-a01' => 'petadata.aliyuncs.com',
+                ],
+            'gpdb'            =>
+                [
+                    'cn-beijing'            => 'gpdb.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'gpdb.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'gpdb.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'           => 'gpdb.aliyuncs.com',
+                    'cn-shanghai'           => 'gpdb.aliyuncs.com',
+                    'cn-shenzhen'           => 'gpdb.aliyuncs.com',
+                    'ap-southeast-1'        => 'gpdb.aliyuncs.com',
+                    'ap-southeast-2'        => 'gpdb.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'gpdb.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'gpdb.ap-southeast-5.aliyuncs.com',
+                    'eu-west-1'             => 'gpdb.eu-west-1.aliyuncs.com',
+                    'us-west-1'             => 'gpdb.aliyuncs.com',
+                    'us-east-1'             => 'gpdb.aliyuncs.com',
+                    'eu-central-1'          => 'gpdb.eu-central-1.aliyuncs.com',
+                    'ap-south-1'            => 'gpdb.ap-south-1.aliyuncs.com',
+                    'ap-northeast-1'        => 'gpdb.ap-northeast-1.aliyuncs.com',
+                    'cn-hongkong'           => 'gpdb.aliyuncs.com',
+                    'cn-chengdu'            => 'gpdb.cn-chengdu.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'gpdb.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'gpdb.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'gpdb.aliyuncs.com',
+                ],
+            'eci'             =>
+                [
+                    'cn-beijing'                  => 'eci.aliyuncs.com',
+                    'cn-hangzhou'                 => 'eci.aliyuncs.com',
+                    'cn-shanghai'                 => 'eci.aliyuncs.com',
+                    'cn-shenzhen'                 => 'eci.aliyuncs.com',
+                    'ap-southeast-1'              => 'eci.aliyuncs.com',
+                    'us-west-1'                   => 'eci.aliyuncs.com',
+                    'cn-hongkong'                 => 'eci.aliyuncs.com',
+                    'cn-zhangjiakou'              => 'eci.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'                => 'eci.cn-huhehaote.aliyuncs.com',
+                    'ap-southeast-2'              => 'eci.ap-southeast-2.aliyuncs.com',
+                    'eu-west-1'                   => 'eci.eu-west-1.aliyuncs.com',
+                    'us-east-1'                   => 'eci.aliyuncs.com',
+                    'eu-central-1'                => 'eci.eu-central-1.aliyuncs.com',
+                    'cn-chengdu'                  => 'eci.cn-chengdu.aliyuncs.com',
+                    'ap-southeast-5'              => 'eci.ap-southeast-5.aliyuncs.com',
+                    'ap-south-1'                  => 'eci.ap-south-1.aliyuncs.com',
+                    'cn-hangzhou-internal-test-1' => 'eci.aliyuncs.com',
+                    'cn-hangzhou-internal-test-2' => 'eci.aliyuncs.com',
+                    'cn-qingdao'                  => 'eci.aliyuncs.com',
+                    'cn-heyuan'                   => 'eci.cn-heyuan.aliyuncs.com',
+                    'cn-wulanchabu'               => 'eci.cn-wulanchabu.aliyuncs.com',
+                    'ap-southeast-3'              => 'eci.ap-southeast-3.aliyuncs.com',
+                    'ap-northeast-1'              => 'eci.ap-northeast-1.aliyuncs.com',
+                ],
+            'airec'           =>
+                [
+                    'cn-beijing'  => 'airec.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou' => 'airec.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'airec.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen' => 'airec.cn-shenzhen.aliyuncs.com',
+                ],
+            'imm'             =>
+                [
+                    'cn-beijing'     => 'imm.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou' => 'imm.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'    => 'imm.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'imm.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'imm.cn-shenzhen.aliyuncs.com',
+                    'ap-southeast-1' => 'imm.ap-southeast-1.aliyuncs.com',
+                ],
+            'gameshield'      =>
+                [
+                    'cn-zhangjiakou' => 'gameshield.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'    => 'gameshield.aliyuncs.com',
+                ],
+            'ims'             =>
+                [
+                    'cn-hangzhou' => 'ims.aliyuncs.com',
+                ],
+            'cloudfirewall'   =>
+                [
+                    'cn-hangzhou'    => 'cloudfw.cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1' => 'cloudfw.ap-southeast-1.aliyuncs.com',
+                ],
+            'ens'             =>
+                [
+                    'cn-hangzhou'    => 'ens.aliyuncs.com',
+                    'ap-southeast-1' => 'ens.ap-southeast-1.aliyuncs.com',
+                    'cn-beijing'     => 'ens.aliyuncs.com',
+                    'cn-chengdu'     => 'ens.aliyuncs.com',
+                    'cn-zhangjiakou' => 'ens.aliyuncs.com',
+                    'cn-shanghai'    => 'ens.aliyuncs.com',
+                    'cn-heyuan'      => 'ens.aliyuncs.com',
+                    'cn-wulanchabu'  => 'ens.aliyuncs.com',
+                ],
+            'hitsdb'          =>
+                [
+                    'cn-hangzhou'           => 'hitsdb.aliyuncs.com',
+                    'cn-qingdao'            => 'hitsdb.aliyuncs.com',
+                    'cn-beijing'            => 'hitsdb.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'hitsdb.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'hitsdb.cn-huhehaote.aliyuncs.com',
+                    'cn-shanghai'           => 'hitsdb.aliyuncs.com',
+                    'cn-shenzhen'           => 'hitsdb.aliyuncs.com',
+                    'cn-hongkong'           => 'hitsdb.aliyuncs.com',
+                    'ap-southeast-5'        => 'hitsdb.ap-southeast-5.aliyuncs.com',
+                    'us-west-1'             => 'hitsdb.aliyuncs.com',
+                    'us-east-1'             => 'hitsdb.aliyuncs.com',
+                    'ap-southeast-1'        => 'hitsdb.aliyuncs.com',
+                    'ap-southeast-2'        => 'hitsdb.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'hitsdb.ap-southeast-3.aliyuncs.com',
+                    'ap-northeast-1'        => 'hitsdb.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'hitsdb.eu-west-1.aliyuncs.com',
+                    'eu-central-1'          => 'hitsdb.eu-central-1.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'hitsdb.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'hitsdb.aliyuncs.com',
+                ],
+            'ddos'            =>
+                [
+                    'cn-hangzhou' => 'ddospro.cn-hangzhou.aliyuncs.com',
+                    'cn-hongkong' => 'ddospro.cn-hongkong.aliyuncs.com',
+                ],
+            'rtc'             =>
+                [
+                    'cn-hangzhou' => 'rtc.aliyuncs.com',
+                ],
+            'emas'            =>
+                [
+                    'cn-hangzhou' => 'mhub.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'mhub.cn-shanghai.aliyuncs.com',
+                ],
+            'vipaegis'        =>
+                [
+                    'cn-hangzhou'    => 'aegis.cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-3' => 'aegis.ap-southeast-3.aliyuncs.com',
+                ],
+            'ddosrewards'     =>
+                [
+                    'cn-hangzhou' => 'ddosright.cn-hangzhou.aliyuncs.com',
+                ],
+            'cloudap'         =>
+                [
+                    'cn-hangzhou' => 'cloudwf.aliyuncs.com',
+                ],
+            'ensdisk'         =>
+                [
+                    'cn-hangzhou' => 'ens.aliyuncs.com',
+                ],
+            'bastionhost'     =>
+                [
+                    'cn-hangzhou'           => 'yundun-bastionhost.aliyuncs.com',
+                    'cn-qingdao'            => 'yundun-bastionhost.aliyuncs.com',
+                    'cn-beijing'            => 'yundun-bastionhost.aliyuncs.com',
+                    'cn-chengdu'            => 'yundun-bastionhost.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'yundun-bastionhost.aliyuncs.com',
+                    'cn-huhehaote'          => 'yundun-bastionhost.aliyuncs.com',
+                    'cn-shanghai'           => 'yundun-bastionhost.aliyuncs.com',
+                    'cn-shenzhen'           => 'yundun-bastionhost.aliyuncs.com',
+                    'cn-hongkong'           => 'bastionhost.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1'        => 'bastionhost.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2'        => 'bastionhost.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'bastionhost.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'bastionhost.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1'        => 'bastionhost.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'bastionhost.eu-west-1.aliyuncs.com',
+                    'us-west-1'             => 'bastionhost.us-west-1.aliyuncs.com',
+                    'us-east-1'             => 'bastionhost.us-east-1.aliyuncs.com',
+                    'eu-central-1'          => 'bastionhost.eu-central-1.aliyuncs.com',
+                    'me-east-1'             => 'yundun-bastionhost.aliyuncs.com',
+                    'ap-south-1'            => 'bastionhost.ap-south-1.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'yundun-bastionhost.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'yundun-bastionhost.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'yundun-bastionhost.aliyuncs.com',
+                    'cn-haidian-cm12-c01'   => 'yundun-bastionhost.aliyuncs.com',
+                    'cn-heyuan'             => 'yundun-bastionhost.aliyuncs.com',
+                ],
+            'pvtz'            =>
+                [
+                    'cn-hangzhou' => 'pvtz.aliyuncs.com',
+                ],
+            'ccs'             =>
+                [
+                    'cn-hangzhou' => 'ccs.aliyuncs.com',
+                ],
+            'yunmarket'       =>
+                [
+                    'cn-hangzhou' => 'market.aliyuncs.com',
+                ],
+            'cas'             =>
+                [
+                    'cn-hangzhou'    => 'cas.aliyuncs.com',
+                    'ap-southeast-2' => 'cas.ap-southeast-2.aliyuncs.com',
+                    'ap-northeast-1' => 'cas.ap-northeast-1.aliyuncs.com',
+                    'eu-central-1'   => 'cas.eu-central-1.aliyuncs.com',
+                    'me-east-1'      => 'cas.me-east-1.aliyuncs.com',
+                    'ap-south-1'     => 'cas.ap-south-1.aliyuncs.com',
+                ],
+            'ddoscoo'         =>
+                [
+                    'cn-hangzhou'    => 'ddoscoo.cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1' => 'ddoscoo.ap-southeast-1.aliyuncs.com',
+                ],
+            'waf'             =>
+                [
+                    'cn-hangzhou'           => 'wafopenapi.cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'        => 'wafopenapi.ap-southeast-1.aliyuncs.com',
+                    'cn-qingdao'            => 'wafopenapi.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'            => 'wafopenapi.cn-hangzhou.aliyuncs.com',
+                    'cn-chengdu'            => 'wafopenapi.cn-hangzhou.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'wafopenapi.cn-hangzhou.aliyuncs.com',
+                    'cn-huhehaote'          => 'wafopenapi.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'wafopenapi.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'           => 'wafopenapi.cn-hangzhou.aliyuncs.com',
+                    'cn-heyuan'             => 'wafopenapi.cn-hangzhou.aliyuncs.com',
+                    'cn-wulanchabu'         => 'wafopenapi.cn-hangzhou.aliyuncs.com',
+                    'cn-hongkong'           => 'wafopenapi.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2'        => 'wafopenapi.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-3'        => 'wafopenapi.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-5'        => 'wafopenapi.ap-southeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'wafopenapi.ap-southeast-1.aliyuncs.com',
+                    'us-west-1'             => 'wafopenapi.ap-southeast-1.aliyuncs.com',
+                    'us-east-1'             => 'wafopenapi.ap-southeast-1.aliyuncs.com',
+                    'eu-central-1'          => 'wafopenapi.ap-southeast-1.aliyuncs.com',
+                    'me-east-1'             => 'wafopenapi.ap-southeast-1.aliyuncs.com',
+                    'ap-south-1'            => 'wafopenapi.ap-southeast-1.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'wafopenapi.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'wafopenapi.cn-hangzhou.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'wafopenapi.cn-hangzhou.aliyuncs.com',
+                ],
+            'xianzhi'         =>
+                [
+                    'cn-hangzhou' => 'xianzhi.aliyuncs.com',
+                ],
+            'sas'             =>
+                [
+                    'cn-hangzhou'    => 'tds.aliyuncs.com',
+                    'ap-southeast-3' => 'tds.ap-southeast-3.aliyuncs.com',
+                ],
+            'cloudauth'       =>
+                [
+                    'cn-hangzhou' => 'cloudauth.aliyuncs.com',
+                ],
+            'dmsenterprise'   =>
+                [
+                    'cn-hangzhou'    => 'dms-enterprise.aliyuncs.com',
+                    'cn-shanghai'    => 'dms-enterprise.aliyuncs.com',
+                    'cn-shenzhen'    => 'dms-enterprise.aliyuncs.com',
+                    'cn-beijing'     => 'dms-enterprise.aliyuncs.com',
+                    'cn-qingdao'     => 'dms-enterprise.aliyuncs.com',
+                    'ap-northeast-1' => 'dms-enterprise.aliyuncs.com',
+                    'ap-southeast-1' => 'dms-enterprise.aliyuncs.com',
+                ],
+            'baas'            =>
+                [
+                    'cn-hangzhou'      => 'baas.cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'   => 'baas.ap-southeast-1.aliyuncs.com',
+                    'ap-northeast-1'   => 'baas.ap-southeast-1.aliyuncs.com',
+                    'cn-beijing'       => 'baas.aliyuncs.com',
+                    'cn-shanghai'      => 'baas.aliyuncs.com',
+                    'cn-shenzhen'      => 'baas.aliyuncs.com',
+                    'cn-hongkong'      => 'baas.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2'   => 'baas.ap-southeast-1.aliyuncs.com',
+                    'us-east-1'        => 'baas.ap-southeast-1.aliyuncs.com',
+                    'eu-central-1'     => 'baas.ap-southeast-1.aliyuncs.com',
+                    'cn-qingdao'       => 'baas.aliyuncs.com',
+                    'cn-zhangjiakou'   => 'baas.aliyuncs.com',
+                    'cn-huhehaote'     => 'baas.aliyuncs.com',
+                    'eu-west-1'        => 'baas.ap-southeast-1.aliyuncs.com',
+                    'us-west-1'        => 'baas.ap-southeast-1.aliyuncs.com',
+                    'ap-south-1'       => 'baas.ap-southeast-1.aliyuncs.com',
+                    'cn-north-2-gov-1' => 'baas.cn-north-2-gov-1.aliyuncs.com',
+                ],
+            'alimt'           =>
+                [
+                    'cn-hangzhou' => 'mt.cn-hangzhou.aliyuncs.com',
+                ],
+            'dcdn'            =>
+                [
+                    'cn-hangzhou' => 'dcdn.aliyuncs.com',
+                ],
+            'hcs_mgw'         =>
+                [
+                    'cn-hangzhou'    => 'mgw.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'mgw.cn-shanghai.aliyuncs.com',
+                    'ap-southeast-1' => 'mgw.ap-southeast-1.aliyuncs.com',
+                ],
+            'linkedmall'      =>
+                [
+                    'cn-hangzhou' => 'linkedmall.aliyuncs.com',
+                    'cn-shanghai' => 'linkedmall.aliyuncs.com',
+                ],
+            'cps'             =>
+                [
+                    'cn-hangzhou' => 'cloudpush.aliyuncs.com',
+                ],
+            'scdn'            =>
+                [
+                    'cn-hangzhou' => 'scdn.aliyuncs.com',
+                ],
+            'trademark'       =>
+                [
+                    'cn-hangzhou' => 'trademark.aliyuncs.com',
+                ],
+            'elasticsearch'   =>
+                [
+                    'cn-hangzhou'           => 'elasticsearch.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'elasticsearch.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'           => 'elasticsearch.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'           => 'elasticsearch.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1'        => 'elasticsearch.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2'        => 'elasticsearch.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'elasticsearch.ap-southeast-3.aliyuncs.com',
+                    'ap-northeast-1'        => 'elasticsearch.ap-northeast-1.aliyuncs.com',
+                    'us-west-1'             => 'elasticsearch.us-west-1.aliyuncs.com',
+                    'eu-central-1'          => 'elasticsearch.eu-central-1.aliyuncs.com',
+                    'ap-south-1'            => 'elasticsearch.ap-south-1.aliyuncs.com',
+                    'cn-qingdao'            => 'elasticsearch.cn-qingdao.aliyuncs.com',
+                    'ap-southeast-5'        => 'elasticsearch.ap-southeast-5.aliyuncs.com',
+                    'cn-beijing'            => 'elasticsearch.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'elasticsearch.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'elasticsearch.cn-hangzhou-finance.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'elasticsearch.cn-shanghai-finance-1.aliyuncs.com',
+                    'us-east-1'             => 'elasticsearch.us-east-1.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'elasticsearch.cn-north-2-gov-1.aliyuncs.com',
+                    'eu-west-1'             => 'elasticsearch.eu-west-1.aliyuncs.com',
+                ],
+            'luban'           =>
+                [
+                    'cn-hangzhou' => 'luban.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'luban.cn-shanghai.aliyuncs.com',
+                ],
+            'pcdn'            =>
+                [
+                    'cn-hangzhou' => 'pcdn.aliyuncs.com',
+                ],
+            'uis'             =>
+                [
+                    'cn-hangzhou'      => 'uis.cn-hangzhou.aliyuncs.com',
+                    'cn-north-2-gov-1' => 'uis.cn-hangzhou.aliyuncs.com',
+                ],
+            'beebot'          =>
+                [
+                    'cn-hangzhou'      => 'chatbot.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'      => 'chatbot.cn-shanghai.aliyuncs.com',
+                    'cn-north-2-gov-1' => 'chatbot.cn-north-2-gov-1.aliyuncs.com',
+                ],
+            'chatbot'         =>
+                [
+                    'global'      => 'chatbot.cn-shanghai.aliyuncs.com',
+                    'cn-shanghai' => 'chatbot.cn-shanghai.aliyuncs.com',
+                ],
+            'alidnsgtm'       =>
+                [
+                    'cn-hangzhou' => 'alidns.aliyuncs.com',
+                ],
+            'sca'             =>
+                [
+                    'cn-hangzhou' => 'qualitycheck.cn-hangzhou.aliyuncs.com',
+                ],
+            'cccvn'           =>
+                [
+                    'cn-shanghai' => 'voicenavigator.cn-shanghai.aliyuncs.com',
+                ],
+            'cloudphoto'      =>
+                [
+                    'cn-shanghai' => 'cloudphoto.cn-shanghai.aliyuncs.com',
+                ],
+            'smartag'         =>
+                [
+                    'cn-shanghai'                 => 'smartag.cn-shanghai.aliyuncs.com',
+                    'cn-hongkong'                 => 'smartag.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1'              => 'smartag.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2'              => 'smartag.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'              => 'smartag.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'              => 'smartag.ap-southeast-5.aliyuncs.com',
+                    'eu-central-1'                => 'smartag.eu-central-1.aliyuncs.com',
+                    'ap-northeast-1'              => 'smartag.ap-northeast-1.aliyuncs.com',
+                    'cn-shanghai-finance-1'       => 'smartag.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-hangzhou-internal-test-1' => 'smartag.aliyuncs.com',
+                    'cn-hangzhou-internal-test-2' => 'smartag.aliyuncs.com',
+                    'eu-west-1'                   => 'smartag.eu-west-1.aliyuncs.com',
+                    'us-east-1'                   => 'smartag.us-east-1.aliyuncs.com',
+                ],
+            'nlp'             =>
+                [
+                    'cn-shanghai' => 'nlp.cn-shanghai.aliyuncs.com',
+                ],
+            'nls-cloud-meta'  =>
+                [
+                    'cn-shanghai' => 'nls-meta.cn-shanghai.aliyuncs.com',
+                ],
+            'nls-filetrans'   =>
+                [
+                    'cn-shanghai' => 'filetrans.cn-shanghai.aliyuncs.com',
+                ],
+            'linkwan'         =>
+                [
+                    'cn-shanghai' => 'linkwan.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou' => 'linkwan.cn-hangzhou.aliyuncs.com',
+                ],
+            'hdm'             =>
+                [
+                    'cn-shanghai' => 'hdm-api.aliyuncs.com',
+                ],
+            'iovcc'           =>
+                [
+                    'cn-shanghai' => 'iovcc.cn-shanghai.aliyuncs.com',
+                ],
+            'ddosdip'         =>
+                [
+                    'ap-southeast-1' => 'ddosdip.ap-southeast-1.aliyuncs.com',
+                ],
+            'imagesearch'     =>
+                [
+                    'ap-southeast-1' => 'imagesearch.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2' => 'imagesearch.ap-southeast-2.aliyuncs.com',
+                    'ap-northeast-1' => 'imagesearch.ap-northeast-1.aliyuncs.com',
+                    'cn-shanghai'    => 'imagesearch.cn-shanghai.aliyuncs.com',
+                ],
+            'alidfs'          =>
+                [
+                    'cn-beijing'     => 'dfs.cn-beijing.aliyuncs.com',
+                    'cn-shanghai'    => 'dfs.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou'    => 'dfs.cn-hangzhou.aliyuncs.com',
+                    'cn-zhangjiakou' => 'dfs.cn-zhangjiakou.aliyuncs.com',
+                ],
+            'vs'              =>
+                [
+                    'cn-hangzhou' => 'vs.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'vs.cn-shanghai.aliyuncs.com',
+                    'cn-qingdao'  => 'vs.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'  => 'vs.cn-beijing.aliyuncs.com',
+                    'cn-shenzhen' => 'vs.cn-shenzhen.aliyuncs.com',
+                ],
+            'foas'            =>
+                [
+                    'cn-qingdao'            => 'foas.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'            => 'foas.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'foas.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'           => 'foas.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'foas.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'           => 'foas.cn-shenzhen.aliyuncs.com',
+                    'ap-northeast-1'        => 'foas.ap-northeast-1.aliyuncs.com',
+                    'ap-southeast-1'        => 'foas.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-3'        => 'foas.ap-southeast-3.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'foas.cn-hangzhou-finance.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'foas.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'foas.cn-north-2-gov-1.aliyuncs.com',
+                    'cn-hongkong'           => 'foas.cn-hongkong.aliyuncs.com',
+                    'eu-central-1'          => 'foas.eu-central-1.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'foas.cn-shenzhen-finance-1.aliyuncs.com',
+                ],
+            'iotid'           =>
+                [
+                    'cn-hangzhou' => 'iotid.cn-hangzhou.aliyuncs.com',
+                ],
+            'drdspost'        =>
+                [
+                    'ap-southeast-1' => 'drds.ap-southeast-1.aliyuncs.com',
+                    'cn-shanghai'    => 'drds.cn-shanghai.aliyuncs.com',
+                    'cn-hongkong'    => 'drds.cn-hangzhou.aliyuncs.com',
+                    'cn-huhehaote'   => 'drds.cn-huhehaote.aliyuncs.com',
+                    'us-east-1'      => 'drds.us-east-1.aliyuncs.com',
+                ],
+            'drdspre'         =>
+                [
+                    'cn-qingdao'   => 'drds.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'   => 'drds.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou'  => 'drds.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'  => 'drds.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'  => 'drds.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'  => 'drds.cn-hangzhou.aliyuncs.com',
+                    'cn-huhehaote' => 'drds.cn-huhehaote.aliyuncs.com',
+                    'us-east-1'    => 'drds.us-east-1.aliyuncs.com',
+                ],
+            'acr'             =>
+                [
+                    'cn-qingdao'            => 'cr.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'            => 'cr.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'cr.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'cr.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'           => 'cr.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'cr.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'           => 'cr.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'           => 'cr.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1'        => 'cr.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2'        => 'cr.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'cr.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'cr.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1'        => 'cr.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'cr.eu-west-1.aliyuncs.com',
+                    'us-west-1'             => 'cr.us-west-1.aliyuncs.com',
+                    'us-east-1'             => 'cr.us-east-1.aliyuncs.com',
+                    'eu-central-1'          => 'cr.eu-central-1.aliyuncs.com',
+                    'me-east-1'             => 'cr.me-east-1.aliyuncs.com',
+                    'ap-south-1'            => 'cr.ap-south-1.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'cr.cn-hangzhou-finance.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'cr.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'cr.cn-shenzhen-finance-1.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'cr.cn-north-2-gov-1.aliyuncs.com',
+                    'cn-chengdu'            => 'cr.cn-chengdu.aliyuncs.com',
+                ],
+            'faas'            =>
+                [
+                    'cn-beijing'            => 'faas.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'faas.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'           => 'faas.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'faas.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'           => 'faas.cn-shenzhen.aliyuncs.com',
+                    'ap-southeast-5'        => 'faas.ap-southeast-5.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'faas.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-chengdu'            => 'faas.cn-chengdu.aliyuncs.com',
+                    'cn-heyuan'             => 'faas.cn-heyuan.aliyuncs.com',
+                    'us-west-1'             => 'faas.us-west-1.aliyuncs.com',
+                ],
+            'idaas'           =>
+                [
+                    'cn-hangzhou'           => 'idaas.aliyuncs.com',
+                    'cn-qingdao'            => 'idaas.aliyuncs.com',
+                    'cn-beijing'            => 'idaas.aliyuncs.com',
+                    'cn-chengdu'            => 'idaas.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'idaas.aliyuncs.com',
+                    'cn-huhehaote'          => 'idaas.aliyuncs.com',
+                    'cn-shanghai'           => 'idaas.aliyuncs.com',
+                    'cn-shenzhen'           => 'idaas.aliyuncs.com',
+                    'cn-hongkong'           => 'idaas.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'idaas.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'idaas.aliyuncs.com',
+                    'ap-southeast-1'        => 'idaas.ap-southeast-1.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'idaas.aliyuncs.com',
+                ],
+            'privatelink'     =>
+                [
+                    'cn-hangzhou'                 => 'privatelink-center.cn-hangzhou.aliyuncs.com',
+                    'cn-huhehaote'                => 'privatelink.cn-huhehaote.aliyuncs.com',
+                    'eu-west-1'                   => 'privatelink.eu-west-1.aliyuncs.com',
+                    'ap-southeast-2'              => 'privatelink.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-5'              => 'privatelink.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1'              => 'privatelink.ap-northeast-1.aliyuncs.com',
+                    'ap-south-1'                  => 'privatelink.ap-south-1.aliyuncs.com',
+                    'cn-shenzhen'                 => 'privatelink.cn-shenzhen.aliyuncs.com',
+                    'eu-central-1'                => 'privatelink.eu-central-1.aliyuncs.com',
+                    'cn-zhangjiakou'              => 'privatelink.cn-zhangjiakou.aliyuncs.com',
+                    'ap-southeast-3'              => 'privatelink.ap-southeast-3.aliyuncs.com',
+                    'cn-hangzhou-internal-test-1' => 'privatelink.aliyuncs.com',
+                    'cn-hangzhou-test-306'        => 'privatelink-center.cn-hangzhou.aliyuncs.com',
+                    'cn-chengdu'                  => 'privatelink.cn-chengdu.aliyuncs.com',
+                    'ap-southeast-1'              => 'privatelink.ap-southeast-1.aliyuncs.com',
+                ],
+            'batchcomputenew' =>
+                [
+                    'cn-hongkong' => 'batchcompute.cn-hongkong.aliyuncs.com',
+                ],
+            'vcs'             =>
+                [
+                    'cn-hangzhou' => 'vcs.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'vcs.cn-shanghai.aliyuncs.com',
+                ],
+            'vds'             =>
+                [
+                    'cn-hangzhou' => 'vds.aliyuncs.com',
+                    'cn-shanghai' => 'vds.cn-shanghai.aliyuncs.com',
+                ],
+            'vcsbasic'        =>
+                [
+                    'cn-hangzhou' => 'vcs.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'vcs.cn-hangzhou.aliyuncs.com',
+                ],
+            'hbr'             =>
+                [
+                    'cn-qingdao'            => 'hbr.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'            => 'hbr.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'hbr.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'hbr.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'           => 'hbr.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'hbr.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'           => 'hbr.cn-shenzhen.aliyuncs.com',
+                    'ap-southeast-1'        => 'hbr.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2'        => 'hbr.ap-southeast-2.aliyuncs.com',
+                    'cn-hongkong'           => 'hbr.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-5'        => 'hbr.ap-southeast-5.aliyuncs.com',
+                    'ap-southeast-3'        => 'hbr.ap-southeast-3.aliyuncs.com',
+                    'us-west-1'             => 'hbr.us-west-1.aliyuncs.com',
+                    'eu-central-1'          => 'hbr.eu-central-1.aliyuncs.com',
+                    'ap-northeast-1'        => 'hbr.ap-northeast-1.aliyuncs.com',
+                    'cn-chengdu'            => 'hbr.cn-chengdu.aliyuncs.com',
+                    'us-east-1'             => 'hbr.us-east-1.aliyuncs.com',
+                    'ap-south-1'            => 'hbr.ap-south-1.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'hbr.cn-hangzhou-finance.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'hbr.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'hbr.cn-shenzhen-finance-1.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'hbr.cn-north-2-gov-1.aliyuncs.com',
+                ],
+            'image'           =>
+                [
+                    'cn-shanghai' => 'image.cn-shanghai.aliyuncs.com',
+                ],
+            'webx'            =>
+                [
+                    'cn-shenzhen'    => 'webplus.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'     => 'webplus.cn-hangzhou.aliyuncs.com',
+                    'cn-zhangjiakou' => 'webplus.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'webplus.cn-hangzhou.aliyuncs.com',
+                    'cn-hangzhou'    => 'webplus.cn-hangzhou.aliyuncs.com',
+                ],
+            'sddp'            =>
+                [
+                    'cn-zhangjiakou'   => 'sddp.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'      => 'sddp.cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'   => 'sddp.ap-southeast-1.aliyuncs.com',
+                    'cn-north-2-gov-1' => 'sddp.cn-north-2-gov-1.aliyuncs.com',
+                ],
+            'oos'             =>
+                [
+                    'cn-hangzhou'    => 'oos.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'oos.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'oos.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'    => 'oos.cn-hongkong.aliyuncs.com',
+                    'us-east-1'      => 'oos.us-east-1.aliyuncs.com',
+                    'cn-beijing'     => 'oos.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou' => 'oos.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'   => 'oos.cn-huhehaote.aliyuncs.com',
+                    'eu-west-1'      => 'oos.eu-west-1.aliyuncs.com',
+                    'eu-central-1'   => 'oos.eu-central-1.aliyuncs.com',
+                    'ap-south-1'     => 'oos.ap-south-1.aliyuncs.com',
+                    'cn-chengdu'     => 'oos.cn-chengdu.aliyuncs.com',
+                    'ap-southeast-1' => 'oos.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2' => 'oos.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3' => 'oos.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5' => 'oos.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1' => 'oos.ap-northeast-1.aliyuncs.com',
+                ],
+            'fnf'             =>
+                [
+                    'cn-hangzhou' => 'cn-hangzhou.fnf.aliyuncs.com',
+                    'cn-shanghai' => 'cn-shanghai.fnf.aliyuncs.com',
+                    'cn-shenzhen' => 'cn-shenzhen.fnf.aliyuncs.com',
+                    'cn-beijing'  => 'cn-beijing.fnf.aliyuncs.com',
+                ],
+            'smc'             =>
+                [
+                    'cn-huhehaote'   => 'smc.aliyuncs.com',
+                    'cn-hangzhou'    => 'smc.aliyuncs.com',
+                    'cn-qingdao'     => 'smc.aliyuncs.com',
+                    'cn-beijing'     => 'smc.aliyuncs.com',
+                    'cn-zhangjiakou' => 'smc.aliyuncs.com',
+                    'cn-shanghai'    => 'smc.aliyuncs.com',
+                    'cn-shenzhen'    => 'smc.aliyuncs.com',
+                    'cn-hongkong'    => 'smc.aliyuncs.com',
+                    'ap-southeast-1' => 'smc.aliyuncs.com',
+                    'ap-southeast-2' => 'smc.aliyuncs.com',
+                    'ap-southeast-3' => 'smc.aliyuncs.com',
+                    'ap-southeast-5' => 'smc.aliyuncs.com',
+                    'ap-northeast-1' => 'smc.aliyuncs.com',
+                    'eu-west-1'      => 'smc.aliyuncs.com',
+                    'us-west-1'      => 'smc.aliyuncs.com',
+                    'us-east-1'      => 'smc.aliyuncs.com',
+                    'eu-central-1'   => 'smc.aliyuncs.com',
+                    'me-east-1'      => 'smc.aliyuncs.com',
+                    'ap-south-1'     => 'smc.aliyuncs.com',
+                    'cn-chengdu'     => 'smc.aliyuncs.com',
+                ],
+            'foasconsole'     =>
+                [
+                    'cn-beijing'            => 'foasconsole.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'foasconsole.aliyuncs.com',
+                    'cn-hangzhou'           => 'foasconsole.aliyuncs.com',
+                    'cn-shanghai'           => 'foasconsole.aliyuncs.com',
+                    'cn-shenzhen'           => 'foasconsole.aliyuncs.com',
+                    'cn-hongkong'           => 'foasconsole.aliyuncs.com',
+                    'ap-southeast-1'        => 'foasconsole.aliyuncs.com',
+                    'ap-southeast-3'        => 'foasconsole.aliyuncs.com',
+                    'ap-northeast-1'        => 'foasconsole.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'foasconsole.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'foasconsole.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'foasconsole.aliyuncs.com',
+                    'eu-central-1'          => 'foasconsole.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'foasconsole.aliyuncs.com',
+                ],
+            'serverless'      =>
+                [
+                    'cn-beijing'  => 'sae.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou' => 'sae.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'sae.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen' => 'sae.cn-shenzhen.aliyuncs.com',
+                    'us-west-1'   => 'sae.us-west-1.aliyuncs.com',
+                ],
+            'ivpd'            =>
+                [
+                    'cn-huhehaote'   => 'ivpd.cn-huhehaote.aliyuncs.com',
+                    'cn-shanghai'    => 'ivpd.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou'    => 'ivpd.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'     => 'ivpd.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou' => 'ivpd.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hongkong'    => 'ivpd.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1' => 'ivpd.ap-southeast-1.aliyuncs.com',
+                ],
+            'hivisengine'     =>
+                [
+                    'cn-huhehaote' => 'hivisengine.aliyuncs.com',
+                    'cn-shanghai'  => 'hivisengine.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou'  => 'hivisengine.cn-hangzhou.aliyuncs.com',
+                ],
+            'hiknoengine'     =>
+                [
+                    'cn-huhehaote' => 'hiknoengine.aliyuncs.com',
+                    'cn-shanghai'  => 'hiknoengine.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou'  => 'hiknoengine.cn-hangzhou.aliyuncs.com',
+                ],
+            'clouddev'        =>
+                [
+                    'cn-hangzhou' => 'mpserverless.aliyuncs.com',
+                    'cn-shanghai' => 'mpserverless.aliyuncs.com',
+                ],
+            'premiumpics'     =>
+                [
+                    'cn-hangzhou' => 'premiumpics.aliyuncs.com',
+                ],
+            'composer'        =>
+                [
+                    'cn-hangzhou'    => 'composer.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'composer.cn-shanghai.aliyuncs.com',
+                    'us-east-1'      => 'composer.us-east-1.aliyuncs.com',
+                    'ap-southeast-1' => 'composer.ap-southeast-1.aliyuncs.com',
+                ],
+            'cloudesl'        =>
+                [
+                    'cn-hangzhou' => 'cloudesl.cn-hangzhou.aliyuncs.com',
+                ],
+            'amscloudapp'     =>
+                [
+                    'cn-hangzhou' => 'mpca.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'mpca.cn-shanghai.aliyuncs.com',
+                ],
+            'mse'             =>
+                [
+                    'cn-hangzhou'           => 'mse.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'mse.cn-shanghai.aliyuncs.com',
+                    'cn-beijing'            => 'mse.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'mse.cn-zhangjiakou.aliyuncs.com',
+                    'cn-shenzhen'           => 'mse.cn-shenzhen.aliyuncs.com',
+                    'us-east-1'             => 'mse.us-east-1.aliyuncs.com',
+                    'ap-southeast-1'        => 'mse.ap-southeast-1.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'msefinance-share.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'msefinance-share.cn-shenzhen-finance-1.aliyuncs.com',
+                ],
+            'dg'              =>
+                [
+                    'cn-hangzhou' => 'dg.cn-hangzhou.aliyuncs.com',
+                ],
+            'graphcompute'    =>
+                [
+                    'cn-shanghai' => 'gcs.cn-shanghai.aliyuncs.com',
+                ],
+            'cds'             =>
+                [
+                    'ap-southeast-1' => 'cassandra.aliyuncs.com',
+                    'cn-qingdao'     => 'cassandra.aliyuncs.com',
+                    'cn-beijing'     => 'cassandra.aliyuncs.com',
+                    'cn-hangzhou'    => 'cassandra.aliyuncs.com',
+                    'cn-shanghai'    => 'cassandra.aliyuncs.com',
+                    'cn-shenzhen'    => 'cassandra.aliyuncs.com',
+                    'cn-hongkong'    => 'cassandra.aliyuncs.com',
+                    'cn-chengdu'     => 'cassandra.aliyuncs.com',
+                    'cn-zhangjiakou' => 'cassandra.aliyuncs.com',
+                    'cn-huhehaote'   => 'cassandra.aliyuncs.com',
+                    'ap-southeast-2' => 'cassandra.aliyuncs.com',
+                    'ap-southeast-3' => 'cassandra.aliyuncs.com',
+                    'ap-southeast-5' => 'cassandra.aliyuncs.com',
+                    'eu-west-1'      => 'cassandra.aliyuncs.com',
+                    'us-west-1'      => 'cassandra.aliyuncs.com',
+                    'us-east-1'      => 'cassandra.aliyuncs.com',
+                    'eu-central-1'   => 'cassandra.aliyuncs.com',
+                    'me-east-1'      => 'cassandra.aliyuncs.com',
+                    'ap-south-1'     => 'cassandra.aliyuncs.com',
+                    'ap-northeast-1' => 'cassandra.aliyuncs.com',
+                ],
+            'ads'             =>
+                [
+                    'cn-qingdao'            => 'adb.aliyuncs.com',
+                    'cn-beijing'            => 'adb.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'adb.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'           => 'adb.aliyuncs.com',
+                    'cn-shanghai'           => 'adb.aliyuncs.com',
+                    'cn-shenzhen'           => 'adb.aliyuncs.com',
+                    'cn-hongkong'           => 'adb.aliyuncs.com',
+                    'ap-southeast-1'        => 'adb.aliyuncs.com',
+                    'ap-northeast-1'        => 'adb.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'             => 'adb.eu-west-1.aliyuncs.com',
+                    'us-west-1'             => 'adb.aliyuncs.com',
+                    'us-east-1'             => 'adb.aliyuncs.com',
+                    'ap-southeast-2'        => 'adb.ap-southeast-2.aliyuncs.com',
+                    'eu-central-1'          => 'adb.eu-central-1.aliyuncs.com',
+                    'ap-south-1'            => 'adb.ap-south-1.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'adb.aliyuncs.com',
+                    'cn-chengdu'            => 'adb.cn-chengdu.aliyuncs.com',
+                    'cn-huhehaote'          => 'adb.cn-huhehaote.aliyuncs.com',
+                    'ap-southeast-3'        => 'adb.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'adb.ap-southeast-5.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'adb.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'adb.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'adb.aliyuncs.com',
+                ],
+            'csb'             =>
+                [
+                    'cn-beijing'       => 'csb.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou'      => 'csb.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'      => 'csb.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'      => 'csb.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'      => 'csb.cn-hongkong.aliyuncs.com',
+                    'cn-north-2-gov-1' => 'csb.cn-north-2-gov-1.aliyuncs.com',
+                ],
+            'cityvisual'      =>
+                [
+                    'cn-hangzhou' => 'cityvisual.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'cityvisual.cn-shanghai.aliyuncs.com',
+                ],
+            'dbaudit'         =>
+                [
+                    'cn-hangzhou'           => 'yundun-dbaudit.aliyuncs.com',
+                    'cn-qingdao'            => 'yundun-dbaudit.aliyuncs.com',
+                    'cn-beijing'            => 'yundun-dbaudit.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'yundun-dbaudit.aliyuncs.com',
+                    'cn-huhehaote'          => 'yundun-dbaudit.aliyuncs.com',
+                    'cn-shanghai'           => 'yundun-dbaudit.aliyuncs.com',
+                    'cn-shenzhen'           => 'yundun-dbaudit.aliyuncs.com',
+                    'cn-hongkong'           => 'yundun-dbaudit.aliyuncs.com',
+                    'ap-southeast-1'        => 'yundun-dbaudit.aliyuncs.com',
+                    'ap-southeast-2'        => 'yundun-dbaudit.aliyuncs.com',
+                    'ap-southeast-3'        => 'yundun-dbaudit.aliyuncs.com',
+                    'ap-southeast-5'        => 'yundun-dbaudit.aliyuncs.com',
+                    'ap-northeast-1'        => 'yundun-dbaudit.aliyuncs.com',
+                    'us-west-1'             => 'yundun-dbaudit.aliyuncs.com',
+                    'us-east-1'             => 'yundun-dbaudit.aliyuncs.com',
+                    'eu-central-1'          => 'yundun-dbaudit.aliyuncs.com',
+                    'me-east-1'             => 'yundun-dbaudit.aliyuncs.com',
+                    'ap-south-1'            => 'yundun-dbaudit.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'yundun-dbaudit.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'yundun-dbaudit.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'yundun-dbaudit.aliyuncs.com',
+                    'cn-chengdu'            => 'yundun-dbaudit.aliyuncs.com',
+                    'eu-west-1'             => 'yundun-dbaudit.aliyuncs.com',
+                    'cn-huhehaote-nebula-1' => 'yundun-dbaudit.aliyuncs.com',
+                ],
+            'bssopenapi'      =>
+                [
+                    'cn-hangzhou'    => 'business.aliyuncs.com',
+                    'cn-shanghai'    => 'business.aliyuncs.com',
+                    'ap-southeast-1' => 'business.ap-southeast-1.aliyuncs.com',
+                ],
+            'indvi'           =>
+                [
+                    'cn-hangzhou' => 'indvi.cn-hangzhou.aliyuncs.com',
+                ],
+            'swcopyright'     =>
+                [
+                    'cn-hangzhou' => 'copyright.aliyuncs.com',
+                ],
+            'multimediaai'    =>
+                [
+                    'cn-beijing'  => 'multimediaai.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou' => 'multimediaai.cn-hangzhou.aliyuncs.com',
+                ],
+            'rsimganalys'     =>
+                [
+                    'cn-hangzhou' => 'rsimganalys.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'rsimganalys.cn-shanghai.aliyuncs.com',
+                ],
+            'tdsr'            =>
+                [
+                    'cn-hangzhou' => 'lyj.cn-hangzhou.aliyuncs.com',
+                ],
+            'eslogstash'      =>
+                [
+                    'cn-qingdao'     => 'elasticsearch.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'     => 'elasticsearch.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou' => 'elasticsearch.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'    => 'elasticsearch.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'elasticsearch.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'elasticsearch.cn-shenzhen.aliyuncs.com',
+                ],
+            'vcoverimage'     =>
+                [
+                    'cn-beijing'  => 'vcoverimage.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou' => 'vcoverimage.cn-hangzhou.aliyuncs.com',
+                ],
+            'ahas'            =>
+                [
+                    'cn-beijing'     => 'ahas.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou'    => 'ahas.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'ahas.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'ahas.cn-shenzhen.aliyuncs.com',
+                    'cn-zhangjiakou' => 'ahas.cn-zhangjiakou.aliyuncs.com',
+                ],
+            'vstruction'      =>
+                [
+                    'cn-beijing'  => 'vstruction.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou' => 'vstruction.cn-hangzhou.aliyuncs.com',
+                ],
+            'vcovergif'       =>
+                [
+                    'cn-beijing'  => 'vcovergif.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou' => 'vcovergif.cn-hangzhou.aliyuncs.com',
+                ],
+            'aiccs'           =>
+                [
+                    'cn-hangzhou' => 'aiccs.aliyuncs.com',
+                ],
+            'nls'             =>
+                [
+                    'cn-shanghai' => 'nls-slp.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou' => 'nls-slp.cn-shanghai.aliyuncs.com',
+                ],
+            'antcloudauth'    =>
+                [
+                    'cn-shanghai' => 'antcloudauth.cn-shanghai.aliyuncs.com',
+                ],
+            'prepaid_ads'     =>
+                [
+                    'cn-hangzhou-finance'   => 'ads.cn-hangzhou-finance.aliyuncs.com',
+                    'cn-beijing'            => 'ads.cn-beijing.aliyuncs.com',
+                    'cn-chengdu'            => 'ads.cn-chengdu.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'ads.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'           => 'ads.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'ads.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'           => 'ads.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'           => 'ads.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1'        => 'ads.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-3'        => 'ads.ap-southeast-3.aliyuncs.com',
+                    'ap-northeast-1'        => 'ads-share.ap-northeast-1.aliyuncs.com',
+                    'us-west-1'             => 'ads.us-west-1.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'ads.cn-shenzhen-finance-1.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'ads.cn-north-2-gov-1.aliyuncs.com',
+                ],
+            'hdr'             =>
+                [
+                    'cn-qingdao'     => 'hdr.cn-shanghai.aliyuncs.com',
+                    'cn-beijing'     => 'hdr.cn-shanghai.aliyuncs.com',
+                    'cn-zhangjiakou' => 'hdr.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou'    => 'hdr.cn-shanghai.aliyuncs.com',
+                    'cn-shanghai'    => 'hdr.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'hdr.cn-shanghai.aliyuncs.com',
+                    'cn-hongkong'    => 'hdr.cn-shanghai.aliyuncs.com',
+                    'cn-chengdu'     => 'hdr.cn-shanghai.aliyuncs.com',
+                ],
+            'cbs'             =>
+                [
+                    'cn-qingdao'            => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'cn-beijing'            => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'cn-huhehaote'          => 'dbs-api.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'           => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'           => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'cn-hongkong'           => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'        => 'dbs-api.ap-southeast-1.aliyuncs.com',
+                    'ap-northeast-1'        => 'dbs-api.ap-northeast-1.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'cn-chengdu'            => 'dbs-api.cn-chengdu.aliyuncs.com',
+                    'ap-southeast-2'        => 'dbs-api.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'dbs-api.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'dbs-api.ap-southeast-5.aliyuncs.com',
+                    'us-west-1'             => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'us-east-1'             => 'dbs-api.cn-hangzhou.aliyuncs.com',
+                    'eu-central-1'          => 'dbs-api.eu-central-1.aliyuncs.com',
+                ],
+            'datag'           =>
+                [
+                    'cn-beijing' => 'datag.cn-beijing.aliyuncs.com',
+                ],
+            'retailir'        =>
+                [
+                    'cn-hangzhou' => 'retailir.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'retailir.cn-shanghai.aliyuncs.com',
+                ],
+            'mpaas'           =>
+                [
+                    'cn-hangzhou' => 'mpaas.aliyuncs.com',
+                ],
+            'iqa'             =>
+                [
+                    'cn-hangzhou' => 'iqa.cn-hangzhou.aliyuncs.com',
+                ],
+            'sofa'            =>
+                [
+                    'cn-hangzhou'         => 'sofa.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'         => 'sofa.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou-finance' => 'sofa.cn-shanghai.aliyuncs.com',
+                ],
+            'edas'            =>
+                [
+                    'cn-hangzhou'      => 'edas.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'      => 'edas.cn-shanghai.aliyuncs.com',
+                    'cn-qingdao'       => 'edas.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'       => 'edas.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou'   => 'edas.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'      => 'edas.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'      => 'edas.cn-shanghai.aliyuncs.com',
+                    'ap-southeast-1'   => 'edas.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2'   => 'edas.ap-southeast-1.aliyuncs.com',
+                    'us-east-1'        => 'edas.ap-southeast-1.aliyuncs.com',
+                    'eu-central-1'     => 'edas.ap-southeast-1.aliyuncs.com',
+                    'cn-north-2-gov-1' => 'edas.cn-shanghai.aliyuncs.com',
+                ],
+            'gwsservice'      =>
+                [
+                    'cn-shanghai'    => 'gws.cn-shanghai.aliyuncs.com',
+                    'cn-beijing'     => 'gws.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou' => 'gws.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'   => 'gws.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'    => 'gws.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen'    => 'gws.cn-shenzhen.aliyuncs.com',
+                    'cn-chengdu'     => 'gws.cn-chengdu.aliyuncs.com',
+                    'ap-southeast-1' => 'gws.ap-southeast-1.aliyuncs.com',
+                    'cn-hongkong'    => 'gws.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-2' => 'gws.ap-southeast-2.aliyuncs.com',
+                    'us-west-1'      => 'gws.us-west-1.aliyuncs.com',
+                    'us-east-1'      => 'gws.us-east-1.aliyuncs.com',
+                    'eu-central-1'   => 'gws.eu-central-1.aliyuncs.com',
+                    'ap-south-1'     => 'gws.ap-south-1.aliyuncs.com',
+                    'cn-qingdao'     => 'gws.cn-qingdao.aliyuncs.com',
+                    'ap-southeast-3' => 'gws.ap-northeast-3.aliyuncs.com',
+                    'ap-southeast-5' => 'gws.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1' => 'gws.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'      => 'gws.eu-west-1.aliyuncs.com',
+                ],
+            'gds'             =>
+                [
+                    'ap-southeast-1' => 'gdb-api.aliyuncs.com',
+                    'cn-beijing'     => 'gdb-api.aliyuncs.com',
+                    'cn-zhangjiakou' => 'gdb-api.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'    => 'gdb-api.aliyuncs.com',
+                    'cn-shanghai'    => 'gdb-api.aliyuncs.com',
+                    'cn-shenzhen'    => 'gdb-api.aliyuncs.com',
+                    'ap-southeast-5' => 'gdb-api.ap-southeast-5.aliyuncs.com',
+                    'cn-qingdao'     => 'gdb-api.aliyuncs.com',
+                    'cn-chengdu'     => 'gdb-api.cn-chengdu.aliyuncs.com',
+                    'cn-huhehaote'   => 'gdb-api.cn-huhehaote.aliyuncs.com',
+                    'cn-hongkong'    => 'gdb-api.aliyuncs.com',
+                    'ap-southeast-2' => 'gdb-api.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3' => 'gdb-api.ap-southeast-3.aliyuncs.com',
+                    'eu-west-1'      => 'gdb-api.eu-west-1.aliyuncs.com',
+                    'us-west-1'      => 'gdb-api.aliyuncs.com',
+                    'us-east-1'      => 'gdb-api.aliyuncs.com',
+                    'eu-central-1'   => 'gdb-api.eu-central-1.aliyuncs.com',
+                    'me-east-1'      => 'gdb-api.me-east-1.aliyuncs.com',
+                    'ap-south-1'     => 'gdb-api.ap-south-1.aliyuncs.com',
+                ],
+            'eais'            =>
+                [
+                    'cn-beijing'  => 'eais.cn-beijing.aliyuncs.com',
+                    'cn-shenzhen' => 'eais.cn-shenzhen.aliyuncs.com',
+                ],
+            'clickhouse'      =>
+                [
+                    'cn-beijing'     => 'clickhouse.aliyuncs.com',
+                    'cn-hangzhou'    => 'clickhouse.aliyuncs.com',
+                    'cn-shanghai'    => 'clickhouse.aliyuncs.com',
+                    'cn-shenzhen'    => 'clickhouse.aliyuncs.com',
+                    'ap-southeast-1' => 'clickhouse.aliyuncs.com',
+                ],
+            'msepost'         =>
+                [
+                    'cn-beijing'     => 'mse.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou' => 'mse.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'    => 'mse.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'mse.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'mse.cn-shenzhen.aliyuncs.com',
+                    'us-east-1'      => 'mse.us-east-1.aliyuncs.com',
+                ],
+            'visionai'        =>
+                [
+                    'cn-beijing'  => 'visionai.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou' => 'visionai.cn-hangzhou.aliyuncs.com',
+                ],
+            'mseprepaid'      =>
+                [
+                    'cn-beijing'     => 'mse.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou' => 'mse.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'    => 'mse.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'mse.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'mse.cn-shenzhen.aliyuncs.com',
+                    'us-east-1'      => 'mse.us-east-1.aliyuncs.com',
+                ],
+            'adam'            =>
+                [
+                    'cn-beijing' => 'adam.cn-beijing.aliyuncs.com',
+                ],
+            'onsmqtt'         =>
+                [
+                    'cn-beijing'            => 'onsmqtt.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'onsmqtt.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'onsmqtt.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'           => 'onsmqtt.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'onsmqtt.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'           => 'onsmqtt.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'           => 'onsmqtt.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1'        => 'onsmqtt.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2'        => 'onsmqtt.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'        => 'onsmqtt.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'        => 'onsmqtt.ap-southeast-5.aliyuncs.com',
+                    'us-west-1'             => 'onsmqtt.us-west-1.aliyuncs.com',
+                    'eu-central-1'          => 'onsmqtt.eu-central-1.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'onsmqtt.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'onsmqtt.cn-shenzhen-finance-1.aliyuncs.com',
+                    'cn-qingdao'            => 'onsmqtt.cn-qingdao.aliyuncs.com',
+                    'ap-northeast-1'        => 'onsmqtt.ap-northeast-1.aliyuncs.com',
+                    'cn-chengdu'            => 'onsmqtt.cn-chengdu.aliyuncs.com',
+                    'us-east-1'             => 'onsmqtt.us-east-1.aliyuncs.com',
+                    'ap-south-1'            => 'onsmqtt.ap-south-1.aliyuncs.com',
+                ],
+            'dypls'           =>
+                [
+                    'cn-hangzhou' => 'dyplsapi.aliyuncs.com',
+                ],
+            'resourcemanager' =>
+                [
+                    'cn-hangzhou' => 'resourcemanager.aliyuncs.com',
+                    'cn-shanghai' => 'resourcemanager.aliyuncs.com',
+                ],
+            'nlpautoml'       =>
+                [
+                    'cn-hangzhou' => 'nlp-automl.cn-hangzhou.aliyuncs.com',
+                ],
+            'companyreg'      =>
+                [
+                    'cn-hangzhou' => 'companyreg.aliyuncs.com',
+                ],
+            'aliyuncvc'       =>
+                [
+                    'cn-hangzhou' => 'aliyuncvc.cn-hangzhou.aliyuncs.com',
+                ],
+            'alimtautoml'     =>
+                [
+                    'cn-hangzhou' => 'alimtautoml.cn-hangzhou.aliyuncs.com',
+                ],
+            'dbfs'            =>
+                [
+                    'cn-hangzhou'    => 'dbfs.cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao'     => 'dbfs.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'     => 'dbfs.cn-beijing.aliyuncs.com',
+                    'cn-chengdu'     => 'dbfs.cn-chengdu.aliyuncs.com',
+                    'cn-zhangjiakou' => 'dbfs.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'   => 'dbfs.cn-huhehaote.aliyuncs.com',
+                    'cn-shanghai'    => 'dbfs.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'dbfs.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'    => 'dbfs.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1' => 'dbfs.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2' => 'dbfs.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3' => 'dbfs.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5' => 'dbfs.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1' => 'dbfs.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'      => 'dbfs.eu-west-1.aliyuncs.com',
+                    'us-west-1'      => 'dbfs.us-west-1.aliyuncs.com',
+                    'us-east-1'      => 'dbfs.us-east-1.aliyuncs.com',
+                    'eu-central-1'   => 'dbfs.eu-central-1.aliyuncs.com',
+                    'me-east-1'      => 'dbfs.me-east-1.aliyuncs.com',
+                    'ap-south-1'     => 'dbfs.ap-south-1.aliyuncs.com',
+                    'cn-heyuan'      => 'dbfs.cn-heyuan.aliyuncs.com',
+                ],
+            'addrp'           =>
+                [
+                    'cn-hangzhou' => 'address-purification.cn-hangzhou.aliyuncs.com',
+                ],
+            'gaplus'          =>
+                [
+                    'cn-hangzhou'    => 'ga.cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1' => 'ga.cn-hangzhou.aliyuncs.com',
+                ],
+            'datav'           =>
+                [
+                    'cn-hangzhou' => 'datav.cn-hangzhou.aliyuncs.com',
+                ],
+            'ocr'             =>
+                [
+                    'cn-shanghai' => 'ocr.cn-shanghai.aliyuncs.com',
+                ],
+            'objectdet'       =>
+                [
+                    'cn-shanghai' => 'objectdet.cn-shanghai.aliyuncs.com',
+                ],
+            'assetservice'    =>
+                [
+                    'cn-shanghai' => 'assettech.cn-shanghai.aliyuncs.com',
+                ],
+            'imageenhan'      =>
+                [
+                    'cn-shanghai' => 'imageenhan.cn-shanghai.aliyuncs.com',
+                ],
+            'imageaudit'      =>
+                [
+                    'cn-shanghai' => 'imageaudit.cn-shanghai.aliyuncs.com',
+                ],
+            'imagerecog'      =>
+                [
+                    'cn-shanghai' => 'imagerecog.cn-shanghai.aliyuncs.com',
+                ],
+            'imageseg'        =>
+                [
+                    'cn-shanghai' => 'imageseg.cn-shanghai.aliyuncs.com',
+                ],
+            'goodstech'       =>
+                [
+                    'cn-shanghai' => 'goodstech.cn-shanghai.aliyuncs.com',
+                ],
+            'facebody'        =>
+                [
+                    'cn-shanghai' => 'facebody.cn-shanghai.aliyuncs.com',
+                ],
+            'voicebot'        =>
+                [
+                    'cn-hangzhou' => 'voicenavigator.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'voicenavigator.cn-shanghai.aliyuncs.com',
+                ],
+            'dyiot'           =>
+                [
+                    'cn-hangzhou' => 'dyiotapi.aliyuncs.com',
+                ],
+            'drp'             =>
+                [
+                    'cn-hangzhou' => 'drp-share.cn-hangzhou.aliyuncs.com',
+                ],
+            'uem'             =>
+                [
+                    'cn-hangzhou' => 'uem.aliyuncs.com',
+                ],
+            'outboundbot'     =>
+                [
+                    'cn-hangzhou' => 'outboundbot.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'outboundbot.cn-shanghai.aliyuncs.com',
+                ],
+            'hcs_hgw'         =>
+                [
+                    'cn-shanghai' => 'hgw.cn-shanghai.aliyuncs.com',
+                ],
+            'acms'            =>
+                [
+                    'cn-qingdao'            => 'acm.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'            => 'acm.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'acm.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'           => 'acm.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'acm.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'           => 'acm.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'           => 'acm.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1'        => 'acm.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2'        => 'acm.ap-southeast-2.aliyuncs.com',
+                    'us-west-1'             => 'acm.us-west-1.aliyuncs.com',
+                    'us-east-1'             => 'acm.us-east-1.aliyuncs.com',
+                    'eu-central-1'          => 'acm.eu-central-1.aliyuncs.com',
+                    'cn-hangzhou-finance'   => 'acm.cn-hangzhou-finance.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'acm.cn-shanghai-finance-1.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'acm.cn-shenzhen-finance-1.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'acm.cn-north-2-gov-1.aliyuncs.com',
+                    'ap-south-1'            => 'acm.ap-south-1.aliyuncs.com',
+                ],
+            'onsproxy'        =>
+                [
+                    'cn-qingdao'     => 'amqp-open.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'     => 'amqp-open.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou'    => 'amqp-open.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'amqp-open.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'amqp-open.cn-shenzhen.aliyuncs.com',
+                    'cn-zhangjiakou' => 'amqp-open.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'   => 'amqp-open.cn-huhehaote.aliyuncs.com',
+                    'cn-hongkong'    => 'amqp-open.cn-hongkong.aliyuncs.com',
+                ],
+            'drdsro'          =>
+                [
+                    'cn-qingdao'            => 'drds.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'            => 'drds.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou'        => 'drds.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'          => 'drds.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'           => 'drds.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'           => 'drds.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'           => 'drds.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'           => 'drds.cn-hangzhou.aliyuncs.com',
+                    'ap-southeast-1'        => 'drds.ap-southeast-1.aliyuncs.com',
+                    'us-east-1'             => 'drds.us-east-1.aliyuncs.com',
+                    'cn-shanghai-finance-1' => 'drds.cn-hangzhou.aliyuncs.com',
+                    'cn-shenzhen-finance-1' => 'drds.cn-hangzhou.aliyuncs.com',
+                    'cn-north-2-gov-1'      => 'drds.cn-hangzhou.aliyuncs.com',
+                ],
+            'opensearch'      =>
+                [
+                    'cn-qingdao'       => 'opensearch.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'       => 'opensearch.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou'   => 'opensearch.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'      => 'opensearch.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'      => 'opensearch.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'      => 'opensearch.cn-shenzhen.aliyuncs.com',
+                    'ap-southeast-1'   => 'opensearch.ap-southeast-1.aliyuncs.com',
+                    'cn-north-2-gov-1' => 'opensearch.cn-north-2-gov-1.aliyuncs.com',
+                ],
+            'edasschedulerx'  =>
+                [
+                    'cn-beijing'     => 'schedulerx.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou' => 'schedulerx.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'    => 'schedulerx.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'schedulerx.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'schedulerx.cn-shenzhen.aliyuncs.com',
+                    'us-east-1'      => 'schedulerx.us-east-1.aliyuncs.com',
+                ],
+            'tag'             =>
+                [
+                    'cn-beijing'                  => 'tag.aliyuncs.com',
+                    'cn-shenzhen'                 => 'tag.aliyuncs.com',
+                    'cn-qingdao'                  => 'tag.aliyuncs.com',
+                    'cn-chengdu'                  => 'tag.cn-chengdu.aliyuncs.com',
+                    'cn-zhangjiakou'              => 'tag.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'                => 'tag.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'                 => 'tag.aliyuncs.com',
+                    'cn-shanghai'                 => 'tag.aliyuncs.com',
+                    'cn-hongkong'                 => 'tag.aliyuncs.com',
+                    'ap-southeast-1'              => 'tag.aliyuncs.com',
+                    'ap-southeast-2'              => 'tag.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3'              => 'tag.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5'              => 'tag.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1'              => 'tag.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'                   => 'tag.eu-west-1.aliyuncs.com',
+                    'us-west-1'                   => 'tag.aliyuncs.com',
+                    'us-east-1'                   => 'tag.aliyuncs.com',
+                    'eu-central-1'                => 'tag.eu-central-1.aliyuncs.com',
+                    'me-east-1'                   => 'tag.me-east-1.aliyuncs.com',
+                    'ap-south-1'                  => 'tag.ap-south-1.aliyuncs.com',
+                    'cn-hangzhou-finance'         => 'tag.aliyuncs.com',
+                    'cn-shanghai-finance-1'       => 'tag.aliyuncs.com',
+                    'cn-shenzhen-finance-1'       => 'tag.cn-shenzhen-finance-1.aliyuncs.com',
+                    'cn-north-2-gov-1'            => 'tag.cn-north-2-gov-1.aliyuncs.com',
+                    'cn-fujian'                   => 'tag.aliyuncs.com',
+                    'cn-haidian-cm12-c01'         => 'tag.aliyuncs.com',
+                    'cn-hangzhou-internal-test-2' => 'tag.aliyuncs.com',
+                    'cn-hangzhou-internal-test-3' => 'tag.aliyuncs.com',
+                    'cn-hangzhou-test-306'        => 'tag.aliyuncs.com',
+                    'cn-shanghai-et15-b01'        => 'tag.aliyuncs.com',
+                    'cn-zhangbei-na61-b01'        => 'tag.aliyuncs.com',
+                    'eu-west-1-oxs'               => 'tag.cn-shenzhen-cloudstone.aliyuncs.com',
+                    'cn-heyuan'                   => 'tag.cn-heyuan.aliyuncs.com',
+                    'cn-wulanchabu'               => 'tag.cn-wulanchabu.aliyuncs.com',
+                ],
+            'servicemesh'     =>
+                [
+                    'cn-beijing'     => 'servicemesh.aliyuncs.com',
+                    'cn-zhangjiakou' => 'servicemesh.aliyuncs.com',
+                    'cn-hangzhou'    => 'servicemesh.aliyuncs.com',
+                    'cn-shanghai'    => 'servicemesh.aliyuncs.com',
+                    'cn-shenzhen'    => 'servicemesh.aliyuncs.com',
+                    'ap-southeast-1' => 'servicemesh.aliyuncs.com',
+                    'us-west-1'      => 'servicemesh.aliyuncs.com',
+                ],
+            'rdc'             =>
+                [
+                    'cn-beijing' => 'rdc.cn-beijing.aliyuncs.com',
+                ],
+            'sddprsrc'        =>
+                [
+                    'cn-zhangjiakou'   => 'sddp-rsrc.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'      => 'sddprsrc.cn-hangzhou.aliyuncs.com',
+                    'cn-north-2-gov-1' => 'sddprsrc.cn-north-2-gov-1.aliyuncs.com',
+                ],
+            'polardbx'        =>
+                [
+                    'cn-hangzhou'    => 'polardbx.cn-hangzhou.aliyuncs.com',
+                    'cn-qingdao'     => 'polardbx.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'     => 'polardbx.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou' => 'polardbx.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'   => 'polardbx.cn-huhehaote.aliyuncs.com',
+                    'cn-shanghai'    => 'polardbx.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'polardbx.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'    => 'polardbx.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1' => 'polardbx.ap-southeast-1.aliyuncs.com',
+                ],
+            'dytns'           =>
+                [
+                    'cn-hangzhou' => 'dytnsapi.aliyuncs.com',
+                ],
+            'datahub'         =>
+                [
+                    'cn-hangzhou' => 'datahub.aliyuncs.com',
+                    'cn-shanghai' => 'datahub.aliyuncs.com',
+                ],
+            'geoip'           =>
+                [
+                    'cn-hangzhou' => 'geoip.aliyuncs.com',
+                ],
+            'digitalstore'    =>
+                [
+                    'cn-hangzhou' => 'digitalstore.cn-hangzhou.aliyuncs.com',
+                ],
+            'quickbi'         =>
+                [
+                    'cn-hangzhou'    => 'quickbi-public-share.aliyuncs.com',
+                    'cn-hongkong'    => 'quickbi-public-share.aliyuncs.com',
+                    'ap-southeast-1' => 'quickbi-public-share.aliyuncs.com',
+                    'ap-southeast-3' => 'quickbi-public-share.aliyuncs.com',
+                    'eu-central-1'   => 'quickbi-public-share.aliyuncs.com',
+                ],
+            'alimtdt'         =>
+                [
+                    'cn-hangzhou' => 'mt.cn-hangzhou.aliyuncs.com',
+                ],
+            'sofamq'          =>
+                [
+                    'cn-shanghai'         => 'sofa.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou-finance' => 'sofa.cn-hangzhou-finance.aliyuncs.com',
+                ],
+            'sofaodp'         =>
+                [
+                    'cn-shanghai'         => 'sofa.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou-finance' => 'sofa.cn-hangzhou-finance.aliyuncs.com',
+                ],
+            'dascharge'       =>
+                [
+                    'cn-shanghai' => 'das.aliyuncs.com',
+                    'cn-hangzhou' => 'das.aliyuncs.com',
+                ],
+            'sofadst'         =>
+                [
+                    'cn-shanghai' => 'sofa.cn-shanghai.aliyuncs.com',
+                ],
+            'springcloud'     =>
+                [
+                    'cn-qingdao'     => 'ms.aliyuncs.com',
+                    'cn-beijing'     => 'ms.aliyuncs.com',
+                    'cn-zhangjiakou' => 'ms.aliyuncs.com',
+                    'cn-hangzhou'    => 'ms.aliyuncs.com',
+                    'cn-shanghai'    => 'ms.aliyuncs.com',
+                    'cn-shenzhen'    => 'ms.aliyuncs.com',
+                ],
+            'edasmsc'         =>
+                [
+                    'cn-qingdao'     => 'edasmsc.aliyuncs.com',
+                    'cn-beijing'     => 'edasmsc.aliyuncs.com',
+                    'cn-zhangjiakou' => 'edasmsc.aliyuncs.com',
+                    'cn-hangzhou'    => 'edasmsc.aliyuncs.com',
+                    'cn-shanghai'    => 'edasmsc.aliyuncs.com',
+                    'cn-shenzhen'    => 'edasmsc.aliyuncs.com',
+                    'cn-hongkong'    => 'edasmsc.aliyuncs.com',
+                ],
+            'polarx'          =>
+                [
+                    'cn-qingdao'     => 'polardbx-share.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'     => 'polardbx-share.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou' => 'polardbx-share.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'   => 'polardbx-share.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'    => 'polardbx-share.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'polardbx-share.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'polardbx-share.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'    => 'polardbx-share.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1' => 'polardbx-share.ap-southeast-1.aliyuncs.com',
+                ],
+            'cddc'            =>
+                [
+                    'cn-qingdao'     => 'cddc.aliyuncs.com',
+                    'cn-beijing'     => 'cddc.aliyuncs.com',
+                    'cn-chengdu'     => 'cddc.cn-chengdu.aliyuncs.com',
+                    'cn-zhangjiakou' => 'cddc.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'   => 'cddc.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'    => 'cddc.aliyuncs.com',
+                    'cn-shanghai'    => 'cddc.aliyuncs.com',
+                    'cn-shenzhen'    => 'cddc.aliyuncs.com',
+                    'cn-hongkong'    => 'cddc.aliyuncs.com',
+                    'ap-southeast-1' => 'cddc.aliyuncs.com',
+                    'ap-southeast-2' => 'cddc.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3' => 'cddc.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5' => 'cddc.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1' => 'cddc.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'      => 'cddc.eu-west-1.aliyuncs.com',
+                    'us-west-1'      => 'cddc.aliyuncs.com',
+                    'us-east-1'      => 'cddc.aliyuncs.com',
+                    'eu-central-1'   => 'cddc.eu-central-1.aliyuncs.com',
+                    'me-east-1'      => 'cddc.me-east-1.aliyuncs.com',
+                    'ap-south-1'     => 'cddc.ap-south-1.aliyuncs.com',
+                    'cn-heyuan'      => 'cddc.aliyuncs.com',
+                ],
+            'dlasparkpre'     =>
+                [
+                    'cn-qingdao'     => 'dlaspark.aliyuncs.com',
+                    'cn-beijing'     => 'dlaspark.aliyuncs.com',
+                    'cn-zhangjiakou' => 'dlaspark.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'    => 'dlaspark.aliyuncs.com',
+                    'cn-shanghai'    => 'dlaspark.aliyuncs.com',
+                    'cn-shenzhen'    => 'dlaspark.aliyuncs.com',
+                ],
+            'spark'           =>
+                [
+                    'cn-qingdao'     => 'ddi.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'     => 'ddi.aliyuncs.com',
+                    'cn-chengdu'     => 'ddi.cn-chengdu.aliyuncs.com',
+                    'cn-zhangjiakou' => 'ddi.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'   => 'ddi.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'    => 'ddi.aliyuncs.com',
+                    'cn-shanghai'    => 'ddi.aliyuncs.com',
+                    'cn-shenzhen'    => 'ddi.aliyuncs.com',
+                    'cn-hongkong'    => 'ddi.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1' => 'ddi.aliyuncs.com',
+                    'ap-southeast-2' => 'ddi.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3' => 'ddi.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5' => 'ddi.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1' => 'ddi.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'      => 'ddi.eu-west-1.aliyuncs.com',
+                    'us-west-1'      => 'ddi.aliyuncs.com',
+                    'us-east-1'      => 'ddi.us-east-1.aliyuncs.com',
+                    'eu-central-1'   => 'ddi.eu-central-1.aliyuncs.com',
+                    'me-east-1'      => 'ddi.me-east-1.aliyuncs.com',
+                    'ap-south-1'     => 'ddi.ap-south-1.aliyuncs.com',
+                    'cn-heyuan'      => 'ddi.aliyuncs.com',
+                ],
+            'multisearch'     =>
+                [
+                    'cn-beijing'  => 'multisearch.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou' => 'multisearch.cn-hangzhou.aliyuncs.com',
+                ],
+            'pai'             =>
+                [
+                    'cn-beijing'     => 'pai.cn-beijing.aliyuncs.com',
+                    'cn-hangzhou'    => 'pai.cn-hangzhou.data.aliyun.com',
+                    'cn-shanghai'    => 'pai.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'pai.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'    => 'pai.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1' => 'pai.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2' => 'pai.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3' => 'pai.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5' => 'pai.ap-southeast-5.aliyuncs.com',
+                    'us-west-1'      => 'pai.us-west-1.aliyuncs.com',
+                    'us-east-1'      => 'pai.us-east-1.aliyuncs.com',
+                    'eu-central-1'   => 'pai.eu-central-1.aliyuncs.com',
+                    'me-east-1'      => 'pai.me-east-1.aliyuncs.com',
+                    'ap-south-1'     => 'pai.ap-south-1.aliyuncs.com',
+                ],
+            'fcpre'           =>
+                [
+                    'cn-chengdu'          => 'cn-chengdu.fc.aliyuncs.com',
+                    'ap-southeast-3'      => 'ap-southeast-3.fc.aliyuncs.com',
+                    'eu-west-1'           => 'eu-west-1.fc.aliyuncs.com',
+                    'cn-hangzhou-finance' => 'cn-hangzhou-finance.fc.aliyuncs.com',
+                ],
+            'ahaschaospre'    =>
+                [
+                    'cn-zhangjiakou' => 'ahas.cn-zhangjiakou.aliyuncs.com',
+                ],
+            'sasti'           =>
+                [
+                    'cn-zhangjiakou' => 'sasti.aliyuncs.com',
+                ],
+            'config'          =>
+                [
+                    'cn-hangzhou' => 'config.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'config.cn-shanghai.aliyuncs.com',
+                ],
+            'ledgerdb'        =>
+                [
+                    'cn-hangzhou' => 'ledgerdb.cn-hangzhou.aliyuncs.com',
+                ],
+            'nlpvision'       =>
+                [
+                    'cn-hangzhou' => 'nlp-vision.cn-hangzhou.aliyuncs.com',
+                ],
+            'alimtld'         =>
+                [
+                    'cn-hangzhou' => 'mt.cn-hangzhou.aliyuncs.com',
+                ],
+            'databot'         =>
+                [
+                    'cn-hangzhou' => 'databot.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'databot.cn-shanghai.aliyuncs.com',
+                ],
+            'livinglink'      =>
+                [
+                    'cn-hangzhou'    => 'livinglink.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'livinglink.cn-shanghai.aliyuncs.com',
+                    'ap-southeast-1' => 'livinglink.ap-southeast-1.aliyuncs.com',
+                    'us-east-1'      => 'livinglink.us-east-1.aliyuncs.com',
+                    'eu-central-1'   => 'livinglink.eu-central-1.aliyuncs.com',
+                ],
+            'eipanycast'      =>
+                [
+                    'cn-hangzhou' => 'eipanycast.cn-hangzhou.aliyuncs.com',
+                ],
+            'alimtct'         =>
+                [
+                    'cn-hangzhou' => 'mt.cn-hangzhou.aliyuncs.com',
+                ],
+            'videorecog'      =>
+                [
+                    'cn-shanghai' => 'videorecog.cn-shanghai.aliyuncs.com',
+                ],
+            'imageprocess'    =>
+                [
+                    'cn-shanghai' => 'imageprocess.cn-shanghai.aliyuncs.com',
+                ],
+            'sofats'          =>
+                [
+                    'cn-shanghai'         => 'sofa.cn-shanghai.aliyuncs.com',
+                    'cn-hangzhou-finance' => 'sofa.cn-hangzhou-finance.aliyuncs.com',
+                ],
+            'videoenhan'      =>
+                [
+                    'cn-shanghai' => 'videoenhan.cn-shanghai.aliyuncs.com',
+                ],
+            'imgsearch'       =>
+                [
+                    'cn-shanghai' => 'imgsearch.cn-shanghai.aliyuncs.com',
+                ],
+            'videoseg'        =>
+                [
+                    'cn-shanghai' => 'videoseg.cn-shanghai.aliyuncs.com',
+                ],
+            'sofacaferms'     =>
+                [
+                    'cn-hangzhou-finance' => 'sofa.cn-hangzhou-finance.aliyuncs.com',
+                ],
+            'retailadvqa'     =>
+                [
+                    'cn-zhangjiakou' => 'quicka-public.cn-zhangjiakou.aliyuncs.com',
+                    'cn-shanghai'    => 'quicka-public.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'quicka-public.cn-shenzhen.aliyuncs.com',
+                ],
+            'linkanalytics'   =>
+                [
+                    'cn-hangzhou' => 'linkanalytics.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'linkanalytics.cn-shanghai.aliyuncs.com',
+                ],
+            'swas'            =>
+                [
+                    'cn-qingdao'     => 'swas.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'     => 'swas.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou' => 'swas.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'   => 'swas.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'    => 'swas.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'swas.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'swas.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'    => 'swas.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1' => 'swas.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2' => 'swas.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3' => 'swas.ap-southeast-3.aliyuncs.com',
+                    'ap-southeast-5' => 'swas.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1' => 'swas.ap-northeast-1.aliyuncs.com',
+                    'eu-west-1'      => 'swas.eu-west-1.aliyuncs.com',
+                    'us-west-1'      => 'swas.us-west-1.aliyuncs.com',
+                    'us-east-1'      => 'swas.us-east-1.aliyuncs.com',
+                    'eu-central-1'   => 'swas.eu-central-1.aliyuncs.com',
+                    'ap-south-1'     => 'swas.ap-south-1.aliyuncs.com',
+                ],
+            'gws'             =>
+                [
+                    'cn-qingdao'     => 'gws.cn-qingdao.aliyuncs.com',
+                    'cn-beijing'     => 'gws.cn-beijing.aliyuncs.com',
+                    'cn-chengdu'     => 'gws.cn-chengdu.aliyuncs.com',
+                    'cn-zhangjiakou' => 'gws.cn-zhangjiakou.aliyuncs.com',
+                    'cn-huhehaote'   => 'gws.cn-huhehaote.aliyuncs.com',
+                    'cn-hangzhou'    => 'gws.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'gws.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'gws.cn-shenzhen.aliyuncs.com',
+                    'cn-hongkong'    => 'gws.cn-hongkong.aliyuncs.com',
+                    'ap-southeast-1' => 'gws.ap-southeast-1.aliyuncs.com',
+                    'ap-southeast-2' => 'gws.ap-southeast-2.aliyuncs.com',
+                    'ap-southeast-3' => 'gws.ap-northeast-3.aliyuncs.com',
+                    'ap-southeast-5' => 'gws.ap-southeast-5.aliyuncs.com',
+                    'ap-northeast-1' => 'gws.ap-northeast-1.aliyuncs.com',
+                    'us-west-1'      => 'gws.us-west-1.aliyuncs.com',
+                    'us-east-1'      => 'gws.us-east-1.aliyuncs.com',
+                    'eu-central-1'   => 'gws.eu-central-1.aliyuncs.com',
+                    'ap-south-1'     => 'gws.ap-south-1.aliyuncs.com',
+                ],
+            'dlacupost'       =>
+                [
+                    'cn-beijing'     => 'openanalytics.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou' => 'openanalytics.cn-hongkong.aliyuncs.com',
+                    'cn-hangzhou'    => 'openanalytics.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'    => 'openanalytics.cn-shanghai.aliyuncs.com',
+                    'cn-shenzhen'    => 'openanalytics.cn-beijing.aliyuncs.com',
+                    'cn-hongkong'    => 'openanalytics.cn-hongkong.aliyuncs.com',
+                ],
+            'ressharing'      =>
+                [
+                    'cn-beijing'       => 'resourcesharing.cn-beijing.aliyuncs.com',
+                    'cn-zhangjiakou'   => 'resourcesharing.cn-zhangjiakou.aliyuncs.com',
+                    'cn-hangzhou'      => 'resourcesharing.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai'      => 'resourcesharing.cn-shanghai.aliyuncs.com',
+                    'ap-southeast-1'   => 'resourcesharing.ap-southeast-1.aliyuncs.com',
+                    'cn-north-2-gov-1' => 'resourcesharing.cn-north-2-gov-1.aliyuncs.com',
+                ],
+            'uisplus'         =>
+                [
+                    'cn-huhehaote' => 'uisplus.cn-huhehaote.aliyuncs.com',
+                    'cn-shenzhen'  => 'uisplus.cn-shenzhen.aliyuncs.com',
+                ],
+            'idrsservice'     =>
+                [
+                    'cn-hangzhou' => 'idrsservice.cn-hangzhou.aliyuncs.com',
+                ],
+            'alinlp'          =>
+                [
+                    'cn-hangzhou' => 'alinlp.cn-hangzhou.aliyuncs.com',
+                ],
+            'miniapplcdp'     =>
+                [
+                    'cn-hangzhou' => 'miniapplcdp.aliyuncs.com',
+                    'cn-shanghai' => 'miniapplcdp.aliyuncs.com',
+                ],
+            'baasdis'         =>
+                [
+                    'cn-hangzhou' => 'baasdis.cn-hangzhou.aliyuncs.com',
+                ],
+            'baasodats'       =>
+                [
+                    'cn-hangzhou' => 'baasodats.cn-hangzhou.aliyuncs.com',
+                ],
+            'baascccs'        =>
+                [
+                    'cn-hangzhou' => 'baascccs.cn-hangzhou.aliyuncs.com',
+                ],
+            'pam'             =>
+                [
+                    'cn-hangzhou' => 'pam.cn-hangzhou.aliyuncs.com',
+                ],
+            'alimtec'         =>
+                [
+                    'cn-hangzhou' => 'mt.cn-hangzhou.aliyuncs.com',
+                ],
+            'cloudgame'       =>
+                [
+                    'cn-hangzhou' => 'cloudgame.cn-hangzhou.aliyuncs.com',
+                    'cn-shanghai' => 'cloudgame.cn-shanghai.aliyuncs.com',
+                ],
+            'csas'            =>
+                [
+                    'cn-hangzhou' => 'csas.aliyuncs.com',
+                ],
+            'facebodyqps'     =>
+                [
+                    'cn-shanghai' => 'facebody.cn-shanghai.aliyuncs.com',
+                ],
+            'face'            =>
+                [
+                    'cn-shanghai' => 'face.cn-shanghai.aliyuncs.com',
+                ],
+            'cams'            =>
+                [
+                    'ap-southeast-1' => 'cams.ap-southeast-1.aliyuncs.com',
+                ],
+            'mpaasfin'        =>
+                [
+                    'cn-hangzhou-finance' => 'mpaas.cn-hangzhou-finance.aliyuncs.com',
+                ],
+            'mpaasgov'        =>
+                [
+                    'cn-north-2-gov-1' => 'mpaas.cn-north-2-gov-1.aliyuncs.com',
+                ],
+        ],
+];

+ 65 - 0
vendor/alibabacloud/client/src/Credentials/AccessKeyCredential.php

@@ -0,0 +1,65 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials;
+
+use AlibabaCloud\Client\Filter\CredentialFilter;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Use the AccessKey to complete the authentication.
+ *
+ * @package   AlibabaCloud\Client\Credentials
+ */
+class AccessKeyCredential implements CredentialsInterface
+{
+
+    /**
+     * @var string
+     */
+    private $accessKeyId;
+
+    /**
+     * @var string
+     */
+    private $accessKeySecret;
+
+    /**
+     * AccessKeyCredential constructor.
+     *
+     * @param string $accessKeyId     Access key ID
+     * @param string $accessKeySecret Access Key Secret
+     *
+     * @throws ClientException
+     */
+    public function __construct($accessKeyId, $accessKeySecret)
+    {
+        CredentialFilter::AccessKey($accessKeyId, $accessKeySecret);
+
+        $this->accessKeyId     = $accessKeyId;
+        $this->accessKeySecret = $accessKeySecret;
+    }
+
+    /**
+     * @return string
+     */
+    public function getAccessKeyId()
+    {
+        return $this->accessKeyId;
+    }
+
+    /**
+     * @return string
+     */
+    public function getAccessKeySecret()
+    {
+        return $this->accessKeySecret;
+    }
+
+    /**
+     * @return string
+     */
+    public function __toString()
+    {
+        return "$this->accessKeyId#$this->accessKeySecret";
+    }
+}

+ 66 - 0
vendor/alibabacloud/client/src/Credentials/BearerTokenCredential.php

@@ -0,0 +1,66 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials;
+
+use AlibabaCloud\Client\Filter\CredentialFilter;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Class BearerTokenCredential
+ *
+ * @package   AlibabaCloud\Client\Credentials
+ */
+class BearerTokenCredential implements CredentialsInterface
+{
+
+    /**
+     * @var string
+     */
+    private $bearerToken;
+
+    /**
+     * Class constructor.
+     *
+     * @param string $bearerToken
+     *
+     * @throws ClientException
+     */
+    public function __construct($bearerToken)
+    {
+        CredentialFilter::bearerToken($bearerToken);
+
+        $this->bearerToken = $bearerToken;
+    }
+
+    /**
+     * @return string
+     */
+    public function getBearerToken()
+    {
+        return $this->bearerToken;
+    }
+
+    /**
+     * @return string
+     */
+    public function getAccessKeyId()
+    {
+        return '';
+    }
+
+    /**
+     * @return string
+     */
+    public function getAccessKeySecret()
+    {
+        return '';
+    }
+
+    /**
+     * @return string
+     */
+    public function __toString()
+    {
+        return "bearerToken#$this->bearerToken";
+    }
+}

+ 18 - 0
vendor/alibabacloud/client/src/Credentials/CredentialsInterface.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials;
+
+/**
+ * interface CredentialsInterface
+ *
+ * @package            AlibabaCloud\Client\Credentials
+ *
+ * @codeCoverageIgnore
+ */
+interface CredentialsInterface
+{
+    /**
+     * @return string
+     */
+    public function __toString();
+}

+ 50 - 0
vendor/alibabacloud/client/src/Credentials/EcsRamRoleCredential.php

@@ -0,0 +1,50 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials;
+
+use AlibabaCloud\Client\Filter\CredentialFilter;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Use the RAM role of an ECS instance to complete the authentication.
+ *
+ * @package   AlibabaCloud\Client\Credentials
+ */
+class EcsRamRoleCredential implements CredentialsInterface
+{
+
+    /**
+     * @var string
+     */
+    private $roleName;
+
+    /**
+     * Class constructor.
+     *
+     * @param string $roleName
+     *
+     * @throws ClientException
+     */
+    public function __construct($roleName)
+    {
+        CredentialFilter::roleName($roleName);
+
+        $this->roleName = $roleName;
+    }
+
+    /**
+     * @return string
+     */
+    public function getRoleName()
+    {
+        return $this->roleName;
+    }
+
+    /**
+     * @return string
+     */
+    public function __toString()
+    {
+        return "roleName#$this->roleName";
+    }
+}

+ 181 - 0
vendor/alibabacloud/client/src/Credentials/Ini/CreateTrait.php

@@ -0,0 +1,181 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials\Ini;
+
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\Clients\Client;
+use AlibabaCloud\Client\Clients\AccessKeyClient;
+use AlibabaCloud\Client\Clients\RamRoleArnClient;
+use AlibabaCloud\Client\Clients\RsaKeyPairClient;
+use AlibabaCloud\Client\Clients\EcsRamRoleClient;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Clients\BearerTokenClient;
+
+/**
+ * Trait CreateTrait
+ *
+ * @package   AlibabaCloud\Client\Credentials\Ini
+ *
+ * @mixin     IniCredential
+ */
+trait CreateTrait
+{
+    /**
+     * @param string $clientName
+     * @param array  $credential
+     *
+     * @return Client|bool
+     * @throws ClientException
+     */
+    protected function createClient($clientName, array $credential)
+    {
+        if (!isset($credential['enable']) || !$credential['enable']) {
+            return false;
+        }
+
+        if (!isset($credential['type'])) {
+            $this->missingRequired('type', $clientName);
+        }
+
+        return $this->createClientByType($clientName, $credential)->name($clientName);
+    }
+
+    /**
+     * @param string $clientName
+     * @param array  $credential
+     *
+     * @return AccessKeyClient|BearerTokenClient|EcsRamRoleClient|RamRoleArnClient|RsaKeyPairClient
+     * @throws ClientException
+     */
+    private function createClientByType($clientName, array $credential)
+    {
+        switch (\strtolower($credential['type'])) {
+            case 'access_key':
+                return $this->accessKeyClient($clientName, $credential);
+            case 'ecs_ram_role':
+                return $this->ecsRamRoleClient($clientName, $credential);
+            case 'ram_role_arn':
+                return $this->ramRoleArnClient($clientName, $credential);
+            case 'bearer_token':
+                return $this->bearerTokenClient($clientName, $credential);
+            case 'rsa_key_pair':
+                return $this->rsaKeyPairClient($clientName, $credential);
+            default:
+                throw new ClientException(
+                    "Invalid type '{$credential['type']}' for '$clientName' in {$this->filename}",
+                    SDK::INVALID_CREDENTIAL
+                );
+        }
+    }
+
+    /**
+     * @param array  $credential
+     * @param string $clientName
+     *
+     * @return AccessKeyClient
+     * @throws ClientException
+     */
+    private function accessKeyClient($clientName, array $credential)
+    {
+        if (!isset($credential['access_key_id'])) {
+            $this->missingRequired('access_key_id', $clientName);
+        }
+
+        if (!isset($credential['access_key_secret'])) {
+            $this->missingRequired('access_key_secret', $clientName);
+        }
+
+        return new AccessKeyClient(
+            $credential['access_key_id'],
+            $credential['access_key_secret']
+        );
+    }
+
+    /**
+     * @param string $clientName
+     * @param array  $credential
+     *
+     * @return EcsRamRoleClient
+     * @throws ClientException
+     */
+    private function ecsRamRoleClient($clientName, array $credential)
+    {
+        if (!isset($credential['role_name'])) {
+            $this->missingRequired('role_name', $clientName);
+        }
+
+        return new EcsRamRoleClient($credential['role_name']);
+    }
+
+    /**
+     * @param string $clientName
+     * @param array  $credential
+     *
+     * @return RamRoleArnClient
+     * @throws ClientException
+     */
+    private function ramRoleArnClient($clientName, array $credential)
+    {
+        if (!isset($credential['access_key_id'])) {
+            $this->missingRequired('access_key_id', $clientName);
+        }
+
+        if (!isset($credential['access_key_secret'])) {
+            $this->missingRequired('access_key_secret', $clientName);
+        }
+
+        if (!isset($credential['role_arn'])) {
+            $this->missingRequired('role_arn', $clientName);
+        }
+
+        if (!isset($credential['role_session_name'])) {
+            $this->missingRequired('role_session_name', $clientName);
+        }
+
+        return new RamRoleArnClient(
+            $credential['access_key_id'],
+            $credential['access_key_secret'],
+            $credential['role_arn'],
+            $credential['role_session_name']
+        );
+    }
+
+    /**
+     * @param string $clientName
+     * @param array  $credential
+     *
+     * @return BearerTokenClient
+     * @throws ClientException
+     */
+    private function bearerTokenClient($clientName, array $credential)
+    {
+        if (!isset($credential['bearer_token'])) {
+            $this->missingRequired('bearer_token', $clientName);
+        }
+
+        return new BearerTokenClient($credential['bearer_token']);
+    }
+
+    /**
+     * @param array  $credential
+     * @param string $clientName
+     *
+     * @return RsaKeyPairClient
+     * @throws ClientException
+     */
+    private function rsaKeyPairClient($clientName, array $credential)
+    {
+        if (!isset($credential['public_key_id'])) {
+            $this->missingRequired('public_key_id', $clientName);
+        }
+
+        if (!isset($credential['private_key_file'])) {
+            $this->missingRequired('private_key_file', $clientName);
+        }
+
+        return new RsaKeyPairClient(
+            $credential['public_key_id'],
+            $credential['private_key_file']
+        );
+    }
+}

+ 209 - 0
vendor/alibabacloud/client/src/Credentials/Ini/IniCredential.php

@@ -0,0 +1,209 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials\Ini;
+
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\Clients\Client;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Class IniCredential
+ *
+ * @package   AlibabaCloud\Client\Credentials\Ini
+ */
+class IniCredential
+{
+    use CreateTrait;
+    use OptionsTrait;
+
+    /**
+     * @var array
+     */
+    private static $hasLoaded;
+
+    /**
+     * @var string
+     */
+    protected $filename;
+
+    /**
+     * IniCredential constructor.
+     *
+     * @param string $filename
+     */
+    public function __construct($filename = '')
+    {
+        $this->filename = $filename ?: $this->getDefaultFile();
+    }
+
+    /**
+     * Get the default credential file.
+     *
+     * @return string
+     */
+    public function getDefaultFile()
+    {
+        return self::getHomeDirectory() . DIRECTORY_SEPARATOR . '.alibabacloud' . DIRECTORY_SEPARATOR . 'credentials';
+    }
+
+    /**
+     * Gets the environment's HOME directory.
+     *
+     * @return null|string
+     */
+    private static function getHomeDirectory()
+    {
+        if (getenv('HOME')) {
+            return getenv('HOME');
+        }
+
+        return (getenv('HOMEDRIVE') && getenv('HOMEPATH'))
+            ? getenv('HOMEDRIVE') . getenv('HOMEPATH')
+            : null;
+    }
+
+    /**
+     * Clear credential cache.
+     *
+     * @return void
+     */
+    public static function forgetLoadedCredentialsFile()
+    {
+        self::$hasLoaded = [];
+    }
+
+    /**
+     * Get the credential file.
+     *
+     * @return string
+     */
+    public function getFilename()
+    {
+        return $this->filename;
+    }
+
+    /**
+     * @param array  $array
+     * @param string $key
+     *
+     * @return bool
+     */
+    protected static function isNotEmpty(array $array, $key)
+    {
+        return isset($array[$key]) && !empty($array[$key]);
+    }
+
+    /**
+     * @param string $key
+     * @param string $clientName
+     *
+     * @throws ClientException
+     */
+    public function missingRequired($key, $clientName)
+    {
+        throw new ClientException(
+            "Missing required '$key' option for '$clientName' in " . $this->getFilename(),
+            SDK::INVALID_CREDENTIAL
+        );
+    }
+
+    /**
+     * @return array|mixed
+     * @throws ClientException
+     */
+    public function load()
+    {
+        // If it has been loaded, assign the client directly.
+        if (isset(self::$hasLoaded[$this->filename])) {
+            /**
+             * @var $client Client
+             */
+            foreach (self::$hasLoaded[$this->filename] as $projectName => $client) {
+                $client->name($projectName);
+            }
+
+            return self::$hasLoaded[$this->filename];
+        }
+
+        return $this->loadFile();
+    }
+
+    /**
+     * Exceptions will be thrown if the file is unreadable and not the default file.
+     *
+     * @return array|mixed
+     * @throws ClientException
+     */
+    private function loadFile()
+    {
+        if (!\AlibabaCloud\Client\inOpenBasedir($this->filename)) {
+            return [];
+        }
+
+        if (!\is_readable($this->filename) || !\is_file($this->filename)) {
+            if ($this->filename === $this->getDefaultFile()) {
+                // @codeCoverageIgnoreStart
+                return [];
+                // @codeCoverageIgnoreEnd
+            }
+            throw new ClientException(
+                'Credential file is not readable: ' . $this->getFilename(),
+                SDK::INVALID_CREDENTIAL
+            );
+        }
+
+        return $this->parseFile();
+    }
+
+    /**
+     * Decode the ini file into an array.
+     *
+     * @return array|mixed
+     * @throws ClientException
+     */
+    private function parseFile()
+    {
+        try {
+            $file = \parse_ini_file($this->filename, true);
+            if (\is_array($file) && $file !== []) {
+                return $this->initClients($file);
+            }
+            throw new ClientException(
+                'Format error: ' . $this->getFilename(),
+                SDK::INVALID_CREDENTIAL
+            );
+        } catch (\Exception $e) {
+            throw new ClientException(
+                $e->getMessage(),
+                SDK::INVALID_CREDENTIAL,
+                $e
+            );
+        }
+    }
+
+    /**
+     * Initialize clients.
+     *
+     * @param array $array
+     *
+     * @return array|mixed
+     * @throws ClientException
+     */
+    private function initClients($array)
+    {
+        foreach (\array_change_key_case($array) as $clientName => $configures) {
+            $configures     = \array_change_key_case($configures);
+            $clientInstance = $this->createClient($clientName, $configures);
+            if ($clientInstance instanceof Client) {
+                self::$hasLoaded[$this->filename][$clientName] = $clientInstance;
+                self::setClientAttributes($configures, $clientInstance);
+                self::setCert($configures, $clientInstance);
+                self::setProxy($configures, $clientInstance);
+            }
+        }
+
+        return isset(self::$hasLoaded[$this->filename])
+            ? self::$hasLoaded[$this->filename]
+            : [];
+    }
+}

+ 111 - 0
vendor/alibabacloud/client/src/Credentials/Ini/OptionsTrait.php

@@ -0,0 +1,111 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials\Ini;
+
+use AlibabaCloud\Client\Clients\Client;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Trait OptionsTrait
+ *
+ * @package   AlibabaCloud\Client\Credentials\Ini
+ *
+ * @mixin     IniCredential
+ */
+trait OptionsTrait
+{
+    /**
+     * @param array  $configures
+     * @param Client $client
+     *
+     * @throws ClientException
+     */
+    private static function setClientAttributes($configures, Client $client)
+    {
+        if (self::isNotEmpty($configures, 'region_id')) {
+            $client->regionId($configures['region_id']);
+        }
+
+        if (isset($configures['debug'])) {
+            $client->options(
+                [
+                    'debug' => (bool)$configures['debug'],
+                ]
+            );
+        }
+
+        if (self::isNotEmpty($configures, 'timeout')) {
+            $client->options(
+                [
+                    'timeout' => $configures['timeout'],
+                ]
+            );
+        }
+
+        if (self::isNotEmpty($configures, 'connect_timeout')) {
+            $client->options(
+                [
+                    'connect_timeout' => $configures['connect_timeout'],
+                ]
+            );
+        }
+    }
+
+    /**
+     * @param array  $configures
+     * @param Client $client
+     */
+    private static function setProxy($configures, Client $client)
+    {
+        if (self::isNotEmpty($configures, 'proxy')) {
+            $client->options(
+                [
+                    'proxy' => $configures['proxy'],
+                ]
+            );
+        }
+        $proxy = [];
+        if (self::isNotEmpty($configures, 'proxy_http')) {
+            $proxy['http'] = $configures['proxy_http'];
+        }
+        if (self::isNotEmpty($configures, 'proxy_https')) {
+            $proxy['https'] = $configures['proxy_https'];
+        }
+        if (self::isNotEmpty($configures, 'proxy_no')) {
+            $proxy['no'] = \explode(',', $configures['proxy_no']);
+        }
+        if ($proxy !== []) {
+            $client->options(
+                [
+                    'proxy' => $proxy,
+                ]
+            );
+        }
+    }
+
+    /**
+     * @param array  $configures
+     * @param Client $client
+     */
+    private static function setCert($configures, Client $client)
+    {
+        if (self::isNotEmpty($configures, 'cert_file') && !self::isNotEmpty($configures, 'cert_password')) {
+            $client->options(
+                [
+                    'cert' => $configures['cert_file'],
+                ]
+            );
+        }
+
+        if (self::isNotEmpty($configures, 'cert_file') && self::isNotEmpty($configures, 'cert_password')) {
+            $client->options(
+                [
+                    'cert' => [
+                        $configures['cert_file'],
+                        $configures['cert_password'],
+                    ],
+                ]
+            );
+        }
+    }
+}

+ 170 - 0
vendor/alibabacloud/client/src/Credentials/Providers/CredentialsProvider.php

@@ -0,0 +1,170 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials\Providers;
+
+use Closure;
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Class CredentialsProvider
+ *
+ * @package AlibabaCloud\Client\Credentials\Providers
+ */
+class CredentialsProvider
+{
+    /**
+     * @var array
+     */
+    private static $customChains;
+
+    /**
+     * @throws ClientException
+     */
+    public static function chain()
+    {
+        $providers = func_get_args();
+
+        if (empty($providers)) {
+            throw new ClientException('No providers in chain', SDK::INVALID_ARGUMENT);
+        }
+
+        foreach ($providers as $provider) {
+            if (!$provider instanceof Closure) {
+                throw new ClientException('Providers must all be Closures', SDK::INVALID_ARGUMENT);
+            }
+        }
+
+        self::$customChains = $providers;
+    }
+
+    /**
+     * Forget the custom providers chain.
+     */
+    public static function flush()
+    {
+        self::$customChains = [];
+    }
+
+    /**
+     * @return bool
+     */
+    public static function hasCustomChain()
+    {
+        return (bool)self::$customChains;
+    }
+
+    /**
+     * @param string $clientName
+     *
+     * @throws ClientException
+     */
+    public static function customProvider($clientName)
+    {
+        foreach (self::$customChains as $provider) {
+            $provider();
+            if (AlibabaCloud::has($clientName)) {
+                break;
+            }
+        }
+    }
+
+    /**
+     * @param string $clientName
+     *
+     * @throws ClientException
+     */
+    public static function defaultProvider($clientName)
+    {
+        $providers = [
+            self::env(),
+            self::ini(),
+            self::instance(),
+        ];
+
+        foreach ($providers as $provider) {
+            $provider();
+            if (AlibabaCloud::has($clientName)) {
+                break;
+            }
+        }
+    }
+
+    /**
+     * @return Closure
+     */
+    public static function env()
+    {
+        return static function () {
+            $accessKeyId     = \AlibabaCloud\Client\envNotEmpty('ALIBABA_CLOUD_ACCESS_KEY_ID');
+            $accessKeySecret = \AlibabaCloud\Client\envNotEmpty('ALIBABA_CLOUD_ACCESS_KEY_SECRET');
+
+            if ($accessKeyId && $accessKeySecret) {
+                AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)->asDefaultClient();
+            }
+        };
+    }
+
+    /**
+     * @return Closure
+     */
+    public static function ini()
+    {
+        return static function () {
+            $ini = \AlibabaCloud\Client\envNotEmpty('ALIBABA_CLOUD_CREDENTIALS_FILE');
+
+            if ($ini) {
+                AlibabaCloud::load($ini);
+            } else {
+                // @codeCoverageIgnoreStart
+                AlibabaCloud::load();
+                // @codeCoverageIgnoreEnd
+            }
+
+            self::compatibleWithGlobal();
+        };
+    }
+
+    /**
+     * @codeCoverageIgnore
+     *
+     * Compatible with global
+     *
+     * @throws ClientException
+     */
+    private static function compatibleWithGlobal()
+    {
+        if (AlibabaCloud::has('global') && !AlibabaCloud::has(self::getDefaultName())) {
+            AlibabaCloud::get('global')->name(self::getDefaultName());
+        }
+    }
+
+    /**
+     * @return array|false|string
+     * @throws ClientException
+     */
+    public static function getDefaultName()
+    {
+        $name = \AlibabaCloud\Client\envNotEmpty('ALIBABA_CLOUD_PROFILE');
+
+        if ($name) {
+            return $name;
+        }
+
+        return 'default';
+    }
+
+    /**
+     * @return Closure
+     */
+    public static function instance()
+    {
+        return static function () {
+            $instance = \AlibabaCloud\Client\envNotEmpty('ALIBABA_CLOUD_ECS_METADATA');
+            if ($instance) {
+                AlibabaCloud::ecsRamRoleClient($instance)->asDefaultClient();
+            }
+        };
+    }
+}

+ 128 - 0
vendor/alibabacloud/client/src/Credentials/Providers/EcsRamRoleProvider.php

@@ -0,0 +1,128 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials\Providers;
+
+use Exception;
+use AlibabaCloud\Client\Support\Stringy;
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\Result\Result;
+use Psr\Http\Message\ResponseInterface;
+use GuzzleHttp\Exception\GuzzleException;
+use AlibabaCloud\Client\Request\RpcRequest;
+use AlibabaCloud\Client\Credentials\StsCredential;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Exception\ServerException;
+use AlibabaCloud\Client\Credentials\EcsRamRoleCredential;
+
+/**
+ * Class EcsRamRoleProvider
+ *
+ * @package   AlibabaCloud\Client\Credentials\Providers
+ */
+class EcsRamRoleProvider extends Provider
+{
+
+    /**
+     * Expiration time slot for temporary security credentials.
+     *
+     * @var int
+     */
+
+    protected $expirationSlot = 10;
+
+    /**
+     * @var string
+     */
+    private $uri = 'http://100.100.100.200/latest/meta-data/ram/security-credentials/';
+
+    /**
+     * Get credential.
+     *
+     * @return StsCredential
+     * @throws ClientException
+     * @throws ServerException
+     */
+    public function get()
+    {
+        $result = $this->getCredentialsInCache();
+
+        if ($result === null) {
+            $result = $this->request();
+
+            if (!isset($result['AccessKeyId'], $result['AccessKeySecret'], $result['SecurityToken'])) {
+                throw new ServerException($result, $this->error, SDK::INVALID_CREDENTIAL);
+            }
+
+            $this->cache($result->toArray());
+        }
+
+        return new StsCredential(
+            $result['AccessKeyId'],
+            $result['AccessKeySecret'],
+            $result['SecurityToken']
+        );
+    }
+
+    /**
+     * Get credentials by request.
+     *
+     * @return Result
+     * @throws ClientException
+     * @throws ServerException
+     */
+    public function request()
+    {
+        $result = $this->getResponse();
+
+        if ($result->getStatusCode() === 404) {
+            $message = 'The role was not found in the instance';
+            throw new ClientException($message, SDK::INVALID_CREDENTIAL);
+        }
+
+        if (!$result->isSuccess()) {
+            $message = 'Error retrieving credentials from result';
+            throw new ServerException($result, $message, SDK::INVALID_CREDENTIAL);
+        }
+
+        return $result;
+    }
+
+    /**
+     * Get data from meta.
+     *
+     * @return mixed|ResponseInterface
+     * @throws ClientException
+     * @throws Exception
+     */
+    public function getResponse()
+    {
+        /**
+         * @var EcsRamRoleCredential $credential
+         */
+        $credential = $this->client->getCredential();
+        $url        = $this->uri . $credential->getRoleName();
+
+        $options = [
+            'http_errors'     => false,
+            'timeout'         => 1,
+            'connect_timeout' => 1,
+            'debug'           => $this->client->isDebug(),
+        ];
+
+        try {
+            return RpcRequest::createClient()->request('GET', $url, $options);
+        } catch (GuzzleException $exception) {
+            if (Stringy::contains($exception->getMessage(), 'timed')) {
+                $message = 'Timeout or instance does not belong to Alibaba Cloud';
+            } else {
+                $message = $exception->getMessage();
+            }
+
+            throw new ClientException(
+                $message,
+                SDK::SERVER_UNREACHABLE,
+                $exception
+            );
+        }
+    }
+}

+ 88 - 0
vendor/alibabacloud/client/src/Credentials/Providers/Provider.php

@@ -0,0 +1,88 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials\Providers;
+
+use AlibabaCloud\Client\Clients\Client;
+
+/**
+ * Class Provider
+ *
+ * @package   AlibabaCloud\Client\Credentials\Providers
+ */
+class Provider
+{
+    /**
+     * For TSC Duration Seconds
+     */
+    const DURATION_SECONDS = 3600;
+
+    /**
+     * @var array
+     */
+    protected static $credentialsCache = [];
+
+    /**
+     * Expiration time slot for temporary security credentials.
+     *
+     * @var int
+     */
+    protected $expirationSlot = 180;
+
+    /**
+     * @var Client
+     */
+    protected $client;
+
+    /**
+     * @var string
+     */
+    protected $error = 'Result contains no credentials';
+
+    /**
+     * CredentialTrait constructor.
+     *
+     * @param Client $client
+     */
+    public function __construct(Client $client)
+    {
+        $this->client = $client;
+    }
+
+    /**
+     * Get the credentials from the cache in the validity period.
+     *
+     * @return array|null
+     */
+    public function getCredentialsInCache()
+    {
+        if (isset(self::$credentialsCache[$this->key()])) {
+            $result = self::$credentialsCache[$this->key()];
+            if (\strtotime($result['Expiration']) - \time() >= $this->expirationSlot) {
+                return $result;
+            }
+            unset(self::$credentialsCache[$this->key()]);
+        }
+
+        return null;
+    }
+
+    /**
+     * Get the toString of the credentials as the key.
+     *
+     * @return string
+     */
+    protected function key()
+    {
+        return (string)$this->client->getCredential();
+    }
+
+    /**
+     * Cache credentials.
+     *
+     * @param array $credential
+     */
+    protected function cache(array $credential)
+    {
+        self::$credentialsCache[$this->key()] = $credential;
+    }
+}

+ 84 - 0
vendor/alibabacloud/client/src/Credentials/Providers/RamRoleArnProvider.php

@@ -0,0 +1,84 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials\Providers;
+
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Result\Result;
+use AlibabaCloud\Client\Request\Request;
+use AlibabaCloud\Client\Credentials\StsCredential;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Exception\ServerException;
+use AlibabaCloud\Client\Credentials\Requests\AssumeRole;
+
+/**
+ * Class RamRoleArnProvider
+ *
+ * @package   AlibabaCloud\Client\Credentials\Providers
+ */
+class RamRoleArnProvider extends Provider
+{
+
+    /**
+     * Get credential.
+     *
+     *
+     * @param int $timeout
+     * @param int $connectTimeout
+     *
+     * @return StsCredential
+     * @throws ClientException
+     * @throws ServerException
+     */
+    public function get($timeout = Request::TIMEOUT, $connectTimeout = Request::CONNECT_TIMEOUT)
+    {
+        $credential = $this->getCredentialsInCache();
+
+        if (null === $credential) {
+            $result = $this->request($timeout, $connectTimeout);
+
+            if (!isset($result['Credentials']['AccessKeyId'],
+                $result['Credentials']['AccessKeySecret'],
+                $result['Credentials']['SecurityToken'])) {
+                throw new ServerException($result, $this->error, SDK::INVALID_CREDENTIAL);
+            }
+
+            $credential = $result['Credentials'];
+            $this->cache($credential);
+        }
+
+        return new StsCredential(
+            $credential['AccessKeyId'],
+            $credential['AccessKeySecret'],
+            $credential['SecurityToken']
+        );
+    }
+
+    /**
+     * Get credentials by request.
+     *
+     * @param $timeout
+     * @param $connectTimeout
+     *
+     * @return Result
+     * @throws ClientException
+     * @throws ServerException
+     */
+    private function request($timeout, $connectTimeout)
+    {
+        $clientName = __CLASS__ . \uniqid('ak', true);
+        $credential = $this->client->getCredential();
+
+        AlibabaCloud::accessKeyClient(
+            $credential->getAccessKeyId(),
+            $credential->getAccessKeySecret()
+        )->name($clientName);
+
+        return (new AssumeRole($credential))
+            ->client($clientName)
+            ->timeout($timeout)
+            ->connectTimeout($connectTimeout)
+            ->debug($this->client->isDebug())
+            ->request();
+    }
+}

+ 86 - 0
vendor/alibabacloud/client/src/Credentials/Providers/RsaKeyPairProvider.php

@@ -0,0 +1,86 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials\Providers;
+
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Result\Result;
+use AlibabaCloud\Client\Request\Request;
+use AlibabaCloud\Client\Credentials\StsCredential;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Exception\ServerException;
+use AlibabaCloud\Client\Credentials\AccessKeyCredential;
+use AlibabaCloud\Client\Signature\ShaHmac256WithRsaSignature;
+use AlibabaCloud\Client\Credentials\Requests\GenerateSessionAccessKey;
+
+/**
+ * Class RsaKeyPairProvider
+ *
+ * @package   AlibabaCloud\Client\Credentials\Providers
+ */
+class RsaKeyPairProvider extends Provider
+{
+
+    /**
+     * Get credential.
+     *
+     * @param int $timeout
+     * @param int $connectTimeout
+     *
+     * @return StsCredential
+     * @throws ClientException
+     * @throws ServerException
+     */
+    public function get($timeout = Request::TIMEOUT, $connectTimeout = Request::CONNECT_TIMEOUT)
+    {
+        $credential = $this->getCredentialsInCache();
+
+        if ($credential === null) {
+            $result = $this->request($timeout, $connectTimeout);
+
+            if (!isset($result['SessionAccessKey']['SessionAccessKeyId'],
+                $result['SessionAccessKey']['SessionAccessKeySecret'])) {
+                throw new ServerException($result, $this->error, SDK::INVALID_CREDENTIAL);
+            }
+
+            $credential = $result['SessionAccessKey'];
+            $this->cache($credential);
+        }
+
+        return new StsCredential(
+            $credential['SessionAccessKeyId'],
+            $credential['SessionAccessKeySecret']
+        );
+    }
+
+    /**
+     * Get credentials by request.
+     *
+     * @param $timeout
+     * @param $connectTimeout
+     *
+     * @return Result
+     * @throws ClientException
+     * @throws ServerException
+     */
+    private function request($timeout, $connectTimeout)
+    {
+        $clientName = __CLASS__ . \uniqid('rsa', true);
+        $credential = $this->client->getCredential();
+
+        AlibabaCloud::client(
+            new AccessKeyCredential(
+                $credential->getPublicKeyId(),
+                $credential->getPrivateKey()
+            ),
+            new ShaHmac256WithRsaSignature()
+        )->name($clientName);
+
+        return (new GenerateSessionAccessKey($credential->getPublicKeyId()))
+            ->client($clientName)
+            ->timeout($timeout)
+            ->connectTimeout($connectTimeout)
+            ->debug($this->client->isDebug())
+            ->request();
+    }
+}

+ 110 - 0
vendor/alibabacloud/client/src/Credentials/RamRoleArnCredential.php

@@ -0,0 +1,110 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials;
+
+use AlibabaCloud\Client\Filter\CredentialFilter;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Use the AssumeRole of the RAM account to complete  the authentication.
+ *
+ * @package   AlibabaCloud\Client\Credentials
+ */
+class RamRoleArnCredential implements CredentialsInterface
+{
+
+    /**
+     * @var string
+     */
+    private $accessKeyId;
+
+    /**
+     * @var string
+     */
+    private $accessKeySecret;
+
+    /**
+     * @var string
+     */
+    private $roleArn;
+
+    /**
+     * @var string
+     */
+    private $roleSessionName;
+
+    /**
+     * @var string
+     */
+    private $policy;
+
+    /**
+     * Class constructor.
+     *
+     * @param string       $accessKeyId
+     * @param string       $accessKeySecret
+     * @param string       $roleArn
+     * @param string       $roleSessionName
+     * @param string|array $policy
+     *
+     * @throws ClientException
+     */
+    public function __construct($accessKeyId, $accessKeySecret, $roleArn, $roleSessionName, $policy = '')
+    {
+        CredentialFilter::AccessKey($accessKeyId, $accessKeySecret);
+
+        $this->accessKeyId     = $accessKeyId;
+        $this->accessKeySecret = $accessKeySecret;
+        $this->roleArn         = $roleArn;
+        $this->roleSessionName = $roleSessionName;
+        $this->policy          = $policy;
+    }
+
+    /**
+     * @return string
+     */
+    public function getAccessKeyId()
+    {
+        return $this->accessKeyId;
+    }
+
+    /**
+     * @return string
+     */
+    public function getAccessKeySecret()
+    {
+        return $this->accessKeySecret;
+    }
+
+    /**
+     * @return string
+     */
+    public function getRoleArn()
+    {
+        return $this->roleArn;
+    }
+
+    /**
+     * @return string
+     */
+    public function getRoleSessionName()
+    {
+        return $this->roleSessionName;
+    }
+
+    /**
+     * @return string
+     */
+    public function getPolicy()
+    {
+        return $this->policy;
+    }
+
+    /**
+     * @return string
+     */
+    public function __toString()
+    {
+        return "$this->accessKeyId#$this->accessKeySecret#$this->roleArn#$this->roleSessionName";
+    }
+}

+ 47 - 0
vendor/alibabacloud/client/src/Credentials/Requests/AssumeRole.php

@@ -0,0 +1,47 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials\Requests;
+
+use AlibabaCloud\Client\Request\RpcRequest;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Credentials\Providers\Provider;
+use AlibabaCloud\Client\Credentials\RamRoleArnCredential;
+
+/**
+ * Retrieving assume role credentials.
+ *
+ * @package   AlibabaCloud\Client\Credentials\Requests
+ */
+class AssumeRole extends RpcRequest
+{
+
+    /**
+     * AssumeRole constructor.
+     *
+     * @param RamRoleArnCredential $arnCredential
+     *
+     * @throws ClientException
+     */
+    public function __construct(RamRoleArnCredential $arnCredential)
+    {
+        parent::__construct();
+        $this->product('Sts');
+        $this->version('2015-04-01');
+        $this->action('AssumeRole');
+        $this->host('sts.aliyuncs.com');
+        $this->scheme('https');
+        $this->regionId('cn-hangzhou');
+        $this->options['verify']                   = false;
+        $this->options['query']['RoleArn']         = $arnCredential->getRoleArn();
+        $this->options['query']['RoleSessionName'] = $arnCredential->getRoleSessionName();
+        $this->options['query']['DurationSeconds'] = Provider::DURATION_SECONDS;
+        if ($arnCredential->getPolicy()) {
+            if (is_array($arnCredential->getPolicy())) {
+                $this->options['query']['Policy'] = json_encode($arnCredential->getPolicy());
+            }
+            if (is_string($arnCredential->getPolicy())) {
+                $this->options['query']['Policy'] = $arnCredential->getPolicy();
+            }
+        }
+    }
+}

+ 37 - 0
vendor/alibabacloud/client/src/Credentials/Requests/GenerateSessionAccessKey.php

@@ -0,0 +1,37 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials\Requests;
+
+use AlibabaCloud\Client\Request\RpcRequest;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Credentials\Providers\Provider;
+
+/**
+ * Use the RSA key pair to complete the authentication (supported only on Japanese site)
+ *
+ * @package   AlibabaCloud\Client\Credentials\Requests
+ */
+class GenerateSessionAccessKey extends RpcRequest
+{
+
+    /**
+     * GenerateSessionAccessKey constructor.
+     *
+     * @param string $publicKeyId
+     *
+     * @throws ClientException
+     */
+    public function __construct($publicKeyId)
+    {
+        parent::__construct();
+        $this->product('Sts');
+        $this->version('2015-04-01');
+        $this->action('GenerateSessionAccessKey');
+        $this->host('sts.ap-northeast-1.aliyuncs.com');
+        $this->scheme('https');
+        $this->regionId('cn-hangzhou');
+        $this->options['verify']                   = false;
+        $this->options['query']['PublicKeyId']     = $publicKeyId;
+        $this->options['query']['DurationSeconds'] = Provider::DURATION_SECONDS;
+    }
+}

+ 75 - 0
vendor/alibabacloud/client/src/Credentials/RsaKeyPairCredential.php

@@ -0,0 +1,75 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials;
+
+use Exception;
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\Filter\CredentialFilter;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Use the RSA key pair to complete the authentication (supported only on Japanese site)
+ *
+ * @package   AlibabaCloud\Client\Credentials
+ */
+class RsaKeyPairCredential implements CredentialsInterface
+{
+
+    /**
+     * @var string
+     */
+    private $publicKeyId;
+
+    /**
+     * @var string
+     */
+    private $privateKey;
+
+    /**
+     * RsaKeyPairCredential constructor.
+     *
+     * @param string $publicKeyId
+     * @param string $privateKeyFile
+     *
+     * @throws ClientException
+     */
+    public function __construct($publicKeyId, $privateKeyFile)
+    {
+        CredentialFilter::publicKeyId($publicKeyId);
+        CredentialFilter::privateKeyFile($privateKeyFile);
+
+        $this->publicKeyId = $publicKeyId;
+        try {
+            $this->privateKey = file_get_contents($privateKeyFile);
+        } catch (Exception $exception) {
+            throw new ClientException(
+                $exception->getMessage(),
+                SDK::INVALID_CREDENTIAL
+            );
+        }
+    }
+
+    /**
+     * @return mixed
+     */
+    public function getPrivateKey()
+    {
+        return $this->privateKey;
+    }
+
+    /**
+     * @return string
+     */
+    public function getPublicKeyId()
+    {
+        return $this->publicKeyId;
+    }
+
+    /**
+     * @return string
+     */
+    public function __toString()
+    {
+        return "publicKeyId#$this->publicKeyId";
+    }
+}

+ 80 - 0
vendor/alibabacloud/client/src/Credentials/StsCredential.php

@@ -0,0 +1,80 @@
+<?php
+
+namespace AlibabaCloud\Client\Credentials;
+
+use AlibabaCloud\Client\Filter\CredentialFilter;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Use the STS Token to complete the authentication.
+ *
+ * @package   AlibabaCloud\Client\Credentials
+ */
+class StsCredential implements CredentialsInterface
+{
+
+    /**
+     * @var string
+     */
+    private $accessKeyId;
+
+    /**
+     * @var string
+     */
+    private $accessKeySecret;
+
+    /**
+     * @var string
+     */
+    private $securityToken;
+
+    /**
+     * StsCredential constructor.
+     *
+     * @param string $accessKeyId     Access key ID
+     * @param string $accessKeySecret Access Key Secret
+     * @param string $securityToken   Security Token
+     *
+     * @throws ClientException
+     */
+    public function __construct($accessKeyId, $accessKeySecret, $securityToken = '')
+    {
+        CredentialFilter::AccessKey($accessKeyId, $accessKeySecret);
+
+        $this->accessKeyId     = $accessKeyId;
+        $this->accessKeySecret = $accessKeySecret;
+        $this->securityToken   = $securityToken;
+    }
+
+    /**
+     * @return string
+     */
+    public function getAccessKeyId()
+    {
+        return $this->accessKeyId;
+    }
+
+    /**
+     * @return string
+     */
+    public function getAccessKeySecret()
+    {
+        return $this->accessKeySecret;
+    }
+
+    /**
+     * @return string
+     */
+    public function getSecurityToken()
+    {
+        return $this->securityToken;
+    }
+
+    /**
+     * @return string
+     */
+    public function __toString()
+    {
+        return "$this->accessKeyId#$this->accessKeySecret#$this->securityToken";
+    }
+}

+ 55 - 0
vendor/alibabacloud/client/src/DefaultAcsClient.php

@@ -0,0 +1,55 @@
+<?php
+
+namespace AlibabaCloud\Client;
+
+use AlibabaCloud\Client\Result\Result;
+use AlibabaCloud\Client\Clients\Client;
+use AlibabaCloud\Client\Request\Request;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Exception\ServerException;
+
+/**
+ * Class DefaultAcsClient
+ *
+ * @package    AlibabaCloud
+ *
+ * @deprecated deprecated since version 2.0, Use AlibabaCloud instead.
+ * @codeCoverageIgnore
+ */
+class DefaultAcsClient
+{
+
+    /**
+     * @var string
+     */
+    public $randClientName;
+
+    /**
+     * DefaultAcsClient constructor.
+     *
+     * @param Client $client
+     *
+     * @throws ClientException
+     */
+    public function __construct(Client $client)
+    {
+        $this->randClientName = \uniqid('', true);
+        $client->name($this->randClientName);
+    }
+
+    /**
+     * @param Request|Result $request
+     *
+     * @return Result|string
+     * @throws ClientException
+     * @throws ServerException
+     */
+    public function getAcsResponse($request)
+    {
+        if ($request instanceof Result) {
+            return $request;
+        }
+
+        return $request->client($this->randClientName)->request();
+    }
+}

+ 68 - 0
vendor/alibabacloud/client/src/Encode.php

@@ -0,0 +1,68 @@
+<?php
+
+namespace AlibabaCloud\Client;
+
+/**
+ * Class Encode
+ *
+ * @package AlibabaCloud\Client
+ */
+class Encode
+{
+    /**
+     * @var array
+     */
+    private $data;
+
+    /**
+     * @param array $data
+     *
+     * @return static
+     */
+    public static function create(array $data)
+    {
+        return new static($data);
+    }
+
+    /**
+     * Encode constructor.
+     *
+     * @param array $data
+     */
+    private function __construct(array $data)
+    {
+        $this->data = $data;
+    }
+
+    /**
+     * @return bool|string
+     */
+    public function toString()
+    {
+        $string = '';
+        foreach ($this->data as $key => $value) {
+            $encode = rawurlencode($value);
+            if ($encode === '') {
+                $string .= "$key&";
+            } else {
+                $string .= "$key=$encode&";
+            }
+        }
+
+        if (0 < count($this->data)) {
+            $string = substr($string, 0, -1);
+        }
+
+        return $string;
+    }
+
+    /**
+     * @return $this
+     */
+    public function ksort()
+    {
+        ksort($this->data);
+
+        return $this;
+    }
+}

+ 70 - 0
vendor/alibabacloud/client/src/Exception/AlibabaCloudException.php

@@ -0,0 +1,70 @@
+<?php
+
+namespace AlibabaCloud\Client\Exception;
+
+use Exception;
+use RuntimeException;
+
+/**
+ * Class AlibabaCloudException
+ *
+ * @package   AlibabaCloud\Client\Exception
+ */
+abstract class AlibabaCloudException extends Exception
+{
+
+    /**
+     * @var string
+     */
+    protected $errorCode;
+
+    /**
+     * @var string
+     */
+    protected $errorMessage;
+
+    /**
+     * @return string
+     */
+    public function getErrorCode()
+    {
+        return $this->errorCode;
+    }
+
+    /**
+     * @codeCoverageIgnore
+     * @deprecated
+     */
+    public function setErrorCode()
+    {
+        throw new RuntimeException('deprecated since 2.0.');
+    }
+
+    /**
+     * @return string
+     */
+    public function getErrorMessage()
+    {
+        return $this->errorMessage;
+    }
+
+    /**
+     * @codeCoverageIgnore
+     *
+     * @param $errorMessage
+     *
+     * @deprecated
+     */
+    public function setErrorMessage($errorMessage)
+    {
+        $this->errorMessage = $errorMessage;
+    }
+
+    /**
+     * @codeCoverageIgnore
+     * @deprecated
+     */
+    public function setErrorType()
+    {
+    }
+}

+ 38 - 0
vendor/alibabacloud/client/src/Exception/ClientException.php

@@ -0,0 +1,38 @@
+<?php
+
+namespace AlibabaCloud\Client\Exception;
+
+use Exception;
+use RuntimeException;
+
+/**
+ * Class ClientException
+ *
+ * @package   AlibabaCloud\Client\Exception
+ */
+class ClientException extends AlibabaCloudException
+{
+
+    /**
+     * ClientException constructor.
+     *
+     * @param string         $errorMessage
+     * @param string         $errorCode
+     * @param Exception|null $previous
+     */
+    public function __construct($errorMessage, $errorCode, $previous = null)
+    {
+        parent::__construct($errorMessage, 0, $previous);
+        $this->errorMessage = $errorMessage;
+        $this->errorCode    = $errorCode;
+    }
+
+    /**
+     * @codeCoverageIgnore
+     * @deprecated
+     */
+    public function getErrorType()
+    {
+        return 'Client';
+    }
+}

+ 158 - 0
vendor/alibabacloud/client/src/Exception/ServerException.php

@@ -0,0 +1,158 @@
+<?php
+
+namespace AlibabaCloud\Client\Exception;
+
+use AlibabaCloud\Client\Support\Stringy;
+use RuntimeException;
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\Result\Result;
+
+/**
+ * Class ServerException
+ *
+ * @package   AlibabaCloud\Client\Exception
+ */
+class ServerException extends AlibabaCloudException
+{
+
+    /**
+     * @var string
+     */
+    protected $requestId;
+
+    /**
+     * @var Result
+     */
+    protected $result;
+
+    /**
+     * ServerException constructor.
+     *
+     * @param Result|null $result
+     * @param string      $errorMessage
+     * @param string      $errorCode
+     */
+    public function __construct(
+        Result $result,
+        $errorMessage = SDK::RESPONSE_EMPTY,
+        $errorCode = SDK::SERVICE_UNKNOWN_ERROR
+    ) {
+        $this->result       = $result;
+        $this->errorMessage = $errorMessage;
+        $this->errorCode    = $errorCode;
+        $this->resolvePropertiesByReturn();
+        $this->distinguishSignatureErrors();
+        $this->bodyAsErrorMessage();
+
+        parent::__construct(
+            $this->getMessageString(),
+            $this->result->getStatusCode()
+        );
+    }
+
+    /**
+     * Resolve the error message based on the return of the server.
+     *
+     * @return void
+     */
+    private function resolvePropertiesByReturn()
+    {
+        if (isset($this->result['message'])) {
+            $this->errorMessage = $this->result['message'];
+            $this->errorCode    = $this->result['code'];
+        }
+        if (isset($this->result['Message'])) {
+            $this->errorMessage = $this->result['Message'];
+            $this->errorCode    = $this->result['Code'];
+        }
+        if (isset($this->result['errorMsg'])) {
+            $this->errorMessage = $this->result['errorMsg'];
+            $this->errorCode    = $this->result['errorCode'];
+        }
+        if (isset($this->result['requestId'])) {
+            $this->requestId = $this->result['requestId'];
+        }
+        if (isset($this->result['RequestId'])) {
+            $this->requestId = $this->result['RequestId'];
+        }
+    }
+
+    /**
+     * If the string to be signed are the same with server's, it is considered a credential error.
+     */
+    private function distinguishSignatureErrors()
+    {
+        if ($this->result->getRequest()
+            && Stringy::contains($this->errorMessage, $this->result->getRequest()->stringToSign())) {
+            $this->errorCode    = 'InvalidAccessKeySecret';
+            $this->errorMessage = 'Specified Access Key Secret is not valid.';
+        }
+    }
+
+    /**
+     * If the error message matches the default message and
+     * the server has returned content, use the return content
+     */
+    private function bodyAsErrorMessage()
+    {
+        $body = (string)$this->result->getBody();
+        if ($this->errorMessage === SDK::RESPONSE_EMPTY && $body) {
+            $this->errorMessage = $body;
+        }
+    }
+
+    /**
+     * Get standard exception message.
+     *
+     * @return string
+     */
+    private function getMessageString()
+    {
+        $message = "$this->errorCode: $this->errorMessage RequestId: $this->requestId";
+
+        if ($this->getResult()->getRequest()) {
+            $method  = $this->getResult()->getRequest()->method;
+            $uri     = (string)$this->getResult()->getRequest()->uri;
+            $message .= " $method \"$uri\"";
+            if ($this->result) {
+                $message .= ' ' . $this->result->getStatusCode();
+            }
+        }
+
+        return $message;
+    }
+
+    /**
+     * @return Result
+     */
+    public function getResult()
+    {
+        return $this->result;
+    }
+
+    /**
+     * @return string
+     */
+    public function getRequestId()
+    {
+        return $this->requestId;
+    }
+
+    /**
+     * @codeCoverageIgnore
+     * @deprecated
+     */
+    public function getErrorType()
+    {
+        return 'Server';
+    }
+
+    /**
+     * @codeCoverageIgnore
+     * @deprecated
+     */
+    public function getHttpStatus()
+    {
+        return $this->getResult()->getStatusCode();
+    }
+}

+ 259 - 0
vendor/alibabacloud/client/src/Filter/ApiFilter.php

@@ -0,0 +1,259 @@
+<?php
+
+namespace AlibabaCloud\Client\Filter;
+
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Class ApiFilter
+ *
+ * @package AlibabaCloud\Client\Filter
+ */
+class ApiFilter
+{
+    /**
+     * @param $serviceCode
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function serviceCode($serviceCode)
+    {
+        if (!is_string($serviceCode)) {
+            throw new ClientException(
+                'Service Code must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($serviceCode === '') {
+            throw new ClientException(
+                'Service Code cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $serviceCode;
+    }
+
+    /**
+     * @param $endpointType
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function endpointType($endpointType)
+    {
+        if (!is_string($endpointType)) {
+            throw new ClientException(
+                'Endpoint Type must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($endpointType === '') {
+            throw new ClientException(
+                'Endpoint Type cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $endpointType;
+    }
+
+    /**
+     * @param $action
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function action($action)
+    {
+        if (!is_string($action)) {
+            throw new ClientException(
+                'Action must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($action === '') {
+            throw new ClientException(
+                'Action cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $action;
+    }
+
+    /**
+     * @codeCoverageIgnore
+     *
+     * @param string $endpointSuffix
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function endpointSuffix($endpointSuffix)
+    {
+        if (!is_string($endpointSuffix)) {
+            throw new ClientException(
+                'Endpoint Suffix must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($endpointSuffix === '') {
+            throw new ClientException(
+                'Endpoint Suffix cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if (!preg_match("/^[a-zA-Z0-9_-]+$/", $endpointSuffix)) {
+            throw new ClientException(
+                'Invalid Endpoint Suffix',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $endpointSuffix;
+    }
+
+    /**
+     * @codeCoverageIgnore
+     *
+     * @param string $network
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function network($network)
+    {
+        if (!is_string($network)) {
+            throw new ClientException(
+                'Network Suffix must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($network === '') {
+            throw new ClientException(
+                'Network Suffix cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if (!preg_match("/^[a-zA-Z0-9_-]+$/", $network)) {
+            throw new ClientException(
+                'Invalid Network Suffix',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $network;
+    }
+
+    /**
+     * @param string $version
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function version($version)
+    {
+        if (!is_string($version)) {
+            throw new ClientException(
+                'Version must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($version === '') {
+            throw new ClientException(
+                'Version cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $version;
+    }
+
+    /**
+     * @param $format
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function format($format)
+    {
+        if (!is_string($format)) {
+            throw new ClientException(
+                'Format must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($format === '') {
+            throw new ClientException(
+                'Format cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return \strtoupper($format);
+    }
+
+    /**
+     * @param $product
+     *
+     * @return string
+     *
+     * @throws ClientException
+     */
+    public static function product($product)
+    {
+        if (!is_string($product)) {
+            throw new ClientException(
+                'Product must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($product === '') {
+            throw new ClientException(
+                'Product cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $product;
+    }
+
+    /**
+     * @param $pattern
+     *
+     * @return string
+     *
+     * @throws ClientException
+     */
+    public static function pattern($pattern)
+    {
+        if (!is_string($pattern)) {
+            throw new ClientException(
+                'Pattern must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($pattern === '') {
+            throw new ClientException(
+                'Pattern cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $pattern;
+    }
+}

+ 146 - 0
vendor/alibabacloud/client/src/Filter/ClientFilter.php

@@ -0,0 +1,146 @@
+<?php
+
+namespace AlibabaCloud\Client\Filter;
+
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Class ClientFilter
+ *
+ * @package AlibabaCloud\Client\Filter
+ */
+class ClientFilter
+{
+    /**
+     * @param $regionId
+     *
+     * @return string
+     *
+     * @throws ClientException
+     */
+    public static function regionId($regionId)
+    {
+        if (!is_string($regionId)) {
+            throw new ClientException(
+                'Region ID must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($regionId === '') {
+            throw new ClientException(
+                'Region ID cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if (!preg_match("/^[a-zA-Z0-9_-]+$/", $regionId)) {
+            throw new ClientException(
+                'Invalid Region ID',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return strtolower($regionId);
+    }
+
+    /**
+     * @param $clientName
+     *
+     * @return string
+     *
+     * @throws ClientException
+     */
+    public static function clientName($clientName)
+    {
+        if (!is_string($clientName)) {
+            throw new ClientException(
+                'Client Name must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($clientName === '') {
+            throw new ClientException(
+                'Client Name cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return strtolower($clientName);
+    }
+
+    /**
+     * @param $times
+     *
+     * @return string
+     *
+     * @throws ClientException
+     */
+    public static function retry($times)
+    {
+        if (!is_int($times)) {
+            throw new ClientException(
+                'Retry must be a int',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $times;
+    }
+
+    /**
+     * @param $connectTimeout
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function connectTimeout($connectTimeout)
+    {
+        if ($connectTimeout === '') {
+            throw new ClientException(
+                'Connect Timeout cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $connectTimeout;
+    }
+
+    /**
+     * @param $timeout
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function timeout($timeout)
+    {
+        if ($timeout === '') {
+            throw new ClientException(
+                'Timeout cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $timeout;
+    }
+
+    /**
+     * @param int $Milliseconds
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function milliseconds($Milliseconds)
+    {
+        if (!is_int($Milliseconds)) {
+            throw new ClientException(
+                'Milliseconds must be int',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $Milliseconds;
+    }
+}

+ 152 - 0
vendor/alibabacloud/client/src/Filter/CredentialFilter.php

@@ -0,0 +1,152 @@
+<?php
+
+namespace AlibabaCloud\Client\Filter;
+
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Class CredentialFilter
+ *
+ * @package AlibabaCloud\Client\Filter
+ */
+class CredentialFilter
+{
+    /**
+     * @param $bearerToken
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function bearerToken($bearerToken)
+    {
+        if (!is_string($bearerToken)) {
+            throw new ClientException(
+                'Bearer Token must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($bearerToken === '') {
+            throw new ClientException(
+                'Bearer Token cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $bearerToken;
+    }
+
+    /**
+     * @param $publicKeyId
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function publicKeyId($publicKeyId)
+    {
+        if (!is_string($publicKeyId)) {
+            throw new ClientException(
+                'Public Key ID must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($publicKeyId === '') {
+            throw new ClientException(
+                'Public Key ID cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $publicKeyId;
+    }
+
+    /**
+     * @param $privateKeyFile
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function privateKeyFile($privateKeyFile)
+    {
+        if (!is_string($privateKeyFile)) {
+            throw new ClientException(
+                'Private Key File must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($privateKeyFile === '') {
+            throw new ClientException(
+                'Private Key File cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $privateKeyFile;
+    }
+
+    /**
+     * @param $roleName
+     *
+     * @return string
+     *
+     * @throws ClientException
+     */
+    public static function roleName($roleName)
+    {
+        if (!is_string($roleName)) {
+            throw new ClientException(
+                'Role Name must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($roleName === '') {
+            throw new ClientException(
+                'Role Name cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $roleName;
+    }
+
+    /**
+     * @param string $accessKeyId
+     * @param string $accessKeySecret
+     *
+     * @throws ClientException
+     */
+    public static function AccessKey($accessKeyId, $accessKeySecret)
+    {
+        if (!is_string($accessKeyId)) {
+            throw new ClientException(
+                'AccessKey ID must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($accessKeyId === '') {
+            throw new ClientException(
+                'AccessKey ID cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if (!is_string($accessKeySecret)) {
+            throw new ClientException(
+                'AccessKey Secret must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($accessKeySecret === '') {
+            throw new ClientException(
+                'AccessKey Secret cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+    }
+}

+ 67 - 0
vendor/alibabacloud/client/src/Filter/Filter.php

@@ -0,0 +1,67 @@
+<?php
+
+namespace AlibabaCloud\Client\Filter;
+
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Class Filter
+ *
+ * @package AlibabaCloud\Client\Filter
+ */
+class Filter
+{
+
+    /**
+     * @param $name
+     *
+     * @return string
+     *
+     * @throws ClientException
+     */
+    public static function name($name)
+    {
+        if (!is_string($name)) {
+            throw new ClientException(
+                'Name must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($name === '') {
+            throw new ClientException(
+                'Name cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $name;
+    }
+
+    /**
+     * @param $value
+     *
+     * @return string
+     *
+     * @throws ClientException
+     */
+    public static function value($value)
+    {
+        if (!is_numeric($value) && !is_string($value)) {
+            throw new ClientException(
+                'Value must be a string or int',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($value === '') {
+            throw new ClientException(
+                'Value cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $value;
+    }
+}

+ 166 - 0
vendor/alibabacloud/client/src/Filter/HttpFilter.php

@@ -0,0 +1,166 @@
+<?php
+
+namespace AlibabaCloud\Client\Filter;
+
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Class HttpFilter
+ *
+ * @package AlibabaCloud\Client\Filter
+ */
+class HttpFilter
+{
+    /**
+     * @param $host
+     *
+     * @return string
+     *
+     * @throws ClientException
+     */
+    public static function host($host)
+    {
+        if (!is_string($host)) {
+            throw new ClientException(
+                'Host must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($host === '') {
+            throw new ClientException(
+                'Host cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $host;
+    }
+
+    /**
+     * @param $scheme
+     *
+     * @return string
+     *
+     * @throws ClientException
+     */
+    public static function scheme($scheme)
+    {
+        if (!is_string($scheme)) {
+            throw new ClientException(
+                'Scheme must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($scheme === '') {
+            throw new ClientException(
+                'Scheme cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $scheme;
+    }
+
+    /**
+     * @param $body
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function body($body)
+    {
+        if (!is_string($body) && !is_numeric($body)) {
+            throw new ClientException(
+                'Body must be a string or int',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($body === '') {
+            throw new ClientException(
+                'Body cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $body;
+    }
+
+    /**
+     * @param $method
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function method($method)
+    {
+        if (!is_string($method)) {
+            throw new ClientException(
+                'Method must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($method === '') {
+            throw new ClientException(
+                'Method cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return \strtoupper($method);
+    }
+
+    /**
+     * @param $contentType
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function contentType($contentType)
+    {
+        if (!is_string($contentType)) {
+            throw new ClientException(
+                'Content-Type must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($contentType === '') {
+            throw new ClientException(
+                'Content-Type cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $contentType;
+    }
+
+    /**
+     * @param $accept
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function accept($accept)
+    {
+        if (!is_string($accept)) {
+            throw new ClientException(
+                'Accept must be a string',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if ($accept === '') {
+            throw new ClientException(
+                'Accept cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $accept;
+    }
+}

+ 289 - 0
vendor/alibabacloud/client/src/Functions.php

@@ -0,0 +1,289 @@
+<?php
+
+namespace AlibabaCloud\Client;
+
+use Closure;
+use AlibabaCloud\Client\Support\Stringy;
+use League\CLImate\CLImate;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/*
+|--------------------------------------------------------------------------
+| Global Functions for Alibaba Cloud
+|--------------------------------------------------------------------------
+|
+| Some common global functions are defined here.
+| This file will be automatically loaded.
+|
+*/
+
+/**
+ * @param      $filename
+ * @param bool $throwException
+ *
+ * @return bool
+ * @throws ClientException
+ */
+function inOpenBasedir($filename, $throwException = false)
+{
+    $open_basedir = ini_get('open_basedir');
+    if (!$open_basedir) {
+        return true;
+    }
+
+    $dirs = explode(PATH_SEPARATOR, $open_basedir);
+    if (empty($dirs)) {
+        return true;
+    }
+
+    if (inDir($filename, $dirs)) {
+        return true;
+    }
+
+    if ($throwException === false) {
+        return false;
+    }
+
+    throw new ClientException(
+        'open_basedir restriction in effect. '
+        . "File($filename) is not within the allowed path(s): ($open_basedir)",
+        'SDK.InvalidPath'
+    );
+}
+
+/**
+ * @param string $filename
+ * @param array  $dirs
+ *
+ * @return bool
+ */
+function inDir($filename, array $dirs)
+{
+    foreach ($dirs as $dir) {
+        if (!Stringy::endsWith($dir, DIRECTORY_SEPARATOR)) {
+            $dir .= DIRECTORY_SEPARATOR;
+        }
+
+        if (0 === strpos($filename, $dir)) {
+            return true;
+        }
+    }
+
+    return false;
+}
+
+/**
+ * @return bool
+ */
+function isWindows()
+{
+    return PATH_SEPARATOR === ';';
+}
+
+/**
+ * @return CLImate
+ */
+function cliMate()
+{
+    return new CLImate();
+}
+
+/**
+ * @param string      $string
+ * @param string|null $flank
+ * @param string|null $char
+ * @param int|null    $length
+ *
+ * @return void
+ */
+function backgroundRed($string, $flank = null, $char = null, $length = null)
+{
+    cliMate()->br();
+    if ($flank !== null) {
+        cliMate()->backgroundRed()->flank($flank, $char, $length);
+        cliMate()->br();
+    }
+    cliMate()->backgroundRed($string);
+    cliMate()->br();
+}
+
+/**
+ * @param string      $string
+ * @param string|null $flank
+ * @param string|null $char
+ * @param int|null    $length
+ *
+ * @return void
+ */
+function backgroundGreen($string, $flank = null, $char = null, $length = null)
+{
+    cliMate()->br();
+    if ($flank !== null) {
+        cliMate()->backgroundGreen()->flank($flank, $char, $length);
+    }
+    cliMate()->backgroundGreen($string);
+    cliMate()->br();
+}
+
+/**
+ * @param string      $string
+ * @param string|null $flank
+ * @param string|null $char
+ * @param int|null    $length
+ *
+ * @return void
+ */
+function backgroundBlue($string, $flank = null, $char = null, $length = null)
+{
+    cliMate()->br();
+    if ($flank !== null) {
+        cliMate()->backgroundBlue()->flank($flank, $char, $length);
+    }
+    cliMate()->backgroundBlue($string);
+    cliMate()->br();
+}
+
+/**
+ * @param string      $string
+ * @param string|null $flank
+ * @param string|null $char
+ * @param int|null    $length
+ *
+ * @return void
+ */
+function backgroundMagenta($string, $flank = null, $char = null, $length = null)
+{
+    cliMate()->br();
+    if ($flank !== null) {
+        cliMate()->backgroundMagenta()->flank($flank, $char, $length);
+    }
+    cliMate()->backgroundMagenta($string);
+    cliMate()->br();
+}
+
+/**
+ * @param array $array
+ */
+function json(array $array)
+{
+    cliMate()->br();
+    cliMate()->backgroundGreen()->json($array);
+    cliMate()->br();
+}
+
+/**
+ * @param array $array
+ *
+ * @return void
+ */
+function redTable($array)
+{
+    /**
+     * @noinspection PhpUndefinedMethodInspection
+     */
+    cliMate()->redTable($array);
+}
+
+/**
+ * @param mixed  $result
+ * @param string $title
+ *
+ * @return void
+ */
+function block($result, $title)
+{
+    cliMate()->backgroundGreen()->flank($title, '--', 20);
+    dump($result);
+}
+
+/**
+ * Gets the value of an environment variable.
+ *
+ * @param string $key
+ * @param mixed  $default
+ *
+ * @return mixed
+ */
+function env($key, $default = null)
+{
+    $value = getenv($key);
+
+    if ($value === false) {
+        return value($default);
+    }
+
+    if (envSubstr($value)) {
+        return substr($value, 1, -1);
+    }
+
+    return envConversion($value);
+}
+
+/**
+ * @param $value
+ *
+ * @return bool|string|null
+ */
+function envConversion($value)
+{
+    $key = strtolower($value);
+
+    if ($key === 'null' || $key === '(null)') {
+        return null;
+    }
+
+    $list = [
+        'true'    => true,
+        '(true)'  => true,
+        'false'   => false,
+        '(false)' => false,
+        'empty'   => '',
+        '(empty)' => '',
+    ];
+
+    return isset($list[$key]) ? $list[$key] : $value;
+}
+
+/**
+ * @param $key
+ *
+ * @return bool|mixed
+ * @throws ClientException
+ */
+function envNotEmpty($key)
+{
+    $value = env($key, false);
+    if ($value !== false && !$value) {
+        throw new ClientException(
+            "Environment variable '$key' cannot be empty",
+            SDK::INVALID_ARGUMENT
+        );
+    }
+    if ($value) {
+        return $value;
+    }
+
+    return false;
+}
+
+/**
+ * @param $value
+ *
+ * @return bool
+ */
+function envSubstr($value)
+{
+    return ($valueLength = strlen($value)) > 1 && strpos($value, '"') === 0 && $value[$valueLength - 1] === '"';
+}
+
+/**
+ * Return the default value of the given value.
+ *
+ * @param mixed $value
+ *
+ * @return mixed
+ */
+function value($value)
+{
+    return $value instanceof Closure ? $value() : $value;
+}

+ 79 - 0
vendor/alibabacloud/client/src/Log/LogFormatter.php

@@ -0,0 +1,79 @@
+<?php
+
+namespace AlibabaCloud\Client\Log;
+
+use DateTime;
+use Exception;
+use DateTimeZone;
+use GuzzleHttp\MessageFormatter;
+use Psr\Http\Message\RequestInterface;
+use Psr\Http\Message\ResponseInterface;
+
+/**
+ * @deprecated Use GuzzleHttp\MessageFormatter.
+ * Class LogFormatter
+ *
+ * @package AlibabaCloud\Client\Log
+ */
+class LogFormatter
+{
+    /**
+     * @var float
+     */
+    private static $logStartTime = 0;
+
+    /**
+     * @var DateTime
+     */
+    private static $ts;
+
+    /** @var string Template used to format log messages */
+    public $template;
+
+    /**
+     * @param string $template Log message template
+     *
+     * @throws Exception
+     */
+    public function __construct($template)
+    {
+        // parent::__construct($template);
+        self::$logStartTime = microtime(true);
+        $this->template     = $template;
+        $timezone           = new DateTimeZone(date_default_timezone_get() ?: 'UTC');
+        if (PHP_VERSION_ID < 70100) {
+            self::$ts = DateTime::createFromFormat('U.u', sprintf('%.6F', microtime(true)), $timezone);
+        } else {
+            self::$ts = new DateTime('now', $timezone);
+        }
+    }
+
+    /**
+     * Returns a formatted message string.
+     *
+     * @param RequestInterface  $request  Request that was sent
+     * @param ResponseInterface $response Response that was received
+     * @param Exception         $error    Exception that was received
+     *
+     * @return string
+     */
+    public function format(
+        RequestInterface $request,
+        ResponseInterface $response = null,
+        Exception $error = null
+    ) {
+        $this->template = str_replace('{pid}', getmypid(), $this->template);
+        $this->template = str_replace('{cost}', self::getCost(), $this->template);
+        $this->template = str_replace('{start_time}', self::$ts->format('Y-m-d H:i:s.u'), $this->template);
+
+        return (new MessageFormatter($this->template))->format($request, $response, $error);
+    }
+
+    /**
+     * @return float|mixed
+     */
+    private static function getCost()
+    {
+        return microtime(true) - self::$logStartTime;
+    }
+}

+ 74 - 0
vendor/alibabacloud/client/src/Profile/DefaultProfile.php

@@ -0,0 +1,74 @@
+<?php
+
+namespace AlibabaCloud\Client\Profile;
+
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Clients\Client;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Class DefaultProfile
+ *
+ * @package    AlibabaCloud\Client\Profile
+ * @codeCoverageIgnore
+ * @deprecated deprecated since version 2.0, Use AlibabaCloud instead.
+ */
+class DefaultProfile
+{
+
+    /**
+     * @param string $regionId
+     * @param string $accessKeyId
+     * @param string $accessKeySecret
+     *
+     * @return Client
+     * @throws ClientException
+     */
+    public static function getProfile($regionId, $accessKeyId, $accessKeySecret)
+    {
+        return AlibabaCloud::accessKeyClient($accessKeyId, $accessKeySecret)
+                           ->regionId($regionId);
+    }
+
+    /**
+     * @param string $regionId
+     * @param string $accessKeyId
+     * @param string $accessKeySecret
+     * @param string $roleArn
+     * @param string $roleSessionName
+     *
+     * @return Client
+     * @throws ClientException
+     */
+    public static function getRamRoleArnProfile($regionId, $accessKeyId, $accessKeySecret, $roleArn, $roleSessionName)
+    {
+        return AlibabaCloud::ramRoleArnClient($accessKeyId, $accessKeySecret, $roleArn, $roleSessionName)
+                           ->regionId($regionId);
+    }
+
+    /**
+     * @param string $regionId
+     * @param string $roleName
+     *
+     * @return Client
+     * @throws ClientException
+     */
+    public static function getEcsRamRoleProfile($regionId, $roleName)
+    {
+        return AlibabaCloud::ecsRamRoleClient($roleName)
+                           ->regionId($regionId);
+    }
+
+    /**
+     * @param string $regionId
+     * @param string $bearerToken
+     *
+     * @return Client
+     * @throws ClientException
+     */
+    public static function getBearerTokenProfile($regionId, $bearerToken)
+    {
+        return AlibabaCloud::bearerTokenClient($bearerToken)
+                           ->regionId($regionId);
+    }
+}

+ 18 - 0
vendor/alibabacloud/client/src/Regions/EndpointProvider.php

@@ -0,0 +1,18 @@
+<?php
+
+namespace AlibabaCloud\Client\Regions;
+
+use AlibabaCloud\Client\Traits\EndpointTrait;
+
+/**
+ * Class EndpointProvider
+ *
+ * @package    AlibabaCloud\Client\Regions
+ *
+ * @deprecated deprecated since version 2.0, Use AlibabaCloud instead.
+ * @codeCoverageIgnore
+ */
+class EndpointProvider
+{
+    use EndpointTrait;
+}

+ 160 - 0
vendor/alibabacloud/client/src/Regions/LocationService.php

@@ -0,0 +1,160 @@
+<?php
+
+namespace AlibabaCloud\Client\Regions;
+
+use Exception;
+use RuntimeException;
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\Config\Config;
+use AlibabaCloud\Client\Request\Request;
+use AlibabaCloud\Client\Filter\ApiFilter;
+use AlibabaCloud\Client\Filter\HttpFilter;
+use AlibabaCloud\Client\Filter\ClientFilter;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Exception\ServerException;
+
+/**
+ * Class LocationService
+ *
+ * @package   AlibabaCloud\Client\Regions
+ */
+class LocationService
+{
+    /**
+     * Global Region Name
+     */
+    const GLOBAL_REGION = 'global';
+
+    /**
+     * @var array
+     */
+    protected static $hosts = [];
+
+    /**
+     * @var Request
+     */
+    protected $request;
+
+    /**
+     * LocationService constructor.
+     *
+     * @param Request $request
+     */
+    private function __construct(Request $request)
+    {
+        $this->request = $request;
+    }
+
+    /**
+     * @param Request $request
+     * @param string  $domain
+     *
+     * @return string
+     * @throws ClientException
+     * @throws ServerException
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public static function findProductDomain(Request $request, $domain = 'location.aliyuncs.com')
+    {
+        return self::resolveHost($request, $domain);
+    }
+
+    /**
+     * @param $regionId
+     * @param $product
+     * @param $domain
+     *
+     * @throws ClientException
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public static function addEndPoint($regionId, $product, $domain)
+    {
+        self::addHost($product, $domain, $regionId);
+    }
+
+
+    /**
+     * @param Request $request
+     * @param string  $domain
+     *
+     * @return string
+     * @throws ClientException
+     * @throws ServerException
+     */
+    public static function resolveHost(Request $request, $domain = 'location.aliyuncs.com')
+    {
+        $locationService = new static($request);
+        $product         = $locationService->request->product;
+        $regionId        = $locationService->request->realRegionId();
+
+        if (!isset(self::$hosts[$product][$regionId])) {
+            self::$hosts[$product][$regionId] = self::getResult($locationService, $domain);
+        }
+
+        return self::$hosts[$product][$regionId];
+    }
+
+    /**
+     * @param static $locationService
+     * @param string $domain
+     *
+     * @return string
+     * @throws ClientException
+     * @throws ServerException
+     */
+    private static function getResult($locationService, $domain)
+    {
+        $locationRequest = new LocationServiceRequest($locationService->request, $domain);
+
+        $result = $locationRequest->request();
+
+        if (!isset($result['Endpoints']['Endpoint'][0]['Endpoint'])) {
+            throw new ClientException(
+                'Not found Region ID in ' . $domain,
+                SDK::INVALID_REGION_ID
+            );
+        }
+
+        return $result['Endpoints']['Endpoint'][0]['Endpoint'];
+    }
+
+    /**
+     * @param string $product
+     * @param string $host
+     * @param string $regionId
+     *
+     * @throws ClientException
+     */
+    public static function addHost($product, $host, $regionId = self::GLOBAL_REGION)
+    {
+        ApiFilter::product($product);
+
+        HttpFilter::host($host);
+
+        ClientFilter::regionId($regionId);
+
+        self::$hosts[$product][$regionId] = $host;
+    }
+
+    /**
+     * Update endpoints from OSS.
+     *
+     * @codeCoverageIgnore
+     * @throws Exception
+     */
+    public static function updateEndpoints()
+    {
+        $ossUrl = 'https://openapi-endpoints.oss-cn-hangzhou.aliyuncs.com/endpoints.json';
+        $json   = \file_get_contents($ossUrl);
+        $list   = \json_decode($json, true);
+
+        foreach ($list['endpoints'] as $endpoint) {
+            Config::set(
+                "endpoints.{$endpoint['service']}.{$endpoint['regionid']}",
+                \strtolower($endpoint['endpoint'])
+            );
+        }
+    }
+}

+ 46 - 0
vendor/alibabacloud/client/src/Regions/LocationServiceRequest.php

@@ -0,0 +1,46 @@
+<?php
+
+namespace AlibabaCloud\Client\Regions;
+
+use AlibabaCloud\Client\Request\Request;
+use AlibabaCloud\Client\Request\RpcRequest;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Class LocationServiceRequest
+ *
+ * @package   AlibabaCloud\Client\Regions
+ */
+class LocationServiceRequest extends RpcRequest
+{
+
+    /**
+     * LocationServiceRequest constructor.
+     *
+     * @param Request $request
+     * @param string  $domain
+     *
+     * @throws ClientException
+     */
+    public function __construct(Request $request, $domain)
+    {
+        parent::__construct();
+        $this->product('Location');
+        $this->version('2015-06-12');
+        $this->action('DescribeEndpoints');
+        $this->regionId('cn-hangzhou');
+        $this->format('JSON');
+        $this->options['query']['Id']          = $request->realRegionId();
+        $this->options['query']['ServiceCode'] = $request->serviceCode;
+        $this->options['query']['Type']        = $request->endpointType;
+        $this->client($request->client);
+        $this->host($domain);
+        if (isset($request->options['timeout'])) {
+            $this->timeout($request->options['timeout']);
+        }
+
+        if (isset($request->options['connect_timeout'])) {
+            $this->connectTimeout($request->options['connect_timeout']);
+        }
+    }
+}

+ 112 - 0
vendor/alibabacloud/client/src/Release.php

@@ -0,0 +1,112 @@
+<?php
+
+namespace AlibabaCloud\Client;
+
+use Composer\Script\Event;
+
+/**
+ * Class Release
+ *
+ * @codeCoverageIgnore
+ * @package AlibabaCloud\Client
+ */
+class Release
+{
+    /**
+     * @param Event $event
+     */
+    public static function release(Event $event)
+    {
+        $arguments = $event->getArguments();
+        if (count($arguments) <= 1) {
+            echo 'Missing ChangeLog';
+
+            return;
+        }
+        self::updateChangelogFile($arguments[0], $arguments[1]);
+        self::changeVersionInCode($arguments[0]);
+    }
+
+    /**
+     * @param $version
+     * @param $changeLog
+     */
+    private static function updateChangelogFile($version, $changeLog)
+    {
+        $content = preg_replace(
+            '/# CHANGELOG/',
+            '# CHANGELOG'
+            . "\n"
+            . "\n"
+            . "## $version - " . date('Y-m-d')
+            . self::log($changeLog),
+            self::getChangeLogContent()
+        );
+
+        file_put_contents(self::getChangeLogFile(), $content);
+    }
+
+    /**
+     * @param $changeLog
+     *
+     * @return string
+     */
+    private static function log($changeLog)
+    {
+        $logs   = explode('|', $changeLog);
+        $string = "\n";
+        foreach ($logs as $log) {
+            if ($log) {
+                $string .= "- $log." . "\n";
+            }
+        }
+
+        return $string;
+    }
+
+    /**
+     * @return string
+     */
+    private static function getChangeLogContent()
+    {
+        return file_get_contents(self::getChangeLogFile());
+    }
+
+    /**
+     * @return string
+     */
+    private static function getChangeLogFile()
+    {
+        return __DIR__ . '/../CHANGELOG.md';
+    }
+
+    /**
+     * @param $version
+     */
+    private static function changeVersionInCode($version)
+    {
+        $content = preg_replace(
+            "/const VERSION = \'(.*)\';/",
+            "const VERSION = '" . $version . "';",
+            self::getCodeContent()
+        );
+
+        file_put_contents(self::getCodeFile(), $content);
+    }
+
+    /**
+     * @return string
+     */
+    private static function getCodeContent()
+    {
+        return file_get_contents(self::getCodeFile());
+    }
+
+    /**
+     * @return string
+     */
+    private static function getCodeFile()
+    {
+        return __DIR__ . '/AlibabaCloud.php';
+    }
+}

+ 451 - 0
vendor/alibabacloud/client/src/Request/Request.php

@@ -0,0 +1,451 @@
+<?php
+
+namespace AlibabaCloud\Client\Request;
+
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Credentials\Providers\CredentialsProvider;
+use AlibabaCloud\Client\Encode;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Exception\ServerException;
+use AlibabaCloud\Client\Filter\ApiFilter;
+use AlibabaCloud\Client\Filter\ClientFilter;
+use AlibabaCloud\Client\Filter\Filter;
+use AlibabaCloud\Client\Filter\HttpFilter;
+use AlibabaCloud\Client\Request\Traits\AcsTrait;
+use AlibabaCloud\Client\Request\Traits\ClientTrait;
+use AlibabaCloud\Client\Request\Traits\DeprecatedTrait;
+use AlibabaCloud\Client\Request\Traits\RetryTrait;
+use AlibabaCloud\Client\Result\Result;
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\Traits\ArrayAccessTrait;
+use AlibabaCloud\Client\Traits\HttpTrait;
+use AlibabaCloud\Client\Traits\ObjectAccessTrait;
+use AlibabaCloud\Client\Traits\RegionTrait;
+use ArrayAccess;
+use Exception;
+use GuzzleHttp\Client;
+use GuzzleHttp\Exception\GuzzleException;
+use GuzzleHttp\HandlerStack;
+use GuzzleHttp\MessageFormatter;
+use GuzzleHttp\Middleware;
+use GuzzleHttp\Promise\PromiseInterface;
+use GuzzleHttp\Psr7\Uri;
+use Psr\Http\Message\ResponseInterface;
+
+/**
+ * Class Request
+ *
+ * @package   AlibabaCloud\Client\Request
+ *
+ * @method string stringToSign()
+ * @method string resolveParameter()
+ */
+abstract class Request implements ArrayAccess
+{
+    use DeprecatedTrait;
+    use HttpTrait;
+    use RegionTrait;
+    use ClientTrait;
+    use AcsTrait;
+    use ArrayAccessTrait;
+    use ObjectAccessTrait;
+    use RetryTrait;
+
+    /**
+     * Request Connect Timeout
+     */
+    const CONNECT_TIMEOUT = 5;
+
+    /**
+     * Request Timeout
+     */
+    const TIMEOUT = 10;
+
+    /**
+     * @var string HTTP Method
+     */
+    public $method = 'GET';
+
+    /**
+     * @var string
+     */
+    public $format = 'JSON';
+
+    /**
+     * @var string HTTP Scheme
+     */
+    protected $scheme = 'http';
+
+    /**
+     * @var string
+     */
+    public $client;
+
+    /**
+     * @var Uri
+     */
+    public $uri;
+
+    /**
+     * @var array The original parameters of the request.
+     */
+    public $data = [];
+
+    /**
+     * @var array
+     */
+    private $userAgent = [];
+
+    /**
+     * Request constructor.
+     *
+     * @param array $options
+     *
+     * @throws ClientException
+     */
+    public function __construct(array $options = [])
+    {
+        $this->client                     = CredentialsProvider::getDefaultName();
+        $this->uri                        = new Uri();
+        $this->uri                        = $this->uri->withScheme($this->scheme);
+        $this->options['http_errors']     = false;
+        $this->options['connect_timeout'] = self::CONNECT_TIMEOUT;
+        $this->options['timeout']         = self::TIMEOUT;
+
+        // Turn on debug mode based on environment variable.
+        if (null !== \AlibabaCloud\Client\env('DEBUG') && strtolower(\AlibabaCloud\Client\env('DEBUG')) === 'sdk') {
+            $this->options['debug'] = true;
+        }
+
+        // Rewrite configuration if the user has a configuration.
+        if ($options !== []) {
+            $this->options($options);
+        }
+    }
+
+    /**
+     * @param string $name
+     * @param string $value
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function appendUserAgent($name, $value)
+    {
+        $filter_name = Filter::name($name);
+
+        if (!UserAgent::isGuarded($filter_name)) {
+            $this->userAgent[$filter_name] = Filter::value($value);
+        }
+
+        return $this;
+    }
+
+    /**
+     * @param array $userAgent
+     *
+     * @return $this
+     */
+    public function withUserAgent(array $userAgent)
+    {
+        $this->userAgent = UserAgent::clean($userAgent);
+
+        return $this;
+    }
+
+    /**
+     * Set Accept format.
+     *
+     * @param string $format
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function format($format)
+    {
+        $this->format = ApiFilter::format($format);
+
+        return $this;
+    }
+
+    /**
+     * @param $contentType
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function contentType($contentType)
+    {
+        $this->options['headers']['Content-Type'] = HttpFilter::contentType($contentType);
+
+        return $this;
+    }
+
+    /**
+     * @param string $accept
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function accept($accept)
+    {
+        $this->options['headers']['Accept'] = HttpFilter::accept($accept);
+
+        return $this;
+    }
+
+    /**
+     * Set the request body.
+     *
+     * @param string $body
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function body($body)
+    {
+        $this->options['body'] = HttpFilter::body($body);
+
+        return $this;
+    }
+
+    /**
+     * Set the json as body.
+     *
+     * @param array|object $content
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function jsonBody($content)
+    {
+        if (!\is_array($content) && !\is_object($content)) {
+            throw new ClientException(
+                'jsonBody only accepts an array or object',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return $this->body(\json_encode($content));
+    }
+
+    /**
+     * Set the request scheme.
+     *
+     * @param string $scheme
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function scheme($scheme)
+    {
+        $this->scheme = HttpFilter::scheme($scheme);
+        $this->uri    = $this->uri->withScheme($scheme);
+
+        return $this;
+    }
+
+    /**
+     * Set the request host.
+     *
+     * @param string $host
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function host($host)
+    {
+        $this->uri = $this->uri->withHost(HttpFilter::host($host));
+
+        return $this;
+    }
+
+    /**
+     * @param string $method
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function method($method)
+    {
+        $this->method = HttpFilter::method($method);
+
+        return $this;
+    }
+
+    /**
+     * @param string $clientName
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function client($clientName)
+    {
+        $this->client = ClientFilter::clientName($clientName);
+
+        return $this;
+    }
+
+    /**
+     * @return bool
+     * @throws ClientException
+     */
+    public function isDebug()
+    {
+        if (isset($this->options['debug'])) {
+            return $this->options['debug'] === true;
+        }
+
+        if (isset($this->httpClient()->options['debug'])) {
+            return $this->httpClient()->options['debug'] === true;
+        }
+
+        return false;
+    }
+
+    /**
+     * @throws ClientException
+     * @throws ServerException
+     */
+    public function resolveOption()
+    {
+        $this->options['headers']['User-Agent'] = UserAgent::toString($this->userAgent);
+
+        $this->cleanQuery();
+        $this->cleanFormParams();
+        $this->resolveHost();
+        $this->resolveParameter();
+
+        if (isset($this->options['form_params'])) {
+            if (function_exists('\GuzzleHttp\Psr7\parse_query')) {
+                $this->options['form_params'] = \GuzzleHttp\Psr7\parse_query(
+                    Encode::create($this->options['form_params'])->toString()
+                );
+            } else {
+                $this->options['form_params'] = \GuzzleHttp\Psr7\Query::parse(
+                    Encode::create($this->options['form_params'])->toString()
+                );
+            }
+        }
+
+        $this->mergeOptionsIntoClient();
+    }
+
+    /**
+     * @return Result
+     * @throws ClientException
+     * @throws ServerException
+     */
+    public function request()
+    {
+        $this->resolveOption();
+        $result = $this->response();
+
+        if ($this->shouldServerRetry($result)) {
+            return $this->request();
+        }
+
+        if (!$result->isSuccess()) {
+            throw new ServerException($result);
+        }
+
+        return $result;
+    }
+
+    /***
+     * @return PromiseInterface
+     * @throws Exception
+     */
+    public function requestAsync()
+    {
+        $this->resolveOption();
+
+        return self::createClient($this)->requestAsync(
+            $this->method,
+            (string)$this->uri,
+            $this->options
+        );
+    }
+
+    /**
+     * @param Request $request
+     *
+     * @return Client
+     * @throws Exception
+     */
+    public static function createClient(Request $request = null)
+    {
+        if (AlibabaCloud::hasMock()) {
+            $stack = HandlerStack::create(AlibabaCloud::getMock());
+        } else {
+            $stack = HandlerStack::create();
+        }
+
+        if (AlibabaCloud::isRememberHistory()) {
+            $stack->push(Middleware::history(AlibabaCloud::referenceHistory()));
+        }
+
+        if (AlibabaCloud::getLogger()) {
+            $stack->push(Middleware::log(
+                AlibabaCloud::getLogger(),
+                new MessageFormatter(AlibabaCloud::getLogFormat())
+            ));
+        }
+
+        $stack->push(Middleware::mapResponse(static function (ResponseInterface $response) use ($request) {
+            return new Result($response, $request);
+        }));
+
+        self::$config['handler'] = $stack;
+
+        return new Client(self::$config);
+    }
+
+    /**
+     * @throws ClientException
+     * @throws Exception
+     */
+    private function response()
+    {
+        try {
+            return self::createClient($this)->request(
+                $this->method,
+                (string)$this->uri,
+                $this->options
+            );
+        } catch (GuzzleException $exception) {
+            if ($this->shouldClientRetry($exception)) {
+                return $this->response();
+            }
+            throw new ClientException(
+                $exception->getMessage(),
+                SDK::SERVER_UNREACHABLE,
+                $exception
+            );
+        }
+    }
+
+    /**
+     * Remove redundant Query
+     *
+     * @codeCoverageIgnore
+     */
+    private function cleanQuery()
+    {
+        if (isset($this->options['query']) && $this->options['query'] === []) {
+            unset($this->options['query']);
+        }
+    }
+
+    /**
+     * Remove redundant Headers
+     *
+     * @codeCoverageIgnore
+     */
+    private function cleanFormParams()
+    {
+        if (isset($this->options['form_params']) && $this->options['form_params'] === []) {
+            unset($this->options['form_params']);
+        }
+    }
+}

+ 333 - 0
vendor/alibabacloud/client/src/Request/RoaRequest.php

@@ -0,0 +1,333 @@
+<?php
+
+namespace AlibabaCloud\Client\Request;
+
+use Exception;
+use AlibabaCloud\Client\Support\Stringy;
+use RuntimeException;
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\Encode;
+use AlibabaCloud\Client\Accept;
+use AlibabaCloud\Client\Support\Path;
+use AlibabaCloud\Client\Support\Sign;
+use AlibabaCloud\Client\Filter\Filter;
+use AlibabaCloud\Client\Support\Arrays;
+use AlibabaCloud\Client\Filter\ApiFilter;
+use AlibabaCloud\Client\Credentials\StsCredential;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Exception\ServerException;
+use AlibabaCloud\Client\Credentials\AccessKeyCredential;
+use AlibabaCloud\Client\Credentials\BearerTokenCredential;
+use AlibabaCloud\Client\Request\Traits\DeprecatedRoaTrait;
+
+/**
+ * RESTful ROA Request.
+ *
+ * @package   AlibabaCloud\Client\Request
+ * @method setParameter()
+ */
+class RoaRequest extends Request
+{
+    use DeprecatedRoaTrait;
+
+    /**
+     * @var string
+     */
+    public $pathPattern = '/';
+
+    /**
+     * @var array
+     */
+    public $pathParameters = [];
+
+    /**
+     * @var string
+     */
+    private $dateTimeFormat = "D, d M Y H:i:s \G\M\T";
+
+    /**
+     * Resolve request parameter.
+     *
+     * @throws ClientException
+     * @throws Exception
+     */
+    public function resolveParameter()
+    {
+        $this->resolveQuery();
+        $this->resolveHeaders();
+        $this->resolveBody();
+        $this->resolveUri();
+        $this->resolveSignature();
+    }
+
+    private function resolveQuery()
+    {
+        if (!isset($this->options['query']['Version'])) {
+            $this->options['query']['Version'] = $this->version;
+        }
+    }
+
+    private function resolveBody()
+    {
+        // If the body has already been specified, it will not be resolved.
+        if (isset($this->options['body'])) {
+            return;
+        }
+
+        if (!isset($this->options['form_params'])) {
+            return;
+        }
+
+        // Merge data, compatible with parameters set from constructor.
+        $params = Arrays::merge(
+            [
+                $this->data,
+                $this->options['form_params']
+            ]
+        );
+
+        $this->encodeBody($params);
+
+        unset($this->options['form_params']);
+    }
+
+    /**
+     * Determine the body format based on the Content-Type and calculate the MD5 value.
+     *
+     * @param array $params
+     */
+    private function encodeBody(array $params)
+    {
+        if (Stringy::contains($this->options['headers']['Content-Type'], 'application/json', false)) {
+            $this->options['body']                   = json_encode($params);
+            $this->options['headers']['Content-MD5'] = base64_encode(md5($this->options['body'], true));
+
+            return;
+        }
+
+        $this->options['body']                    = Encode::create($params)->ksort()->toString();
+        $this->options['headers']['Content-MD5']  = base64_encode(md5($this->options['body'], true));
+        $this->options['headers']['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
+    }
+
+    /**
+     * @throws ClientException
+     * @throws ServerException
+     * @throws Exception
+     */
+    private function resolveHeaders()
+    {
+        $this->options['headers']['x-acs-version']   = $this->version;
+        $this->options['headers']['x-acs-region-id'] = $this->realRegionId();
+        $this->options['headers']['Date']            = gmdate($this->dateTimeFormat);
+
+        $signature                                           = $this->httpClient()->getSignature();
+        $this->options['headers']['x-acs-signature-method']  = $signature->getMethod();
+        $this->options['headers']['x-acs-signature-nonce']   = Sign::uuid($this->product . $this->action);
+        $this->options['headers']['x-acs-signature-version'] = $signature->getVersion();
+        if ($signature->getType()) {
+            $this->options['headers']['x-acs-signature-type'] = $signature->getType();
+        }
+
+        $this->resolveAccept();
+        $this->resolveContentType();
+        $this->resolveSecurityToken();
+        $this->resolveBearerToken();
+    }
+
+    /**
+     * @throws ClientException
+     * @throws Exception
+     */
+    private function resolveSignature()
+    {
+        $this->options['headers']['Authorization'] = $this->signature();
+    }
+
+    /**
+     * If accept is not specified, it is determined by format.
+     */
+    private function resolveAccept()
+    {
+        if (!isset($this->options['headers']['Accept'])) {
+            $this->options['headers']['Accept'] = Accept::create($this->format)->toString();
+        }
+    }
+
+    /**
+     * If the Content-Type is not specified, it is determined according to accept.
+     */
+    private function resolveContentType()
+    {
+        if (!isset($this->options['headers']['Content-Type'])) {
+            $this->options['headers']['Content-Type'] = "{$this->options['headers']['Accept']}; charset=utf-8";
+        }
+    }
+
+    /**
+     * @throws ClientException
+     * @throws ServerException
+     */
+    private function resolveSecurityToken()
+    {
+        if (!$this->credential() instanceof StsCredential) {
+            return;
+        }
+
+        if (!$this->credential()->getSecurityToken()) {
+            return;
+        }
+
+        $this->options['headers']['x-acs-security-token'] = $this->credential()->getSecurityToken();
+    }
+
+    /**
+     * @throws ClientException
+     * @throws ServerException
+     */
+    private function resolveBearerToken()
+    {
+        if ($this->credential() instanceof BearerTokenCredential) {
+            $this->options['headers']['x-acs-bearer-token'] = $this->credential()->getBearerToken();
+        }
+    }
+
+    /**
+     * Sign the request message.
+     *
+     * @return string
+     * @throws ClientException
+     * @throws ServerException
+     */
+    private function signature()
+    {
+        /**
+         * @var AccessKeyCredential $credential
+         */
+        $credential    = $this->credential();
+        $access_key_id = $credential->getAccessKeyId();
+        $signature     = $this->httpClient()
+                              ->getSignature()
+                              ->sign(
+                                  $this->stringToSign(),
+                                  $credential->getAccessKeySecret()
+                              );
+
+        return "acs $access_key_id:$signature";
+    }
+
+    /**
+     * @return void
+     */
+    private function resolveUri()
+    {
+        $path = Path::assign($this->pathPattern, $this->pathParameters);
+
+        $this->uri = $this->uri->withPath($path)
+                               ->withQuery(
+                                   $this->queryString()
+                               );
+    }
+
+    /**
+     * @return string
+     */
+    public function stringToSign()
+    {
+        $request = new \GuzzleHttp\Psr7\Request(
+            $this->method,
+            $this->uri,
+            $this->options['headers']
+        );
+
+        return Sign::roaString($request);
+    }
+
+    /**
+     * @return bool|string
+     */
+    private function queryString()
+    {
+        $query = isset($this->options['query'])
+            ? $this->options['query']
+            : [];
+
+        return Encode::create($query)->ksort()->toString();
+    }
+
+    /**
+     * Set path parameter by name.
+     *
+     * @param string $name
+     * @param string $value
+     *
+     * @return RoaRequest
+     * @throws ClientException
+     */
+    public function pathParameter($name, $value)
+    {
+        Filter::name($name);
+
+        if ($value === '') {
+            throw new ClientException(
+                'Value cannot be empty',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        $this->pathParameters[$name] = $value;
+
+        return $this;
+    }
+
+    /**
+     * Set path pattern.
+     *
+     * @param string $pattern
+     *
+     * @return self
+     * @throws ClientException
+     */
+    public function pathPattern($pattern)
+    {
+        ApiFilter::pattern($pattern);
+
+        $this->pathPattern = $pattern;
+
+        return $this;
+    }
+
+    /**
+     * Magic method for set or get request parameters.
+     *
+     * @param string $name
+     * @param mixed  $arguments
+     *
+     * @return $this
+     */
+    public function __call($name, $arguments)
+    {
+        if (strncmp($name, 'get', 3) === 0) {
+            $parameter_name = \mb_strcut($name, 3);
+
+            return $this->__get($parameter_name);
+        }
+
+        if (strncmp($name, 'with', 4) === 0) {
+            $parameter_name = \mb_strcut($name, 4);
+            $this->__set($parameter_name, $arguments[0]);
+            $this->pathParameters[$parameter_name] = $arguments[0];
+
+            return $this;
+        }
+
+        if (strncmp($name, 'set', 3) === 0) {
+            $parameter_name = \mb_strcut($name, 3);
+            $with_method    = "with$parameter_name";
+
+            throw new RuntimeException("Please use $with_method instead of $name");
+        }
+
+        throw new RuntimeException('Call to undefined method ' . __CLASS__ . '::' . $name . '()');
+    }
+}

+ 203 - 0
vendor/alibabacloud/client/src/Request/RpcRequest.php

@@ -0,0 +1,203 @@
+<?php
+
+namespace AlibabaCloud\Client\Request;
+
+use Exception;
+use RuntimeException;
+use AlibabaCloud\Client\Support\Sign;
+use AlibabaCloud\Client\Support\Arrays;
+use AlibabaCloud\Client\Credentials\StsCredential;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Exception\ServerException;
+use AlibabaCloud\Client\Credentials\BearerTokenCredential;
+
+/**
+ * RESTful RPC Request.
+ *
+ * @package   AlibabaCloud\Client\Request
+ */
+class RpcRequest extends Request
+{
+
+    /**
+     * @var string
+     */
+    private $dateTimeFormat = 'Y-m-d\TH:i:s\Z';
+
+    /**
+     * Resolve request parameter.
+     *
+     * @throws ClientException
+     */
+    public function resolveParameter()
+    {
+        $this->resolveBoolInParameters();
+        $this->resolveCommonParameters();
+        $this->repositionParameters();
+    }
+
+    /**
+     * Convert a Boolean value to a string
+     */
+    private function resolveBoolInParameters()
+    {
+        if (isset($this->options['query'])) {
+            $this->options['query'] = array_map(
+                static function ($value) {
+                    return self::boolToString($value);
+                },
+                $this->options['query']
+            );
+        }
+    }
+
+    /**
+     * Convert a Boolean value to a string.
+     *
+     * @param bool|string $value
+     *
+     * @return string
+     */
+    public static function boolToString($value)
+    {
+        if (is_bool($value)) {
+            return $value ? 'true' : 'false';
+        }
+
+        return $value;
+    }
+
+    /**
+     * Resolve Common Parameters.
+     *
+     * @throws ClientException
+     * @throws Exception
+     */
+    private function resolveCommonParameters()
+    {
+        $signature                                  = $this->httpClient()->getSignature();
+        $this->options['query']['RegionId']         = $this->realRegionId();
+        $this->options['query']['Format']           = $this->format;
+        $this->options['query']['SignatureMethod']  = $signature->getMethod();
+        $this->options['query']['SignatureVersion'] = $signature->getVersion();
+        $this->options['query']['SignatureNonce']   = Sign::uuid($this->product . $this->action);
+        $this->options['query']['Timestamp']        = gmdate($this->dateTimeFormat);
+        $this->options['query']['Action']           = $this->action;
+        if ($this->credential()->getAccessKeyId()) {
+            $this->options['query']['AccessKeyId'] = $this->credential()->getAccessKeyId();
+        }
+        if ($signature->getType()) {
+            $this->options['query']['SignatureType'] = $signature->getType();
+        }
+        if (!isset($this->options['query']['Version'])) {
+            $this->options['query']['Version'] = $this->version;
+        }
+        $this->resolveSecurityToken();
+        $this->resolveBearerToken();
+        $this->options['query']['Signature'] = $this->signature();
+    }
+
+    /**
+     * @throws ClientException
+     * @throws ServerException
+     */
+    private function resolveSecurityToken()
+    {
+        if (!$this->credential() instanceof StsCredential) {
+            return;
+        }
+
+        if (!$this->credential()->getSecurityToken()) {
+            return;
+        }
+
+        $this->options['query']['SecurityToken'] = $this->credential()->getSecurityToken();
+    }
+
+    /**
+     * @throws ClientException
+     * @throws ServerException
+     */
+    private function resolveBearerToken()
+    {
+        if ($this->credential() instanceof BearerTokenCredential) {
+            $this->options['query']['BearerToken'] = $this->credential()->getBearerToken();
+        }
+    }
+
+    /**
+     * Sign the parameters.
+     *
+     * @return mixed
+     * @throws ClientException
+     * @throws ServerException
+     */
+    private function signature()
+    {
+        return $this->httpClient()
+                    ->getSignature()
+                    ->sign(
+                        $this->stringToSign(),
+                        $this->credential()->getAccessKeySecret() . '&'
+                    );
+    }
+
+    /**
+     * @return string
+     */
+    public function stringToSign()
+    {
+        $query       = isset($this->options['query']) ? $this->options['query'] : [];
+        $form_params = isset($this->options['form_params']) ? $this->options['form_params'] : [];
+        $parameters  = Arrays::merge([$query, $form_params]);
+
+        return Sign::rpcString($this->method, $parameters);
+    }
+
+    /**
+     * Adjust parameter position
+     */
+    private function repositionParameters()
+    {
+        if ($this->method === 'POST' || $this->method === 'PUT') {
+            foreach ($this->options['query'] as $api_key => $api_value) {
+                $this->options['form_params'][$api_key] = $api_value;
+            }
+            unset($this->options['query']);
+        }
+    }
+
+    /**
+     * Magic method for set or get request parameters.
+     *
+     * @param string $name
+     * @param mixed  $arguments
+     *
+     * @return $this
+     */
+    public function __call($name, $arguments)
+    {
+        if (strncmp($name, 'get', 3) === 0) {
+            $parameter_name = \mb_strcut($name, 3);
+
+            return $this->__get($parameter_name);
+        }
+
+        if (strncmp($name, 'with', 4) === 0) {
+            $parameter_name = \mb_strcut($name, 4);
+            $this->__set($parameter_name, $arguments[0]);
+            $this->options['query'][$parameter_name] = $arguments[0];
+
+            return $this;
+        }
+
+        if (strncmp($name, 'set', 3) === 0) {
+            $parameter_name = \mb_strcut($name, 3);
+            $with_method    = "with$parameter_name";
+
+            throw new RuntimeException("Please use $with_method instead of $name");
+        }
+
+        throw new RuntimeException('Call to undefined method ' . __CLASS__ . '::' . $name . '()');
+    }
+}

+ 259 - 0
vendor/alibabacloud/client/src/Request/Traits/AcsTrait.php

@@ -0,0 +1,259 @@
+<?php
+
+namespace AlibabaCloud\Client\Request\Traits;
+
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Exception\ServerException;
+use AlibabaCloud\Client\Filter\ApiFilter;
+use AlibabaCloud\Client\Regions\LocationService;
+use AlibabaCloud\Client\Request\Request;
+use AlibabaCloud\Client\SDK;
+use GuzzleHttp\Psr7\Uri;
+
+/**
+ * Trait AcsTrait
+ *
+ * @package   AlibabaCloud\Client\Request\Traits
+ * @property Uri $uri
+ * @mixin     Request
+ */
+trait AcsTrait
+{
+    /**
+     * @var string
+     */
+    public $version;
+
+    /**
+     * @var string
+     */
+    public $product;
+
+    /**
+     * @var string
+     */
+    public $action;
+
+    /**
+     * @var string
+     */
+    public $serviceCode = '';
+
+    /**
+     * @var string
+     */
+    public $endpointType = 'openAPI';
+
+    /**
+     * @var string|null
+     */
+    public $network = 'public';
+
+    /**
+     * @var array|null
+     */
+    public $endpointMap;
+
+    /**
+     * @var string|null
+     */
+    public $endpointRegional;
+
+    /**
+     * @var string
+     */
+    public $endpointSuffix = '';
+
+    /**
+     * @param string $action
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function action($action)
+    {
+        $this->action = ApiFilter::action($action);
+
+        return $this;
+    }
+
+    /**
+     * @codeCoverageIgnore
+     *
+     * @param string $endpointSuffix
+     *
+     * @return AcsTrait
+     * @throws ClientException
+     */
+    public function endpointSuffix($endpointSuffix)
+    {
+        $this->endpointSuffix = ApiFilter::endpointSuffix($endpointSuffix);
+
+        return $this;
+    }
+
+    /**
+     * @param string $network
+     */
+    public function network($network)
+    {
+        $this->network = ApiFilter::network($network);
+
+        return $this;
+    }
+
+    /**
+     * @param string $version
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function version($version)
+    {
+        $this->version = ApiFilter::version($version);
+
+        return $this;
+    }
+
+    /**
+     * @param string $product
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function product($product)
+    {
+        $this->product = ApiFilter::product($product);
+
+        return $this;
+    }
+
+    /**
+     * @param string $endpointType
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function endpointType($endpointType)
+    {
+        $this->endpointType = ApiFilter::endpointType($endpointType);
+
+        return $this;
+    }
+
+    /**
+     * @param string $serviceCode
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function serviceCode($serviceCode)
+    {
+        $this->serviceCode = ApiFilter::serviceCode($serviceCode);
+
+        return $this;
+    }
+
+    /**
+     * Resolve Host.
+     *
+     * @throws ClientException
+     * @throws ServerException
+     */
+    public function resolveHost()
+    {
+        // Return if specified
+        if ($this->uri->getHost() !== 'localhost') {
+            return;
+        }
+
+        $region_id = $this->realRegionId();
+        $host      = '';
+
+        $this->resolveHostWays($host, $region_id);
+
+        if (!$host) {
+            throw new ClientException(
+                "No host found for {$this->product} in the {$region_id}, you can specify host by host() method. " .
+                'Like $request->host(\'xxx.xxx.aliyuncs.com\')',
+                SDK::HOST_NOT_FOUND
+            );
+        }
+
+        $this->uri = $this->uri->withHost($host);
+    }
+
+    /**
+     * @param string $host
+     * @param string $region_id
+     *
+     * @throws ClientException
+     * @throws ServerException
+     */
+    private function resolveHostWays(&$host, $region_id)
+    {
+        $host = AlibabaCloud::resolveHostByStatic($this->product, $region_id);
+
+        // 1. Find host by map.
+        if (!$host && $this->network === 'public' && isset($this->endpointMap[$region_id])) {
+            $host = $this->endpointMap[$region_id];
+        }
+
+        if (!$host) {
+            $this->hostResolver($host, $region_id);
+        }
+    }
+
+    /**
+     * @codeCoverageIgnore
+     *
+     * @param string $host
+     * @param string $region_id
+     *
+     * @throws ClientException
+     * @throws ServerException
+     */
+    private function hostResolver(&$host, $region_id)
+    {
+        // 2. Find host by rules.
+        if ($this->endpointRegional !== null) {
+            $host = AlibabaCloud::resolveHostByRule($this);
+        }
+
+        // 3. Find in the local array file.
+        if (!$host) {
+            $host = AlibabaCloud::resolveHost($this->product, $region_id);
+        }
+
+        // 4. Find in the Location service.
+        if (!$host && $this->serviceCode) {
+            $host = LocationService::resolveHost($this);
+        }
+    }
+
+    /**
+     * @return string
+     * @throws ClientException
+     */
+    public function realRegionId()
+    {
+        if ($this->regionId !== null) {
+            return $this->regionId;
+        }
+
+        if ($this->httpClient()->regionId !== null) {
+            return $this->httpClient()->regionId;
+        }
+
+        if (AlibabaCloud::getDefaultRegionId() !== null) {
+            return AlibabaCloud::getDefaultRegionId();
+        }
+
+        if ($this->product && AlibabaCloud::isGlobalProduct($this->product)) {
+            return 'global';
+        }
+
+        throw new ClientException("Missing required 'RegionId' for Request", SDK::INVALID_REGION_ID);
+    }
+}

+ 98 - 0
vendor/alibabacloud/client/src/Request/Traits/ClientTrait.php

@@ -0,0 +1,98 @@
+<?php
+
+namespace AlibabaCloud\Client\Request\Traits;
+
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Clients\Client;
+use AlibabaCloud\Client\Support\Arrays;
+use AlibabaCloud\Client\Request\Request;
+use AlibabaCloud\Client\Credentials\StsCredential;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Exception\ServerException;
+use AlibabaCloud\Client\Credentials\AccessKeyCredential;
+use AlibabaCloud\Client\Credentials\Requests\AssumeRole;
+use AlibabaCloud\Client\Credentials\CredentialsInterface;
+use AlibabaCloud\Client\Credentials\BearerTokenCredential;
+use AlibabaCloud\Client\Credentials\Providers\CredentialsProvider;
+use AlibabaCloud\Client\Credentials\Requests\GenerateSessionAccessKey;
+
+/**
+ * Trait ClientTrait
+ *
+ * @package   AlibabaCloud\Client\Request\Traits
+ *
+ * @mixin     Request
+ */
+trait ClientTrait
+{
+    /**
+     * @var array
+     */
+    private static $config = [];
+
+    /**
+     * @param array $config
+     */
+    public static function config(array $config)
+    {
+        self::$config = $config;
+    }
+
+    /**
+     * Return credentials directly if it is an AssumeRole or GenerateSessionAccessKey.
+     *
+     * @return AccessKeyCredential|BearerTokenCredential|CredentialsInterface|StsCredential
+     * @throws ClientException
+     * @throws ServerException
+     */
+    public function credential()
+    {
+        if ($this instanceof AssumeRole || $this instanceof GenerateSessionAccessKey) {
+            return $this->httpClient()->getCredential();
+        }
+
+        $timeout = isset($this->options['timeout'])
+            ? $this->options['timeout']
+            : Request::TIMEOUT;
+
+        $connectTimeout = isset($this->options['connect_timeout'])
+            ? $this->options['connect_timeout']
+            : Request::CONNECT_TIMEOUT;
+
+        return $this->httpClient()->getSessionCredential($timeout, $connectTimeout);
+    }
+
+    /**
+     * Get the client based on the request's settings.
+     *
+     * @return Client
+     * @throws ClientException
+     */
+    public function httpClient()
+    {
+        if (!AlibabaCloud::all()) {
+            if (CredentialsProvider::hasCustomChain()) {
+                CredentialsProvider::customProvider($this->client);
+            } else {
+                CredentialsProvider::defaultProvider($this->client);
+            }
+        }
+
+        return AlibabaCloud::get($this->client);
+    }
+
+    /**
+     * Merged with the client's options, the same name will be overwritten.
+     *
+     * @throws ClientException
+     */
+    public function mergeOptionsIntoClient()
+    {
+        $this->options = Arrays::merge(
+            [
+                $this->httpClient()->options,
+                $this->options
+            ]
+        );
+    }
+}

+ 55 - 0
vendor/alibabacloud/client/src/Request/Traits/DeprecatedRoaTrait.php

@@ -0,0 +1,55 @@
+<?php
+
+namespace AlibabaCloud\Client\Request\Traits;
+
+/**
+ * @package    AlibabaCloud\Client\Request\Traits
+ * @codeCoverageIgnore
+ */
+trait DeprecatedRoaTrait
+{
+    /**
+     * @param $name
+     * @param $value
+     *
+     * @return $this
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function putPathParameter($name, $value)
+    {
+        return $this->pathParameter($name, $value);
+    }
+
+    /**
+     * @param $pathPattern
+     *
+     * @return $this
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function setUriPattern($pathPattern)
+    {
+        return $this->pathPattern($pathPattern);
+    }
+
+    /**
+     * @return string
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function getUriPattern()
+    {
+        return $this->pathPattern;
+    }
+
+    /**
+     * @return array
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function getPathParameters()
+    {
+        return $this->pathParameters;
+    }
+}

+ 246 - 0
vendor/alibabacloud/client/src/Request/Traits/DeprecatedTrait.php

@@ -0,0 +1,246 @@
+<?php
+
+namespace AlibabaCloud\Client\Request\Traits;
+
+use AlibabaCloud\Client\Exception\ClientException;
+use RuntimeException;
+use AlibabaCloud\Client\Request\Request;
+
+/**
+ * @package    AlibabaCloud\Client\Request\Traits
+ *
+ * @mixin Request
+ */
+trait DeprecatedTrait
+{
+
+    /**
+     * @param $content
+     *
+     * @return $this
+     * @throws ClientException
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function setContent($content)
+    {
+        return $this->body($content);
+    }
+
+    /**
+     * @param $method
+     *
+     * @return $this
+     * @throws ClientException
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function setMethod($method)
+    {
+        return $this->method($method);
+    }
+
+    /**
+     * @param $scheme
+     *
+     * @return $this
+     * @throws ClientException
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function setProtocol($scheme)
+    {
+        return $this->scheme($scheme);
+    }
+
+    /**
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function getProtocolType()
+    {
+        return $this->uri->getScheme();
+    }
+
+    /**
+     * @param $scheme
+     *
+     * @return $this
+     * @throws ClientException
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function setProtocolType($scheme)
+    {
+        return $this->scheme($scheme);
+    }
+
+    /**
+     * @param $actionName
+     *
+     * @return $this
+     * @throws ClientException
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function setActionName($actionName)
+    {
+        return $this->action($actionName);
+    }
+
+    /**
+     * @param $format
+     *
+     * @return $this
+     * @throws ClientException
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function setAcceptFormat($format)
+    {
+        return $this->format($format);
+    }
+
+    /**
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function getProtocol()
+    {
+        return $this->uri->getScheme();
+    }
+
+    /**
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function getContent()
+    {
+        return isset($this->options['body'])
+            ? $this->options['body']
+            : null;
+    }
+
+    /**
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function getMethod()
+    {
+        return $this->method;
+    }
+
+    /**
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function getHeaders()
+    {
+        return isset($this->options['headers'])
+            ? $this->options['headers']
+            : [];
+    }
+
+    /**
+     * @param $headerKey
+     * @param $headerValue
+     *
+     * @return $this
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function addHeader($headerKey, $headerValue)
+    {
+        $this->options['headers'][$headerKey] = $headerValue;
+
+        return $this;
+    }
+
+    /**
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function getQueryParameters()
+    {
+        return isset($this->options['query'])
+            ? $this->options['query']
+            : [];
+    }
+
+    /**
+     * @param $name
+     * @param $value
+     *
+     * @return $this
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function setQueryParameters($name, $value)
+    {
+        $this->options['query'][$name] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function getDomainParameter()
+    {
+        return isset($this->options['form_params'])
+            ? $this->options['form_params']
+            : [];
+    }
+
+    /**
+     * @param $name
+     * @param $value
+     *
+     * @return $this
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function putDomainParameters($name, $value)
+    {
+        $this->options['form_params'][$name] = $value;
+
+        return $this;
+    }
+
+    /**
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function getActionName()
+    {
+        return $this->action;
+    }
+
+    /**
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function getAcceptFormat()
+    {
+        return $this->format;
+    }
+
+    /**
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function getLocationEndpointType()
+    {
+        return $this->endpointType;
+    }
+
+    /**
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public function getLocationServiceCode()
+    {
+        return $this->serviceCode;
+    }
+}

+ 149 - 0
vendor/alibabacloud/client/src/Request/Traits/RetryTrait.php

@@ -0,0 +1,149 @@
+<?php
+
+namespace AlibabaCloud\Client\Request\Traits;
+
+use Exception;
+use AlibabaCloud\Client\Support\Stringy;
+use AlibabaCloud\Client\Result\Result;
+use AlibabaCloud\Client\Filter\ClientFilter;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Trait RetryTrait
+ *
+ * @package AlibabaCloud\Client\Request\Traits
+ */
+trait RetryTrait
+{
+    /**
+     * Server Retry Times
+     *
+     * @var int
+     */
+    private $serverRetry = 0;
+
+    /**
+     * Server Retry Strings
+     *
+     * @var string[]
+     */
+    private $serverRetryStrings = [];
+
+    /**
+     * Server Retry Codes
+     *
+     * @var int[]
+     */
+    private $serverRetryStatusCodes = [];
+
+    /**
+     * Client Retry Times
+     *
+     * @var int
+     */
+    private $clientRetry = 0;
+
+    /**
+     * Client Retry Strings
+     *
+     * @var string[]
+     */
+    private $clientRetryStrings = [];
+
+    /**
+     * Client Retry Codes
+     *
+     * @var int[]
+     */
+    private $clientRetryStatusCodes = [];
+
+    /**
+     * @param int   $times
+     * @param array $strings
+     * @param array $statusCodes
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function retryByServer($times, array $strings, array $statusCodes = [])
+    {
+        $this->serverRetry            = ClientFilter::retry($times);
+        $this->serverRetryStrings     = $strings;
+        $this->serverRetryStatusCodes = $statusCodes;
+
+        return $this;
+    }
+
+    /**
+     * @param int   $times
+     * @param array $strings
+     * @param array $codes
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function retryByClient($times, array $strings, array $codes = [])
+    {
+        $this->clientRetry            = ClientFilter::retry($times);
+        $this->clientRetryStrings     = $strings;
+        $this->clientRetryStatusCodes = $codes;
+
+        return $this;
+    }
+
+    /**
+     * @param Result $result
+     *
+     * @return bool
+     */
+    private function shouldServerRetry(Result $result)
+    {
+        if ($this->serverRetry <= 0) {
+            return false;
+        }
+
+        if (in_array($result->getStatusCode(), $this->serverRetryStatusCodes)) {
+            $this->serverRetry--;
+
+            return true;
+        }
+
+        foreach ($this->serverRetryStrings as $message) {
+            if (Stringy::contains($result->getBody(), $message)) {
+                $this->serverRetry--;
+
+                return true;
+            }
+        }
+
+        return false;
+    }
+
+    /**
+     * @param Exception $exception
+     *
+     * @return bool
+     */
+    private function shouldClientRetry(Exception $exception)
+    {
+        if ($this->clientRetry <= 0) {
+            return false;
+        }
+
+        if (in_array($exception->getCode(), $this->clientRetryStatusCodes, true)) {
+            $this->clientRetry--;
+
+            return true;
+        }
+
+        foreach ($this->clientRetryStrings as $message) {
+            if (Stringy::contains($exception->getMessage(), $message)) {
+                $this->clientRetry--;
+
+                return true;
+            }
+        }
+
+        return false;
+    }
+}

+ 142 - 0
vendor/alibabacloud/client/src/Request/UserAgent.php

@@ -0,0 +1,142 @@
+<?php
+
+namespace AlibabaCloud\Client\Request;
+
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Filter\Filter;
+use AlibabaCloud\Client\Support\Arrays;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Class UserAgent
+ *
+ * @package AlibabaCloud\Client\Request
+ */
+class UserAgent
+{
+
+    /**
+     * @var array
+     */
+    private static $userAgent = [];
+
+    /**
+     * @var array
+     */
+    private static $guard = [
+        'client',
+        'php',
+    ];
+
+    /**
+     * @param array $append
+     *
+     * @return string
+     */
+    public static function toString(array $append = [])
+    {
+        self::defaultFields();
+
+        $os        = \PHP_OS;
+        $osVersion = php_uname('r');
+        $osMode    = php_uname('m');
+        $userAgent = "AlibabaCloud ($os $osVersion; $osMode) ";
+
+        $newUserAgent = [];
+
+        $append = self::clean($append);
+
+        $append = Arrays::merge(
+            [
+                self::$userAgent,
+                $append,
+            ]
+        );
+
+        foreach ($append as $key => $value) {
+            if ($value === null) {
+                $newUserAgent[] = $key;
+                continue;
+            }
+            $newUserAgent[] = "$key/$value";
+        }
+
+        return $userAgent . \implode(' ', $newUserAgent);
+    }
+
+    /**
+     * UserAgent constructor.
+     */
+    private static function defaultFields()
+    {
+        if (self::$userAgent === []) {
+            self::$userAgent = [
+                'Client' => AlibabaCloud::VERSION,
+                'PHP'    => \PHP_VERSION,
+            ];
+        }
+    }
+
+    /**
+     * @param array $append
+     *
+     * @return array
+     */
+    public static function clean(array $append)
+    {
+        foreach ($append as $key => $value) {
+            if (self::isGuarded($key)) {
+                unset($append[$key]);
+                continue;
+            }
+        }
+
+        return $append;
+    }
+
+    /**
+     * @param $name
+     *
+     * @return bool
+     */
+    public static function isGuarded($name)
+    {
+        return in_array(strtolower($name), self::$guard, true);
+    }
+
+    /**
+     * set User Agent of Alibaba Cloud.
+     *
+     * @param string $name
+     * @param string $value
+     *
+     * @throws ClientException
+     */
+    public static function append($name, $value)
+    {
+        Filter::name($name);
+        Filter::value($value);
+
+        self::defaultFields();
+
+        if (!self::isGuarded($name)) {
+            self::$userAgent[$name] = $value;
+        }
+    }
+
+    /**
+     * @param array $userAgent
+     */
+    public static function with(array $userAgent)
+    {
+        self::$userAgent = self::clean($userAgent);
+    }
+
+    /**
+     * Clear all of the User Agent.
+     */
+    public static function clear()
+    {
+        self::$userAgent = [];
+    }
+}

+ 50 - 0
vendor/alibabacloud/client/src/Resolver/ActionResolverTrait.php

@@ -0,0 +1,50 @@
+<?php
+
+namespace AlibabaCloud\Client\Resolver;
+
+use ReflectionClass;
+use ReflectionException;
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Request\Request;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * @codeCoverageIgnore
+ * @mixin Rpc
+ * @mixin Roa
+ * @mixin Request
+ * @package AlibabaCloud\Client\Resolver
+ */
+trait ActionResolverTrait
+{
+
+    /**
+     * Resolve Action name from class name
+     */
+    private function resolveActionName()
+    {
+        if (!$this->action) {
+            $array        = explode('\\', get_class($this));
+            $this->action = array_pop($array);
+        }
+    }
+
+    /**
+     * Append SDK version into User-Agent
+     *
+     * @throws ClientException
+     * @throws ReflectionException
+     */
+    private function appendSdkUA()
+    {
+        if (!(new ReflectionClass(AlibabaCloud::class))->hasMethod('appendUserAgent')) {
+            return;
+        }
+
+        if (!class_exists('AlibabaCloud\Release')) {
+            return;
+        }
+
+        AlibabaCloud::appendUserAgent('SDK', \AlibabaCloud\Release::VERSION);
+    }
+}

+ 113 - 0
vendor/alibabacloud/client/src/Resolver/ApiResolver.php

@@ -0,0 +1,113 @@
+<?php
+
+namespace AlibabaCloud\Client\Resolver;
+
+use ReflectionObject;
+use AlibabaCloud\Client\Request\Request;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Class ApiResolver
+ *
+ * @codeCoverageIgnore
+ * @package AlibabaCloud\Client\Resolver
+ */
+abstract class ApiResolver
+{
+
+    /**
+     * @param $name
+     * @param $arguments
+     *
+     * @return mixed
+     */
+    public static function __callStatic($name, $arguments)
+    {
+        return (new static())->__call($name, $arguments);
+    }
+
+    /**
+     * @param $api
+     * @param $arguments
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public function __call($api, $arguments)
+    {
+        $product_name = $this->getProductName();
+        $class        = $this->getNamespace() . '\\' . \ucfirst($api);
+
+        if (\class_exists($class)) {
+            if (isset($arguments[0])) {
+                return $this->warpEndpoint(new $class($arguments[0]));
+            }
+
+            return $this->warpEndpoint(new $class());
+        }
+
+        throw new ClientException(
+            "{$product_name} contains no $api",
+            'SDK.ApiNotFound'
+        );
+    }
+
+    /**
+     * @param Request $request
+     *
+     * @return Request
+     */
+    public function warpEndpoint(Request $request)
+    {
+        $reflect        = new ReflectionObject($request);
+        $product_dir    = dirname(dirname($reflect->getFileName()));
+        $endpoints_json = "$product_dir/endpoints.json";
+        if (file_exists($endpoints_json)) {
+            $endpoints = json_decode(file_get_contents($endpoints_json), true);
+            if (isset($endpoints['endpoint_map'])) {
+                $request->endpointMap = $endpoints['endpoint_map'];
+            }
+            if (isset($endpoints['endpoint_regional'])) {
+                $request->endpointRegional = $endpoints['endpoint_regional'];
+            }
+        }
+
+        return $request;
+    }
+
+    /**
+     * @return mixed
+     * @throws ClientException
+     */
+    private function getProductName()
+    {
+        $array = \explode('\\', \get_class($this));
+        if (isset($array[3])) {
+            return str_replace('ApiResolver', '', $array[3]);
+        }
+        throw new ClientException(
+            'Service name not found.',
+            'SDK.ServiceNotFound'
+        );
+    }
+
+    /**
+     * @return string
+     * @throws ClientException
+     */
+    private function getNamespace()
+    {
+        $array = \explode('\\', \get_class($this));
+
+        if (!isset($array[3])) {
+            throw new ClientException(
+                'Get namespace error.',
+                'SDK.ParseError'
+            );
+        }
+
+        unset($array[3]);
+
+        return \implode('\\', $array);
+    }
+}

+ 66 - 0
vendor/alibabacloud/client/src/Resolver/CallTrait.php

@@ -0,0 +1,66 @@
+<?php
+
+namespace AlibabaCloud\Client\Resolver;
+
+use RuntimeException;
+
+/**
+ * Trait CallTrait
+ *
+ * @codeCoverageIgnore
+ * @package AlibabaCloud\Client\Resolver
+ */
+trait CallTrait
+{
+    /**
+     * Magic method for set or get request parameters.
+     *
+     * @param string $name
+     * @param mixed  $arguments
+     *
+     * @return $this
+     */
+    public function __call($name, $arguments)
+    {
+        if (strncmp($name, 'get', 3) === 0) {
+            $parameter = \mb_strcut($name, 3);
+
+            return $this->__get($parameter);
+        }
+
+        if (strncmp($name, 'with', 4) === 0) {
+            $parameter = \mb_strcut($name, 4);
+
+            $value                                 = $this->getCallArguments($name, $arguments);
+            $this->data[$parameter]                = $value;
+            $this->parameterPosition()[$parameter] = $value;
+
+            return $this;
+        }
+
+        if (strncmp($name, 'set', 3) === 0) {
+            $parameter   = \mb_strcut($name, 3);
+            $with_method = "with$parameter";
+
+            return $this->$with_method($this->getCallArguments($name, $arguments));
+        }
+
+        throw new RuntimeException('Call to undefined method ' . __CLASS__ . '::' . $name . '()');
+    }
+
+    /**
+     * @param string $name
+     * @param array  $arguments
+     * @param int    $index
+     *
+     * @return mixed
+     */
+    private function getCallArguments($name, array $arguments, $index = 0)
+    {
+        if (!isset($arguments[$index])) {
+            throw new \InvalidArgumentException("Missing arguments to method $name");
+        }
+
+        return $arguments[$index];
+    }
+}

+ 43 - 0
vendor/alibabacloud/client/src/Resolver/Roa.php

@@ -0,0 +1,43 @@
+<?php
+
+namespace AlibabaCloud\Client\Resolver;
+
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Request\RoaRequest;
+use ReflectionClass;
+use ReflectionException;
+
+/**
+ * Class Roa
+ *
+ * @codeCoverageIgnore
+ * @package AlibabaCloud\Client\Resolver
+ */
+abstract class Roa extends RoaRequest
+{
+    use ActionResolverTrait;
+    use CallTrait;
+
+    /**
+     * @param array $options
+     *
+     * @throws ReflectionException
+     * @throws ClientException
+     */
+    public function __construct(array $options = [])
+    {
+        parent::__construct($options);
+
+        $this->resolveActionName();
+        $this->appendSdkUA();
+    }
+
+    /**
+     * @return mixed
+     */
+    private function &parameterPosition()
+    {
+        return $this->pathParameters;
+    }
+}

+ 41 - 0
vendor/alibabacloud/client/src/Resolver/Rpc.php

@@ -0,0 +1,41 @@
+<?php
+
+namespace AlibabaCloud\Client\Resolver;
+
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Request\RpcRequest;
+use ReflectionException;
+
+/**
+ * Class Rpc
+ *
+ * @codeCoverageIgnore
+ * @package AlibabaCloud\Client\Resolver
+ */
+abstract class Rpc extends RpcRequest
+{
+    use ActionResolverTrait;
+    use CallTrait;
+
+    /**
+     * @param array $options
+     *
+     * @throws ReflectionException
+     * @throws ClientException
+     */
+    public function __construct(array $options = [])
+    {
+        parent::__construct($options);
+
+        $this->resolveActionName();
+        $this->appendSdkUA();
+    }
+
+    /**
+     * @return mixed
+     */
+    private function &parameterPosition()
+    {
+        return $this->options['query'];
+    }
+}

+ 74 - 0
vendor/alibabacloud/client/src/Resolver/VersionResolver.php

@@ -0,0 +1,74 @@
+<?php
+
+namespace AlibabaCloud\Client\Resolver;
+
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Class VersionResolver
+ *
+ * @codeCoverageIgnore
+ * @package AlibabaCloud\Client\Resolver
+ */
+abstract class VersionResolver
+{
+
+    /**
+     * @param string $name
+     * @param array  $arguments
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public static function __callStatic($name, $arguments)
+    {
+        return (new static())->__call($name, $arguments);
+    }
+
+    /**
+     * @param string $version
+     * @param array  $arguments
+     *
+     * @return mixed
+     * @throws ClientException
+     */
+    public function __call($version, $arguments)
+    {
+        $version = \ucfirst($version);
+        $product = $this->getProductName();
+
+        $position = strpos($product, 'Version');
+        if ($position !== false && $position !== 0) {
+            $product = \str_replace('Version', '', $product);
+        }
+
+        $class = "AlibabaCloud\\{$product}\\$version\\{$product}ApiResolver";
+
+        if (\class_exists($class)) {
+            return new $class();
+        }
+
+        throw new ClientException(
+            "$product Versions contains no {$version}",
+            'SDK.VersionNotFound'
+        );
+    }
+
+    /**
+     * @return mixed
+     * @throws ClientException
+     */
+    private function getProductName()
+    {
+        $array = \explode('\\', \get_class($this));
+
+        if (is_array($array) && isset($array[1])) {
+            return $array[1];
+        }
+
+        throw new ClientException(
+            'Service name not found.',
+            'SDK.ServiceNotFound'
+        );
+    }
+}

+ 151 - 0
vendor/alibabacloud/client/src/Result/Result.php

@@ -0,0 +1,151 @@
+<?php
+
+namespace AlibabaCloud\Client\Result;
+
+use Countable;
+use Exception;
+use ArrayAccess;
+use IteratorAggregate;
+use InvalidArgumentException;
+use GuzzleHttp\Psr7\Response;
+use Psr\Http\Message\ResponseInterface;
+use AlibabaCloud\Client\Request\Request;
+use AlibabaCloud\Client\Traits\HasDataTrait;
+
+/**
+ * Result from Alibaba Cloud
+ *
+ * @property string|null RequestId
+ *
+ * @package   AlibabaCloud\Client\Result
+ */
+class Result extends Response implements ArrayAccess, IteratorAggregate, Countable
+{
+    use HasDataTrait;
+
+    /**
+     * Instance of the request.
+     *
+     * @var Request
+     */
+    protected $request;
+
+    /**
+     * Result constructor.
+     *
+     * @param ResponseInterface $response
+     * @param Request           $request
+     */
+    public function __construct(ResponseInterface $response, Request $request = null)
+    {
+        parent::__construct(
+            $response->getStatusCode(),
+            $response->getHeaders(),
+            $response->getBody(),
+            $response->getProtocolVersion(),
+            $response->getReasonPhrase()
+        );
+
+        $this->request = $request;
+
+        $this->resolveData();
+    }
+
+    private function resolveData()
+    {
+        $content = $this->getBody()->getContents();
+
+        switch ($this->getRequestFormat()) {
+            case 'JSON':
+                $result_data = $this->jsonToArray($content);
+                break;
+            case 'XML':
+                $result_data = $this->xmlToArray($content);
+                break;
+            case 'RAW':
+                $result_data = $this->jsonToArray($content);
+                break;
+            default:
+                $result_data = $this->jsonToArray($content);
+        }
+
+        if (!$result_data) {
+            $result_data = [];
+        }
+
+        $this->dot($result_data);
+    }
+
+    /**
+     * @return string
+     */
+    private function getRequestFormat()
+    {
+        return ($this->request instanceof Request)
+            ? \strtoupper($this->request->format)
+            : 'JSON';
+    }
+
+    /**
+     * @param string $response
+     *
+     * @return array
+     */
+    private function jsonToArray($response)
+    {
+        try {
+            return \GuzzleHttp\json_decode($response, true);
+        } catch (InvalidArgumentException $exception) {
+            return [];
+        }
+    }
+
+    /**
+     * @param string $string
+     *
+     * @return array
+     */
+    private function xmlToArray($string)
+    {
+        try {
+            return json_decode(json_encode(simplexml_load_string($string)), true);
+        } catch (Exception $exception) {
+            return [];
+        }
+    }
+
+    /**
+     * @return string
+     */
+    public function __toString()
+    {
+        return (string)$this->getBody();
+    }
+
+    /**
+     * @return Request
+     */
+    public function getRequest()
+    {
+        return $this->request;
+    }
+
+    /**
+     * @codeCoverageIgnore
+     * @return Response
+     * @deprecated
+     */
+    public function getResponse()
+    {
+        return $this;
+    }
+
+    /**
+     * @return bool
+     */
+    public function isSuccess()
+    {
+        return 200 <= $this->getStatusCode()
+               && 300 > $this->getStatusCode();
+    }
+}

+ 57 - 0
vendor/alibabacloud/client/src/SDK.php

@@ -0,0 +1,57 @@
+<?php
+
+namespace AlibabaCloud\Client;
+
+/**
+ * Class SDK
+ *
+ * @package AlibabaCloud\Client
+ */
+class SDK
+{
+    /**
+     * Invalid credential
+     */
+    const INVALID_CREDENTIAL = 'SDK.InvalidCredential';
+
+    /**
+     * Client Not Found
+     */
+    const CLIENT_NOT_FOUND = 'SDK.ClientNotFound';
+
+    /**
+     * Host Not Found
+     */
+    const HOST_NOT_FOUND = 'SDK.HostNotFound';
+
+    /**
+     * Server Unreachable
+     */
+    const SERVER_UNREACHABLE = 'SDK.ServerUnreachable';
+
+    /**
+     * Invalid RegionId
+     */
+    const INVALID_REGION_ID = 'SDK.InvalidRegionId';
+
+    /**
+     * Invalid Argument
+     */
+    const INVALID_ARGUMENT = 'SDK.InvalidArgument';
+
+    /**
+     * Service Not Found
+     */
+
+    const SERVICE_NOT_FOUND = 'SDK.ServiceNotFound';
+
+    /**
+     * Service Unknown Error
+     */
+    const SERVICE_UNKNOWN_ERROR = 'SDK.UnknownError';
+
+    /**
+     * Response Empty
+     */
+    const RESPONSE_EMPTY = 'The response is empty';
+}

+ 47 - 0
vendor/alibabacloud/client/src/Signature/BearerTokenSignature.php

@@ -0,0 +1,47 @@
+<?php
+
+namespace AlibabaCloud\Client\Signature;
+
+/**
+ * Class BearerTokenSignature
+ *
+ * @package   AlibabaCloud\Signature
+ */
+class BearerTokenSignature extends Signature implements SignatureInterface
+{
+
+    /**
+     * @return string
+     */
+    public function getMethod()
+    {
+        return '';
+    }
+
+    /**
+     * @return string
+     */
+    public function getType()
+    {
+        return 'BEARERTOKEN';
+    }
+
+    /**
+     * @return string
+     */
+    public function getVersion()
+    {
+        return '1.0';
+    }
+
+    /**
+     * @param string $string
+     * @param string $accessKeySecret
+     *
+     * @return string
+     */
+    public function sign($string, $accessKeySecret)
+    {
+        return '';
+    }
+}

+ 47 - 0
vendor/alibabacloud/client/src/Signature/ShaHmac1Signature.php

@@ -0,0 +1,47 @@
+<?php
+
+namespace AlibabaCloud\Client\Signature;
+
+/**
+ * Class ShaHmac1Signature
+ *
+ * @package   AlibabaCloud\Signature
+ */
+class ShaHmac1Signature extends Signature implements SignatureInterface
+{
+
+    /**
+     * @return string
+     */
+    public function getMethod()
+    {
+        return 'HMAC-SHA1';
+    }
+
+    /**
+     * @return string
+     */
+    public function getType()
+    {
+        return '';
+    }
+
+    /**
+     * @return string
+     */
+    public function getVersion()
+    {
+        return '1.0';
+    }
+
+    /**
+     * @param string $string
+     * @param string $accessKeySecret
+     *
+     * @return string
+     */
+    public function sign($string, $accessKeySecret)
+    {
+        return base64_encode(hash_hmac('sha1', $string, $accessKeySecret, true));
+    }
+}

+ 47 - 0
vendor/alibabacloud/client/src/Signature/ShaHmac256Signature.php

@@ -0,0 +1,47 @@
+<?php
+
+namespace AlibabaCloud\Client\Signature;
+
+/**
+ * Class ShaHmac256Signature
+ *
+ * @package   AlibabaCloud\Signature
+ */
+class ShaHmac256Signature extends Signature implements SignatureInterface
+{
+
+    /**
+     * @return string
+     */
+    public function getMethod()
+    {
+        return 'HMAC-SHA256';
+    }
+
+    /**
+     * @return string
+     */
+    public function getType()
+    {
+        return '';
+    }
+
+    /**
+     * @return string
+     */
+    public function getVersion()
+    {
+        return '1.0';
+    }
+
+    /**
+     * @param string $string
+     * @param string $accessKeySecret
+     *
+     * @return string
+     */
+    public function sign($string, $accessKeySecret)
+    {
+        return base64_encode(hash_hmac('sha256', $string, $accessKeySecret, true));
+    }
+}

+ 67 - 0
vendor/alibabacloud/client/src/Signature/ShaHmac256WithRsaSignature.php

@@ -0,0 +1,67 @@
+<?php
+
+namespace AlibabaCloud\Client\Signature;
+
+use Exception;
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Class ShaHmac256WithRsaSignature
+ *
+ * @package   AlibabaCloud\Signature
+ */
+class ShaHmac256WithRsaSignature extends Signature implements SignatureInterface
+{
+
+    /**
+     * @return string
+     */
+    public function getMethod()
+    {
+        return 'SHA256withRSA';
+    }
+
+    /**
+     * @return string
+     */
+    public function getType()
+    {
+        return 'PRIVATEKEY';
+    }
+
+    /**
+     * @return string
+     */
+    public function getVersion()
+    {
+        return '1.0';
+    }
+
+    /**
+     * @param string $string
+     * @param string $privateKey
+     *
+     * @return string
+     * @throws ClientException
+     */
+    public function sign($string, $privateKey)
+    {
+        $binarySignature = '';
+        try {
+            openssl_sign(
+                $string,
+                $binarySignature,
+                $privateKey,
+                \OPENSSL_ALGO_SHA256
+            );
+        } catch (Exception $exception) {
+            throw  new ClientException(
+                $exception->getMessage(),
+                SDK::INVALID_CREDENTIAL
+            );
+        }
+
+        return base64_encode($binarySignature);
+    }
+}

+ 49 - 0
vendor/alibabacloud/client/src/Signature/Signature.php

@@ -0,0 +1,49 @@
+<?php
+
+namespace AlibabaCloud\Client\Signature;
+
+use GuzzleHttp\Psr7\Request;
+use AlibabaCloud\Client\Support\Sign;
+
+/**
+ * Class Signature
+ *
+ * @package AlibabaCloud\Client\Signature
+ */
+abstract class Signature
+{
+
+    /**
+     * @codeCoverageIgnore
+     *
+     * @param string  $accessKeyId
+     * @param string  $accessKeySecret
+     * @param Request $request
+     *
+     * @return string
+     */
+    public function roa($accessKeyId, $accessKeySecret, Request $request)
+    {
+        $string = Sign::roaString($request);
+
+        $signature = $this->sign($string, $accessKeySecret);
+
+        return "acs $accessKeyId:$signature";
+    }
+
+    /**
+     * @codeCoverageIgnore
+     *
+     * @param string $accessKeySecret
+     * @param string $method
+     * @param array  $parameters
+     *
+     * @return string
+     */
+    public function rpc($accessKeySecret, $method, array $parameters)
+    {
+        $string = Sign::rpcString($method, $parameters);
+
+        return $this->sign($string, $accessKeySecret . '&');
+    }
+}

+ 35 - 0
vendor/alibabacloud/client/src/Signature/SignatureInterface.php

@@ -0,0 +1,35 @@
+<?php
+
+namespace AlibabaCloud\Client\Signature;
+
+/**
+ * Interface used to provide interchangeable strategies for requests
+ *
+ * @package   AlibabaCloud\Signature
+ */
+interface SignatureInterface
+{
+
+    /**
+     * @return string
+     */
+    public function getMethod();
+
+    /**
+     * @return string
+     */
+    public function getVersion();
+
+    /**
+     * @param string $string
+     * @param string $accessKeySecret
+     *
+     * @return string
+     */
+    public function sign($string, $accessKeySecret);
+
+    /**
+     * @return string
+     */
+    public function getType();
+}

+ 41 - 0
vendor/alibabacloud/client/src/Support/Arrays.php

@@ -0,0 +1,41 @@
+<?php
+
+namespace AlibabaCloud\Client\Support;
+
+/**
+ * Class Arrays
+ *
+ * @package AlibabaCloud\Client\Support
+ */
+class Arrays
+{
+
+    /**
+     * @param array $arrays
+     *
+     * @return array
+     */
+    public static function merge(array $arrays)
+    {
+        $result = [];
+        foreach ($arrays as $array) {
+            foreach ($array as $key => $value) {
+                if (is_int($key)) {
+                    $result[] = $value;
+                    continue;
+                }
+
+                if (isset($result[$key]) && is_array($result[$key])) {
+                    $result[$key] = self::merge(
+                        [$result[$key], $value]
+                    );
+                    continue;
+                }
+
+                $result[$key] = $value;
+            }
+        }
+
+        return $result;
+    }
+}

+ 28 - 0
vendor/alibabacloud/client/src/Support/Path.php

@@ -0,0 +1,28 @@
+<?php
+
+namespace AlibabaCloud\Client\Support;
+
+/**
+ * Class Path
+ *
+ * @package AlibabaCloud\Client\Support
+ */
+class Path
+{
+    /**
+     * Assign path parameters to the url.
+     *
+     * @param string $pattern
+     * @param array  $parameters
+     *
+     * @return string
+     */
+    public static function assign($pattern, array $parameters)
+    {
+        foreach ($parameters as $key => $value) {
+            $pattern = str_replace("[$key]", $value, $pattern);
+        }
+
+        return $pattern;
+    }
+}

+ 143 - 0
vendor/alibabacloud/client/src/Support/Sign.php

@@ -0,0 +1,143 @@
+<?php
+
+namespace AlibabaCloud\Client\Support;
+
+use GuzzleHttp\Psr7\Request;
+use Psr\Http\Message\UriInterface;
+
+/**
+ * Class Sign
+ *
+ * @package AlibabaCloud\Client\Support
+ */
+class Sign
+{
+    /**
+     * @var string
+     */
+    private static $headerSeparator = "\n";
+
+    /**
+     * Construct standard Header for Alibaba Cloud.
+     *
+     * @param array $headers
+     *
+     * @return string
+     */
+    private static function acsHeaderString(array $headers)
+    {
+        $array = [];
+        foreach ($headers as $headerKey => $headerValue) {
+            $key = strtolower($headerKey);
+            if (strncmp($key, 'x-acs-', 6) === 0) {
+                $array[$key] = $headerValue;
+            }
+        }
+        ksort($array);
+        $string = '';
+        foreach ($array as $sortMapKey => $sortMapValue) {
+            $string .= $sortMapKey . ':' . $sortMapValue[0] . self::$headerSeparator;
+        }
+
+        return $string;
+    }
+
+    /**
+     * @param UriInterface $uri
+     *
+     * @return string
+     */
+    private static function resourceString(UriInterface $uri)
+    {
+        return $uri->getPath() . '?' . rawurldecode($uri->getQuery());
+    }
+
+    /**
+     * @param string $method
+     * @param array  $headers
+     *
+     * @return string
+     */
+    private static function headerString($method, array $headers)
+    {
+        $string = $method . self::$headerSeparator;
+        if (isset($headers['Accept'][0])) {
+            $string .= $headers['Accept'][0];
+        }
+        $string .= self::$headerSeparator;
+
+        if (isset($headers['Content-MD5'][0])) {
+            $string .= $headers['Content-MD5'][0];
+        }
+        $string .= self::$headerSeparator;
+
+        if (isset($headers['Content-Type'][0])) {
+            $string .= $headers['Content-Type'][0];
+        }
+        $string .= self::$headerSeparator;
+
+        if (isset($headers['Date'][0])) {
+            $string .= $headers['Date'][0];
+        }
+        $string .= self::$headerSeparator;
+
+        $string .= self::acsHeaderString($headers);
+
+        return $string;
+    }
+
+    /**
+     * @param string $string
+     *
+     * @return null|string|string[]
+     */
+    private static function percentEncode($string)
+    {
+        $result = urlencode($string);
+        $result = str_replace(['+', '*'], ['%20', '%2A'], $result);
+        $result = preg_replace('/%7E/', '~', $result);
+
+        return $result;
+    }
+
+    /**
+     * @param string $method
+     * @param array  $parameters
+     *
+     * @return string
+     */
+    public static function rpcString($method, array $parameters)
+    {
+        ksort($parameters);
+        $canonicalized = '';
+        foreach ($parameters as $key => $value) {
+            if ($value === null || $value === '') {
+                continue;
+            }
+            $canonicalized .= '&' . self::percentEncode($key) . '=' . self::percentEncode($value);
+        }
+
+        return $method . '&%2F&' . self::percentEncode(substr($canonicalized, 1));
+    }
+
+    /**
+     * @param Request $request
+     *
+     * @return string
+     */
+    public static function roaString(Request $request)
+    {
+        return self::headerString($request->getMethod(), $request->getHeaders()) .
+               self::resourceString($request->getUri());
+    }
+
+    /**
+     * @param string $salt
+     *
+     * @return string
+     */
+    public static function uuid($salt)
+    {
+        return md5($salt . uniqid(md5(microtime(true)), true)) . microtime();
+    }
+}

+ 47 - 0
vendor/alibabacloud/client/src/Support/Stringy.php

@@ -0,0 +1,47 @@
+<?php
+
+namespace AlibabaCloud\Client\Support;
+
+/**
+ * Class Stringy
+ *
+ * @package AlibabaCloud\Client\Support
+ */
+class Stringy
+{
+
+    private static function _value($value, $default = '')
+    {
+        return null === $value ? $default : $value;
+    }
+
+    /**
+     * @param string $str
+     * @param string $substr
+     *
+     * @return bool
+     */
+    public static function contains($str, $substr)
+    {
+        return false !== strpos(self::_value($str), self::_value($substr));
+    }
+
+    /**
+     * @param string $str
+     * @param string $substr
+     *
+     * @return bool
+     */
+    public static function endsWith($str, $substr)
+    {
+        $str      = self::_value($str);
+        $substr = self::_value($substr);
+        $length = \strlen($substr);
+        if (!$length) {
+            return true;
+        }
+
+        return substr($str, -$length) === $substr;
+    }
+
+}

+ 61 - 0
vendor/alibabacloud/client/src/Traits/ArrayAccessTrait.php

@@ -0,0 +1,61 @@
+<?php
+
+namespace AlibabaCloud\Client\Traits;
+
+/**
+ * Trait ArrayAccessTrait
+ *
+ * @package   AlibabaCloud\Client\Traits
+ */
+trait ArrayAccessTrait
+{
+    /**
+     * This method returns a reference to the variable to allow for indirect
+     * array modification (e.g., $foo['bar']['baz'] = 'qux').
+     *
+     * @param string $offset
+     *
+     * @return mixed|null
+     */
+    #[\ReturnTypeWillChange]
+    public function & offsetGet($offset)
+    {
+        if (isset($this->data[$offset])) {
+            return $this->data[$offset];
+        }
+
+        $value = null;
+
+        return $value;
+    }
+
+    /**
+     * @param string       $offset
+     * @param string|mixed $value
+     */
+    #[\ReturnTypeWillChange]
+    public function offsetSet($offset, $value)
+    {
+        $this->data[$offset] = $value;
+    }
+
+    /**
+     * @param string $offset
+     *
+     * @return bool
+     */
+    #[\ReturnTypeWillChange]
+    public function offsetExists($offset)
+    {
+        return isset($this->data[$offset]);
+    }
+
+    /**
+     * @param string $offset
+     */
+    #[\ReturnTypeWillChange]
+    public function offsetUnset($offset)
+    {
+        unset($this->data[$offset]);
+    }
+}

+ 273 - 0
vendor/alibabacloud/client/src/Traits/ClientTrait.php

@@ -0,0 +1,273 @@
+<?php
+
+namespace AlibabaCloud\Client\Traits;
+
+use AlibabaCloud\Client\SDK;
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Clients\Client;
+use AlibabaCloud\Client\Clients\StsClient;
+use AlibabaCloud\Client\Filter\ClientFilter;
+use AlibabaCloud\Client\Clients\AccessKeyClient;
+use AlibabaCloud\Client\Clients\EcsRamRoleClient;
+use AlibabaCloud\Client\Clients\RamRoleArnClient;
+use AlibabaCloud\Client\Clients\RsaKeyPairClient;
+use AlibabaCloud\Client\Clients\BearerTokenClient;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Signature\SignatureInterface;
+use AlibabaCloud\Client\Credentials\Ini\IniCredential;
+use AlibabaCloud\Client\Credentials\CredentialsInterface;
+use AlibabaCloud\Client\Credentials\Providers\CredentialsProvider;
+
+/**
+ * Trait of the manage clients.
+ *
+ * @package   AlibabaCloud\Client\Traits
+ *
+ * @mixin     AlibabaCloud
+ */
+trait ClientTrait
+{
+    /**
+     * @var array Containers of Clients
+     */
+    protected static $clients = [];
+
+    /**
+     * @param string $clientName
+     * @param Client $client
+     *
+     * @return Client
+     * @throws ClientException
+     */
+    public static function set($clientName, Client $client)
+    {
+        ClientFilter::clientName($clientName);
+
+        return self::$clients[\strtolower($clientName)] = $client;
+    }
+
+    /**
+     * Get all clients.
+     *
+     * @return array
+     */
+    public static function all()
+    {
+        return self::$clients;
+    }
+
+    /**
+     * Delete the client by specifying name.
+     *
+     * @param string $clientName
+     *
+     * @throws ClientException
+     */
+    public static function del($clientName)
+    {
+        ClientFilter::clientName($clientName);
+
+        unset(self::$clients[\strtolower($clientName)]);
+    }
+
+    /**
+     * Delete all clients.
+     *
+     * @return void
+     */
+    public static function flush()
+    {
+        self::$clients         = [];
+        self::$defaultRegionId = null;
+    }
+
+    /**
+     * @codeCoverageIgnore
+     * @throws ClientException
+     * @deprecated
+     */
+    public static function getGlobalClient()
+    {
+        return self::getDefaultClient();
+    }
+
+    /**
+     * Get the default client.
+     *
+     * @return Client
+     * @throws ClientException
+     */
+    public static function getDefaultClient()
+    {
+        return self::get(CredentialsProvider::getDefaultName());
+    }
+
+    /**
+     * Get the Client instance by name.
+     *
+     * @param string $clientName
+     *
+     * @return Client
+     * @throws ClientException
+     */
+    public static function get($clientName)
+    {
+        ClientFilter::clientName($clientName);
+
+        if (self::has($clientName)) {
+            return self::$clients[\strtolower($clientName)];
+        }
+
+        throw new ClientException(
+            "Client '$clientName' not found",
+            SDK::CLIENT_NOT_FOUND
+        );
+    }
+
+    /**
+     * Determine whether there is a client.
+     *
+     * @param string $clientName
+     *
+     * @return bool
+     * @throws ClientException
+     */
+    public static function has($clientName)
+    {
+        ClientFilter::clientName($clientName);
+
+        return isset(self::$clients[\strtolower($clientName)]);
+    }
+
+    /**
+     * A list of additional files to load.
+     *
+     * @return array
+     * @throws ClientException when a file has a syntax error or does not exist or is not readable
+     */
+    public static function load()
+    {
+        if (\func_get_args() === []) {
+            return (new IniCredential())->load();
+        }
+        $list = [];
+        foreach (\func_get_args() as $filename) {
+            $list[$filename] = (new IniCredential($filename))->load();
+        }
+
+        return $list;
+    }
+
+    /**
+     * Custom Client.
+     *
+     * @param CredentialsInterface $credentials
+     * @param SignatureInterface   $signature
+     *
+     * @return Client
+     */
+    public static function client(CredentialsInterface $credentials, SignatureInterface $signature)
+    {
+        return new Client($credentials, $signature);
+    }
+
+    /**
+     * Use the AccessKey to complete the authentication.
+     *
+     * @param string $accessKeyId
+     * @param string $accessKeySecret
+     *
+     * @return AccessKeyClient
+     * @throws ClientException
+     */
+    public static function accessKeyClient($accessKeyId, $accessKeySecret)
+    {
+        if (null === $accessKeyId || strpos($accessKeyId, ' ') !== false) {
+            throw new ClientException(
+                'AccessKey ID format is invalid',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        if (null === $accessKeySecret || strpos($accessKeySecret, ' ') !== false) {
+            throw new ClientException(
+                'AccessKey Secret format is invalid',
+                SDK::INVALID_ARGUMENT
+            );
+        }
+
+        return new AccessKeyClient($accessKeyId, $accessKeySecret);
+    }
+
+    /**
+     * Use the AssumeRole of the RAM account to complete  the authentication.
+     *
+     * @param string       $accessKeyId
+     * @param string       $accessKeySecret
+     * @param string       $roleArn
+     * @param string       $roleSessionName
+     * @param string|array $policy
+     *
+     * @return RamRoleArnClient
+     * @throws ClientException
+     */
+    public static function ramRoleArnClient($accessKeyId, $accessKeySecret, $roleArn, $roleSessionName, $policy = '')
+    {
+        return new RamRoleArnClient($accessKeyId, $accessKeySecret, $roleArn, $roleSessionName, $policy);
+    }
+
+    /**
+     * Use the RAM role of an ECS instance to complete the authentication.
+     *
+     * @param string $roleName
+     *
+     * @return EcsRamRoleClient
+     * @throws ClientException
+     */
+    public static function ecsRamRoleClient($roleName)
+    {
+        return new EcsRamRoleClient($roleName);
+    }
+
+    /**
+     * Use the Bearer Token to complete the authentication.
+     *
+     * @param string $bearerToken
+     *
+     * @return BearerTokenClient
+     * @throws ClientException
+     */
+    public static function bearerTokenClient($bearerToken)
+    {
+        return new BearerTokenClient($bearerToken);
+    }
+
+    /**
+     * Use the STS Token to complete the authentication.
+     *
+     * @param string $accessKeyId     Access key ID
+     * @param string $accessKeySecret Access Key Secret
+     * @param string $securityToken   Security Token
+     *
+     * @return StsClient
+     * @throws ClientException
+     */
+    public static function stsClient($accessKeyId, $accessKeySecret, $securityToken = '')
+    {
+        return new StsClient($accessKeyId, $accessKeySecret, $securityToken);
+    }
+
+    /**
+     * Use the RSA key pair to complete the authentication (supported only on Japanese site)
+     *
+     * @param string $publicKeyId
+     * @param string $privateKeyFile
+     *
+     * @return RsaKeyPairClient
+     * @throws ClientException
+     */
+    public static function rsaKeyPairClient($publicKeyId, $privateKeyFile)
+    {
+        return new RsaKeyPairClient($publicKeyId, $privateKeyFile);
+    }
+}

+ 66 - 0
vendor/alibabacloud/client/src/Traits/DefaultRegionTrait.php

@@ -0,0 +1,66 @@
+<?php
+
+namespace AlibabaCloud\Client\Traits;
+
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Filter\ClientFilter;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Trait DefaultRegionTrait
+ *
+ * @package   AlibabaCloud\Client\Traits
+ *
+ * @mixin     AlibabaCloud
+ */
+trait DefaultRegionTrait
+{
+    /**
+     * @var string|null Default RegionId
+     */
+    protected static $defaultRegionId;
+
+    /**
+     * @param $regionId
+     *
+     * @throws ClientException
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public static function setGlobalRegionId($regionId)
+    {
+        self::setDefaultRegionId($regionId);
+    }
+
+    /**
+     * @return string|null
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public static function getGlobalRegionId()
+    {
+        return self::getDefaultRegionId();
+    }
+
+    /**
+     * Get the default RegionId.
+     *
+     * @return string|null
+     */
+    public static function getDefaultRegionId()
+    {
+        return self::$defaultRegionId;
+    }
+
+    /**
+     * Set the default RegionId.
+     *
+     * @param string $regionId
+     *
+     * @throws ClientException
+     */
+    public static function setDefaultRegionId($regionId)
+    {
+        self::$defaultRegionId = ClientFilter::regionId($regionId);
+    }
+}

+ 134 - 0
vendor/alibabacloud/client/src/Traits/EndpointTrait.php

@@ -0,0 +1,134 @@
+<?php
+
+namespace AlibabaCloud\Client\Traits;
+
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Config\Config;
+use AlibabaCloud\Client\Exception\ClientException;
+use AlibabaCloud\Client\Filter\ApiFilter;
+use AlibabaCloud\Client\Filter\ClientFilter;
+use AlibabaCloud\Client\Filter\HttpFilter;
+use AlibabaCloud\Client\Regions\LocationService;
+use AlibabaCloud\Client\Request\Request;
+use InvalidArgumentException;
+
+/**
+ * Help developers set up and get host.
+ *
+ * @package   AlibabaCloud\Client\Traits
+ *
+ * @mixin     AlibabaCloud
+ */
+trait EndpointTrait
+{
+    /**
+     * @var array Host cache.
+     */
+    private static $hosts = [];
+
+    /**
+     * Resolve host based on product name and region.
+     *
+     * @param string $product
+     * @param string $regionId
+     *
+     * @return string
+     * @throws ClientException
+     */
+    public static function resolveHost($product, $regionId = LocationService::GLOBAL_REGION)
+    {
+        ApiFilter::product($product);
+        ClientFilter::regionId($regionId);
+
+        if (isset(self::$hosts[$product][$regionId])) {
+            return self::$hosts[$product][$regionId];
+        }
+
+        $domain = Config::get("endpoints.{$product}.{$regionId}");
+        if (!$domain) {
+            $regionId = LocationService::GLOBAL_REGION;
+            $domain   = Config::get("endpoints.{$product}.{$regionId}", '');
+        }
+
+        return $domain;
+    }
+
+    /**
+     * @param $productCode
+     *
+     * @return bool
+     */
+    public static function isGlobalProduct($productCode)
+    {
+        $global = LocationService::GLOBAL_REGION;
+        if (self::resolveHostByStatic($productCode, $global)) {
+            return true;
+        }
+        $productCode = null !== $productCode? strtolower($productCode) : null;
+        return (bool)Config::get("endpoints.{$productCode}.{$global}");
+    }
+
+    /**
+     * @param string $product
+     * @param string $regionId
+     *
+     * @return string
+     */
+    public static function resolveHostByStatic($product, $regionId)
+    {
+        if (isset(self::$hosts[$product][$regionId])) {
+            return self::$hosts[$product][$regionId];
+        }
+
+        return '';
+    }
+
+    /**
+     * Add host based on product name and region.
+     *
+     * @param string $product
+     * @param string $host
+     * @param string $regionId
+     *
+     * @return void
+     * @throws ClientException
+     */
+    public static function addHost($product, $host, $regionId = LocationService::GLOBAL_REGION)
+    {
+        ApiFilter::product($product);
+
+        HttpFilter::host($host);
+
+        ClientFilter::regionId($regionId);
+
+        self::$hosts[$product][$regionId] = $host;
+
+        LocationService::addHost($product, $host, $regionId);
+    }
+
+    /**
+     * @param Request $request
+     *
+     * @return string
+     * @throws ClientException
+     */
+    public static function resolveHostByRule(Request $request)
+    {
+        $network = $request->network ?: 'public';
+        $suffix  = $request->endpointSuffix;
+        if ($network === 'public') {
+            $network = '';
+        }
+
+        if ($request->endpointRegional === 'regional') {
+            $regionId = $request->realRegionId();
+            return "{$request->product}{$suffix}{$network}.{$regionId}.aliyuncs.com";
+        }
+
+        if ($request->endpointRegional === 'central') {
+            return "{$request->product}{$suffix}{$network}.aliyuncs.com";
+        }
+
+        throw new InvalidArgumentException('endpointRegional is invalid.');
+    }
+}

+ 324 - 0
vendor/alibabacloud/client/src/Traits/HasDataTrait.php

@@ -0,0 +1,324 @@
+<?php
+
+namespace AlibabaCloud\Client\Traits;
+
+use Adbar\Dot;
+use ArrayIterator;
+use JmesPath\Env as JmesPath;
+use AlibabaCloud\Client\Result\Result;
+
+/**
+ * Trait HasDataTrait
+ *
+ * @package   AlibabaCloud\Client\Traits
+ * @mixin     Result
+ */
+trait HasDataTrait
+{
+
+    /**
+     * Instance of the Dot.
+     *
+     * @var Dot
+     */
+    protected $dot;
+
+    /**
+     * @param string $expression
+     *
+     * @return mixed|null
+     */
+    public function search($expression)
+    {
+        return JmesPath::search($expression, $this->dot->all());
+    }
+
+    /**
+     * Delete the contents of a given key or keys
+     *
+     * @param array|int|string|null $keys
+     */
+    public function clear($keys = null)
+    {
+        $this->dot->clear($keys);
+    }
+
+    /**
+     * Flatten an array with the given character as a key delimiter
+     *
+     * @param string     $delimiter
+     * @param array|null $items
+     * @param string     $prepend
+     *
+     * @return array
+     */
+    public function flatten($delimiter = '.', $items = null, $prepend = '')
+    {
+        return $this->dot->flatten($delimiter, $items, $prepend);
+    }
+
+    /**
+     * Return the value of a given key
+     *
+     * @param int|string|null $key
+     * @param mixed           $default
+     *
+     * @return mixed
+     */
+    public function get($key = null, $default = null)
+    {
+        return $this->dot->get($key, $default);
+    }
+
+    /**
+     * Set a given key / value pair or pairs
+     *
+     * @param array|int|string $keys
+     * @param mixed            $value
+     */
+    public function set($keys, $value = null)
+    {
+        $this->dot->set($keys, $value);
+    }
+
+    /**
+     * Check if a given key or keys are empty
+     *
+     * @param array|int|string|null $keys
+     *
+     * @return bool
+     */
+    public function isEmpty($keys = null)
+    {
+        return $this->dot->isEmpty($keys);
+    }
+
+    /**
+     * Replace all items with a given array as a reference
+     *
+     * @param array $items
+     */
+    public function setReference(array &$items)
+    {
+        $this->dot->setReference($items);
+    }
+
+    /**
+     * Return the value of a given key or all the values as JSON
+     *
+     * @param mixed $key
+     * @param int   $options
+     *
+     * @return string
+     */
+    public function toJson($key = null, $options = 0)
+    {
+        return $this->dot->toJson($key, $options);
+    }
+
+    /**
+     * @return array
+     */
+    public function toArray()
+    {
+        return $this->dot->all();
+    }
+
+    /**
+     * Check if a given key exists
+     *
+     * @param int|string $key
+     *
+     * @return bool
+     */
+    #[\ReturnTypeWillChange]
+    public function offsetExists($key)
+    {
+        return $this->dot->has($key);
+    }
+
+    /**
+     * Return the value of a given key
+     *
+     * @param int|string $key
+     *
+     * @return mixed
+     */
+    #[\ReturnTypeWillChange]
+    public function offsetGet($key)
+    {
+        return $this->dot->offsetGet($key);
+    }
+
+    /**
+     * Set a given value to the given key
+     *
+     * @param int|string|null $key
+     * @param mixed           $value
+     */
+    #[\ReturnTypeWillChange]
+    public function offsetSet($key, $value)
+    {
+        $this->dot->offsetSet($key, $value);
+    }
+
+    /**
+     * Delete the given key
+     *
+     * @param int|string $key
+     */
+    #[\ReturnTypeWillChange]
+    public function offsetUnset($key)
+    {
+        $this->delete($key);
+    }
+
+    /**
+     * Delete the given key or keys
+     *
+     * @param array|int|string $keys
+     */
+    public function delete($keys)
+    {
+        $this->dot->delete($keys);
+    }
+
+    /*
+     * --------------------------------------------------------------
+     * ArrayAccess interface
+     * --------------------------------------------------------------
+     */
+
+    /**
+     * Return the number of items in a given key
+     *
+     * @param int|string|null $key
+     *
+     * @return int
+     */
+    #[\ReturnTypeWillChange]
+    public function count($key = null)
+    {
+        return $this->dot->count($key);
+    }
+
+    /**
+     * Get an iterator for the stored items
+     *
+     * @return ArrayIterator
+     */
+    #[\ReturnTypeWillChange]
+    public function getIterator()
+    {
+        return $this->dot->getIterator();
+    }
+
+    /**
+     * Return items for JSON serialization
+     *
+     * @return array
+     */
+    #[\ReturnTypeWillChange]
+    public function jsonSerialize()
+    {
+        return $this->dot->jsonSerialize();
+    }
+
+    /**
+     * @param string $name
+     *
+     * @return mixed|null
+     */
+    public function __get($name)
+    {
+        if (!isset($this->all()[$name])) {
+            return null;
+        }
+
+        return \json_decode(\json_encode($this->all()))->$name;
+    }
+
+    /*
+     * --------------------------------------------------------------
+     * Countable interface
+     * --------------------------------------------------------------
+     */
+
+    /**
+     * Return all the stored items
+     *
+     * @return array
+     */
+    public function all()
+    {
+        return $this->dot->all();
+    }
+
+    /**
+     * @param string $name
+     * @param mixed  $value
+     */
+    public function __set($name, $value)
+    {
+        $this->add($name, $value);
+    }
+
+    /**
+     * Set a given key / value pair or pairs
+     * if the key doesn't exist already
+     *
+     * @param array|int|string $keys
+     * @param mixed            $value
+     */
+    public function add($keys, $value = null)
+    {
+        $this->dot->add($keys, $value);
+    }
+
+
+    /*
+     * --------------------------------------------------------------
+     * ObjectAccess
+     * --------------------------------------------------------------
+     */
+
+    /**
+     * @param string $name
+     *
+     * @return bool
+     */
+    public function __isset($name)
+    {
+        return $this->has($name);
+    }
+
+    /**
+     * Check if a given key or keys exists
+     *
+     * @param array|int|string $keys
+     *
+     * @return bool
+     */
+    public function has($keys)
+    {
+        return $this->dot->has($keys);
+    }
+
+    /**
+     * @param $name
+     *
+     * @return void
+     */
+    public function __unset($name)
+    {
+        $this->delete($name);
+    }
+
+    /**
+     * @param array $data
+     */
+    protected function dot(array $data = [])
+    {
+        $this->dot = new Dot($data);
+    }
+}

+ 68 - 0
vendor/alibabacloud/client/src/Traits/HistoryTrait.php

@@ -0,0 +1,68 @@
+<?php
+
+namespace AlibabaCloud\Client\Traits;
+
+/**
+ * Trait HistoryTrait
+ *
+ * @package AlibabaCloud\Client\Traits
+ */
+trait HistoryTrait
+{
+    /**
+     * @var array
+     */
+    private static $history = [];
+
+    /**
+     * @var bool
+     */
+    private static $isRememberHistory = false;
+
+    /**
+     * @return array
+     */
+    public static function getHistory()
+    {
+        return self::$history;
+    }
+
+    public static function forgetHistory()
+    {
+        self::$history = [];
+    }
+
+    public static function notRememberHistory()
+    {
+        self::$isRememberHistory = false;
+    }
+
+    public static function rememberHistory()
+    {
+        self::$isRememberHistory = true;
+    }
+
+    /**
+     * @return bool
+     */
+    public static function isRememberHistory()
+    {
+        return self::$isRememberHistory;
+    }
+
+    /**
+     * @return array
+     */
+    public static function &referenceHistory()
+    {
+        return self::$history;
+    }
+
+    /**
+     * @return int
+     */
+    public static function countHistory()
+    {
+        return count(self::$history);
+    }
+}

+ 141 - 0
vendor/alibabacloud/client/src/Traits/HttpTrait.php

@@ -0,0 +1,141 @@
+<?php
+
+namespace AlibabaCloud\Client\Traits;
+
+use AlibabaCloud\Client\Support\Arrays;
+use AlibabaCloud\Client\Filter\ClientFilter;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Trait HttpTrait
+ *
+ * @package AlibabaCloud\Client\Traits
+ */
+trait HttpTrait
+{
+
+    /**
+     * @var array
+     */
+    public $options = [];
+
+    /**
+     * @param int|float $seconds
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function timeout($seconds)
+    {
+        $this->options['timeout'] = ClientFilter::timeout($seconds);
+
+        return $this;
+    }
+
+    /**
+     * @param int $milliseconds
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function timeoutMilliseconds($milliseconds)
+    {
+        ClientFilter::milliseconds($milliseconds);
+        $seconds = $milliseconds / 1000;
+
+        return $this->timeout($seconds);
+    }
+
+    /**
+     * @param int|float $seconds
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function connectTimeout($seconds)
+    {
+        $this->options['connect_timeout'] = ClientFilter::connectTimeout($seconds);
+
+        return $this;
+    }
+
+    /**
+     * @param int $milliseconds
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function connectTimeoutMilliseconds($milliseconds)
+    {
+        ClientFilter::milliseconds($milliseconds);
+        $seconds = $milliseconds / 1000;
+
+        return $this->connectTimeout($seconds);
+    }
+
+    /**
+     * @param bool $debug
+     *
+     * @return $this
+     */
+    public function debug($debug)
+    {
+        $this->options['debug'] = $debug;
+
+        return $this;
+    }
+
+    /**
+     * @codeCoverageIgnore
+     *
+     * @param array $cert
+     *
+     * @return $this
+     */
+    public function cert($cert)
+    {
+        $this->options['cert'] = $cert;
+
+        return $this;
+    }
+
+    /**
+     * @codeCoverageIgnore
+     *
+     * @param array|string $proxy
+     *
+     * @return $this
+     */
+    public function proxy($proxy)
+    {
+        $this->options['proxy'] = $proxy;
+
+        return $this;
+    }
+
+    /**
+     * @param mixed $verify
+     *
+     * @return $this
+     */
+    public function verify($verify)
+    {
+        $this->options['verify'] = $verify;
+
+        return $this;
+    }
+
+    /**
+     * @param array $options
+     *
+     * @return $this
+     */
+    public function options(array $options)
+    {
+        if ($options !== []) {
+            $this->options = Arrays::merge([$this->options, $options]);
+        }
+
+        return $this;
+    }
+}

+ 97 - 0
vendor/alibabacloud/client/src/Traits/LogTrait.php

@@ -0,0 +1,97 @@
+<?php
+
+namespace AlibabaCloud\Client\Traits;
+
+use DateTime;
+use DateTimeZone;
+use Exception;
+use Psr\Log\LoggerInterface;
+
+/**
+ * Trait LogTrait
+ *
+ * @package AlibabaCloud\Client\Traits
+ */
+trait LogTrait
+{
+    /**
+     * @var LoggerInterface
+     */
+    private static $logger;
+
+    /**
+     * @var float
+     */
+    private static $logStartTime = 0;
+
+    /**
+     * @var string
+     */
+    private static $logFormat;
+
+    /**
+     * @var DateTime
+     */
+    private static $ts;
+
+    /**
+     * @return LoggerInterface
+     */
+    public static function getLogger()
+    {
+        return self::$logger;
+    }
+
+    /**
+     * @param LoggerInterface $logger
+     *
+     * @throws Exception
+     */
+    public static function setLogger(LoggerInterface $logger)
+    {
+        self::$logger       = $logger;
+        self::$logStartTime = microtime(true);
+        $timezone           = new DateTimeZone(date_default_timezone_get() ?: 'UTC');
+        if (PHP_VERSION_ID < 70100) {
+            self::$ts = DateTime::createFromFormat('U.u', sprintf('%.6F', microtime(true)), $timezone);
+        } else {
+            self::$ts = new DateTime('now', $timezone);
+        }
+    }
+
+    /**
+     * @return string
+     */
+    public static function getLogFormat()
+    {
+        $template = self::$logFormat
+            ?: '"{method} {uri} HTTP/{version}" {code} {cost} {hostname} {pid}';
+
+        return str_replace(
+            ['{pid}', '{cost}', '{start_time}'],
+            [getmypid(), self::getCost(), self::$ts->format('Y-m-d H:i:s.u')],
+            $template
+        );
+    }
+
+    /**
+     * Apache Common Log Format.
+     *
+     * @param string $formatter
+     *
+     * @link http://httpd.apache.org/docs/2.4/logs.html#common
+     * @see  \GuzzleHttp\MessageFormatter
+     */
+    public static function setLogFormat($formatter)
+    {
+        self::$logFormat = $formatter;
+    }
+
+    /**
+     * @return float|mixed
+     */
+    private static function getCost()
+    {
+        return microtime(true) - self::$logStartTime;
+    }
+}

+ 97 - 0
vendor/alibabacloud/client/src/Traits/MockTrait.php

@@ -0,0 +1,97 @@
+<?php
+
+namespace AlibabaCloud\Client\Traits;
+
+use Exception;
+use GuzzleHttp\Psr7\Request;
+use GuzzleHttp\Psr7\Response;
+use GuzzleHttp\Handler\MockHandler;
+use Psr\Http\Message\RequestInterface;
+use Psr\Http\Message\ResponseInterface;
+use GuzzleHttp\Exception\RequestException;
+
+/**
+ * Class MockTrait
+ *
+ * @package AlibabaCloud\Client\Request\Traits
+ * @mixin Request
+ */
+trait MockTrait
+{
+    /**
+     * @var array
+     */
+    private static $mockQueue = [];
+
+    /**
+     * @var MockHandler
+     */
+    private static $mock;
+
+    /**
+     * @param integer             $status
+     * @param array               $headers
+     * @param array|string|object $body
+     */
+    public static function mockResponse($status = 200, array $headers = [], $body = null)
+    {
+        if (is_array($body) || is_object($body)) {
+            $body = json_encode($body);
+        }
+
+        self::$mockQueue[] = new Response($status, $headers, $body);
+        self::createHandlerStack();
+    }
+
+    private static function createHandlerStack()
+    {
+        self::$mock = new MockHandler(self::$mockQueue);
+    }
+
+    /**
+     * @param string                 $message
+     * @param RequestInterface       $request
+     * @param ResponseInterface|null $response
+     * @param Exception|null         $previous
+     * @param array                  $handlerContext
+     */
+    public static function mockRequestException(
+        $message,
+        RequestInterface $request,
+        ResponseInterface $response = null,
+        Exception $previous = null,
+        array $handlerContext = []
+    ) {
+        self::$mockQueue[] = new RequestException(
+            $message,
+            $request,
+            $response,
+            $previous,
+            $handlerContext
+        );
+
+        self::createHandlerStack();
+    }
+
+    public static function cancelMock()
+    {
+        self::$mockQueue = [];
+        self::$mock      = null;
+    }
+
+    /**
+     * @return bool
+     */
+    public static function hasMock()
+    {
+        return (bool)self::$mockQueue;
+    }
+
+    /**
+     * @return MockHandler
+     */
+    public static function getMock()
+    {
+        return self::$mock;
+    }
+}

+ 54 - 0
vendor/alibabacloud/client/src/Traits/ObjectAccessTrait.php

@@ -0,0 +1,54 @@
+<?php
+
+namespace AlibabaCloud\Client\Traits;
+
+/**
+ * Trait ObjectAccessTrait
+ *
+ * @package   AlibabaCloud\Client\Traits
+ */
+trait ObjectAccessTrait
+{
+    /**
+     * @param string $name
+     *
+     * @return mixed|null
+     */
+    public function __get($name)
+    {
+        if (!isset($this->data[$name])) {
+            return null;
+        }
+
+        return \json_decode(\json_encode($this->data))->$name;
+    }
+
+    /**
+     * @param string $name
+     * @param mixed  $value
+     */
+    public function __set($name, $value)
+    {
+        $this->data[$name] = $value;
+    }
+
+    /**
+     * @param string $name
+     *
+     * @return bool
+     */
+    public function __isset($name)
+    {
+        return isset($this->data[$name]);
+    }
+
+    /**
+     * @param $name
+     *
+     * @return void
+     */
+    public function __unset($name)
+    {
+        unset($this->data[$name]);
+    }
+}

+ 33 - 0
vendor/alibabacloud/client/src/Traits/RegionTrait.php

@@ -0,0 +1,33 @@
+<?php
+
+namespace AlibabaCloud\Client\Traits;
+
+use AlibabaCloud\Client\Filter\ClientFilter;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Trait RegionTrait
+ *
+ * @package AlibabaCloud\Client\Traits
+ */
+trait RegionTrait
+{
+
+    /**
+     * @var string|null
+     */
+    public $regionId;
+
+    /**
+     * @param string $regionId
+     *
+     * @return $this
+     * @throws ClientException
+     */
+    public function regionId($regionId)
+    {
+        $this->regionId = ClientFilter::regionId($regionId);
+
+        return $this;
+    }
+}

+ 90 - 0
vendor/alibabacloud/client/src/Traits/RequestTrait.php

@@ -0,0 +1,90 @@
+<?php
+
+namespace AlibabaCloud\Client\Traits;
+
+use AlibabaCloud\Client\AlibabaCloud;
+use AlibabaCloud\Client\Filter\Filter;
+use AlibabaCloud\Client\Request\UserAgent;
+use AlibabaCloud\Client\Request\RpcRequest;
+use AlibabaCloud\Client\Request\RoaRequest;
+use AlibabaCloud\Client\Exception\ClientException;
+
+/**
+ * Trait RequestTrait
+ *
+ * @package   AlibabaCloud\Client\Traits
+ *
+ * @mixin     AlibabaCloud
+ */
+trait RequestTrait
+{
+    /**
+     * @param string $name
+     * @param string $value
+     *
+     * @throws ClientException
+     */
+    public static function appendUserAgent($name, $value)
+    {
+        Filter::name($name);
+        Filter::value($value);
+
+        UserAgent::append($name, $value);
+    }
+
+    /**
+     * @param array $userAgent
+     */
+    public static function withUserAgent(array $userAgent)
+    {
+        UserAgent::with($userAgent);
+    }
+
+    /**
+     * @param array $options
+     *
+     * @return RpcRequest
+     * @throws ClientException
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public static function rpcRequest(array $options = [])
+    {
+        return self::rpc($options);
+    }
+
+    /**
+     * @param array $options
+     *
+     * @return RpcRequest
+     * @throws ClientException
+     */
+    public static function rpc(array $options = [])
+    {
+        return new RpcRequest($options);
+    }
+
+    /**
+     * @param array $options
+     *
+     * @return RoaRequest
+     * @throws ClientException
+     * @deprecated
+     * @codeCoverageIgnore
+     */
+    public static function roaRequest(array $options = [])
+    {
+        return self::roa($options);
+    }
+
+    /**
+     * @param array $options
+     *
+     * @return RoaRequest
+     * @throws ClientException
+     */
+    public static function roa(array $options = [])
+    {
+        return new RoaRequest($options);
+    }
+}

+ 10554 - 0
vendor/alibabacloud/sdk/CHANGELOG.md

@@ -0,0 +1,10554 @@
+# CHANGELOG
+
+## 1.8.2198 - 2024-10-10
+- Support Android badge.
+- Support Harmony badge.
+- Support Harmony Extension Push Message.
+
+
+## 1.8.2197 - 2024-10-8
+- Generated 2022-12-01 for `ResourceCenter`.
+
+
+## 1.8.2196 - 2024-9-30
+- Generated 2018-08-28 for `Tag`.
+
+
+## 1.8.2195 - 2024-9-29
+- Generated 2021-12-21 for `wss`.
+
+
+## 1.8.2194 - 2024-9-29
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.2193 - 2024-9-27
+- Support command audit for ecs.
+
+
+## 1.8.2192 - 2024-9-26
+- Update to support new apis.
+
+
+## 1.8.2191 - 2024-9-24
+- Generated 2024-02-22 for `OssSddp`.
+
+
+## 1.8.2190 - 2024-9-18
+- Add API Ram meta.
+
+
+## 1.8.2189 - 2024-9-14
+- Update EBS default encrypted APIs from private to public.
+- Support describe and modify source dest check property of ENI.
+
+
+## 1.8.2188 - 2024-9-10
+- Update EBS default encrypted APIs from private to public.
+
+
+## 1.8.2187 - 2024-9-2
+- Generated 2019-09-01 for `OceanBasePro`.
+
+
+## 1.8.2186 - 2024-8-30
+- Generated 2016-01-20 for `Kms`.
+
+
+## 1.8.2185 - 2024-8-30
+- 增加国际一口价相关接口.
+- GetIntlFixPriceDomainListUrl.
+- CheckIntlFixPriceDomainStatus.
+- CreateIntlFixedPriceDomainOrder.
+- QueryIntlFixedPriceOrderList.
+
+
+## 1.8.2184 - 2024-8-28
+- Generated 2015-12-01 for `Dds`.
+
+
+## 1.8.2183 - 2024-8-23
+治理检测新增第一版OpenAPI
+
+
+## 1.8.2182 - 2024-8-23
+- Generated 2017-11-10 for `Ens`.
+
+
+## 1.8.2181 - 2024-8-22
+- Update to support new apis.
+
+
+## 1.8.2180 - 2024-8-21
+- Support record for ecs.
+
+
+## 1.8.2179 - 2024-8-20
+增加DescribeVodDomainMax95BpsData
+
+
+## 1.8.2178 - 2024-8-15
+- Support effective time for CreateOrUpdateSilencePolicy interface.
+- Fix spelling errors in the field SupportAuthTypes.
+
+
+## 1.8.2177 - 2024-8-13
+- Support RDS Custom.
+
+
+## 1.8.2176 - 2024-8-13
+- Update to support new apis.
+
+
+## 1.8.2175 - 2024-8-13
+- Support DryRun parameter OpenAPI.
+
+
+## 1.8.2174 - 2024-8-13
+-DescribeVodCertificateDetail, DescribeVodCertificateList增加返回参数
+
+
+## 1.8.2173 - 2024-8-12
+- Generated 2020-06-01 for `SWAS-OPEN`.
+
+
+## 1.8.2172 - 2024-8-7
+- Add QueryData, ModifyCopilotEmbedConfig, QueryCopilotEmbedConfig and QueryDataRange APIs.
+
+
+## 1.8.2171 - 2024-8-6
+- Update to support new apis.
+
+
+## 1.8.2170 - 2024-8-5
+- Offline remote write related APIs.
+- Mark the managedPrometheus related APIs as deprecated.
+
+
+## 1.8.2169 - 2024-8-5
+- Generated 2019-09-01 for `OceanBasePro`.
+
+
+## 1.8.2168 - 2024-8-1
+- add openapi for Personalized Text to Image ablity init version.
+
+
+## 1.8.2167 - 2024-8-1
+- Generated 2015-12-01 for `Dds`.
+
+
+## 1.8.2166 - 2024-8-1
+- Update to support new apis.
+
+
+## 1.8.2165 - 2024-7-29
+- Update DescribeApiMetering API.
+
+
+## 1.8.2164 - 2024-7-26
+- Supported C#.
+
+
+## 1.8.2163 - 2024-7-24
+- Generated 2019-09-01 for `OceanBasePro`.
+
+
+## 1.8.2162 - 2024-7-23
+- Generated 2014-08-15 for `Rds`.
+
+
+## 1.8.2161 - 2024-7-23
+- Update water-mark params
+
+
+## 1.8.2160 - 2024-7-22
+- Support kibana Pvl private link operation.
+
+
+## 1.8.2159 - 2024-7-19
+- Account management add SourceBiz parameters.
+
+
+## 1.8.2158 - 2024-7-19
+- Update SegmentCloth.
+
+
+## 1.8.2157 - 2024-7-18
+初始发布
+
+
+## 1.8.2156 - 2024-7-16
+- Generated 2020-06-01 for `SWAS-OPEN`.
+
+
+## 1.8.2155 - 2024-7-10
+- Added param for ActivateLicenseResponse .
+
+
+## 1.8.2154 - 2024-7-5
+- Update to support new apis.
+
+
+## 1.8.2153 - 2024-7-4
+- Publish Api:GetNisNetworkRanking
+- Publish Api:GetNisNetworkMetrics
+
+
+## 1.8.2152 - 2024-7-4
+- Generated 2019-09-01 for `OceanBasePro`.
+
+
+## 1.8.2151 - 2024-7-3
+- Supported APIs DescribeSDG,PreloadRegionSDG,UnloadRegionSDG,DeployInstanceSDG,RemoveInstanceSDG.
+
+
+## 1.8.2150 - 2024-7-3
+- Generated 2023-01-20 for `csas`.
+
+
+## 1.8.2149 - 2024-7-2
+- Generated 2019-09-01 for `OceanBasePro`.
+
+
+## 1.8.2148 - 2024-6-30
+- Add UsageMetric.
+
+
+## 1.8.2147 - 2024-6-28
+- Add QueryAuditLog, QueryApprovalInfo, DataSourceBlood, DataSetBlood and QueryDataServiceList APIs.
+- QueryUserInfoByAccount API updates error code.
+
+
+## 1.8.2146 - 2024-6-26
+- Supported AssumeRoleProxyChain for CreateHighDensityElasticNetworkInterface.
+
+
+## 1.8.2145 - 2024-6-25
+- Create AppGroup Support Set AppVersion.
+- Update AppGroup Support Set AppVersion.
+- List AppGroup Support return AppVersion.
+
+
+## 1.8.2144 - 2024-6-20
+- Generated 2023-01-20 for `csas`.
+
+
+## 1.8.2143 - 2024-6-18
+- Add status operation api.
+
+
+## 1.8.2142 - 2024-6-18
+- Update to support new apis.
+
+
+## 1.8.2141 - 2024-6-18
+- Supported modification of securityGroupId for UpdateElasticNetworkInterface API.
+
+
+## 1.8.2140 - 2024-6-18
+- Generated 2020-02-02 for `polardbx`.
+
+
+## 1.8.2139 - 2024-6-17
+- Generated 2020-06-01 for `SWAS-OPEN`.
+
+
+## 1.8.2138 - 2024-6-17
+- CreateDBInstance add DNStorageSpace
+
+
+## 1.8.2137 - 2024-6-14
+- Update to support new apis.
+
+
+## 1.8.2136 - 2024-6-14
+- Generated 2019-09-01 for `OceanBasePro`.
+
+
+## 1.8.2135 - 2024-6-11
+- Generated 2023-01-20 for `csas`.
+
+
+## 1.8.2134 - 2024-6-6
+- Generated 2023-01-20 for `csas`.
+
+
+## 1.8.2133 - 2024-6-6
+- ListOrderConsumeStatisticRecords  add applicationExternalId serviceCode.
+
+
+## 1.8.2132 - 2024-6-5
+- Support dms dg.
+
+
+## 1.8.2131 - 2024-6-4
+- Update to support new apis.
+
+
+## 1.8.2130 - 2024-6-3
+- Supported gateway for hdeni api.
+
+
+## 1.8.2129 - 2024-5-30
+- Generated 2014-05-15 for `Slb`.
+
+
+## 1.8.2128 - 2024-5-30
+- Update QueryFaceVideoTemplate.
+
+
+## 1.8.2127 - 2024-5-30
+- Generated 2021-05-21 for `ComputeNestSupplier`.
+
+
+## 1.8.2126 - 2024-5-29
+- Support body
+
+
+## 1.8.2125 - 2024-5-27
+- Generated 2019-09-01 for `OceanBasePro`.
+
+
+## 1.8.2124 - 2024-5-27
+- Generated 2019-09-01 for `OceanBasePro`.
+
+
+## 1.8.2123 - 2024-5-24
+- Generated 2015-12-01 for `Dds`.
+
+
+## 1.8.2122 - 2024-5-24
+- Update to support new apis.
+
+
+## 1.8.2121 - 2024-5-23
+- Add SnapshotLinkId for DescribeSnapshots.
+
+
+## 1.8.2120 - 2024-5-23
+- Generated 2019-09-01 for `OceanBasePro`.
+
+
+## 1.8.2119 - 2024-5-22
+- Generated 2020-06-01 for `SWAS-OPEN`.
+
+
+## 1.8.2118 - 2024-5-22
+- Support Spot Instance.
+
+
+## 1.8.2117 - 2024-5-22
+- Add CreateTicket4Copilot API.
+- QueryDatasetList and QueryDatasetInfo APIs add response parameters.
+
+
+## 1.8.2116 - 2024-5-22
+- DescribeDBInstances, add cpuType.
+
+
+## 1.8.2115 - 2024-5-14
+- Support ExecutorId for CreateJob and ListJobExecutors.
+
+
+## 1.8.2114 - 2024-5-14
+- Upgrade SDK.
+
+
+## 1.8.2113 - 2024-5-11
+- Update to support new apis.
+
+
+## 1.8.2112 - 2024-5-8
+- Support key policy and secret policy OpenAPI.
+
+
+## 1.8.2111 - 2024-5-8
+-Fixed DescribeVodMediaPlayData接口返回数据类型错误
+
+
+## 1.8.2110 - 2024-5-6
+- Update HDENI and LENI API.
+
+
+## 1.8.2109 - 2024-4-30
+- Generated 2014-08-15 for `Rds`.
+
+
+## 1.8.2108 - 2024-4-30
+- Generated 2018-01-15 for `dcdn`.
+
+
+## 1.8.2107 - 2024-4-29
+- Update to support new apis.
+
+
+## 1.8.2106 - 2024-4-26
+- Add SupportedBootModes for DescribeInstanceTypes.
+
+
+## 1.8.2105 - 2024-4-25
+- Generated 2017-03-21 for `vod`.
+
+
+## 1.8.2104 - 2024-4-25
+- E-HPC Instant Computing Service Release, supporting mirroring and job management.
+
+
+## 1.8.2103 - 2024-4-23
+- Generated 2021-06-01 for `ComputeNest`.
+
+
+## 1.8.2102 - 2024-4-22
+- Update DetectFace.
+
+
+## 1.8.2101 - 2024-4-22
+- Generated 2019-05-06 for `sae`.
+
+
+## 1.8.2100 - 2024-4-16
+- Support Container for CreateJob.
+
+
+## 1.8.2099 - 2024-4-15
+- Generated 2023-01-20 for `csas`.
+
+
+## 1.8.2098 - 2024-4-11
+- Generated 2020-06-06 for `cams`.
+
+
+## 1.8.2097 - 2024-4-3
+- Generated 2024-03-25 for `aps`.
+
+
+## 1.8.2096 - 2024-4-3
+- Supported use group by freedom
+
+
+## 1.8.2095 - 2024-4-3
+- Generated 2019-03-07 for `Cloudauth`.
+
+
+## 1.8.2094 - 2024-4-1
+- Generated 2013-02-21 for `Slb`.
+
+
+## 1.8.2093 - 2024-3-29
+- ListOrderConsumeStatisticRecords  add applicationExternalId serviceCode.
+
+
+## 1.8.2092 - 2024-3-28
+- Add min_access_level and organization_alis fields.
+- Add CreateCommitWithMultipleFiles api.
+- Add CreateComment api.
+
+
+## 1.8.2091 - 2024-3-26
+- DeleteFlow、DeleteSchedule Parameters move to body.
+
+
+## 1.8.2090 - 2024-3-26
+- Supported ECR Attachment.
+
+
+## 1.8.2089 - 2024-3-25
+- update api
+
+
+## 1.8.2088 - 2024-3-25
+- Generated 2019-09-01 for `OceanBasePro`.
+
+
+## 1.8.2087 - 2024-3-25
+- Fix API
+
+
+## 1.8.2086 - 2024-3-25
+- Generated 2019-06-01 for `oos`.
+
+
+## 1.8.2085 - 2024-3-19
+- Add QueryWorkspaceRoleConfig, ListWorkspaceRoleUsers, ListWorkspaceRoles, QueryOrganizationRoleConfig, ListOrganizationRoleUsers and ListOrganizationRoles APIs.
+
+
+## 1.8.2084 - 2024-3-14
+- Fixed bugs for PauseEventStreaming and DeleteEventStreaming
+
+
+## 1.8.2083 - 2024-3-13
+- Generated 2020-06-01 for `SWAS-OPEN`.
+
+
+## 1.8.2082 - 2024-3-13
+- Update QueryFaceImageTemplate.
+
+
+## 1.8.2081 - 2024-3-13
+- Update QueryFaceVideoTemplate.
+
+
+## 1.8.2080 - 2024-3-13
+- Update to support new apis.
+
+
+## 1.8.2079 - 2024-3-8
+- Support CreateInstance API.
+- Support UpdateInstance API.
+
+
+## 1.8.2078 - 2024-3-8
+- Generated 2015-12-01 for `Dds`.
+
+
+## 1.8.2077 - 2024-3-6
+- Update to support new apis.
+
+
+## 1.8.2076 - 2024-3-5
+- Support UserData parameter for ApplyNodes interface.
+
+
+## 1.8.2075 - 2024-3-1
+- Update to support new apis.
+
+
+## 1.8.2074 - 2024-2-29
+- Generated 2019-01-03 for `Sddp`.
+
+
+## 1.8.2073 - 2024-2-28
+- Fixed bugs for ListUserDefinedEventSources
+
+
+## 1.8.2072 - 2024-2-27
+- AllotDatasetAccelerationTask API add error code.
+- QueryUserInfoByAccount, QueryUserInfoByUserId, AddUser, UpdateUser, and QueryUserList APIs add query or response parameters.
+
+
+## 1.8.2071 - 2024-2-20
+- Release GenerateCosplayImage.
+- Release GenerateTextDeformation.
+- Release GenerateTextTexture.
+- Release InteractiveFullSegmentation.
+- Release InteractiveScribbleSegmentation.
+
+
+## 1.8.2070 - 2024-2-18
+- Generated 2023-03-05 for `captcha`.
+
+
+## 1.8.2069 - 2024-2-2
+- Add UnsubscribeTopic.
+
+
+## 1.8.2068 - 2024-2-1
+- Bugfix: change response code type to string for StartEventStreaming.
+
+
+## 1.8.2067 - 2024-2-1
+- Support DryRun for DeleteInstance.
+- Support DryRun for ModifyInstanceSpec.
+
+
+## 1.8.2066 - 2024-2-1
+- Generated 2018-01-20 for `Linkvisual`.
+
+
+## 1.8.2065 - 2024-2-1
+- Describe tcpOptionAddress.
+
+
+## 1.8.2064 - 2024-1-31
+- Update to support new apis.
+
+
+## 1.8.2063 - 2024-1-30
+- Generated 2019-03-06 for `Dbs`.
+
+
+## 1.8.2062 - 2024-1-30
+- Publish sdk.
+
+
+## 1.8.2061 - 2024-1-24
+- support start params
+
+
+## 1.8.2060 - 2024-1-18
+- Add DescribeClusterBackupList OpenAPI.
+
+
+## 1.8.2059 - 2024-1-17
+- support unbind device
+
+
+## 1.8.2058 - 2024-1-16
+- Generated 2023-08-01 for `AiMiaoBi`.
+
+
+## 1.8.2057 - 2024-1-16
+- Generated 2018-01-20 for `Linkvisual`.
+
+
+## 1.8.2056 - 2024-1-15
+- BatchPub Support MQTT5.
+
+
+## 1.8.2055 - 2024-1-15
+- Update to support new apis.
+
+
+## 1.8.2054 - 2024-1-15
+- support UpdateSecurityGroup
+
+
+## 1.8.2053 - 2024-1-15
+- Generated 2018-01-20 for `Linkvisual`.
+
+
+## 1.8.2052 - 2024-1-8
+- Support share resource to service for RS.
+- Support display precheck information.
+
+
+## 1.8.2051 - 2024-1-8
+- Add gb device create API.
+
+
+## 1.8.2050 - 2024-1-5
+- Support new feature.
+
+
+## 1.8.2049 - 2024-1-4
+- open GenerateDownloadDecryptkey.
+
+
+## 1.8.2048 - 2024-1-4
+- Publish sdk.
+
+
+## 1.8.2047 - 2023-12-28
+- Generated 2019-09-01 for `OceanBasePro`.
+
+
+## 1.8.2046 - 2023-12-28
+- Generated 2022-01-30 for `avatar`.
+
+
+## 1.8.2045 - 2023-12-26
+- Update to support new apis.
+
+
+## 1.8.2044 - 2023-12-20
+- Generated 2023-09-30 for `tingwu`.
+
+
+## 1.8.2043 - 2023-12-20
+- Fix some bugs.
+
+
+## 1.8.2042 - 2023-12-20
+- Add RTMP device related interfaces.
+
+
+## 1.8.2041 - 2023-12-20
+- Update RecognizeBankCard.
+
+
+## 1.8.2040 - 2023-12-19
+- Fix some bugs.
+
+
+## 1.8.2039 - 2023-12-19
+- Fix some bugs.
+
+
+## 1.8.2038 - 2023-12-19
+- Supported AndroidVivoReceiptId for Push and MassPush.
+
+
+## 1.8.2037 - 2023-12-15
+- SubmitSnapshotJob add parameter
+
+
+## 1.8.2036 - 2023-12-15
+- Update ScreenEC.
+
+
+## 1.8.2035 - 2023-12-14
+- Generated 2019-09-01 for `OceanBasePro`.
+
+
+## 1.8.2034 - 2023-12-13
+- Update to support new apis.
+
+
+## 1.8.2033 - 2023-12-13
+- Standardizing api.
+
+
+## 1.8.2032 - 2023-12-13
+- Support Media StorageClass.
+
+
+## 1.8.2031 - 2023-12-12
+- Generated 2023-09-30 for `tingwu`.
+
+
+## 1.8.2030 - 2023-12-12
+- Generated 2023-09-30 for `tingwu`.
+
+
+## 1.8.2029 - 2023-12-12
+- CreateLindormInstance api support auto renew
+
+
+## 1.8.2028 - 2023-12-11
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.2027 - 2023-12-7
+- ECS SDK publish full package.
+
+
+## 1.8.2026 - 2023-12-6
+- Support CreateProcCorrectOrder request param of ExecMode.
+
+
+## 1.8.2025 - 2023-12-6
+- Update SegmentCloth.
+
+
+## 1.8.2024 - 2023-12-6
+- Update RecognizeIdentityCard.
+- Update RecognizeDriverLicense.
+- Update RecognizeDrivingLicense.
+
+
+## 1.8.2023 - 2023-11-29
+- SwitchLSQLV3MySQLService
+
+
+## 1.8.2022 - 2023-11-23
+- Generated 2020-06-15 for `hitsdb`.
+
+
+## 1.8.2021 - 2023-11-22
+- Lindorm open api.
+
+
+## 1.8.2020 - 2023-11-22
+- Update to support new apis.
+
+
+## 1.8.2019 - 2023-11-20
+- Generated 2021-12-01 for `adb`.
+
+
+## 1.8.2018 - 2023-11-20
+- GetDomainFields add request field
+
+
+## 1.8.2017 - 2023-11-16
+- 新增按时间下载本地录像接口.
+
+
+## 1.8.2016 - 2023-11-16
+- Supported SortBy for ListUserDevices.
+
+
+## 1.8.2015 - 2023-11-15
+- Latest version for php.
+
+
+## 1.8.2014 - 2023-11-15
+- Latest version for php.
+
+
+## 1.8.2013 - 2023-11-14
+- Release DeepfakeFace.
+
+
+## 1.8.2012 - 2023-11-9
+- Generated 2022-01-30 for `avatar`.
+
+
+## 1.8.2011 - 2023-11-8
+- Support CreateInstance API.
+
+
+## 1.8.2010 - 2023-11-3
+- Support ClientToken for Idemoptent.
+
+
+## 1.8.2009 - 2023-11-3
+- Support ClientToken for Idemoptent.
+
+
+## 1.8.2008 - 2023-11-2
+- Latest version for php.
+
+
+## 1.8.2007 - 2023-11-1
+- Standardizing api.
+
+
+## 1.8.2006 - 2023-11-1
+- Generated 2022-01-30 for `avatar`.
+
+
+## 1.8.2005 - 2023-10-31
+- 新增按时间下载云存录像接口.
+
+
+## 1.8.2004 - 2023-10-30
+- Update to support new apis.
+
+
+## 1.8.2003 - 2023-10-26
+- 增加StartSyncExecution
+
+
+## 1.8.2002 - 2023-10-26
+- Generated 2016-07-14 for `CloudAPI`.
+
+
+## 1.8.2001 - 2023-10-25
+- Publish sdk.
+
+
+## 1.8.2000 - 2023-10-23
+- Generated 2019-03-15 for `adb`.
+
+
+## 1.8.1999 - 2023-10-20
+- Support ClientToken for Idemoptent.
+
+
+## 1.8.1998 - 2023-10-20
+- Update by SDK platform.
+
+
+## 1.8.1997 - 2023-10-19
+- Support CreateAuthorityTemplate, UpdateAuthorityTemplate, GetAuthorityTemplateItem, GetAuthorityTemplate return TenantId information.
+
+
+## 1.8.1996 - 2023-10-19
+- Coupon template
+- Carousel template
+- LTO template
+
+
+## 1.8.1995 - 2023-10-18
+- Update to support new apis.
+
+
+## 1.8.1994 - 2023-10-18
+- Support Digital Watermark.
+
+
+## 1.8.1993 - 2023-10-17
+- Generated 2023-03-13 for `xrEngine`.
+
+
+## 1.8.1992 - 2023-10-13
+- Public Api.
+
+
+## 1.8.1991 - 2023-10-12
+- Supported AndroidTargetUserType. AndroidHonorTargetUserType for Push and MassPush.
+- Supported StoreOffline for PushNoticeToAndroid, PushMessageToAndroid and PushMessageToiOS.
+
+
+## 1.8.1990 - 2023-10-12
+- Support GetOrderBaseInfo to response AttachmentKey and OriginAttachmentName information.
+
+
+## 1.8.1989 - 2023-10-12
+- Generated 2019-09-01 for `OceanBasePro`.
+
+
+## 1.8.1988 - 2023-10-11
+- Generated 2020-06-01 for `SWAS-OPEN`.
+
+
+## 1.8.1987 - 2023-10-11
+- Publish AssumeRoleWithOIDC API by adding more detail in response.
+
+
+## 1.8.1986 - 2023-10-11
+- Support CreateProcCorrectAPI.
+
+
+## 1.8.1985 - 2023-10-11
+- Publish sdk.
+
+
+## 1.8.1984 - 2023-10-10
+- Support CreateProcCorrectAPI.
+
+
+## 1.8.1983 - 2023-10-10
+- Update MergeImageFace.
+
+
+## 1.8.1982 - 2023-10-10
+- Update MergeVideoModelFace MergeVideoFace.
+
+
+## 1.8.1981 - 2023-10-8
+- Update to support new apis.
+
+
+## 1.8.1980 - 2023-10-8
+- Generated 2022-04-30 for `Nlb`.
+
+
+## 1.8.1979 - 2023-9-28
+- Support CreateProcCorrectAPI.
+
+
+## 1.8.1978 - 2023-9-25
+- Add new apis.
+
+
+## 1.8.1977 - 2023-9-25
+- Support DIJob and DIAlarmRule related APIs.
+
+
+## 1.8.1976 - 2023-9-25
+- Add Api ResetDeviceTimeline.
+
+
+## 1.8.1975 - 2023-9-21
+- Generated 2020-06-06 for `cams`.
+
+
+## 1.8.1974 - 2023-9-20
+- Support CreateProcCorrectAPI.
+
+
+## 1.8.1973 - 2023-9-20
+- Generated 2018-01-20 for `Linkvisual`.
+
+
+## 1.8.1972 - 2023-9-18
+- Update by SDK platform.
+
+
+## 1.8.1971 - 2023-9-18
+- add client SDK api
+
+
+## 1.8.1970 - 2023-9-18
+- Public Api.
+
+
+## 1.8.1969 - 2023-9-15
+- Add openapi TagResources.
+- Add openapi UntagResources.
+- Add openapi ListTagResources.
+- Modify openapi DescribeEais.
+
+
+## 1.8.1968 - 2023-9-15
+- Generated 2020-06-06 for `cams`.
+
+
+## 1.8.1967 - 2023-9-14
+- Update MergeVideoModelFace.
+
+
+## 1.8.1966 - 2023-9-11
+- Update by SDK platform.
+
+
+## 1.8.1965 - 2023-9-11
+- add Instance, NetworkRule, Policy, ApplicationAccessPoint, ClientKey OpenAPIs
+
+
+## 1.8.1964 - 2023-9-7
+- Generated 2018-01-20 for `Iot`.
+
+
+## 1.8.1963 - 2023-9-6
+- Parameter changes in SubmitServerlessJob.
+
+
+## 1.8.1962 - 2023-9-4
+- Support ListNodeInfos4Pod.
+
+
+## 1.8.1961 - 2023-9-4
+- Support ListNodeInfos4Pod.
+
+
+## 1.8.1960 - 2023-9-1
+- 发布资源清单下载、高级搜索、合规趋势统计等API.
+
+
+## 1.8.1959 - 2023-8-31
+- Update MergeVideoFace.
+
+
+## 1.8.1958 - 2023-8-31
+- Supported connector visualization manage.
+
+
+## 1.8.1957 - 2023-8-30
+- Add new apis.
+
+
+## 1.8.1956 - 2023-8-28
+- add make stage, preview url
+
+
+## 1.8.1955 - 2023-8-28
+- Support elastic network interface.
+
+
+## 1.8.1954 - 2023-8-25
+- Update SDK.
+
+
+## 1.8.1953 - 2023-8-24
+- Supported recommand serialization format flat.
+
+
+## 1.8.1952 - 2023-8-23
+- Support DryRunCluster For LakeVersion.
+
+
+## 1.8.1951 - 2023-8-22
+- Upgrade SDK.
+
+
+## 1.8.1950 - 2023-8-21
+- 发布资源清单下载、高级搜索、合规趋势统计等API.
+
+
+## 1.8.1949 - 2023-8-17
+- Update by SDK platform.
+
+
+## 1.8.1948 - 2023-8-17
+- Supported CommandLine for StartTerminalSession.
+
+
+## 1.8.1947 - 2023-8-16
+- Supported dynamicRoute.
+
+
+## 1.8.1946 - 2023-8-15
+- Update endpoints.
+
+
+## 1.8.1945 - 2023-8-10
+- Generated 2021-01-01 for `Ft`.
+
+
+## 1.8.1944 - 2023-8-10
+- Generated 2021-01-01 for `Ft`.
+
+
+## 1.8.1943 - 2023-8-10
+- UpdateHubClusterFeature support ArgoCDHAEnabled.
+
+
+## 1.8.1942 - 2023-8-10
+- Update MergeVideoModelFace and MergeVideoFace.
+
+
+## 1.8.1941 - 2023-8-9
+- 发布资源清单下载、高级搜索、合规趋势统计等API.
+
+
+## 1.8.1940 - 2023-8-8
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.1939 - 2023-8-3
+- Automatically generate sdk tasks.
+
+
+## 1.8.1938 - 2023-8-3
+- Support region id.
+
+
+## 1.8.1937 - 2023-8-2
+- Fixed bug.
+
+
+## 1.8.1936 - 2023-8-2
+- Support tag policy.
+
+
+## 1.8.1935 - 2023-8-2
+-Fix return message field type
+-Support subtitleEmbeded
+-Support mp4 alphaUrl
+
+
+## 1.8.1934 - 2023-8-2
+- Add Cloud Disk Encryption.
+
+
+## 1.8.1933 - 2023-8-2
+-Fix return message field type
+-Support subtitleEmbeded
+-Support mp4 alphaUrl
+
+
+## 1.8.1932 - 2023-8-1
+- Update by SDK platform.
+
+
+## 1.8.1931 - 2023-8-1
+- Support resoruce group id.
+- Support resource group id.
+
+
+## 1.8.1930 - 2023-8-1
+- CreateLaunchTemplate, CreateLaunchTemplateVersion, DescribeLaunchTemplateVersions support DeletionProtection.
+
+
+## 1.8.1929 - 2023-8-1
+- Initialize SDK.
+
+
+## 1.8.1928 - 2023-8-1
+- Support resource group id.
+
+
+## 1.8.1927 - 2023-8-1
+- Support resourcegroup id.
+- Support resourceGroup id.
+- Support resource group.
+- Support resrouce group.
+- Support resource group id.
+- Support region id.
+- Support RegionId Ram Auth.
+- Support resrouce group id.
+
+
+## 1.8.1926 - 2023-7-31
+- Fix bug ram.
+- Add minor version error.
+- Support to select the minor version of the kernel when the modify instance error reports that the kernel version does not support it.
+
+
+## 1.8.1925 - 2023-7-31
+-2d create
+
+
+## 1.8.1924 - 2023-7-30
+- Fix bug ram.
+- Add minor version error.
+- Support to select the minor version of the kernel when the modify instance error reports that the kernel version does not support it.
+
+
+## 1.8.1923 - 2023-7-29
+- Fix bug ram.
+- Add minor version error.
+- Support to select the minor version of the kernel when the modify instance error reports that the kernel version does not support it.
+
+
+## 1.8.1922 - 2023-7-28
+- Fix bug ram.
+- Add minor version error.
+- Support to select the minor version of the kernel when the modify instance error reports that the kernel version does not support it.
+
+
+## 1.8.1921 - 2023-7-28
+- Latest version for php.
+
+
+## 1.8.1920 - 2023-7-28
+- Add ErrorCode.
+- Support DescribeResubmitConfig and ModifyResubmitConfig.
+- Support DescribeSQAConfig and ModifySQAConfig.
+- Set default value.
+- Support Api TagList.
+- Modify parameters and response for ResubmitConfig API.
+- Update CancelActiveOperationTasks.
+- DescribeActiveOperationTasks Response add field TaskParams.
+- Add patameters for DescribeVswitches and DescribeVpcs.
+- Add regionId.
+
+
+## 1.8.1919 - 2023-7-28
+- PatchBaseline Support Tags.
+
+
+## 1.8.1918 - 2023-7-28
+- Update SDK version.
+
+
+## 1.8.1917 - 2023-7-28
+- Update SDK version.
+
+
+## 1.8.1916 - 2023-7-27
+- Fix bug ram.
+- Add minor version error.
+- Support to select the minor version of the kernel when the modify instance error reports that the kernel version does not support it.
+
+
+## 1.8.1915 - 2023-7-27
+- Generated 2020-03-31 for `ResourceManager`.
+
+
+## 1.8.1914 - 2023-7-25
+- Add error code.
+- Support System param.
+
+
+## 1.8.1913 - 2023-7-25
+- Parameter changes in SubmitServerlessJob.
+
+
+## 1.8.1912 - 2023-7-25
+- PatchBaseline Support Tags.
+
+
+## 1.8.1911 - 2023-7-24
+- Add error code.
+- Add error code for CreateDBNodes.
+
+
+## 1.8.1910 - 2023-7-24
+- Add GetGraphQueryTemplates.
+- Add Api GetGraphQueryResult.
+- Support http.
+
+
+## 1.8.1909 - 2023-7-23
+- Fix 500 for CreateOrder.
+- Support sts.
+
+
+## 1.8.1908 - 2023-7-22
+- Fix 500 for CreateOrder.
+- Support sts.
+
+
+## 1.8.1907 - 2023-7-21
+- Fix 500 for CreateOrder.
+- Support sts.
+
+
+## 1.8.1906 - 2023-7-20
+- Fix bug of lack fill resourceOwnerId in DescribeHostWebshell.
+
+
+## 1.8.1905 - 2023-7-20
+- Support rd sdk.
+
+
+## 1.8.1904 - 2023-7-20
+- Support new api about model training.
+- Change GenerateVideoPlaylist and LiveTranscoding to private.
+- Remove DeleteBinding Cleanup params.
+
+
+## 1.8.1903 - 2023-7-20
+- Support clouddisk API.
+
+
+## 1.8.1902 - 2023-7-20
+- Parameter changes in ListServerlessJobs and DescribeServerlessJobs.
+
+
+## 1.8.1901 - 2023-7-19
+- Add openapis for whitelist template.
+
+
+## 1.8.1900 - 2023-7-19
+- Add new apis.
+
+
+## 1.8.1899 - 2023-7-19
+- Update SDK version.
+
+
+## 1.8.1898 - 2023-7-19
+- Update SDK version.
+
+
+## 1.8.1897 - 2023-7-18
+- Supported RDS PostgreSQL manage extensions.
+
+
+## 1.8.1896 - 2023-7-17
+- Add TimeOut.
+
+
+## 1.8.1895 - 2023-7-17
+- Get Workflow Instance Add Node Field.
+
+
+## 1.8.1894 - 2023-7-17
+- Get Job Instance API add Field.
+- Get Workflow Instance Add Node Field.
+
+
+## 1.8.1893 - 2023-7-16
+- Add error code.
+
+
+## 1.8.1892 - 2023-7-15
+- Add error code.
+
+
+## 1.8.1891 - 2023-7-14
+- Support Serverless Job API.
+
+
+## 1.8.1890 - 2023-7-13
+- Support change instance config event for rds.
+- Add NodeId param for restart slave.
+
+
+## 1.8.1889 - 2023-7-13
+- Iot_20180120 old version sdk.
+
+
+## 1.8.1888 - 2023-7-13
+- Public API ListAppBySwimmingLaneGroupTags.
+- Update APIs.
+- Support Pod distributed flag.
+- Support expected zone list.
+- Optimize UpdateXXXRulesStatus.
+- Fix QueryAppRPCMacMetrics result.
+- Add dataids param for config export.
+- Support get current client ip.
+- Change GetGateway timeout to 20s.
+- Update APIs for 2023-07-10.
+- Supported VPC and SecurityGroup params for service test.
+- API Type Tag.
+- Add API Type Tag.
+- Open Response Log.
+- Fixed url.
+
+
+## 1.8.1887 - 2023-7-12
+- Add error coede.
+- Fix bugs for 500.
+
+
+## 1.8.1886 - 2023-7-12
+- Iot_20180120 TeaDSL SDK.
+
+
+## 1.8.1885 - 2023-7-12
+- Add openapi CreateEaisEi.
+- Add openapi AttachEaisEi.
+- Add openapi StartEaisEi.
+- Add openapi StopEaisEi.
+- Add openapi DetachEaisEi.
+- Add openapi DeleteEaisEi.
+
+
+## 1.8.1884 - 2023-7-12
+- Change API CreateDataArchiveOrder and GetDataArchiveCount to public.
+
+
+## 1.8.1883 - 2023-7-11
+- Fixed 500 for interface.
+
+
+## 1.8.1882 - 2023-7-11
+-offline add voice and industrycode
+
+
+## 1.8.1881 - 2023-7-10
+- Fixed 500 for interface.
+
+
+## 1.8.1880 - 2023-7-10
+- Generated 2019-03-06 for `Dbs`.
+
+
+## 1.8.1879 - 2023-7-10
+- Add DescribeClassDetails Api.
+
+
+## 1.8.1878 - 2023-7-9
+- Add AutoUseCoupon field.
+- Api Offline.
+
+
+## 1.8.1877 - 2023-7-8
+- Add AutoUseCoupon field.
+- Api Offline.
+
+
+## 1.8.1876 - 2023-7-7
+- Add AutoUseCoupon field.
+- Api Offline.
+
+
+## 1.8.1875 - 2023-7-7
+- ListApplicationGroups rename parameter Product to ResourceProduct
+
+
+## 1.8.1874 - 2023-7-6
+- Add AutoUseCoupon field.
+- Api Offline.
+
+
+## 1.8.1873 - 2023-7-6
+- Modify GetDataArchiveOrderDetail API. Add output parameter: TempTableNameMap.
+
+
+## 1.8.1872 - 2023-7-5
+- Add AutoUseCoupon field.
+- Api Offline.
+
+
+## 1.8.1871 - 2023-7-5
+- Hidden ResumeBinding and StopBinding API.
+- Hide DRM api.
+- Support DocumentText.
+- Support ListAttachment.
+- Modify CreateTrigger and CreateBatch request Notification params.
+
+
+## 1.8.1870 - 2023-7-5
+-offline add voice and industrycode
+
+
+## 1.8.1869 - 2023-7-4
+- Fix bugs for  DescribeDedicatedHosts.
+- Fixed bugs add ERRORCODE.
+- Added serverless config to support serverless price query.
+
+
+## 1.8.1868 - 2023-7-4
+- ModifyBackupPolicy API support parameter BackupPriority.
+- DescribeBackupPolicy API add return parameters: BackupPriority and SupportModifyBackupPriority.
+
+
+## 1.8.1867 - 2023-7-4
+- 新增模型预测高性能版本
+
+
+## 1.8.1866 - 2023-7-3
+- Fix bugs for  DescribeDedicatedHosts.
+- Fixed bugs add ERRORCODE.
+- Added serverless config to support serverless price query.
+
+
+## 1.8.1865 - 2023-7-3
+- Update TrimDocument.
+- Update RecognizeTakeoutOrder.
+- Update RecognizePassportMRZ.
+- Update RecognizeChinapassport.
+- Update DetectCardScreenshot.
+- Update RecognizeVerificationcode.
+- Update RecognizePoiName.
+- Update RecognizeAccountPage.
+
+
+## 1.8.1864 - 2023-7-3
+- Add The billingCount return value to the RunPreTrainService Api.
+
+
+## 1.8.1863 - 2023-7-2
+- Fixed bugs for lack of regionId.
+- Fix error code.
+
+
+## 1.8.1862 - 2023-7-1
+- Fixed bugs for lack of regionId.
+- Fix error code.
+
+
+## 1.8.1861 - 2023-6-30
+- Fixed bugs for lack of regionId.
+- Fix error code.
+
+
+## 1.8.1860 - 2023-6-30
+- Modify ListTaskFlowsByPage API. Add output parameter: DagOwnerId.
+- Modify ReRunTaskFlowInstance, ReSumeTaskFlowInstance: input parameter DagVersion is not required.
+
+
+## 1.8.1859 - 2023-6-30
+- ModifyBackupPolicy API support parameter BackupPriority.
+- DescribeBackupPolicy API add return parameters: BackupPriority and SupportModifyBackupPriority.
+
+
+## 1.8.1858 - 2023-6-29
+- Support More Open Api.
+
+
+## 1.8.1857 - 2023-6-28
+- Update by SDK platform.
+
+
+## 1.8.1856 - 2023-6-27
+- Fix some bugs.
+
+
+## 1.8.1855 - 2023-6-26
+- Support More Open Api.
+
+
+## 1.8.1854 - 2023-6-25
+- Update sdk.
+
+
+## 1.8.1853 - 2023-6-25
+- Update sdk.
+
+
+## 1.8.1852 - 2023-6-25
+- Support better trace logging for error locating.
+- Improve API definition.
+- Better logging.
+- Log response data.
+- Blacklist certain user.
+- Publish document.
+- Optimize RAM authentication.
+- Fix billing pop service.
+- Regular RAM error message.
+- Improve RAM authentication.
+
+
+## 1.8.1851 - 2023-6-20
+- Add QueryCubePerformance, QueryComponentPerformance, QueryCubeOptimization, and QueryReportPerformance APIs.
+- Update error code description.
+
+
+## 1.8.1850 - 2023-6-20
+- Add DistributionProducts API.
+
+
+## 1.8.1849 - 2023-6-19
+- Cc5g.
+
+
+## 1.8.1848 - 2023-6-14
+- Add something for ga.
+
+
+## 1.8.1847 - 2023-6-14
+- Add EnablePolicy APIs.
+
+
+## 1.8.1846 - 2023-6-13
+- CreateAutoProvisioningGroup support NetworkInterface.
+
+
+## 1.8.1845 - 2023-6-13
+- Support More Open Api.
+
+
+## 1.8.1844 - 2023-6-13
+- Update by SDK platform.
+
+
+## 1.8.1843 - 2023-6-13
+-stream text
+
+
+## 1.8.1842 - 2023-6-12
+- Update AddFaceVideoTemplate and MergeVideoModelFace.
+
+
+## 1.8.1841 - 2023-6-12
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1840 - 2023-6-10
+- Add DistributionProducts API.
+
+
+## 1.8.1839 - 2023-6-9
+- Supported GetResourceCounts API.
+
+
+## 1.8.1838 - 2023-6-9
+- SubmitAudioTo3DAvatarVideoTask
+
+
+## 1.8.1837 - 2023-6-9
+- SubmitAudioTo3DAvatarVideoTask
+
+
+## 1.8.1836 - 2023-6-8
+- Modify endpoint for resourcemanager.
+
+
+## 1.8.1835 - 2023-6-8
+- Update SDK.
+
+
+## 1.8.1834 - 2023-6-7
+- Add new apis.
+
+
+## 1.8.1833 - 2023-6-7
+- Add Overview Query API.
+- Support Update Job With XAttrs.
+
+
+## 1.8.1832 - 2023-6-6
+- Change ListAssetSelectionTarget Request.
+
+
+## 1.8.1831 - 2023-6-5
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1830 - 2023-6-5
+- Support More Open Api.
+
+
+## 1.8.1829 - 2023-6-2
+- Supported GetResourceCounts for Resourcecenter.
+
+
+## 1.8.1828 - 2023-6-1
+- Support SNAT API.
+
+
+## 1.8.1827 - 2023-5-31
+- Release ScreenGC.
+- Release ScreenLC.
+- Release PredictCVD.
+- Release ScreenCRC.
+- Update  ScreenChestCT.
+
+
+## 1.8.1826 - 2023-5-30
+- Add Tag Open API.
+
+
+## 1.8.1825 - 2023-5-29
+- Add DistributionProducts API.
+
+
+## 1.8.1824 - 2023-5-26
+- Modify ListTaskFlowsByPage API. Add output parameters: CronBeginDate, CronEndDate. Modified input parameter CronParam as ScheduleParam.
+
+
+## 1.8.1823 - 2023-5-26
+- Add DescribeDcdnFullDomainsBlockIPConfig.
+
+
+## 1.8.1822 - 2023-5-25
+- Support AnalyzeLineage API.
+- Modify ListTaskFlowsByPage API. Add input parameters: DagIdList. Add output parameters: CronSwitch, CronStr, CronParam, TriggerType, CronType, TimeZoneId
+- Modify BackFill API. Add output parameters DagInstanceId (same as the existed parameter NodeId).
+- Modify ListTaskFlowInstance API. Add Input parameters: StartBizTime、EndBizTime.
+
+
+## 1.8.1821 - 2023-5-25
+- DescribeDemands add PrivatePoolId.
+
+
+## 1.8.1820 - 2023-5-23
+- Supported BreakCodeDetails,FirstCheckInTime, LastCheckoutTime .
+
+
+## 1.8.1819 - 2023-5-23
+- Add UpdateService GetService DeleteService.
+
+
+## 1.8.1818 - 2023-5-22
+- Add DescribeDcdnFullDomainsBlockIPHistory.
+
+
+## 1.8.1817 - 2023-5-19
+- Update SDK.
+
+
+## 1.8.1816 - 2023-5-19
+- Add DescribeDcdnDomainMd5Info.
+
+
+## 1.8.1815 - 2023-5-19
+- Add DescribeDomainMd5Info.
+
+
+## 1.8.1814 - 2023-5-19
+- DescribeInstanceAmortizedCostByAmortizationPeriodDate
+
+
+## 1.8.1813 - 2023-5-18
+- Support GetDatabase, GetPhysicalDatabase to return InstanceAlias information.
+
+
+## 1.8.1812 - 2023-5-17
+- Account Halt Check by Default.
+
+
+## 1.8.1811 - 2023-5-16
+- Add UpdateService GetService DeleteService.
+
+
+## 1.8.1810 - 2023-5-16
+- Live sdk update.
+
+
+## 1.8.1809 - 2023-5-16
+- Generate SDK for service instance APIs.
+
+
+## 1.8.1808 - 2023-5-16
+- Add response Permission.
+
+
+## 1.8.1807 - 2023-5-16
+- Live sdk update.
+
+
+## 1.8.1806 - 2023-5-15
+- Support SkipDataCorrectRowCheck API.
+
+
+## 1.8.1805 - 2023-5-12
+- Remove password in CreateFileCompressionTask.
+
+
+## 1.8.1804 - 2023-5-11
+- Add RequestDefinition.
+- Hide  endpoint.
+- Fix width and height.
+
+
+## 1.8.1803 - 2023-5-11
+- Supported sorting for DescribeDnsProduceInstances.
+
+
+## 1.8.1802 - 2023-5-11
+- Pub Support MessageExpiryInterval and Retained.
+
+
+## 1.8.1801 - 2023-5-11
+- Support Live Streaming and VOD P2P.
+
+
+## 1.8.1800 - 2023-5-11
+- Supported more api for user.
+
+
+## 1.8.1799 - 2023-5-11
+- Add AllotDatasetAccelerationTask API.
+- Update error code description.
+
+
+## 1.8.1798 - 2023-5-10
+- Supported insufficient balance check.
+- Other improvements.
+
+
+## 1.8.1797 - 2023-5-10
+- SendMessage add Feedback param
+
+
+## 1.8.1796 - 2023-5-9
+- Supported GetVideo Api.
+
+
+## 1.8.1795 - 2023-5-9
+- Remove PresetReference struct.
+
+
+## 1.8.1794 - 2023-5-8
+- whatsapp 修改Authentication类型的模板
+
+
+## 1.8.1793 - 2023-5-8
+- Supported GetVideo Api.
+
+
+## 1.8.1792 - 2023-5-6
+- Add The billingCount return value to the RunPreTrainService Api.
+
+
+## 1.8.1791 - 2023-5-6
+- Supported more api for user.
+
+
+## 1.8.1790 - 2023-5-4
+- Add SetCdnDomainSSLCertificate.
+
+
+## 1.8.1789 - 2023-4-28
+- Change api backend.
+- Modify error code.
+- Delete headers module in response.
+- Add return param .
+- Fixed bug.
+- Change to brick.
+- Supported for hiding old api.
+- Access bill.
+- Improve error code.
+- Add credit verify.
+
+
+## 1.8.1788 - 2023-4-27
+- Support return TotalCount for QueryFigureClusters.
+
+
+## 1.8.1787 - 2023-4-27
+- Release ChestCT.
+
+
+## 1.8.1786 - 2023-4-27
+- Cc5g.
+
+
+## 1.8.1785 - 2023-4-27
+- Support GetDataExportPreCheckDetail API.
+- Modify GetOpLog API.
+
+
+## 1.8.1784 - 2023-4-26
+- Api add media storage class.
+
+
+## 1.8.1783 - 2023-4-26
+- Api add media storage class.
+
+
+## 1.8.1782 - 2023-4-26
+- Package buy.
+
+
+## 1.8.1781 - 2023-4-25
+- Add UpdateConsumerOffset api.
+
+
+## 1.8.1780 - 2023-4-25
+- Iteration v2-10-0.
+
+
+## 1.8.1779 - 2023-4-25
+- Add CheckDcdnDomainExist.
+
+
+## 1.8.1778 - 2023-4-25
+- Add CheckCdnDomainExist.
+
+
+## 1.8.1777 - 2023-4-24
+- Supported GetDatabaseExportOrderDetail,CreateDatabaseExportOrder,CreateDataExportOrder API.
+- Supported CreateDataTrackOrder,GetDataTrackJobDegree,GetDataTrackJobTableMeta,GetDataTrackOrderDetail,SearchDataTrackResult,DownloadDataTrackResult,QueryDataTrackResultDownloadStatus API.
+
+
+## 1.8.1776 - 2023-4-24
+- ModifyDiskSpec add PerformanceControlOptions.
+
+
+## 1.8.1775 - 2023-4-23
+- Change parameter name to InputFile.
+
+
+## 1.8.1774 - 2023-4-21
+- Add api called SubmitAvatarVideoJob, which render virtual human videos.
+
+
+## 1.8.1773 - 2023-4-21
+- Release MergeImageFace.
+
+
+## 1.8.1772 - 2023-4-20
+- Support certFilter for getUserCertificateDetail API.
+
+
+## 1.8.1771 - 2023-4-20
+- Add response Permission.
+
+
+## 1.8.1770 - 2023-4-14
+- whatsapp 目录修改
+- 回落短信允许指定回执超时回落时间
+- 增加Whatsapp 模板中location消息类型
+
+
+## 1.8.1769 - 2023-4-11
+- Add image batch translate API.
+
+
+## 1.8.1768 - 2023-4-11
+- Supported ListDataImportSQLPreCheckDetail,GetDataImportSQL,ListDataImportSQLType API.
+
+
+## 1.8.1767 - 2023-4-10
+- DocumentInit.
+
+
+## 1.8.1766 - 2023-4-10
+- Update SDK.
+
+
+## 1.8.1765 - 2023-4-4
+- test
+
+
+## 1.8.1764 - 2023-4-4
+- Update GenerateVideoPlaylist.
+- Support car detection, text extraction APIs.
+
+
+## 1.8.1763 - 2023-4-4
+- Cc5g.
+
+
+## 1.8.1762 - 2023-4-4
+- Live sdk update.
+
+
+## 1.8.1761 - 2023-4-3
+- Release CalcBMD.
+
+
+## 1.8.1760 - 2023-3-31
+- Update by SDK platform.
+
+
+## 1.8.1759 - 2023-3-31
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1758 - 2023-3-31
+- QuerySavingsPlansInstance api add rest pool value query param. 
+
+
+## 1.8.1757 - 2023-3-29
+- Delete DescribeConfigOfVersion.
+
+
+## 1.8.1756 - 2023-3-29
+- Change visibility of param ActionType in DescribeImageSupportInstanceTypes.
+
+
+## 1.8.1755 - 2023-3-29
+- Delete SetConfigOfVersion.
+
+
+## 1.8.1754 - 2023-3-28
+- Supported getUserUploadSign for user.
+
+
+## 1.8.1753 - 2023-3-28
+- Release ReduceVideoNoise and EnhancePortraitVideo. 
+
+
+## 1.8.1752 - 2023-3-28
+- Add new API for querying the sample logs of PTS debug plan.
+- Add new return field for global header to PTS scene.
+
+
+## 1.8.1751 - 2023-3-27
+- Add dedicated block stroage cluster ModifyDiskSpec.
+- Support jumbo frame.
+
+
+## 1.8.1750 - 2023-3-24
+- Add GetDcdnKv.
+
+
+## 1.8.1749 - 2023-3-23
+- Live sdk update.
+
+
+## 1.8.1748 - 2023-3-23
+- Add FindUserReport4Alinlp Api.
+
+
+## 1.8.1747 - 2023-3-22
+- Add ListAppInstances Open API.
+
+
+## 1.8.1746 - 2023-3-22
+- Release SegmentLymphNode.
+
+
+## 1.8.1745 - 2023-3-20
+- Support DryRunCluster For LakeVersion.
+
+
+## 1.8.1744 - 2023-3-17
+- Update by SDK platform.
+
+
+## 1.8.1743 - 2023-3-17
+- Support SnapShot API.
+
+
+## 1.8.1742 - 2023-3-16
+- Increase flow control value for ListDbfs.
+- Fix errorcode.
+- Add ImageId for ListDbfsAttachableEcsInstances.
+- Support list snapshot links in batch.
+
+
+## 1.8.1741 - 2023-3-15
+- Supported AndroidMessageVivoCategory for Push and MassPush.
+- Supported AndroidHuaweiTargetUserType, AndroidHuaweiReceiptId for Push and MassPush.
+
+
+## 1.8.1740 - 2023-3-15
+- Update sdk.
+
+
+## 1.8.1739 - 2023-3-14
+- Deploy for Dypnsapi-intl.
+
+
+## 1.8.1738 - 2023-3-14
+- Update SplitVideoParts.
+
+
+## 1.8.1737 - 2023-3-10
+- Support create default VPC and create default vSwitch .
+
+
+## 1.8.1736 - 2023-3-9
+- Support DryRunCLuster.
+- Support DescribeAvailableResource DescribeComputeResource DescribeEIURange For LakeVersion.
+
+
+## 1.8.1735 - 2023-3-9
+- add FindUserReport4Alinlp Api.
+
+
+## 1.8.1734 - 2023-3-8
+- Modify Output Field.
+
+
+## 1.8.1733 - 2023-3-8
+- Supported java
+
+
+## 1.8.1732 - 2023-3-8
+- offline Add word subtitle
+
+
+## 1.8.1731 - 2023-3-7
+- QuerySavingsPlansInstance api add status query param. 
+
+
+
+## 1.8.1730 - 2023-3-7
+- Supported java
+
+
+## 1.8.1729 - 2023-3-7
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1728 - 2023-3-7
+- Support JobRetry parameters in SubmitJob API.
+
+
+## 1.8.1727 - 2023-3-7
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1726 - 2023-3-6
+- Iot_20180120 TeaDSL SDK.
+
+
+## 1.8.1725 - 2023-3-6
+- Get the capicity which cloud siem user used until yesterday.
+
+
+## 1.8.1724 - 2023-3-3
+- Update DescribeDcdnUserTags.
+
+
+## 1.8.1723 - 2023-3-3
+- Update SDK.
+
+
+## 1.8.1722 - 2023-3-3
+- Update EvaluateVideoQuality.
+
+
+## 1.8.1721 - 2023-3-3
+- Release GenerateHumanAnimeStyleVideo.
+
+
+## 1.8.1720 - 2023-3-2
+- Add a API QueryDeviceProvisioning to support query provisioning info for device.
+
+
+## 1.8.1719 - 2023-3-2
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1718 - 2023-3-2
+- Publish AssumeRole API With ExternalId Parameter.
+
+
+## 1.8.1717 - 2023-3-2
+- Release.
+
+
+## 1.8.1716 - 2023-3-2
+- Generated 2019-05-10 for `ltl`.
+
+
+## 1.8.1715 - 2023-3-2
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1714 - 2023-3-2
+- Api DescribeVodDomainUsageData add parameter Interval.
+
+
+## 1.8.1713 - 2023-3-2
+- Add new apis.
+- DescribeDatabaseInstances.
+- StartDatabaseInstance.
+- StopDatabaseInstance.
+- RetartDatabaseInstance.
+- ResetDatabaseAccountPassword.
+- AllocatePublicConnection.
+- ReleasePublicConnection.
+- DescribeDatabaseInstanceMetricData.
+- DescribeDatabaseSlowLogRecords.
+- DescribeDatabaseErrorLogs.
+- DescribeDatabaseInstanceParameters.
+- ModifyDatabaseInstanceParameter.
+
+
+## 1.8.1712 - 2023-3-1
+- Add jobResults params in GetSmartHandleJob API.
+
+
+## 1.8.1711 - 2023-3-1
+- Change param invisible.
+
+
+## 1.8.1710 - 2023-2-28
+- Live sdk update.
+
+
+## 1.8.1709 - 2023-2-27
+- Create Job Support Timezone.
+- Update Job Support Timezone.
+
+
+## 1.8.1708 - 2023-2-27
+- Supported SDK AD for version-3.
+
+
+## 1.8.1707 - 2023-2-27
+- Support for deploy.
+
+
+## 1.8.1706 - 2023-2-27
+- Sync new APIs.
+
+
+## 1.8.1705 - 2023-2-27
+- QuerySavingsPlansInstance api add status query param. 
+
+
+
+## 1.8.1704 - 2023-2-27
+- Update imgsearch.
+
+
+## 1.8.1703 - 2023-2-25
+- Add SetCdnDomainSSLCertificate.
+
+
+## 1.8.1702 - 2023-2-25
+- Update DescribeDcdnDomainUsageData.
+
+
+## 1.8.1701 - 2023-2-24
+- Change backend api.
+- Change to new api.
+
+
+## 1.8.1700 - 2023-2-23
+- Get Job Instance Add RegionId.
+
+
+## 1.8.1699 - 2023-2-22
+- Update EvaluateVideoQuality.
+
+
+## 1.8.1698 - 2023-2-22
+- Release GenerateHumanAnimeStyleVideo.
+
+
+## 1.8.1697 - 2023-2-22
+- Change DescribeLogstoreStorage Response.
+
+
+## 1.8.1696 - 2023-2-22
+- Update EvaluateVideoQuality.
+
+
+## 1.8.1695 - 2023-2-22
+- Supported more language for resourcemanager.
+
+
+## 1.8.1694 - 2023-2-21
+- Supported GetQccSearchCertification and GetQccCertificationDetailById Api For Zhimaxinyong.
+
+
+## 1.8.1693 - 2023-2-21
+- Update AppGroup Hide xattrs.
+- Get AppGroup Hide xattrs.
+- Create AppGroup HIde xattrs.
+- Get AppGroup Hide appGroupId.
+
+
+## 1.8.1692 - 2023-2-21
+- Cc5g.
+
+
+## 1.8.1691 - 2023-2-21
+- Lingjun Controller Initial Version Released.
+
+
+## 1.8.1690 - 2023-2-17
+- Release GenerateSuperResolutionImage.
+
+
+## 1.8.1689 - 2023-2-17
+- Add CODE128 and EAN13 Support.
+
+
+## 1.8.1688 - 2023-2-17
+- Remove some useless response parameters.
+
+
+## 1.8.1687 - 2023-2-17
+- Update by SDK platform.
+
+
+## 1.8.1686 - 2023-2-16
+- Update by SDK platform.
+
+
+## 1.8.1685 - 2023-2-15
+- Update RecognizeVideoCharacter.
+
+
+## 1.8.1684 - 2023-2-14
+- Update ScreenChestCT and DetectLungNodule.
+
+
+## 1.8.1683 - 2023-2-13
+- SubscribeBillToOSS add param: RowLimitPerFile. 
+
+
+## 1.8.1682 - 2023-2-13
+- Support TagPolicy Verify NoTag.
+- Fixed bugs for DescribeDemands error code.
+- Add encrypted disk ErrorCode.
+- DescribeDedicatedHosts supports SocketDetails param to check socket capacities of specified dedicated hosts.
+
+
+## 1.8.1681 - 2023-2-10
+- Support broadcast for FengTian.
+
+
+## 1.8.1680 - 2023-2-10
+- Add DescribeCdnIpCidr.
+
+
+## 1.8.1679 - 2023-2-10
+- Change DescribeLogstoreStorage Response.
+
+
+## 1.8.1678 - 2023-2-10
+- Add service label api.
+
+
+## 1.8.1677 - 2023-2-10
+- Support Create Workflow.
+- Support Update Workflow DAG.
+- Support Get Workflow Instance and DAG.
+- Support Retry Job Instance.
+- Support Get Log.
+- Create Job Add FailTimes and SuccessNoticeEnable.
+
+
+## 1.8.1676 - 2023-2-10
+- Live sdk update.
+
+
+## 1.8.1675 - 2023-2-9
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1674 - 2023-2-9
+- Release GenerateSuperResolutionImage.
+
+
+## 1.8.1673 - 2023-2-7
+- add all language sdk.
+
+
+## 1.8.1672 - 2023-2-7
+- Add other language.
+
+
+## 1.8.1671 - 2023-2-6
+- Public ListServiceUsages  OpenApi.
+
+
+## 1.8.1670 - 2023-2-6
+- Support system tag.
+
+
+## 1.8.1669 - 2023-2-3
+- Insert ahas into mse.
+- Supported gray.
+
+
+## 1.8.1668 - 2023-2-3
+- Suport mse nologin.
+- Support mse nologin.
+- Fixed bugs timeout for ListEngineNamespaces.
+- Fixed api description.
+- Support change mseVersion.
+- Support listNamespace source type.
+- Support for checking Lua.
+
+
+## 1.8.1667 - 2023-2-3
+- Release GenerateImageWithText GenerateImageWithTextAndImage.
+
+
+## 1.8.1666 - 2023-2-3
+- Release CompareFaceWithMask DetectInfraredLivingFace.
+
+
+## 1.8.1665 - 2023-2-3
+- Fix docs error.
+- Fix error code.
+- Set input param must.
+
+
+## 1.8.1664 - 2023-2-2
+- Release TargetVolumeSegment.
+
+
+## 1.8.1663 - 2023-2-2
+- Update by SDK platform.
+
+
+## 1.8.1662 - 2023-2-2
+- Support Async parameter in DescribeJob API.
+
+
+## 1.8.1661 - 2023-2-1
+- SubmitTextTo2DAvatarVideoTask add new params code.
+
+
+## 1.8.1660 - 2023-1-31
+- Supported parameter nepochs and lr for CreateModel Api.
+
+
+## 1.8.1659 - 2023-1-31
+- Supported set high definition monitor log status for eip.
+- Supported batch associate eip to cloud products.
+- Supported VpcDescribeVpcNatGatewayNetworkInterfaceQuota.
+
+
+## 1.8.1658 - 2023-1-31
+- Supported new features for outbound.
+
+
+## 1.8.1657 - 2023-1-31
+- Update PushObjectCache.
+
+
+## 1.8.1656 - 2023-1-30
+- Modify DescribeApis.
+
+
+## 1.8.1655 - 2023-1-29
+- Update autoSnapshotPolicy.
+
+
+## 1.8.1654 - 2023-1-19
+- Change DescribeLogstoreStorage Response.
+
+
+## 1.8.1653 - 2023-1-17
+- Update PreloadScdnObjectCaches.
+
+
+## 1.8.1652 - 2023-1-17
+- Update PushObjectCache.
+
+
+## 1.8.1651 - 2023-1-13
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1650 - 2023-1-13
+- Supported new features for outbound.
+
+
+## 1.8.1649 - 2023-1-13
+- Support Service of empty number.
+
+
+## 1.8.1648 - 2023-1-13
+- Supported GetProxy, ListProxies to return RegionId information.
+- Supported SearchDatabase to return CatalogName information.
+
+
+## 1.8.1647 - 2023-1-11
+- Add OnsMessageDetail for query message body.
+
+
+## 1.8.1646 - 2023-1-10
+- Add DescribePreloadDetailById.
+
+
+## 1.8.1645 - 2023-1-10
+- Support ResourceGroup.
+
+
+## 1.8.1644 - 2023-1-9
+- Supported adjust PTS scene speed.
+- Supported open PTS product.
+
+
+## 1.8.1643 - 2023-1-9
+- Delete numberType.
+
+
+## 1.8.1642 - 2023-1-6
+- Release DetectInfraredLivingFace and CompareFaceWithMask.
+
+
+## 1.8.1641 - 2023-1-6
+- Add error code for ModifyInstanceNetworkSpec.
+- Add invalid account buying spot error code.
+- Support ip prefix for eni.
+- Update the StorageLocationArn to private.
+- Security Group Rule support rule id.
+
+
+## 1.8.1640 - 2023-1-5
+- 增加IP协议版本配置接口.
+
+
+## 1.8.1639 - 2023-1-5
+- add QueryTimedResetOperateStatus api.
+- add CloseTimedResetOperate api.
+- add StartTimedResetOperate api.
+
+
+## 1.8.1638 - 2023-1-5
+- Live sdk update.
+
+
+## 1.8.1637 - 2023-1-5
+- Fix bug for name of TotalSize.
+- Fix bug for name of totalSize.
+- Support force delete dbfs.
+
+
+## 1.8.1636 - 2023-1-4
+- Support RamRoleName and RamNodeTypes parameter in ModifyClusterAttributes APIs.
+
+
+## 1.8.1635 - 2023-1-4
+- Public ListServiceInstances and GetServiceInstance OpenApi.
+
+
+## 1.8.1634 - 2023-1-3
+- Pub Support MessageExpiryInterval and Retained.
+- Rrpc Support ContentType.
+- BatchImportVehicleDevice batch create device by jt808 protocol.
+- BatchCheckVehicleDevice batch check device by jt808 protocol.
+- QueryVehicleDevice query jt808 device information.
+
+
+## 1.8.1633 - 2023-1-3
+- Supported snapshot link for DBFS.
+- Supported showing snapshot info.
+- Support for showing snapshot info.
+
+
+## 1.8.1632 - 2023-1-3
+- First publish.
+
+
+## 1.8.1631 - 2022-12-29
+- Update by SDK platform.
+
+
+## 1.8.1630 - 2022-12-29
+- Live sdk update.
+
+
+## 1.8.1629 - 2022-12-28
+- Added ElasticSearch Serverless SDK.
+
+
+## 1.8.1628 - 2022-12-28
+- Live sdk update.
+
+
+## 1.8.1627 - 2022-12-27
+- Add ModifyCdnDomainOwner.
+
+
+## 1.8.1626 - 2022-12-27
+- Add DescribeDcdnWafLogs.
+
+
+## 1.8.1625 - 2022-12-27
+- Support Snapshot API.
+
+
+## 1.8.1624 - 2022-12-23
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1623 - 2022-12-23
+- Publish Swift.
+
+
+## 1.8.1622 - 2022-12-23
+- Update api ExecuteServerSideVerification The base64 data format is changed from string byte to string.
+
+
+## 1.8.1621 - 2022-12-22
+- SubmitTextTo2DAvatarVideoTask add new params.
+
+
+## 1.8.1620 - 2022-12-22
+- Publish Swift.
+
+
+## 1.8.1619 - 2022-12-22
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1618 - 2022-12-21
+- update.
+
+
+## 1.8.1617 - 2022-12-21
+- Supported GetProxyAccess API.
+
+
+## 1.8.1616 - 2022-12-20
+- Update imageaudit.
+
+
+## 1.8.1615 - 2022-12-16
+- Release MergeVideoModelFace.
+
+
+## 1.8.1614 - 2022-12-16
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1613 - 2022-12-15
+- Supported delete snapshots.
+- Supported auto snapshot.
+- Fix docx.
+
+
+## 1.8.1612 - 2022-12-15
+- Update DetectVehicleICongestion DetectVehicleIllegalParking.
+
+
+## 1.8.1611 - 2022-12-14
+- Publish Swift.
+
+
+## 1.8.1610 - 2022-12-14
+- Release MergeVideoModelFace.
+
+
+## 1.8.1609 - 2022-12-14
+- Update MakeSuperResolutionImage.
+
+
+## 1.8.1608 - 2022-12-14
+- Release EstimateMonocularVideoDepth.
+
+
+## 1.8.1607 - 2022-12-14
+- Add GetMetaProductList api.
+
+
+## 1.8.1606 - 2022-12-9
+- Update SDK.
+
+
+## 1.8.1605 - 2022-12-9
+- Update MakeSuperResolutionImage.
+
+
+## 1.8.1604 - 2022-12-9
+- Delete DescribeLiveStreamRecordContent.
+
+
+## 1.8.1603 - 2022-12-8
+- Publish Swift.
+
+
+## 1.8.1602 - 2022-12-8
+- Release ScreenEC.
+
+
+## 1.8.1601 - 2022-12-7
+- Update Endpoint.
+
+
+## 1.8.1600 - 2022-12-7
+- Support async parameter in Job APIs.
+
+
+## 1.8.1599 - 2022-12-5
+- Add API DescribeVodDomainSrcBpsData.
+- Add API DescribeVodDomainSrcTrafficData.
+
+
+## 1.8.1598 - 2022-12-5
+- Add list live message interface.
+
+
+## 1.8.1597 - 2022-12-5
+- Modify QueryRequestLogs.
+
+
+## 1.8.1596 - 2022-12-5
+- Add support for secret.
+
+
+## 1.8.1595 - 2022-12-5
+- Publish Swift.
+
+
+## 1.8.1594 - 2022-12-5
+- Add list live message interface.
+
+
+## 1.8.1593 - 2022-12-2
+- Support live interaction and message.
+
+
+## 1.8.1592 - 2022-12-2
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1591 - 2022-12-2
+- Change DescribeLogstoreStorage Response.
+
+
+## 1.8.1590 - 2022-12-2
+- Pub Support PayloadFormatIndicator and ContentType.
+
+
+## 1.8.1589 - 2022-12-2
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1588 - 2022-12-2
+- Release MergeVideoModelFace.
+
+
+## 1.8.1587 - 2022-12-2
+- Update APIs.
+
+
+## 1.8.1586 - 2022-12-2
+- First issue.
+
+
+## 1.8.1585 - 2022-12-2
+- Supported GetStructSyncOrderDetail OrderId param required.
+
+
+## 1.8.1584 - 2022-12-1
+- Storage open Api.
+
+
+## 1.8.1583 - 2022-12-1
+- Release ScreenEC.
+
+
+## 1.8.1582 - 2022-12-1
+- Supported more language for resourcemanager.
+
+
+## 1.8.1581 - 2022-12-1
+- Fixed bugs for GetScriptFileNames result.pathName
+- Fixed bugs for RenewAppGroup result
+
+
+## 1.8.1580 - 2022-11-30
+- Support resourceGroup.
+
+
+## 1.8.1579 - 2022-11-30
+- SubmitTextTo2DAvatarVideoTask add new params.
+
+
+## 1.8.1578 - 2022-11-30
+- Release MergeVideoModelFace.
+
+
+## 1.8.1577 - 2022-11-30
+- Release ScreenEC.
+
+
+## 1.8.1576 - 2022-11-29
+- Generated 2018-05-09 for `Green`.
+
+
+## 1.8.1575 - 2022-11-29
+- Add DescribePluginApis.
+- Modify CreateApp.
+- Modify DeleteApp.
+
+
+## 1.8.1574 - 2022-11-29
+- Update DescribeDcdnDeletedDomains.
+
+
+## 1.8.1573 - 2022-11-29
+- SubmitTextTo2DAvatarVideoTask add new params.
+
+
+## 1.8.1572 - 2022-11-29
+- Support DescribeARMServerInstances.
+- Support DeleteInstances.
+
+
+## 1.8.1571 - 2022-11-25
+- SubmitTextTo2DAvatarVideoTask add new params.
+
+
+## 1.8.1570 - 2022-11-25
+- Release CustomizeClassifyImage.
+
+
+## 1.8.1569 - 2022-11-24
+- Support deleteCertificate.
+
+
+## 1.8.1568 - 2022-11-24
+- Release CustomizeClassifyImage.
+
+
+## 1.8.1567 - 2022-11-23
+- Supported GetDataCronClearConfig,GetDataCorrectRollbackFile,GetOrderAttachmentFile API.
+
+
+## 1.8.1566 - 2022-11-22
+- Add OpenAPI GetInstanceMetrics.
+- OpenAPI DescribeEais Add return parameter StartTime.
+
+
+## 1.8.1565 - 2022-11-22
+- Support More Open Api.
+
+
+## 1.8.1564 - 2022-11-21
+- RunasUserPassword is not required in CreateJobFile.
+- RunasUserPassword not required in SubmitJob.
+- Add new api GetJobLog.
+
+
+## 1.8.1563 - 2022-11-18
+- Update RefineMask.
+
+
+## 1.8.1562 - 2022-11-17
+- Update DescribeRDDomainConfig.
+
+
+## 1.8.1561 - 2022-11-17
+- Add DescribeRDDomainConfig.
+
+
+## 1.8.1560 - 2022-11-17
+- Update BatchDescribeCdnIpInfo.
+
+
+## 1.8.1559 - 2022-11-17
+- Add DescribeRDDomainConfig.
+
+
+## 1.8.1558 - 2022-11-17
+- Support GetCertWarehouseQuota.
+
+
+## 1.8.1557 - 2022-11-16
+- Publish Swift.
+
+
+## 1.8.1556 - 2022-11-16
+- Add ImportOAS.
+
+
+## 1.8.1555 - 2022-11-16
+- RunasUserPassword is not required in CreateJobFile.
+- RunasUserPassword not required in SubmitJob.
+- Add new api GetJobLog.
+
+
+## 1.8.1554 - 2022-11-15
+- Add renew and modify instance pay type api.
+
+
+## 1.8.1553 - 2022-11-11
+- Update sdk version.
+
+
+## 1.8.1552 - 2022-11-11
+- Release EstimateMonocularVideoDepth.
+
+
+## 1.8.1551 - 2022-11-11
+- Release CustomizeClassifyImage.
+
+
+## 1.8.1550 - 2022-11-10
+- Update imageaudit.
+
+
+## 1.8.1549 - 2022-11-10
+- Release MergeVideoModelFace.
+
+
+## 1.8.1548 - 2022-11-10
+- Update TaggingAdImage.
+
+
+## 1.8.1547 - 2022-11-10
+- Publish Swift.
+
+
+## 1.8.1546 - 2022-11-10
+- Release RecognizeVATInvoice.
+
+
+## 1.8.1545 - 2022-11-9
+- Release EstimateMonocularVideoDepth.
+
+
+## 1.8.1544 - 2022-11-9
+- Release CustomizeClassifyImage.
+
+
+## 1.8.1543 - 2022-11-7
+- Support encrypt and decrypt.
+
+
+## 1.8.1542 - 2022-11-7
+- Update StartExecution add Parameter TemplateURL.
+   Update StartExecution Parameter TemplateName to optional.
+   Update ValidateTemplateContent add Parameter TemplateURL.
+   Update ValidateTemplateContent Parameter TemplateConten to optional.
+
+
+## 1.8.1541 - 2022-11-7
+- Cc5g.
+
+
+## 1.8.1540 - 2022-11-4
+- Release ScreenEC.
+
+
+## 1.8.1539 - 2022-11-3
+- Support encrypt and decrypt.
+
+
+## 1.8.1538 - 2022-11-2
+- ListJobs return JobType and XAttrs.
+- GetJobInfo return JobType and XAttrs.
+
+
+## 1.8.1537 - 2022-11-1
+- Update RefineMask.
+
+
+## 1.8.1536 - 2022-10-31
+- Live pre sdk test.
+
+
+## 1.8.1535 - 2022-10-28
+- Support BuyPayAsYouGoOrder, RefundPayAsYouGoOrder, ListEffectiveOrders, ListClassificationTemplates.
+- Modify RegisterInstance, UpdateInstance, ListInstances, GetInstance, GetApprovalDetail.
+
+
+## 1.8.1534 - 2022-10-28
+- Support Latest APIs.
+
+
+## 1.8.1533 - 2022-10-27
+- Add BatchDescribeCdnIpInfo.
+
+
+## 1.8.1532 - 2022-10-27
+- Update BatchAddDcdnDomain,add error code.
+
+
+## 1.8.1531 - 2022-10-27
+- Iot_20180120 Old sdk.
+
+
+## 1.8.1530 - 2022-10-27
+- Add DescribeWildcardDomainDetailData.
+
+
+## 1.8.1529 - 2022-10-27
+- ListNodesByQueue and ListJobsWithFilters add Async.
+
+
+## 1.8.1528 - 2022-10-27
+- Modify DescribeVodUserDomains api.
+- Modify CreateUploadImage api.
+
+
+## 1.8.1527 - 2022-10-25
+- OpenAPI CreateEaiJupyter add optional parameter `EnvironmentVar`.
+
+
+## 1.8.1526 - 2022-10-20
+- Support Service of number analysis.
+
+
+## 1.8.1525 - 2022-10-19
+- Update by SDK platform.
+
+
+## 1.8.1524 - 2022-10-19
+- Supported more language for resourcemanager.
+
+
+## 1.8.1523 - 2022-10-19
+- Update Lindorm OpenAPI.
+
+
+## 1.8.1522 - 2022-10-18
+- Update MakeSuperResolutionImage.
+
+
+## 1.8.1521 - 2022-10-17
+- Update RefineMask.
+
+
+## 1.8.1520 - 2022-10-17
+- Update TaggingAdImage.
+
+
+## 1.8.1519 - 2022-10-17
+- Release MergeVideoModelFace.
+
+
+## 1.8.1518 - 2022-10-17
+- Release EstimateMonocularVideoDepth.
+
+
+## 1.8.1517 - 2022-10-17
+- Release RecognizeVATInvoice.
+
+
+## 1.8.1516 - 2022-10-17
+- Update DetectVehicleICongestion DetectVehicleIllegalParking.
+
+
+## 1.8.1515 - 2022-10-17
+- Update videoseg.
+
+
+## 1.8.1514 - 2022-10-17
+- Release ScreenEC.
+
+
+## 1.8.1513 - 2022-10-17
+- Update RecognizeVideoCastCrewList.
+
+
+## 1.8.1512 - 2022-10-14
+- Add GPUMemorySize to DescribeInstanceTypes api.
+
+
+## 1.8.1511 - 2022-10-14
+- Release RecognizeVATInvoice.
+
+
+## 1.8.1510 - 2022-10-13
+- Support DescribeAICImages.
+
+
+## 1.8.1509 - 2022-10-13
+- Supported AndroidNotificationGroup for Push and MassPush.
+- Add Honor channel support.
+
+
+## 1.8.1508 - 2022-10-13
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1507 - 2022-10-13
+- Supported AnchorId for CreateUnionTask.
+
+
+## 1.8.1506 - 2022-10-10
+- Add OpenAPI CreateEaiJupyter.
+- Fixd bugs for OpenAPI  DeleteEaiAll.
+
+
+## 1.8.1505 - 2022-10-8
+- Update by SDK platform.
+
+
+## 1.8.1504 - 2022-9-29
+- Update MakeSuperResolutionImage.
+
+
+## 1.8.1503 - 2022-9-29
+- Release MergeVideoModelFace.
+
+
+## 1.8.1502 - 2022-9-29
+- Update RefineMask.
+
+
+## 1.8.1501 - 2022-9-29
+- Update CompareFace.
+
+
+## 1.8.1500 - 2022-9-29
+- Update DetectVehicleICongestion DetectVehicleIllegalParking.
+
+
+## 1.8.1499 - 2022-9-29
+- Update RecognizeVideoCastCrewList.
+
+
+## 1.8.1498 - 2022-9-29
+- Update Job Support Incremental Updating.
+
+
+## 1.8.1497 - 2022-9-28
+- Change RefreshAssets Public.
+
+
+## 1.8.1496 - 2022-9-27
+- Create Job Support XAttrs.
+
+
+## 1.8.1495 - 2022-9-27
+- Update by SDK platform.
+
+
+## 1.8.1494 - 2022-9-23
+- Supprt for CreateUnionTask.
+
+
+## 1.8.1493 - 2022-9-23
+- Support ipv4-network.
+
+
+## 1.8.1492 - 2022-9-22
+- Release EstimateMonocularVideoDepth.
+
+
+## 1.8.1491 - 2022-9-22
+- Release CustomizeClassifyImage.
+
+
+## 1.8.1490 - 2022-9-21
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.1489 - 2022-9-21
+- Automatically generate sdk tasks.
+
+
+## 1.8.1488 - 2022-9-21
+- Release ScreenEC.
+
+
+## 1.8.1487 - 2022-9-20
+- Remove useless Agent parameters.
+
+
+## 1.8.1486 - 2022-9-19
+- Release CustomizeClassifyImage.
+
+
+## 1.8.1485 - 2022-9-19
+- Release EstimateMonocularVideoDepth.
+
+
+## 1.8.1484 - 2022-9-19
+- Change RefreshAssets Public.
+
+
+## 1.8.1483 - 2022-9-16
+- Add location endpoint.
+
+
+## 1.8.1482 - 2022-9-16
+- Init amp.
+
+
+## 1.8.1481 - 2022-9-16
+- Init amp.
+
+
+## 1.8.1480 - 2022-9-16
+- Init amp.
+
+
+## 1.8.1479 - 2022-9-16
+- Update DescribeDcdnReport.
+
+
+## 1.8.1478 - 2022-9-16
+- Update DescribeCdnReport.
+
+
+## 1.8.1477 - 2022-9-16
+- Iot_20180120 old version sdk.
+
+
+## 1.8.1476 - 2022-9-15
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.1475 - 2022-9-15
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.1474 - 2022-9-14
+- Add spInstanceId and spInstanceType for api OnsInstanceBaseInfo.
+
+
+## 1.8.1473 - 2022-9-14
+- Generated 2017-07-14 for `EHPC`.
+
+
+## 1.8.1472 - 2022-9-13
+- Update DescribeDcdnL2Vips.
+
+
+## 1.8.1471 - 2022-9-8
+- Add API BatchAddFeishuUsers.
+
+
+## 1.8.1470 - 2022-9-8
+- Update API Error Code And Some Parameters Checks.
+- Update API CreateTicket QPS.
+
+
+## 1.8.1469 - 2022-9-8
+- Change RefreshAssets Public.
+
+
+## 1.8.1468 - 2022-9-8
+- Change RefreshAssets Public.
+
+
+## 1.8.1467 - 2022-9-7
+- SmartSales-OpenAPI.
+
+
+## 1.8.1466 - 2022-9-7
+- Support attribute filtering for DescribeInstanceTypes.
+- Provide cpuArchitecture and insatnceCategory attribute in DescribeInstanceTypes.
+
+
+## 1.8.1465 - 2022-9-6
+- Iot_20180120 old version sdk.
+
+
+## 1.8.1464 - 2022-9-5
+- Update sdk.
+
+
+## 1.8.1463 - 2022-9-5
+- Support STS.
+
+
+## 1.8.1462 - 2022-9-5
+- Support STS.
+
+
+## 1.8.1461 - 2022-9-5
+- Init.
+
+
+## 1.8.1460 - 2022-9-1
+- Add DescribeDcdnL2Vips.
+
+
+## 1.8.1459 - 2022-8-31
+- Support STS.
+
+
+## 1.8.1458 - 2022-8-31
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1457 - 2022-8-31
+- Support STS.
+
+
+## 1.8.1456 - 2022-8-31
+- Support More Open Api.
+
+
+## 1.8.1455 - 2022-8-31
+- Init.
+
+
+## 1.8.1454 - 2022-8-31
+- Change GetFileDetectResult Public.
+
+
+## 1.8.1453 - 2022-8-31
+- Update ListFpShotFiles and ImAudit.
+
+
+## 1.8.1452 - 2022-8-31
+- Support create image with boot mode.
+- Provide image boot mode info in DescribeImages.
+
+
+## 1.8.1451 - 2022-8-31
+- Add API.
+
+
+## 1.8.1450 - 2022-8-31
+- Supported new features etc.
+
+
+## 1.8.1449 - 2022-8-25
+- Iot_20180120 Old sdk.
+
+
+## 1.8.1448 - 2022-8-25
+- Add kms apis.
+
+
+## 1.8.1447 - 2022-8-25
+- Add kms apis.
+
+
+## 1.8.1446 - 2022-8-24
+- Update ScreenChestCT.
+
+
+## 1.8.1445 - 2022-8-22
+- Fix CreateSyntheticTask api.
+
+
+## 1.8.1444 - 2022-8-22
+- Change GetFileDetectResult Public.
+
+
+## 1.8.1443 - 2022-8-22
+- Automatically generate sdk tasks.
+
+
+## 1.8.1442 - 2022-8-22
+- Automatically generate sdk tasks.
+
+
+## 1.8.1441 - 2022-8-18
+- Supported new features etc.
+
+
+## 1.8.1440 - 2022-8-18
+- Supported new features for outbound.
+
+
+## 1.8.1439 - 2022-8-18
+- Bump version.
+
+
+## 1.8.1438 - 2022-8-16
+- Change GetFileDetectResult Public.
+
+
+## 1.8.1437 - 2022-8-16
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1436 - 2022-8-16
+- Update Lindorm OpenAPI.
+
+
+## 1.8.1435 - 2022-8-15
+- update Lindorm OpenAPI.
+
+
+## 1.8.1434 - 2022-8-11
+- AMP version.
+
+
+## 1.8.1433 - 2022-8-11
+- Fix ListManagedRules bugs.
+
+
+## 1.8.1432 - 2022-8-11
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1431 - 2022-8-9
+- Support API ARMInstance.
+- Support Control ARM API.
+
+
+## 1.8.1430 - 2022-8-8
+- ListOrderConsumeStatisticRecords add AliOrderCode.
+
+
+## 1.8.1429 - 2022-8-5
+- Automatically generate sdk tasks.
+
+
+## 1.8.1428 - 2022-8-3
+- Supported more query conditions when searching resource group.
+
+
+## 1.8.1427 - 2022-8-1
+- Update CreateKey and CreateSecret.
+
+
+## 1.8.1426 - 2022-7-29
+- AMP version.
+
+
+## 1.8.1425 - 2022-7-29
+- Change ListCheckInstanceResult Public.
+
+
+## 1.8.1424 - 2022-7-29
+- AMP version.
+
+
+## 1.8.1423 - 2022-7-29
+- AMP version.
+
+
+## 1.8.1422 - 2022-7-28
+- Fix bug.
+
+
+## 1.8.1421 - 2022-7-28
+- Automatically generate sdk tasks.
+
+
+## 1.8.1420 - 2022-7-28
+- Add GetImageInfos api.
+
+
+## 1.8.1419 - 2022-7-27
+- Support ListProxies API to return protocolType, protocolPort and remove mysqlPort.
+- Support GetProxy API to return protocolType, protocolPort and remove mysqlPort.
+
+
+## 1.8.1418 - 2022-7-27
+ - Update.
+
+
+## 1.8.1417 - 2022-7-26
+- Support Service of number analysis.
+
+
+## 1.8.1416 - 2022-7-26
+- Change ListCheckInstanceResult Public.
+
+
+## 1.8.1415 - 2022-7-26
+- Support API ARMInstance.
+- Support Control ARM API.
+
+
+## 1.8.1414 - 2022-7-26
+- Change ListCheckInstanceResult Public.
+
+
+## 1.8.1413 - 2022-7-25
+- Change ListCheckInstanceResult GetCheckDetail Public.
+
+
+## 1.8.1412 - 2022-7-25
+- Update MonitorExamination.
+
+
+## 1.8.1411 - 2022-7-25
+- Update SegmentOAR.
+
+
+## 1.8.1410 - 2022-7-25
+- Change ListCheckInstanceResult GetCheckDetail Public.
+
+
+## 1.8.1409 - 2022-7-22
+- Change ListCheckInstanceResult GetCheckDetail Public.
+
+
+## 1.8.1408 - 2022-7-22
+- Update ScreenChestCT  Release SegmentOAR.
+
+
+## 1.8.1407 - 2022-7-22
+- Update ScreenChestCT - Release SegmentOAR.
+
+
+## 1.8.1406 - 2022-7-21
+- Support PreConfigRule.
+
+
+## 1.8.1405 - 2022-7-21
+- Add kms apis.
+
+
+## 1.8.1404 - 2022-7-21
+- Ram action config.
+
+
+## 1.8.1403 - 2022-7-21
+- Add Body Detection and Image Splicing API.
+
+
+## 1.8.1402 - 2022-7-20
+- Change getFileDetectResult.
+
+
+## 1.8.1401 - 2022-7-20
+- Support AK Audit API.
+
+
+## 1.8.1400 - 2022-7-20
+- Add Body Detection and Image Splicing API.
+
+
+## 1.8.1399 - 2022-7-20
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1398 - 2022-7-18
+- Change cspm ListCheckResult api.
+
+
+## 1.8.1397 - 2022-7-18
+- Support Elastic Desktop Service.
+
+
+## 1.8.1396 - 2022-7-18
+- Test.
+
+
+## 1.8.1395 - 2022-7-15
+- Add cspm ListCheckResult api.
+
+
+## 1.8.1394 - 2022-7-15
+- Add open file detect api.
+
+
+## 1.8.1393 - 2022-7-15
+- Support Security Group Batch Manager Rules.
+
+
+## 1.8.1392 - 2022-7-14
+- Supported version 5.
+
+
+## 1.8.1391 - 2022-7-12
+- Automatically generate sdk tasks.
+
+
+## 1.8.1390 - 2022-7-11
+- Support Storage And Network Features For LaunchTemplate.
+
+
+## 1.8.1389 - 2022-7-11
+- Add new api for rule.
+
+
+## 1.8.1388 - 2022-7-11
+- Add open file detect api.
+
+
+## 1.8.1387 - 2022-7-8
+- Automatically generate sdk tasks.
+
+
+## 1.8.1386 - 2022-7-8
+- Automatically generate sdk tasks.
+
+
+## 1.8.1385 - 2022-7-8
+- Support AK Audit API.
+
+
+## 1.8.1384 - 2022-7-4
+- Add API QueryEmbeddedStaus.
+
+
+## 1.8.1383 - 2022-7-4
+- Update API error codes.
+- Adjust parameters verification rules for some APIs.
+
+
+## 1.8.1382 - 2022-7-1
+- Update sdk.
+
+
+## 1.8.1381 - 2022-6-30
+- Add Policy APIs.
+
+
+## 1.8.1380 - 2022-6-30
+- CreateMigrationJob SDK.
+
+
+## 1.8.1379 - 2022-6-30
+- Update ListFaceDbs.
+
+
+## 1.8.1378 - 2022-6-28
+- Update QuerySavingsPlansDeductLog add field OwnerId.
+
+
+## 1.8.1377 - 2022-6-28
+- Update RecognizeVideoCastCrewList.
+
+
+## 1.8.1376 - 2022-6-28
+- Support Service of number analysis.
+
+
+## 1.8.1375 - 2022-6-24
+- Update ScreenChestCT.
+
+
+## 1.8.1374 - 2022-6-24
+- Supported new features etc.
+
+
+## 1.8.1373 - 2022-6-24
+- Supported new features for outbound.
+
+
+## 1.8.1372 - 2022-6-22
+- Fix bugs.
+
+
+## 1.8.1371 - 2022-6-21
+- Automatically generate sdk tasks.
+
+
+## 1.8.1370 - 2022-6-21
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.1369 - 2022-6-21
+- Release RecognizeTurkeyIdentityCard RecognizeMalaysiaIdentityCard RecognizeRussiaIdentityCard RecognizeIndonesiaIdentityCard RecognizeUkraineIdentityCard RecognizeVietnamIdentityCard.
+
+
+## 1.8.1368 - 2022-6-20
+- Update ScreenChestCT CalcCACS.
+
+
+## 1.8.1367 - 2022-6-20
+- Update MakeSuperResolutionImage.
+
+
+## 1.8.1366 - 2022-6-20
+- Support Easy Connect New API.
+
+
+## 1.8.1365 - 2022-6-20
+- Add EventId when listQuery EventInfo.
+
+
+## 1.8.1364 - 2022-6-13
+- Update ScreenChestCT.
+
+
+## 1.8.1363 - 2022-6-13
+- Create Job Support Setting Status.
+
+
+## 1.8.1362 - 2022-6-10
+- Support removing a instance from a deployment set
+
+
+## 1.8.1361 - 2022-6-9
+- Update ScreenChestCT.
+
+
+## 1.8.1360 - 2022-6-8
+- Support GetDataCorrectOrderDetail API to return execMode type.
+- Support CreateDataCorrectOrder, CreateFreeLockCorrectOrder API submit with execMode type.
+
+
+
+## 1.8.1359 - 2022-6-8
+- Supported API for PublicIpAddressPool.
+
+
+## 1.8.1358 - 2022-6-7
+- Support ModifyDBClusterPayType.
+
+
+## 1.8.1357 - 2022-5-31
+- Support aggregator delivery.
+
+
+## 1.8.1356 - 2022-5-31
+- Add Template API Support.
+
+
+## 1.8.1355 - 2022-5-30
+- Add Api.
+
+
+## 1.8.1354 - 2022-5-30
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1353 - 2022-5-27
+- Release DetectLymph DetectPanc.
+
+
+## 1.8.1352 - 2022-5-25
+- Release RecognizeTurkeyIdentityCard RecognizeMalaysiaIdentityCard RecognizeRussiaIdentityCard RecognizeIndonesiaIdentityCard RecognizeIndonesiaIdentityCard.
+
+
+## 1.8.1351 - 2022-5-25
+- Add Hybrid Monitor API.
+
+
+## 1.8.1350 - 2022-5-24
+- StartDBInstance parameter change.
+
+
+## 1.8.1349 - 2022-5-24
+- Fix endpoint for new regionId.
+
+
+## 1.8.1348 - 2022-5-23
+- Api init.
+
+
+## 1.8.1347 - 2022-5-23
+- Support systemdisk encrypt and arns.
+- Update tag parameters.
+
+
+## 1.8.1346 - 2022-5-19
+- Update SubscribeBillToOSS and QueryBillToOSSSubscription to support BucketPath.
+
+
+## 1.8.1345 - 2022-5-19
+- Support php language.
+
+
+## 1.8.1344 - 2022-5-19
+- Support all language.
+
+
+## 1.8.1343 - 2022-5-17
+- EduCloud API DescribeLabToken 修改.
+
+
+## 1.8.1342 - 2022-5-16
+- Add Api ListQualityCheckScheme.
+
+
+## 1.8.1341 - 2022-5-16
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.1340 - 2022-5-13
+- Add ListDashboardUrl api.
+
+
+## 1.8.1339 - 2022-5-11
+- Update by sdk platform.
+
+
+## 1.8.1338 - 2022-5-10
+- Supported partner for ESP.
+
+
+## 1.8.1337 - 2022-5-7
+- Supported API for PublicIpAddressPool.
+
+
+## 1.8.1336 - 2022-5-6
+- Add DescribeAppKey interface.
+
+
+## 1.8.1335 - 2022-5-6
+- EduCloud API: DescribeLabToken修改
+
+
+## 1.8.1334 - 2022-5-5
+- Release RecognizeUkraineIdentityCard.
+
+
+## 1.8.1333 - 2022-4-30
+- Add GrtApplicationList.
+
+
+## 1.8.1332 - 2022-4-29
+- Supported CPFS Protocol.
+
+
+## 1.8.1331 - 2022-4-27
+- CreateDataLimit add enable filed.
+
+
+## 1.8.1330 - 2022-4-26
+- Support to pass variables to authentication IVR.
+
+
+## 1.8.1329 - 2022-4-25
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1328 - 2022-4-24
+- Bill api add query conditions and return data field.
+
+
+## 1.8.1327 - 2022-4-24
+- Support new feature.
+
+
+## 1.8.1326 - 2022-4-22
+- Iot_20180120 old version sdk.
+
+
+## 1.8.1325 - 2022-4-21
+- Fix endpoint bug.
+
+
+## 1.8.1324 - 2022-4-21
+- Supported new features etc.
+
+
+## 1.8.1323 - 2022-4-21
+- Supported new features for outbound.
+
+
+## 1.8.1322 - 2022-4-21
+- Generated 2018-12-03 for `Sas`.
+
+
+## 1.8.1321 - 2022-4-21
+- Add API OfflineTaskFlow.
+
+
+## 1.8.1320 - 2022-4-19
+- Add alert label.
+
+
+## 1.8.1319 - 2022-4-19
+- Add alert label.
+
+
+## 1.8.1318 - 2022-4-19
+- Add multi indicator monitoring.
+
+
+## 1.8.1317 - 2022-4-18
+- Change DescribeEventDetail Data.
+
+
+## 1.8.1316 - 2022-4-15
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.1315 - 2022-4-15
+- Rename the return of ListTaskFlow API.
+
+
+## 1.8.1314 - 2022-4-13
+- Support throughput for API DescribeDisks.
+
+
+
+## 1.8.1313 - 2022-4-12
+- Remove redundant input for API ListTaskFlow.
+
+
+## 1.8.1312 - 2022-4-11
+- Set multiple apis to public.
+
+
+## 1.8.1311 - 2022-4-7
+- Update by SDK platform.
+
+
+## 1.8.1310 - 2022-4-7
+- Update by sdk platform.
+
+
+## 1.8.1309 - 2022-4-6
+- Release FeedbackSession.
+
+
+## 1.8.1308 - 2022-4-6
+- Create App Group Support Schedule Busy Workers.
+
+
+## 1.8.1307 - 2022-4-6
+- Support output dagName, dagOwnerId for api listTaskFlowAndScenario.
+- Change output DbType to DwDbType for api GetLhSpaceByName.
+
+
+## 1.8.1306 - 2022-3-31
+- Supported ListTaskFlow, ListTaskFlowInstance, GetTaskInstanceRelation, GetLhSpaceByName, DeleteLakeHouseSpace, DeleteTaskFlow API.
+
+
+## 1.8.1305 - 2022-3-31
+- CreateDataSourceItem.
+- ListDataSourceItem.
+
+
+## 1.8.1304 - 2022-3-30
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.1303 - 2022-3-29
+- Supported latest Vpc apis.
+
+
+## 1.8.1302 - 2022-3-29
+- Supported Trim, AndroidVivoPushMode, iOSInterruptionLevel, iOSRelevanceScore for Push and MassPush.
+
+
+## 1.8.1301 - 2022-3-28
+- Support more params in text, clockWidget.
+
+
+## 1.8.1300 - 2022-3-25
+- Initialize APIs.
+
+
+## 1.8.1299 - 2022-3-25
+- Iot_20180120 old version sdk.
+
+
+## 1.8.1298 - 2022-3-24
+- Supported CreateLakeHouseSpace,AddLhMembers,DeleteLhMembers,ListLhTaskFlowAndScenario,ChangeLhDagOwner,ReDeployLhDagVersion API.
+
+
+## 1.8.1297 - 2022-3-24
+- Add multi indicator monitoring.
+
+
+## 1.8.1296 - 2022-3-23
+- Update by sdk platform.
+
+
+## 1.8.1295 - 2022-3-21
+- Get Job Support Query By Job Name.
+- Add Api Create Namespace.
+- Create App Support Set User Defined App Key.
+
+
+## 1.8.1294 - 2022-3-21
+- The alarm target callback adds parameter writing.
+
+
+## 1.8.1293 - 2022-3-18
+- Supported CreateStandardGroup, ListStandardGroups API.
+
+
+## 1.8.1292 - 2022-3-16
+- Union Task API.
+
+
+## 1.8.1291 - 2022-3-16
+- Test Push Git.
+
+
+## 1.8.1290 - 2022-3-16
+- Support Latest APIs.
+
+
+## 1.8.1289 - 2022-3-15
+- Add tcpInternetEndpoint field for the api OnsInstanceBaseInfo.
+
+
+## 1.8.1288 - 2022-3-15
+- Support collect logs to kafka.
+
+
+## 1.8.1287 - 2022-3-15
+- Update by sdk platform.
+
+
+## 1.8.1286 - 2022-3-15
+- DTS SDK.
+
+
+## 1.8.1285 - 2022-3-15
+- Set multiple apis to private.
+
+
+## 1.8.1284 - 2022-3-14
+- DTS SDK.
+
+
+## 1.8.1283 - 2022-3-14
+- Iot_20180120 old version sdk.
+
+
+## 1.8.1282 - 2022-3-11
+- DTS SDK.
+
+
+## 1.8.1281 - 2022-3-10
+- Disabled Spark Job API.
+
+
+## 1.8.1280 - 2022-3-9
+- Support modify params.
+
+
+## 1.8.1279 - 2022-3-9
+- Update RecognizeVideoCastCrewList.
+
+
+## 1.8.1278 - 2022-3-7
+- Supported new features etc.
+
+
+## 1.8.1277 - 2022-3-7
+- Supported new features for outbound.
+
+
+## 1.8.1276 - 2022-3-4
+- Supported partner for ESP.
+
+
+## 1.8.1275 - 2022-3-3
+- Release RecognizeVideoCastCrewList.
+
+
+## 1.8.1274 - 2022-3-3
+- Supported partner for ESP.
+
+
+## 1.8.1273 - 2022-3-2
+- Supported partner for ESP.
+
+
+## 1.8.1272 - 2022-3-1
+- Supported partner for ESP.
+
+
+## 1.8.1271 - 2022-3-1
+- Supported partner for ESP.
+
+
+## 1.8.1270 - 2022-2-24
+- Add UpdateAnycastEipAddressAssociations Interface.
+
+
+## 1.8.1269 - 2022-2-23
+- SDK.
+
+
+## 1.8.1268 - 2022-2-23
+- Add AuthId.
+
+
+## 1.8.1267 - 2022-2-23
+- Support remediation.
+
+
+## 1.8.1266 - 2022-2-22
+- Deprecated the OnsTopicUpdate api, and will be offline soon.
+
+
+## 1.8.1265 - 2022-2-22
+- Support RefreshProxyLevel.
+
+
+## 1.8.1264 - 2022-2-21
+- Bugfix QueryMoniter.
+
+
+## 1.8.1263 - 2022-2-21
+- Add DleteNacosInstance.
+- Change CreateCluster parameter.
+- Change UpdateNacosInstance errorCode.
+
+
+## 1.8.1262 - 2022-2-18
+- Iot_20180120 build sdk.
+
+
+## 1.8.1261 - 2022-2-18
+- Add Gis open service add data api.
+
+
+## 1.8.1260 - 2022-2-17
+- Adjusted the call frequency limit of some APIs.
+
+
+## 1.8.1259 - 2022-2-16
+- Generated 2016-04-08 for `Emr`.
+
+
+## 1.8.1258 - 2022-2-16
+- Generated 2021-03-20 for `Emr`.
+
+
+## 1.8.1257 - 2022-2-16
+- Fix normandy query api.
+
+
+## 1.8.1256 - 2022-2-11
+- Add OTA API, including ReupgradeOTATask.
+
+
+## 1.8.1255 - 2022-2-10
+- Add deleteNacosInstance.
+
+
+## 1.8.1254 - 2022-2-9
+- Added api QueryWorksBloodRelationship.
+
+
+## 1.8.1253 - 2022-2-8
+- Supported New Features.
+
+
+## 1.8.1252 - 2022-2-8
+- Iot_20180120 oldversion sdk.
+
+
+## 1.8.1251 - 2022-1-28
+- Support cloud disk.
+
+
+## 1.8.1250 - 2022-1-28
+- Update by SDK platform.
+
+
+## 1.8.1249 - 2022-1-28
+- Support SIP phone management.
+
+
+## 1.8.1248 - 2022-1-26
+- CreateContact API Add ContactGroupName.
+
+
+## 1.8.1247 - 2022-1-26
+- Supported new features for outbound.
+
+
+## 1.8.1246 - 2022-1-25
+- Create Lindorm Open api.
+
+
+## 1.8.1245 - 2022-1-25
+- Supported new features for outbound.
+
+
+## 1.8.1244 - 2022-1-25
+- Support Latest APIs.
+
+
+## 1.8.1243 - 2022-1-25
+- Add APIs, include, ListSharedReports, ListFavoriteReports, ListRecentViewReports, CreateTicket, QueryTicketInfo, UpdateTicketNum, DelayTicketExpireTime, DelayTicketExpireTime.
+
+
+## 1.8.1242 - 2022-1-25
+- Supported Get Worker List.
+- Execute Job Support Designate Machine.
+- Job Interface Add Config.
+
+
+## 1.8.1241 - 2022-1-25
+- Update DetectFace.
+
+
+## 1.8.1240 - 2022-1-21
+- Supported new features etc.
+
+
+## 1.8.1239 - 2022-1-21
+- Add Event Rule sql filter.
+
+
+## 1.8.1238 - 2022-1-21
+- Add Event Rule sql filter.
+
+
+## 1.8.1237 - 2022-1-21
+- Supported RestartDataCorrectSQLJob,PauseDataCorrectSQLJob API.
+- Supported ListDataCorrectPreCheckSQL to return tableNames information.
+
+
+## 1.8.1236 - 2022-1-19
+- Upgrade Service for SMS.
+
+
+## 1.8.1235 - 2022-1-19
+- Release some feature APIs.
+
+
+## 1.8.1234 - 2022-1-19
+- ReportOneAgentInfo.
+
+
+
+## 1.8.1233 - 2022-1-18
+- Upgrade SDK.
+
+
+## 1.8.1232 - 2022-1-18
+- Support describe price.
+
+
+## 1.8.1231 - 2022-1-17
+- Supported esp for partner.
+
+
+## 1.8.1230 - 2022-1-14
+- Supported more query conditions when searching resource group.
+
+
+## 1.8.1229 - 2022-1-14
+- Supported more query conditions when searching resource group.
+
+
+## 1.8.1228 - 2022-1-13
+- Supported New Features.
+
+
+## 1.8.1227 - 2022-1-12
+- Supported new features for outbound.
+
+
+## 1.8.1226 - 2022-1-12
+- Support folder for rule.
+
+
+## 1.8.1225 - 2022-1-11
+- Fix bugs.
+
+
+## 1.8.1224 - 2022-1-11
+- Fix bugs.
+
+
+## 1.8.1223 - 2022-1-11
+- Added reserve price range.
+
+
+## 1.8.1222 - 2022-1-7
+- Support resource scheduler.
+
+
+## 1.8.1221 - 2022-1-7
+- Add or modify APIs, include, QueryEmbeddedStaus, QueryWorks, QueryWorksByWorkspace.
+
+
+## 1.8.1220 - 2022-1-7
+- Add or modify APIs, include, QueryEmbeddedStaus, QueryWorks, QueryWorksByWorkspace.
+
+
+## 1.8.1219 - 2022-1-7
+- Supported GetSparkJobDetail,GetSparkJobExecutorLogs,KillSparkJob,GetSparkJobDriverLog,GetSparkJobLog,SubmitSparkJob API.
+
+
+## 1.8.1218 - 2022-1-7
+- Support New API for Dypnsapi.
+
+
+## 1.8.1217 - 2022-1-6
+- Fix bugs.
+
+
+## 1.8.1216 - 2022-1-5
+- Fix bugx.
+
+
+## 1.8.1215 - 2021-12-31
+- Update ErrorCode.
+
+
+## 1.8.1214 - 2021-12-30
+- Add faceCustomParamsConfig params for AddSmarttagTemplate,UpdateSmarttagTemplate,QuerySmarttagTemplateList interface.
+
+
+## 1.8.1213 - 2021-12-30
+- Supported Get Worker List.
+- Execute Job Support Designate Machine.
+
+
+## 1.8.1212 - 2021-12-30
+- Create Lindorm Open api.
+
+
+## 1.8.1211 - 2021-12-30
+- Support AUTH for CreateEventSubscribe.
+
+
+## 1.8.1210 - 2021-12-30
+- Update by sdk platform.
+
+
+## 1.8.1209 - 2021-12-30
+- Add new interface.
+
+
+## 1.8.1208 - 2021-12-29
+- Supported new features etc.
+
+
+## 1.8.1207 - 2021-12-29
+- Supported new features for outbound.
+
+
+## 1.8.1206 - 2021-12-29
+- Add ListDcdnEsTemplateInfo.
+
+
+## 1.8.1205 - 2021-12-29
+- Add ListDcdnEsTemplateInfo.
+
+
+## 1.8.1204 - 2021-12-28
+- Support managed rule query.
+
+
+## 1.8.1203 - 2021-12-27
+- Support ACR EE, OSS, EIP for deploy.
+
+
+## 1.8.1202 - 2021-12-27
+- Update DeleteFCTrigger.
+
+
+## 1.8.1201 - 2021-12-27
+- Add CreateDcdnSubTask.
+
+
+## 1.8.1200 - 2021-12-27
+- Add DescribeScdnDomainCcInfo.
+
+
+## 1.8.1199 - 2021-12-24
+- Supported CheckBlockVolumeName api for Checking the volume name has been already used by the OSS bucket folder.
+
+
+## 1.8.1198 - 2021-12-24
+- Add Event Rule Target.
+
+
+## 1.8.1197 - 2021-12-23
+- Fix array params.
+
+
+## 1.8.1196 - 2021-12-22
+- Add return fields to UploadStreamByURL.
+- Set DescribeVodDomainSrcTrafficData pulic.
+
+
+## 1.8.1195 - 2021-12-21
+- Add RAM ID in resonse of listUsers API.
+
+
+## 1.8.1194 - 2021-12-21
+- Fix array params.
+
+
+## 1.8.1193 - 2021-12-21
+- Supported Designate Workers.
+- Supported Get WorkFlow.
+
+
+## 1.8.1192 - 2021-12-20
+- Add Request Param Ipv6AddressCount For API CreateLaunchTemplate AND CreateLaunchTemplateVersion.
+- Add Response Data Ipv6AddressCount For API DescribeLaunchTemplateVersions.
+
+
+## 1.8.1191 - 2021-12-20
+- Generated 2016-04-08 for `Emr`.
+
+
+## 1.8.1190 - 2021-12-20
+- Supported ListLogicDatabases to return Alias information.
+- Supported ListDBTaskSQLJobDetail to return sql execute startTime and endTime information.
+
+
+## 1.8.1189 - 2021-12-17
+- Support Endpoint Protect.
+
+
+## 1.8.1188 - 2021-12-17
+- Supported ACL for SMB.
+
+
+## 1.8.1187 - 2021-12-14
+- Support query resourceType.
+
+
+## 1.8.1186 - 2021-12-14
+- Generated 2019-09-10 for `waf-openapi`.
+
+
+## 1.8.1185 - 2021-12-13
+- CreateServerlessDBInstance Add CapacityUnit.
+
+
+## 1.8.1184 - 2021-12-13
+- Openapi support querydisplay.
+
+
+## 1.8.1183 - 2021-12-13
+- Support query resourceType.
+
+
+## 1.8.1182 - 2021-12-13
+- Support query resourceType.
+
+
+## 1.8.1181 - 2021-12-13
+- Support query resourceType.
+
+
+## 1.8.1180 - 2021-12-9
+- Support ACR EE, OSS, EIP for deploy.
+
+
+## 1.8.1179 - 2021-12-8
+- HeterogeInterworking.
+
+
+
+## 1.8.1178 - 2021-12-8
+- Fixed bugs for UnbindSubscription API.
+
+
+## 1.8.1177 - 2021-12-7
+- Support params for QuerySmarttagJob Api.
+- Support params for AddSmarttagTemplate,UpdateSmarttagTemplate,QuerySmarttagTemplateList Api.
+
+
+## 1.8.1176 - 2021-12-7
+- Add MetaTag APIs.
+
+
+## 1.8.1175 - 2021-12-7
+- Add MetaTag APIs.
+
+
+## 1.8.1174 - 2021-12-6
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1173 - 2021-12-2
+- Update MergeImageFace QueryFaceImageTemplate AddFaceImageTemplate DeleteFaceImageTemplate.
+
+
+## 1.8.1172 - 2021-12-1
+- Supported RequestDecision For YN.
+
+
+## 1.8.1171 - 2021-11-29
+- GetUnionTaskStatus add channelId.
+
+
+## 1.8.1170 - 2021-11-29
+- Add API for unregister sip phone device, masked callee, etc.
+
+
+## 1.8.1169 - 2021-11-29
+- GetUnionTaskStatus add channelId.
+
+
+## 1.8.1168 - 2021-11-29
+- Update DescribeCdnSMCertificateDetail.
+
+
+## 1.8.1167 - 2021-11-29
+- Update SetDcdnDomainSMCertificate.
+
+
+## 1.8.1166 - 2021-11-29
+- Supported ListLogicTableRouteConfig, AddLogicTableRouteConfig, DeleteLogicTableRouteConfig API.
+- Supported ModifyDataCorrectExecSQL, RetryDataCorrectPreCheck API.
+- Supported GetDBTaskSQLJobLog API.
+- Supported ListDBTaskSQLJobDetail to return execute log information.
+
+
+## 1.8.1165 - 2021-11-26
+- Update GetSyncResult.
+
+
+## 1.8.1164 - 2021-11-25
+- Supported new features etc.
+
+
+## 1.8.1163 - 2021-11-25
+- Supported new features etc.
+
+
+## 1.8.1162 - 2021-11-25
+- Supported new features for outbound.
+
+
+## 1.8.1161 - 2021-11-25
+- GetUnionTaskStatus add channelId.
+
+
+## 1.8.1160 - 2021-11-25
+- GetUnionTaskStatus add channelId.
+
+
+## 1.8.1159 - 2021-11-25
+- Delete some abandoned interface.
+- Add some interfaces.
+
+
+## 1.8.1158 - 2021-11-25
+- Minor changes.
+
+
+## 1.8.1157 - 2021-11-25
+- HeterogeInterworking.
+
+
+
+## 1.8.1156 - 2021-11-24
+- HeterogeInterworking.
+
+
+## 1.8.1155 - 2021-11-24
+- Delete some abandoned interface in SDK.
+
+
+## 1.8.1154 - 2021-11-24
+- Set API DescribeVodDomainSrcBpsData to public.
+
+
+## 1.8.1153 - 2021-11-23
+- Delete some abandoned interface in SDK.
+- Add AutoLiveStream series interfaces.
+- Add UpdateMPUTask, CreateRecordIndexFile interfaces.
+
+
+## 1.8.1152 - 2021-11-23
+- Update RecognizeCharacter.
+
+
+## 1.8.1151 - 2021-11-23
+- Generated 2016-04-08 for `Emr`.
+
+
+## 1.8.1150 - 2021-11-23
+- Support the IP restrictions in ram policy.
+
+
+## 1.8.1149 - 2021-11-18
+- Support ListInstanceLoginAuditLog, ListProxySQLExecAuditLog API.
+- Support GetOpLog API to return OpUserId information.
+
+
+## 1.8.1148 - 2021-11-17
+- Update apm interface parameter.
+
+
+## 1.8.1147 - 2021-11-16
+- Add parameter type HDRType.
+
+
+## 1.8.1146 - 2021-11-16
+- Update apm interface parameter.
+
+
+## 1.8.1145 - 2021-11-16
+- Update apm interface parameter.
+
+
+## 1.8.1144 - 2021-11-16
+- Generated 2017-12-28 for `ddoscoo`.
+
+
+## 1.8.1143 - 2021-11-16
+- Update SetCdnDomainSMCertificate.
+
+
+## 1.8.1142 - 2021-11-16
+- Update apm interface parameter.
+
+
+## 1.8.1141 - 2021-11-15
+- Generated 2020-01-01 for `ddoscoo`.
+
+
+## 1.8.1140 - 2021-11-15
+- Add Ext parameter to image translation API.
+
+
+## 1.8.1139 - 2021-11-15
+- Update DetectVehicleICongestion DetectVehicleIllegalParking.
+
+
+## 1.8.1138 - 2021-11-12
+- Update by sdk platform.
+
+
+## 1.8.1137 - 2021-11-8
+- Supported apm restful api.
+
+
+## 1.8.1136 - 2021-11-5
+- Add SetDcdnDomainSMCertificate.
+
+
+## 1.8.1135 - 2021-11-5
+- Add SetCdnDomainSMCertificate.
+
+
+## 1.8.1134 - 2021-11-4
+- Support ListSQLExecAuditLog API.
+- Support ListUsers, GetUser API to return information of Email, Webhook and DingRobot.
+- Support GetApprovalDetail API to return information of CreateTime.
+
+
+## 1.8.1133 - 2021-11-2
+- Add GetVideoPlayAuth API parameter.
+
+
+## 1.8.1132 - 2021-11-2
+- Add GetVideoPlayAuth API parameter.
+
+
+## 1.8.1131 - 2021-11-2
+- Support multi language.
+
+
+## 1.8.1130 - 2021-11-2
+- Add API UploadStreamByURL.
+
+
+## 1.8.1129 - 2021-11-2
+- Fixed SDK update delay.
+
+
+## 1.8.1128 - 2021-11-1
+- Release DetectKitchenAnimals DetectWorkwear.
+
+
+## 1.8.1127 - 2021-10-28
+- Updated tag api.
+- Updated DescribeTask api to get relatedResourceId info.
+
+
+## 1.8.1126 - 2021-10-28
+- Generated 2019-03-07, 2020-06-18, 2018-09-16, 2020-11-12 for `Cloudauth`.
+
+
+## 1.8.1125 - 2021-10-27
+- Generated 2019-03-07 for `Cloudauth`.
+
+
+## 1.8.1124 - 2021-10-26
+- Add QueryEmbedTokenInfo,DeleteEmbedToken,CreateEmbedToken,DelayEmbedToken,BuildSignatureUrl, and update QueryDatasetInfo,AuthorizeMenu,AddUserTagMeta,AddUser.
+
+
+## 1.8.1123 - 2021-10-26
+- Update Dyvmsapi SDK.
+
+
+## 1.8.1122 - 2021-10-25
+- Support ListInstances and GetInstance API to return StandardGroup information.
+- Support ListUserPermissions, GrantUserPermission, GrantUserPermission to operate instance permission.
+- Support ChangeColumnSecLevel API.
+- Support CreateLogicDatabase, EditLogicDatabase, DeleteLogicDatabase API.
+
+
+## 1.8.1121 - 2021-10-25
+- Generated 2016-04-08 for `Emr`.
+
+
+## 1.8.1120 - 2021-10-25
+- Supported for custom creative union task.
+
+
+## 1.8.1119 - 2021-10-21
+- Release AddQualityScore.
+
+
+## 1.8.1118 - 2021-10-21
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.1117 - 2021-10-20
+- Add DeviceCenter API, including CreateDeviceDynamicGroup, DeleteDeviceDynamicGroup, QueryDynamicGroupDevices.
+- Update DeviceCenter API, including SetDeviceGroupTags, QueryDeviceGroupByFuzzyName, QueryDeviceGroupByDevice, QueryDeviceGroupTagList, UpdateDeviceGroup, QueryDeviceGroupList, QueryDeviceGroupInfo.
+- Update OTA API, including CreateOTADynamicUpgradeJob, CreateOTAStaticUpgradeJob, QueryOTAJob.
+
+
+## 1.8.1116 - 2021-10-19
+- Supported ScaleApp totalPartitions.
+
+
+## 1.8.1115 - 2021-10-18
+- Generated 2019-09-10, 2018-01-17 for `waf-openapi`.
+
+
+## 1.8.1114 - 2021-10-18
+- Adjust ecs openapi endpoint.
+- Fix SDK array format.
+
+
+## 1.8.1113 - 2021-10-15
+- Generated 2020-10-29 for `reid_cloud`.
+
+
+## 1.8.1112 - 2021-10-11
+- Fixed SDK update delay.
+
+
+## 1.8.1111 - 2021-10-8
+- Adjust ecs openapi endpoint.
+
+
+## 1.8.1110 - 2021-10-8
+- Fixed SDK update delay.
+
+
+## 1.8.1109 - 2021-10-8
+- Fixed SDK update delay.
+
+
+## 1.8.1108 - 2021-10-8
+- Fixed SDK update delay.
+
+
+## 1.8.1107 - 2021-10-8
+- Release SearchFace BatchAddFaces.
+
+
+## 1.8.1106 - 2021-9-29
+- Supported AssumeRoleWithOIDC.
+
+
+## 1.8.1105 - 2021-9-26
+- Support odcap device.
+
+
+## 1.8.1104 - 2021-9-26
+- Support odcap device.
+
+
+## 1.8.1103 - 2021-9-26
+- Update imageenhan.
+
+
+## 1.8.1102 - 2021-9-26
+- Supported sdk for sddp.
+
+
+## 1.8.1101 - 2021-9-24
+- Fixed SDK update delay.
+
+
+## 1.8.1100 - 2021-9-24
+- Release RetouchSkin LiquifyFace.
+
+
+## 1.8.1099 - 2021-9-23
+- Update by sdk platform.
+
+
+## 1.8.1098 - 2021-9-22
+- Support Sms Verification for Dypnsapi.
+
+
+## 1.8.1097 - 2021-9-22
+- Support Sms Verification for Dypnsapi.
+
+
+## 1.8.1096 - 2021-9-22
+- Modify CreateK8sSecret.
+
+
+## 1.8.1095 - 2021-9-18
+- Add copyright invasion detection APIs.
+
+
+## 1.8.1094 - 2021-9-17
+- Supported SendChannels, AndroidMessageHuaweiUrgency, AndroidMessageHuaweiCategory for Push and MassPush.
+
+
+## 1.8.1093 - 2021-9-17
+- Fixed bug for GetSecretAsrDetail.
+
+
+## 1.8.1092 - 2021-9-15
+- Update AddFace SearchFace.
+
+
+## 1.8.1091 - 2021-9-14
+- Add DiskIds for CreateSnapshotGroup.
+
+
+## 1.8.1090 - 2021-9-13
+- Generated 2019-03-01 for `LinkWAN`.
+
+
+## 1.8.1089 - 2021-9-10
+- Support crop face image.
+
+
+## 1.8.1088 - 2021-9-9
+- Public version.
+
+
+## 1.8.1087 - 2021-9-6
+- Supported for custom creative union task.
+
+
+## 1.8.1086 - 2021-9-1
+- SDK updated.
+
+
+## 1.8.1085 - 2021-8-31
+- Supported cro algorithm.
+
+
+## 1.8.1084 - 2021-8-31
+- Supported AndroidBigPictureUrl, AndroidInboxBody, AndroidImageUrl, AndroidOppoImageId, AndroidXiaomiImageUrl, iOSNotificationThreadId for Push and MassPush.
+
+
+## 1.8.1083 - 2021-8-31
+- Release BeautifyBody.
+
+
+## 1.8.1082 - 2021-8-31
+- Generated 2017-08-01 for `Edas`.
+
+
+## 1.8.1081 - 2021-8-27
+- ListAvailableEcsTypes set param ZoneId not required.
+- ListAvailableEcsTypes return ZoneIds.
+
+
+## 1.8.1080 - 2021-8-26
+- ListAvailableEcsTypes set param ZoneId not required.
+- ListAvailableEcsTypes return ZoneIds.
+
+
+## 1.8.1079 - 2021-8-24
+- Release RetouchBody.
+
+
+## 1.8.1078 - 2021-8-24
+- Publish Python ververica.
+
+
+## 1.8.1077 - 2021-8-20
+- Update Dyvmsapi SDK.
+- Add GetCallInfo.
+
+
+## 1.8.1076 - 2021-8-19
+- Support Round and Interval for ApplyNodes API.
+
+
+## 1.8.1075 - 2021-8-19
+- Release BeautifyBody.
+
+
+## 1.8.1074 - 2021-8-13
+- Supported etlOperatorColumnReference for ModifyDtsJob.
+
+
+## 1.8.1073 - 2021-8-12
+- Support query dbfs specification.
+
+
+## 1.8.1072 - 2021-8-12
+- DescirbeAvailableResource add NodeId input parameter.
+- CreateTairInstance add GlobalInstanceId input paramter.
+
+
+## 1.8.1071 - 2021-8-12
+- Support CreateProxy, DeleteProxy, GetProxy, ListProxies, CreateProxyAccess, DeleteProxyAccess, ListProxyAccesses, InspectProxyAccessSecret Safety Protection Management APIs.
+
+
+## 1.8.1070 - 2021-8-11
+- Support CEN latest Apis.
+
+
+## 1.8.1069 - 2021-8-10
+- Supported DescribeSavingsPlansUsageTotal.
+- Supported DescribeSavingsPlansUsageDetail.
+- Supported DescribeSavingsPlansCoverageTotal.
+- Supported DescribeSavingsPlansCoverageDetail.
+
+
+## 1.8.1068 - 2021-8-10
+- Export instance relative API.
+
+
+## 1.8.1067 - 2021-8-10
+- Update TaggingAdImage.
+
+
+## 1.8.1066 - 2021-8-9
+- Supported DescribeSubscriptionMeta for distributed subscription.
+- Supported ParentChannelId for DescribeConsumerChannel.
+- Supported Reserve for ModifyDtsJob.
+
+
+## 1.8.1065 - 2021-8-9
+- Support Job Status With Phase.
+
+
+## 1.8.1064 - 2021-8-6
+- Update TaggingAdImage.
+
+
+## 1.8.1063 - 2021-8-4
+- Release TaggingAdImage.
+
+
+## 1.8.1062 - 2021-8-4
+- Create Lindorm Open api.
+
+
+## 1.8.1061 - 2021-8-4
+- Create Lindorm Open api.
+
+
+## 1.8.1060 - 2021-8-2
+- Update TaggingImage.
+
+
+## 1.8.1059 - 2021-8-2
+- Support upgrade.
+
+
+## 1.8.1058 - 2021-7-30
+- Update Dyvmsapi SDK.
+
+
+## 1.8.1057 - 2021-7-29
+- Support Alb Open API.
+
+
+## 1.8.1056 - 2021-7-29
+- ListAppInstanceResponse add status field.
+
+
+## 1.8.1055 - 2021-7-28
+- Generated 2018-03-13 for `retailcloud`.
+
+
+## 1.8.1054 - 2021-7-27
+- Add DescribeAuditLogConfig API.
+
+
+## 1.8.1053 - 2021-7-22
+- Add private-link support.
+- Add download dicts.
+- Add whiteIpGroup support.
+- Add recovery infos support.
+
+
+## 1.8.1052 - 2021-7-21
+- Create Lindorm Open api.
+
+
+## 1.8.1051 - 2021-7-21
+- Create Lindorm Open api.
+
+
+## 1.8.1050 - 2021-7-21
+- Support HealthCheckMethod for HTTP and HTTPS listener.
+
+
+## 1.8.1049 - 2021-7-19
+- CreateNetworkInterface supports to allocate Ipv6.
+
+
+## 1.8.1048 - 2021-7-19
+- Update ScreenChestCT.
+
+
+## 1.8.1047 - 2021-7-15
+- Support Alb Open API.
+
+
+## 1.8.1046 - 2021-7-15
+- Generated 2020-01-01 for `ddoscoo`.
+
+
+## 1.8.1045 - 2021-7-9
+- Add `CheckCertificate` Api.
+- Supported AndroidRenderStyle, AndroidBigTitle, AndroidBigBody, AndroidXiaomiBigPictureUrl for Push and MassPush.
+
+
+## 1.8.1044 - 2021-7-9
+- Fix ListPIpelineTemplates.
+
+
+## 1.8.1043 - 2021-7-8
+- Support app group.
+
+
+## 1.8.1042 - 2021-7-8
+- Support APP auth.
+
+
+## 1.8.1041 - 2021-7-8
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.1040 - 2021-7-7
+- Add ModifyResourceGroup API.
+
+
+## 1.8.1039 - 2021-7-7
+- Support FilterKey for RestoreInstance.
+- DescribeInstanceAttribute add return argument BackupLogStartTime.
+- Add RemoveSubInstance for Global Distributed Cache.
+
+
+## 1.8.1038 - 2021-7-7
+- Supported AAA for BBB.
+
+
+## 1.8.1037 - 2021-7-6
+- Support ListDataCorrectPreCheckDB,ListDataCorrectPreCheckSQL Order API.
+
+
+## 1.8.1036 - 2021-7-2
+- Release RecognizeQuotaInvoice RecognizeTicketInvoice RecognizePdf.
+
+
+## 1.8.1035 - 2021-7-2
+- Release AnalyzeChestVessel.
+
+
+## 1.8.1034 - 2021-6-28
+- Edit ListRetcodeApps.
+- Edit SearchRetcodeAppByPage.
+
+
+## 1.8.1033 - 2021-6-28
+- Support GetSQLReviewOptimizeDetail,ListSQLReviewOriginSQL Order API.
+
+
+## 1.8.1032 - 2021-6-25
+- Update DescribeSplitItemBill to support daily report.
+
+
+## 1.8.1031 - 2021-6-24
+- Create Lindorm Open api.
+
+
+## 1.8.1030 - 2021-6-24
+- Update QueryBillOverview, QuerySettleBill, QueryAccountBill, DescribeInstanceBill and support trusteeship bill query.
+
+
+## 1.8.1029 - 2021-6-21
+- Generated 2019-11-20 for `Ga`.
+
+
+## 1.8.1028 - 2021-6-21
+- Generated 2019-11-20 for `Ga`.
+
+
+## 1.8.1027 - 2021-6-21
+- Generated 2016-04-28 for `Vpc`.
+
+
+## 1.8.1026 - 2021-6-18
+- Supported 20210618 version for sdk.
+
+
+## 1.8.1025 - 2021-6-17
+- Generated 2019-11-20 for `Ga`.
+
+
+## 1.8.1024 - 2021-6-16
+- Update imageaudit.
+
+
+## 1.8.1023 - 2021-6-16
+- Encrypt Dialog Content.
+
+
+## 1.8.1022 - 2021-6-15
+- Add ListDevopsProjects.
+
+
+## 1.8.1021 - 2021-6-11
+- Add CreateSshKey OpenAPI.
+
+
+## 1.8.1020 - 2021-6-10
+- Support SQLReview Order API.
+
+
+## 1.8.1019 - 2021-6-10
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.1018 - 2021-6-10
+- Generated 2016-04-28 for `Vpc`.
+
+
+## 1.8.1017 - 2021-6-9
+- Update TMP API, including QueryDevice, CreateThingModel, UpdateThingModel, ImportThingModelTsl, BatchPickThingModel, ListDeviceDistributeJob.
+- Add TMP API, including QueryDeviceInfo.
+- Update OTA API, including CreateOTAVerifyJob, CreateOTAStaticUpgradeJob, CreateOTADynamicUpgradeJob, CancelOTATaskByJob, QueryOTAJob.
+- Add OTA API, including ListOTAUnfinishedTaskByDevice,ConfirmOTATask.
+
+
+## 1.8.1016 - 2021-6-9
+- Create Lindorm Open api.
+
+
+## 1.8.1015 - 2021-6-9
+- Create Lindorm Open api.
+
+
+## 1.8.1014 - 2021-6-9
+- Edit GetTrace.
+
+
+## 1.8.1013 - 2021-6-8
+- Support Aliyun Workorder OpenAPI.
+
+
+## 1.8.1012 - 2021-6-8
+- Support input parameter LaunchConfigurationHostNames and MinTargetCapacity for CreateAutoProvisioningGroup.
+
+
+## 1.8.1011 - 2021-6-8
+- Increase detection frequency for availability monitoring.
+- Add application group to query in batch according to group ID.
+
+
+## 1.8.1010 - 2021-6-5
+- New API Version of Work Order System.
+
+
+## 1.8.1009 - 2021-6-4
+- Add Emon-Service support.
+- Remove Deprecated Interfaces.
+
+
+## 1.8.1008 - 2021-6-4
+- Supported multi attach feature for disk.
+
+
+## 1.8.1007 - 2021-6-4
+- Delete live API.
+
+
+## 1.8.1006 - 2021-6-3
+- Add name.
+
+
+## 1.8.1005 - 2021-6-3
+- Support name.
+
+
+## 1.8.1004 - 2021-6-2
+- Support key deletion protection.
+
+
+## 1.8.1003 - 2021-5-31
+- Support upgrade.
+
+
+## 1.8.1002 - 2021-5-28
+- Add TriggerRemoteSync api.
+
+
+## 1.8.1001 - 2021-5-28
+- Create Lindorm Open api.
+
+
+## 1.8.1000 - 2021-5-28
+- Create Lindorm Open api.
+
+
+## 1.8.999 - 2021-5-27
+- Generated 2019-09-10 for `waf-openapi`.
+
+
+## 1.8.998 - 2021-5-24
+- Support a2a openapi.
+
+
+## 1.8.997 - 2021-5-22
+- Aaaaa.
+
+
+## 1.8.996 - 2021-5-21
+- Supported DescribeLoadBalancers with DeleteProtection and so on.
+
+
+## 1.8.995 - 2021-5-21
+- Support StrictResourceProvision in ApplyNodes.
+
+
+## 1.8.994 - 2021-5-20
+- Upgrade mongodb sdk.
+
+
+## 1.8.993 - 2021-5-19
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.992 - 2021-5-19
+- Update API.
+
+
+## 1.8.991 - 2021-5-19
+- Publish multi language sdk.
+
+
+## 1.8.990 - 2021-5-18
+- Add IoT Studio SetStudioProjectCooperation API.
+- Add IoT Studio QueryStudioProjectList API.
+- Add IoT Studio QueryStudioAppList API.
+- Add IoT Studio QueryStudioAppPageListOpen API.
+- Add IoT Studio QueryStudioAppDomainListOpen API.
+- Add IoT Studio DeleteStudioAppDomainOpen API.
+- Add IoT Studio CreateStudioAppDomainOpen API.
+- Add IoT Studio GetStudioAppTokenOpen API.
+- Add IoT Studio SetupStudioAppAuthModeOpen API.
+- Add IoT Studio RefreshStudioAppTokenOpen API.
+- Add IoT Studio PublishStudioApp API.
+
+
+## 1.8.989 - 2021-5-18
+- Support MinCount for AddNodes.
+- Support HostNamePreffix and HostNameSuffix for ListNodes.
+
+
+## 1.8.988 - 2021-5-17
+- Add API ListQuotaReviewTasks.
+
+
+## 1.8.987 - 2021-5-17
+- Support DescribeInstallCaptcha API.
+
+
+## 1.8.986 - 2021-5-17
+- Export new API for predictive dialer.
+
+
+## 1.8.985 - 2021-5-17
+- Add DescribeDcdnRefreshTaskById.
+
+
+## 1.8.984 - 2021-5-14
+- Release ExtractFingerPrint.
+
+
+## 1.8.983 - 2021-5-14
+- EnableAdditionalBandwidth add AutoRenew,AutoRenewPeriod parameter.
+
+
+## 1.8.982 - 2021-5-14
+- Update ScreenChestCT.
+
+
+## 1.8.981 - 2021-5-14
+- Support Private RDS management through OpenAPI.
+- ManagePrivateRds to do RDS information query and some management.
+- DescribeDrdsRdsInstances to find RDS under a certain DRDS instance.
+- UpdatePrivateRdsClass to Upgrade or Downgrade your Private RDS class.
+
+
+## 1.8.980 - 2021-5-14
+- Support Private RDS management through OpenAPI.
+- ManagePrivateRds to do RDS information query and some management.
+- DescribeDrdsRdsInstances to find RDS under a certain DRDS instance.
+- UpdatePrivateRdsClass to Upgrade or Downgrade your Private RDS class.
+
+
+## 1.8.979 - 2021-5-13
+- Generated 2020-01-01 for `ddoscoo`.
+
+
+## 1.8.978 - 2021-5-13
+- Add Indexing-Service support.
+- Remove jsonItem form.
+
+
+## 1.8.977 - 2021-5-12
+- Add GetRepositoryCommit and ListRepositoryCommitDiff API.
+
+
+## 1.8.976 - 2021-5-12
+- Create Lindorm Open api.
+
+
+## 1.8.975 - 2021-5-12
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.974 - 2021-5-11
+- CreateInstance API add Port, Tags, DryRun.
+
+
+## 1.8.973 - 2021-5-10
+- Update RecognizeDriverLicense RecognizeLicensePlate.
+
+
+## 1.8.972 - 2021-5-10
+- Add API GenerateMergedTable.
+- Add API ListDateSourceTables.
+- Add API ListDateSourceTableFields.
+- Add API ListRamRoles.
+
+
+## 1.8.971 - 2021-5-10
+- Delete API.
+
+
+## 1.8.970 - 2021-5-10
+- Delete live API.
+
+
+## 1.8.969 - 2021-5-10
+- Delete Api.
+
+
+## 1.8.968 - 2021-5-10
+- Delete API.
+
+
+## 1.8.967 - 2021-5-8
+- Support SLB DescribeLoadBalancerListeners.
+
+
+## 1.8.966 - 2021-5-8
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.965 - 2021-5-8
+- Generated 2018-01-20 for `Iot`.
+
+
+## 1.8.964 - 2021-5-7
+- Support interface DescribeDBInstanceEncryptionKey for DB Instance Cloud Disk Encryption.
+
+
+## 1.8.963 - 2021-5-6
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.962 - 2021-5-6
+- Update Open API.
+
+
+## 1.8.961 - 2021-4-30
+- Add OpenArmsServiceSecondVersion.
+
+
+## 1.8.960 - 2021-4-29
+- ModifyNodeSpec API add SwitchTime.
+
+
+## 1.8.959 - 2021-4-29
+- Add DescribeInstances API.
+
+
+## 1.8.958 - 2021-4-29
+- Update RecognizeFace.
+
+
+## 1.8.957 - 2021-4-29
+- Mod ListDashboards add parameters,support dashboardName query.
+
+
+## 1.8.956 - 2021-4-29
+- Support sag reseller.
+
+
+## 1.8.955 - 2021-4-29
+- Generated 2018-12-12, 2018-12-07 for `UniMkt`.
+
+
+## 1.8.954 - 2021-4-28
+- Export new API.
+
+
+## 1.8.953 - 2021-4-27
+- GetProjectMember support pageSize.
+
+
+## 1.8.952 - 2021-4-27
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.951 - 2021-4-27
+- Add CustomMessage to CreateMergeFaceGroupsJob.
+
+
+## 1.8.950 - 2021-4-22
+- Support NetworkInterface TrafficMode.
+
+
+## 1.8.949 - 2021-4-22
+- AcceptInquiredSystemEvent adds Choice parameter.
+- DescribeInstanceHistoryEvents supports multiple resource types.
+
+
+## 1.8.948 - 2021-4-22
+- Support CEN latest Apis.
+
+
+## 1.8.947 - 2021-4-22
+- Support GetPhysicalDatabase API.
+
+
+## 1.8.946 - 2021-4-21
+- Add API to list repo members with group inherited info.
+
+
+## 1.8.945 - 2021-4-20
+- Support Tag.
+
+
+## 1.8.944 - 2021-4-20
+- Create Lindorm Open api.
+
+
+## 1.8.943 - 2021-4-20
+- LivenessFaceVerify ContrastFaceVerify CompareFaceVerify API Return CertifyId.
+
+
+## 1.8.942 - 2021-4-17
+- Update RunMedQA.
+
+
+## 1.8.941 - 2021-4-16
+- Support devops organization deletion.
+
+
+## 1.8.940 - 2021-4-16
+- Add CheckProductOpen.
+- Add az routing policy.
+
+
+## 1.8.939 - 2021-4-16
+- Add API GetDomain.
+- Add API ListSystemAnalyzers.
+- Add parameter domain to API ListAppGroups, ModifyAppGroup, CreateAppGroup, DescribeAppGroup, DescribeApp.
+
+
+## 1.8.938 - 2021-4-14
+- Support latest openAPIs.
+
+
+## 1.8.937 - 2021-4-14
+- Delete MultiMedia Post Scan API.
+
+
+## 1.8.936 - 2021-4-13
+- Supported ConfigureDtsJob SynchronizationDirection.
+- Fixed DescribePreCheckStatus JobProgress bootTime.
+
+
+## 1.8.935 - 2021-4-13
+- Release AddFaceVideoTemplate DeleteFaceVideoTemplate QueryFaceVideoTemplate MergeVideoModelFace.
+
+
+## 1.8.934 - 2021-4-12
+- Export config api.
+
+
+## 1.8.933 - 2021-4-12
+- Support GetDBTopology API.
+
+
+## 1.8.932 - 2021-4-9
+- Bank Card Ocr and Verify.
+
+
+## 1.8.931 - 2021-4-9
+- Update API param.
+
+
+## 1.8.930 - 2021-4-8
+- Release DetectVideoIPCObject.
+
+
+## 1.8.929 - 2021-4-6
+- Release MonitorExamination.
+
+
+## 1.8.928 - 2021-4-6
+- Update ScreenChestCT DetectRibFracture.
+
+
+## 1.8.927 - 2021-4-1
+- Add data service api, including ListAnalyticsData.
+- Update file uploading api, including GenerateFileUploadURL.
+
+
+## 1.8.926 - 2021-3-31
+- Ecs support hibernation.
+- DescribeSnapshotGroups add ProgressStatus.
+
+
+## 1.8.925 - 2021-3-30
+- Generated 2020-11-26 for `Airec`.
+
+
+## 1.8.924 - 2021-3-30
+- Supported MultiMedia Post scan.
+
+
+## 1.8.923 - 2021-3-30
+- Supported Open Api.
+
+
+## 1.8.922 - 2021-3-30
+- Supported Open Api.
+
+
+## 1.8.921 - 2021-3-30
+- Monitor.
+
+
+## 1.8.920 - 2021-3-30
+- Support ListDDLPublishRecords API.
+- Fixed GetMetaTableColumn, GetMetaTableDetailInfo API response param DataLength lack of precision.
+
+
+## 1.8.919 - 2021-3-26
+- Update api.
+
+
+## 1.8.918 - 2021-3-26
+- Add RenewAdditionalBandwidth API.
+
+
+## 1.8.917 - 2021-3-26
+- Upgrade mongodb sdk.
+
+
+## 1.8.916 - 2021-3-25
+- Add DescribeInstanceBill.
+- Update QuerySettleBill to support RecordID filter.
+
+
+## 1.8.915 - 2021-3-25
+- Release autoscaling apis for timer features.
+
+
+## 1.8.914 - 2021-3-25
+- Change indicator date type of ListHistoriticalAgentReport.
+
+
+## 1.8.913 - 2021-3-24
+- Export new API.
+
+
+## 1.8.912 - 2021-3-23
+- Update Open API.
+
+
+## 1.8.911 - 2021-3-22
+- CreateEai api adds SecurityGroupId, VSwitchId parameters.
+
+
+## 1.8.910 - 2021-3-22
+- Add OneConsole support.
+- Add ACK support.
+- Edit ListSearchLog etc.
+
+
+## 1.8.909 - 2021-3-21
+- Support watermark.
+- Support pdf preview.
+
+
+## 1.8.908 - 2021-3-19
+- Mod OpenVCluster add parameters, support cloud product assess.
+- Mod ListDashboards add parameters, support cloud product query.
+
+
+## 1.8.907 - 2021-3-19
+- StateConfiguration in CreateStateConfigurationResponse changes from list to single object.
+
+
+## 1.8.906 - 2021-3-19
+- Modify the helpUrl parameter of OnsTopicList and OnsGroupList API to be invisible.
+
+
+## 1.8.905 - 2021-3-19
+- Export new API.
+
+
+## 1.8.904 - 2021-3-18
+- Edit GetTrace api.
+- Edit GetMultipleTrace api.
+
+
+## 1.8.903 - 2021-3-18
+- Generated 2018-07-13 for `Ft`.
+
+
+## 1.8.902 - 2021-3-18
+- Generated 2018-07-13 for `Ft`.
+
+
+## 1.8.901 - 2021-3-18
+- Generated 2018-07-13 for `Ft`.
+
+
+## 1.8.900 - 2021-3-17
+- Add organizaition security center API.
+
+
+## 1.8.899 - 2021-3-17
+- Update MakeSuperResolutionImage.
+
+
+## 1.8.898 - 2021-3-13
+- Supportd DescribeTableStatisticsRequest.
+
+
+## 1.8.897 - 2021-3-12
+- Supported batch delete for contact template.
+- Supported save for contact template.
+- Supported set default for contact template.
+
+
+## 1.8.896 - 2021-3-11
+- Update DetectIPCPedestrian.
+
+
+## 1.8.895 - 2021-3-9
+- Export new API for predictive dialer.
+
+
+## 1.8.894 - 2021-3-4
+- Release RecognizeHandGesture.
+
+
+## 1.8.893 - 2021-3-4
+- Update Ocr.
+
+
+## 1.8.892 - 2021-3-3
+- Add GetRepositoryTagV2 and DeleteRepositoryTagV2 API.
+
+
+## 1.8.891 - 2021-3-3
+- Update Compareface.
+
+
+## 1.8.890 - 2021-3-3
+- Update Open API.
+
+
+## 1.8.889 - 2021-3-3
+- Add Api.
+
+
+## 1.8.888 - 2021-3-3
+- Delete API.
+
+
+## 1.8.887 - 2021-3-3
+- Update ScreenChestCT.
+
+
+## 1.8.886 - 2021-3-2
+- Update default endpoints.
+
+
+## 1.8.885 - 2021-3-2
+- Supported API for dnsCache.
+- Supported API for GTM.
+
+
+## 1.8.884 - 2021-3-2
+- Cloud Storage Gateway openapi sdk is released.
+
+
+## 1.8.883 - 2021-3-2
+- Support GroupCoverFace ExternalId for ListFaceGroups.
+- Support ResetItems for UpdateFaceGroup.
+
+
+## 1.8.882 - 2021-3-1
+- AMP Version Change.
+
+
+## 1.8.881 - 2021-3-1
+- Mod ListServerlessTopNApps.
+
+
+## 1.8.880 - 2021-2-28
+- AMP Version Change.
+
+
+## 1.8.879 - 2021-2-26
+- Add ListServerlessTopNApps.
+
+
+## 1.8.878 - 2021-2-26
+- Support SLR by InitializeDbsServiceLinkedRole action.
+- Change DescribeIncrementBackupList and DescribeFullBackupList to Support Range filter by endTimestamp.
+- Change DescribeRestoreTaskList to Support Range filter by createTime.
+
+
+## 1.8.877 - 2021-2-25
+- Support SLR by InitializeDbsServiceLinkedRole action.
+- Change DescribeIncrementBackupList and DescribeFullBackupList to Support Range filter.
+
+
+## 1.8.876 - 2021-2-24
+- ALL API.
+
+
+## 1.8.875 - 2021-2-23
+- Support version in ListAppInstance response.
+- Support clusterId in CreateEnvironment request.
+
+
+## 1.8.874 - 2021-2-23
+- Supported List Namespaces.
+- Supported List Groups.
+- Supported List Jobs.
+
+
+## 1.8.873 - 2021-2-20
+- Add CheckServiceStatus.
+- Add OpenXtraceDefaultSLR.
+- Add OpenArmsDefaultSLR.
+
+
+## 1.8.872 - 2021-2-19
+- Update Imageaudit.
+
+
+## 1.8.871 - 2021-2-19
+- Supported all language sdk.
+- Fixed some bugs for polardbx.
+
+
+## 1.8.870 - 2021-2-19
+- Release UnderstandVideoContent.
+
+
+## 1.8.869 - 2021-2-19
+- ReportInstancesStatus OpenAPI supports IssueCategory parameter.
+
+
+## 1.8.868 - 2021-2-19
+- Generated 2018-07-13 for `Ft`.
+
+
+## 1.8.867 - 2021-2-19
+- Add username for RunCommand and InvokeCommand.
+
+
+## 1.8.866 - 2021-2-19
+- Update videorecog.
+
+
+## 1.8.865 - 2021-2-19
+- Create Lindorm Open api.
+
+
+## 1.8.864 - 2021-2-19
+- Supported SystemDiskPerformanceLevel, SystemDiskDeleteWithInstance, DataDiskPerformanceLevel, NetworkInterfaceSecurityGroupIds, SecurityGroupIds, PrivateIpAddress for CreateLaunchTemplate, CreateLaunchTemplateVersion, DescribeLaunchTemplateVersion.
+
+
+## 1.8.863 - 2021-2-19
+- Minor chagnes.
+
+
+## 1.8.862 - 2021-2-19
+- Add API OpenOnsService which can active ons service.
+
+
+## 1.8.861 - 2021-2-19
+- Supported International-26888 Sites Region Endpoints.
+
+
+## 1.8.860 - 2021-2-19
+- Add GetImageQuality API.
+- Add more info as parameters to Images related APIs.
+
+
+## 1.8.859 - 2021-2-19
+- Update ModifyDcdnService.
+
+
+## 1.8.858 - 2021-2-19
+- Supported console.
+
+
+## 1.8.857 - 2021-2-19
+- Add update task api.
+
+
+## 1.8.856 - 2021-2-19
+- Generated 2018-01-11 for `rtc`.
+
+
+## 1.8.855 - 2021-2-19
+- Support Open Service API.
+
+
+## 1.8.854 - 2021-2-19
+- Update Function.
+
+
+## 1.8.853 - 2021-2-19
+- Generated 2018-01-11 for `rtc`.
+
+
+## 1.8.852 - 2021-2-8
+- Fix IoT Studio BatchBindDevicesIntoProject API return datatype.
+- Fix IoT Studio BatchBindProductsIntoProject API return datatype.
+- Fix IoT Studio BatchUnbindProjectDevices API return datatype.
+- Fix IoT Studio BatchUnbindProjectProducts API return datatype.
+
+
+## 1.8.851 - 2021-2-8
+- Add username for RunCommand and InvokeCommand.
+
+
+## 1.8.850 - 2021-2-8
+- Update PedestrianDetectAttribute.
+
+
+## 1.8.849 - 2021-2-7
+- Add IoT Studio BatchBindDevicesIntoProject API.
+- Add IoT Studio BatchBindProductsIntoProject API.
+- Add IoT Studio BatchUnbindProjectDevices API.
+- Add IoT Studio BatchUnbindProjectProducts API.
+
+
+## 1.8.848 - 2021-2-7
+- Support patch manager apis.
+
+
+## 1.8.847 - 2021-2-7
+- Support some MergeRequest API.
+
+
+## 1.8.846 - 2021-2-5
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.845 - 2021-2-5
+- Test.
+
+
+## 1.8.844 - 2021-2-5
+- Update Open API.
+
+
+## 1.8.843 - 2021-2-5
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.842 - 2021-2-4
+- Update DetectVehicleIllegalParking DetectVehicleICongestion.
+
+
+## 1.8.841 - 2021-2-4
+- Supported scheduler for outbound call.
+
+
+## 1.8.840 - 2021-2-4
+- Supported console.
+
+
+## 1.8.839 - 2021-2-4
+- Supported console.
+
+
+## 1.8.838 - 2021-2-4
+- Update TaggingImage.
+
+
+## 1.8.837 - 2021-2-3
+- After normalizing the API group name, regenerate the SDK.
+
+
+## 1.8.836 - 2021-2-3
+- Support connection drain.
+
+
+## 1.8.835 - 2021-2-2
+- Add.
+
+
+## 1.8.834 - 2021-2-2
+- CreateShardingDBInstance add ReadOnlyReplicas in ReplicaSet.
+
+
+## 1.8.833 - 2021-2-1
+- Support device credential for mqtt.
+
+
+## 1.8.832 - 2021-2-1
+- Release GenerateHumanSketchStyle MergeImageFace AddFaceImageTemplate QueryFaceImageTemplate DeleteFaceImageTemplate.
+
+
+## 1.8.831 - 2021-2-1
+- Add.
+
+
+## 1.8.830 - 2021-2-1
+- Release GenerateHumanSketchStyle MergeImageFace AddFaceImageTemplate QueryFaceImageTemplate DeleteFaceImageTemplate.
+
+
+## 1.8.829 - 2021-2-1
+- Release RecognizeFood.
+
+
+## 1.8.828 - 2021-2-1
+- Release UnderstandVideoContent.
+
+
+## 1.8.827 - 2021-2-1
+- Release SegmentGreenScreenVideo.
+
+
+## 1.8.826 - 2021-2-1
+- Release DetectVehicleIllegalParking DetectVehicleICongestion.
+
+
+## 1.8.825 - 2021-1-29
+- Update Monitor Api.
+
+
+## 1.8.824 - 2021-1-28
+- Update QueryMetric api support customFilters parameter.
+
+
+## 1.8.823 - 2021-1-28
+- Generated 2018-03-13 for `retailcloud`.
+
+
+## 1.8.822 - 2021-1-27
+- Add New BatchTranslate API.
+
+
+## 1.8.821 - 2021-1-27
+- DetectFaceAttributes Add Score.
+
+
+## 1.8.820 - 2021-1-25
+- Regenerate SDK to override list implement.
+
+
+## 1.8.819 - 2021-1-25
+- Update Open API.
+
+
+## 1.8.818 - 2021-1-22
+- Update Function.
+
+
+## 1.8.817 - 2021-1-21
+- Modify some field types.
+
+
+## 1.8.816 - 2021-1-21
+- Generated 2019-09-10 for `waf-openapi`.
+
+
+## 1.8.815 - 2021-1-21
+- Add.
+
+
+## 1.8.814 - 2021-1-20
+- Add metrics data API.
+
+
+## 1.8.813 - 2021-1-19
+- Update Function.
+
+
+## 1.8.812 - 2021-1-18
+- Generated 2019-03-27 for `dg`.
+
+
+## 1.8.811 - 2021-1-18
+- Add a set of API to support device distribution management, including CreateProductDistributeJob, CreateDeviceDistributeJob, QueryDeviceDistributeJob, ListDeviceDistributeJob, QueryDeviceDistributeDetail, DeleteDeviceDistributeJob, ListDistributedDevice, ListDistributedProduct etc.
+
+
+## 1.8.810 - 2021-1-18
+- Add a set of api to support device distribution management, including CreateProductDistributeJob, CreateDeviceDistributeJob, QueryDeviceDistributeJob, ListDeviceDistributeJob, QueryDeviceDistributeDetail, DeleteDeviceDistributeJob, ListDistributedDevice, ListDistributedProduct etc.
+
+
+## 1.8.809 - 2021-1-18
+- Add ListMergeRequests api.
+- Add protected branch api, CreateRepositoryProtectedBranch and DeleteRepositoryProtectedBranch.
+- Add repository deploy key api, EnableRepositoryDeployKey and CreateRepositoryDeployKey.
+- Add UpdateRepository api.
+- Update GetUserInfo, support use OrganizationId param to get user organization name.
+
+
+
+## 1.8.808 - 2021-1-15
+- Add result value spanId for GetTrace api.
+
+
+## 1.8.807 - 2021-1-15
+- Update Function.
+
+
+## 1.8.806 - 2021-1-15
+- Update Function.
+
+
+## 1.8.805 - 2021-1-15
+- Add API CreateSortScriptValidation.
+- Add parameter resourceGroupId to API ListAppGroups.
+
+
+## 1.8.804 - 2021-1-14
+- Add function.
+
+
+## 1.8.803 - 2021-1-14
+- Add BillingDate support in QueryAccontBill.
+- Add SplitAccountId, SplitAccountName, SplitBillingCycle, SplitProductDetail, SplitCommodityCode, ServicePeriodUnit support in QuerySplitItemBill.
+
+
+## 1.8.802 - 2021-1-14
+- Update Open API.
+
+
+## 1.8.801 - 2021-1-14
+- Update function.
+
+
+## 1.8.800 - 2021-1-14
+- Create Lindorm Open api.
+
+
+## 1.8.799 - 2021-1-13
+- Add SwitchInstanceHA API.
+- ModifyInstanceSpec add SourceBiz param.
+
+
+## 1.8.798 - 2021-1-13
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.797 - 2021-1-12
+- Add support for IoT jobs, including job management and query APIs like CreateJob, UpdateJob, QueryJob, CancelJob, ListTask, QueryTask, QueryJobStatistics etc.
+
+
+## 1.8.796 - 2021-1-12
+- Update ExtractPedestrianFeatureAttr.
+
+
+## 1.8.795 - 2021-1-11
+- Add result value spanId for GetTrace api.
+
+
+## 1.8.794 - 2021-1-11
+- Add DescribeConnectionStatus and DescribeDTSIP, remove UpgradeTwoWay.
+
+
+## 1.8.793 - 2021-1-8
+- Add API related to resource quota of source monitoring.
+- Add a new version of alert log API.
+
+
+## 1.8.792 - 2021-1-7
+- Add new API for configuration and report.
+
+
+## 1.8.791 - 2021-1-7
+- Add CreateAndStartBackupPlan.
+- Add DescribeDLAService.
+- Add CreateDLAService.
+- Add CloseDLAService.
+
+
+## 1.8.790 - 2021-1-7
+- Generated 2019-09-10 for `waf-openapi`.
+
+
+## 1.8.789 - 2021-1-7
+- Generated 2020-11-26 for `Airec`.
+
+
+## 1.8.788 - 2021-1-6
+- Update DetectLungNodule.
+
+
+## 1.8.787 - 2021-1-6
+- Support input parameter ClientToken for CreateAutoProvisioningGroup.
+
+
+## 1.8.786 - 2021-1-6
+- Add API.
+
+
+## 1.8.785 - 2021-1-5
+- Remove legacy APIs.
+
+
+## 1.8.784 - 2021-1-5
+- Add DescribeBackupTasks API.
+
+
+## 1.8.783 - 2021-1-4
+- Generated 2014-05-26 for `Ecs`.
+
+
+## 1.8.782 - 2021-1-4
+- Supported API for GTM.
+
+
+## 1.8.781 - 2020-12-31
+- Add support for thing model function block features, including thing model APIs like CreateThingModel,UpdateThingModel,SetDeviceProperty,InvokeThingService etc.
+
+
+## 1.8.780 - 2020-12-31
+- Update Open API.
+
+
+## 1.8.779 - 2020-12-30
+- Add DescribeActiveOperationTask API.
+- Add ModifyActiveOperationTask API.
+
+
+## 1.8.778 - 2020-12-30
+- Support directly specify image version deploy.
+
+
+## 1.8.777 - 2020-12-29
+- Supported SystemDiskPerformanceLevel, SystemDiskDeleteWithInstance, DataDiskPerformanceLevel, NetworkInterfaceSecurityGroupIds, SecurityGroupIds, PrivateIpAddress for CreateLaunchTemplate, CreateLaunchTemplateVersion, DescribeLaunchTemplateVersion.
+
+
+## 1.8.776 - 2020-12-29
+- ListNodesNoPaging return with instance type.
+
+
+## 1.8.775 - 2020-12-28
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.774 - 2020-12-28
+- Release InterpolateVideoFrame ToneSdrVideo ConvertHdrVideo.
+
+
+## 1.8.773 - 2020-12-28
+- Release GenRealPersonVerificationToken GetRealPersonVerificationResult.
+
+
+## 1.8.772 - 2020-12-28
+- Add CommodityCode For QueryOrderAPI.
+
+
+## 1.8.771 - 2020-12-28
+- Ecs confirm.
+
+
+## 1.8.770 - 2020-12-28
+- Add some console API operations.
+
+
+## 1.8.769 - 2020-12-25
+- Generated 2016-04-08 for `Emr`.
+
+
+## 1.8.768 - 2020-12-25
+- Supported for weboffice edit.
+
+
+## 1.8.767 - 2020-12-24
+- Modify ConfigureBackupPlan.
+
+
+## 1.8.766 - 2020-12-24
+- Release CreateBodyDb ListBodyDbs DeleteBodyDb CreateBodyPerson GetBodyPerson ListBodyPerson DeleteBodyPerson AddBodyTrace SearchBodyTrace.
+
+
+## 1.8.765 - 2020-12-23
+- CDRS First edition.
+
+
+## 1.8.764 - 2020-12-23
+- Release DetectPedestrianIntrusion.
+
+
+## 1.8.763 - 2020-12-23
+- Create Lindorm Open api.
+
+
+## 1.8.762 - 2020-12-23
+- Create TSDB Open api.
+
+
+## 1.8.761 - 2020-12-22
+- Minor chagnes.
+
+
+## 1.8.760 - 2020-12-22
+- Update SegmentAnimal SegmentCommonImage.
+
+
+## 1.8.759 - 2020-12-22
+- Support SLB latest OpenAPIs.
+
+
+## 1.8.758 - 2020-12-22
+- Release InterpolateVideoFrame ToneSdrVideo ConvertHdrVideo.
+
+
+## 1.8.757 - 2020-12-22
+- Release InterpolateVideoFrame.
+
+
+## 1.8.756 - 2020-12-22
+- Release DetectRibFracture.
+
+
+## 1.8.755 - 2020-12-22
+- Minor chagnes.
+
+
+## 1.8.754 - 2020-12-22
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.753 - 2020-12-21
+- Support Device of LaunchConfiguration_DataDisk.
+
+
+## 1.8.752 - 2020-12-18
+- Support ListRepositories, ListOrganizations, GetUserInfo, ListRepositoryWebhook, DeleteRepositoryWebhook api.
+- AddWebhook api support SecretToken.
+
+
+## 1.8.751 - 2020-12-18
+- Release Full Managed Credentials for Aliyun RDS.
+
+
+## 1.8.750 - 2020-12-18
+- Add GetAgentDownloadUrl api.
+
+
+## 1.8.749 - 2020-12-18
+- Release EvaluateCertificateQuality.
+
+
+## 1.8.748 - 2020-12-18
+- Add ListScenario Api.
+- Add ApplyScenario Api.
+- Add DeleteScenario Api.
+
+
+## 1.8.747 - 2020-12-18
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.746 - 2020-12-17
+- Add onex PHP sdk.
+- Add onex python sdk.
+
+
+## 1.8.745 - 2020-12-17
+- Update SegmentFood.
+
+
+## 1.8.744 - 2020-12-17
+- Update DeleteScdnDomain.
+
+
+## 1.8.743 - 2020-12-17
+- Generated 2014-05-26 for `Ecs`.
+
+
+## 1.8.742 - 2020-12-17
+- Update DeleteDcdnDomain.
+
+
+## 1.8.741 - 2020-12-17
+- Update DeleteCdnDomain.
+
+
+## 1.8.740 - 2020-12-17
+- Generated 2020-01-11 for `servicemesh`.
+
+
+## 1.8.739 - 2020-12-17
+- Update api.
+
+
+## 1.8.738 - 2020-12-16
+- Generated 2019-09-10 for `waf-openapi`.
+
+
+## 1.8.737 - 2020-12-16
+- Support show pipeline history.
+- Support show log details.
+
+
+## 1.8.736 - 2020-12-16
+- Add Face Attributes.
+
+
+## 1.8.735 - 2020-12-15
+- Update Open API.
+
+
+## 1.8.734 - 2020-12-15
+- CDRS First edition.
+
+
+## 1.8.733 - 2020-12-15
+- CDRS First edition.
+
+
+## 1.8.732 - 2020-12-14
+- Add update task api.
+
+
+## 1.8.731 - 2020-12-14
+- Add update task api.
+
+
+## 1.8.730 - 2020-12-14
+- CDRS First edition.
+
+
+## 1.8.729 - 2020-12-14
+- Add update task api.
+
+
+## 1.8.728 - 2020-12-11
+- Add Emon route-API support.
+
+
+## 1.8.727 - 2020-12-9
+- Update SegmentCommodity.
+
+
+## 1.8.726 - 2020-12-8
+- Update new version.
+
+
+## 1.8.725 - 2020-12-8
+- Generated 2018-12-12 for `vs`.
+
+
+## 1.8.724 - 2020-12-8
+- Support filtering keys and secrets.
+- Support opening KMS service and describing service status by API.
+- Add a prefix limitation for SecretName.
+
+
+## 1.8.723 - 2020-12-8
+- Update DescribeScdnDomainCertificateInfo.
+
+
+## 1.8.722 - 2020-12-8
+- Generated 2018-01-11 for `rtc`.
+
+
+## 1.8.721 - 2020-12-8
+- Support Open Service API.
+
+
+## 1.8.720 - 2020-12-8
+- Release DetectCardScreenshot RecognizePoiName.
+
+
+## 1.8.719 - 2020-12-8
+- Update data API.
+
+
+## 1.8.718 - 2020-12-8
+- Supported AndroidNotificationNotifyId for Push and MassPush.
+- Supported iOSNotificationCollapseId for Push and MassPush.
+
+
+## 1.8.717 - 2020-12-8
+- Some new parameters are supported.
+
+
+## 1.8.716 - 2020-12-8
+- Update goodstech.
+
+
+## 1.8.715 - 2020-12-7
+- Add Listdashboard Api.
+
+
+## 1.8.714 - 2020-12-7
+- Remove DescribeSubscriptionObjectModifyStatus.
+
+
+## 1.8.713 - 2020-12-4
+- Supported broker demand.
+
+
+## 1.8.712 - 2020-12-4
+- Support manual scan interface.
+
+
+## 1.8.711 - 2020-12-4
+- ReportInstancesStatus OpenAPI supports IssueCategory parameter.
+
+
+## 1.8.710 - 2020-12-3
+- Update DescribeScdnDomainCertificateInfo.
+
+
+## 1.8.709 - 2020-12-3
+- Update ModifyDcdnService.
+
+
+## 1.8.708 - 2020-12-3
+- Update DescribeDomainMax95BpsData.
+
+
+## 1.8.707 - 2020-12-3
+- Update DescribeScdnDomainCertificateInfo.
+
+
+## 1.8.706 - 2020-12-3
+- Update DescribeScdnDomainCertificateInfo.
+
+
+## 1.8.705 - 2020-12-3
+- Update DescribeDomainMax95BpsData.
+
+
+## 1.8.704 - 2020-12-3
+- Update ModifyDcdnService.
+
+
+## 1.8.703 - 2020-12-3
+- Update DescribeDomainMax95BpsData.
+
+
+## 1.8.702 - 2020-12-3
+- Update DescribeScdnDomainCertificateInfo.
+
+
+## 1.8.701 - 2020-12-3
+- Generated 2020-06-29 for `alinlp`.
+
+
+## 1.8.700 - 2020-12-3
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.699 - 2020-12-3
+- Add new api.
+
+
+## 1.8.698 - 2020-12-3
+- Supported all language sdk.
+- Fixed some bugs for polardbx.
+
+
+## 1.8.697 - 2020-12-3
+- Support data retrieval of Ota module.
+- Added script management API,including CreateThingScript,UpdateThingScript,GetThingScript.
+- Update OTA API, including DeleteOTAModule,UpdateOTAModule,ListOTATaskByJob.
+- Add OTA API, ListOTAModuleVersionsByDevice.
+
+
+## 1.8.696 - 2020-12-3
+- Update DetectLungNodule.
+
+
+## 1.8.695 - 2020-12-2
+- Update version.
+
+
+## 1.8.694 - 2020-12-2
+- Update version.
+
+
+## 1.8.693 - 2020-12-2
+- Support TemplateContent.
+
+
+## 1.8.692 - 2020-12-2
+- Supported OpenAPI for SDK.
+
+
+## 1.8.691 - 2020-12-2
+- Release ColorizeImage.
+
+
+## 1.8.690 - 2020-12-2
+- Release MergeVideoFace EnhanceVideoQuality.
+
+
+## 1.8.689 - 2020-12-2
+- Update SegmentHead.
+
+
+## 1.8.688 - 2020-12-1
+- Add task api.
+
+
+## 1.8.687 - 2020-12-1
+- Add task api.
+
+
+## 1.8.686 - 2020-12-1
+- Fixed bugs for CCC.
+
+
+## 1.8.685 - 2020-12-1
+- Supported Open Api.
+
+
+## 1.8.684 - 2020-11-30
+- Add OpenARMS api.
+
+
+## 1.8.683 - 2020-11-30
+- Add OpenARMS api.
+
+
+## 1.8.682 - 2020-11-30
+- Update SetVideoSeekConfig.
+
+
+## 1.8.681 - 2020-11-30
+- Update DescribeScdnDomainCertificateInfo.
+
+
+## 1.8.680 - 2020-11-30
+- Update SetVideoSeekConfig.
+
+
+## 1.8.679 - 2020-11-30
+- Add OpenARMS api.
+
+
+## 1.8.678 - 2020-11-30
+- Support autoPtovisioning whth DiskConfigs.
+
+
+## 1.8.677 - 2020-11-30
+- Update OpenDcdnService.
+
+
+## 1.8.676 - 2020-11-30
+- Update OpenDcdnService.
+
+
+## 1.8.675 - 2020-11-30
+- Supported all language sdk.
+- Fixed some bugs for polardbx.
+
+
+## 1.8.674 - 2020-11-29
+- Support CPP and Go and PHP.
+
+
+## 1.8.673 - 2020-11-27
+- Supported all language sdk.
+- Fixed some bugs for polardbx.
+
+
+## 1.8.672 - 2020-11-27
+- Supported all language sdk.
+- Fixed some bugs for polardbx.
+
+
+## 1.8.671 - 2020-11-27
+- Generated 2018-01-11 for `rtc`.
+
+
+## 1.8.670 - 2020-11-27
+- Add Certificate Manager Api.
+
+
+## 1.8.669 - 2020-11-27
+- Support taskList.
+
+
+## 1.8.668 - 2020-11-26
+- ContrastFaceVerify Support Video.
+
+
+## 1.8.667 - 2020-11-26
+- Generated 2020-07-06, 2017-12-04 for `Actiontrail`.
+
+
+## 1.8.666 - 2020-11-26
+- Generated 2020-07-06 for `Actiontrail`.
+
+
+## 1.8.665 - 2020-11-26
+- Add tags api, include GetRepositoryTag, ListRepositoryTags, DeleteRepositoryTag.
+
+
+## 1.8.664 - 2020-11-25
+- Update DescribeScdnDomainCertificateInfo.
+
+
+## 1.8.663 - 2020-11-25
+- Update SetVideoSeekConfig.
+
+
+## 1.8.662 - 2020-11-25
+- Add extension field for image translation.
+
+
+## 1.8.661 - 2020-11-24
+- Create TSDB Open api.
+
+
+## 1.8.660 - 2020-11-24
+- Create TSDB Open api.
+
+
+## 1.8.659 - 2020-11-24
+- Create lindorm Open api.
+
+
+## 1.8.658 - 2020-11-24
+- Create lindorm Open api.
+
+
+## 1.8.657 - 2020-11-24
+- Update SearchFace.
+
+
+## 1.8.656 - 2020-11-24
+- Generated 2020-01-01 for `ddoscoo`.
+
+
+## 1.8.655 - 2020-11-23
+- Supported multiple Language.
+
+
+## 1.8.654 - 2020-11-23
+- Add LivenessDetect API.
+
+
+## 1.8.653 - 2020-11-20
+- Support ListExecutions with filter functionality.
+
+
+## 1.8.652 - 2020-11-20
+- Public beta version.
+- Add Api Overseas.
+
+
+## 1.8.651 - 2020-11-20
+- Add a new interface for asynchronous image translation.
+
+
+## 1.8.650 - 2020-11-20
+- Update DetectFace.
+- Update RecognizeFace.
+
+
+## 1.8.649 - 2020-11-19
+- Generated 2020-07-02 for `scsp`.
+
+
+## 1.8.648 - 2020-11-19
+- Update DescribeDedicatedClusterInstanceList return data.
+
+
+## 1.8.647 - 2020-11-19
+- Update data API.
+
+
+## 1.8.646 - 2020-11-19
+- Update data API.
+
+
+## 1.8.645 - 2020-11-19
+- Update GenerateHumanAnimeStyle.
+
+
+## 1.8.644 - 2020-11-19
+- Update SegmentBody.
+
+
+## 1.8.643 - 2020-11-19
+- Supported backend interface for ICBU.
+
+
+## 1.8.642 - 2020-11-18
+- Update DescribeDedicatedClusterInstanceList InstanceStatus type.
+
+
+## 1.8.641 - 2020-11-18
+- Generated 2018-01-11 for `rtc`.
+
+
+## 1.8.640 - 2020-11-18
+- Supported webpage scan.
+
+
+## 1.8.639 - 2020-11-17
+- Support event type in timeline of resource properties.
+- Support resourceOwnerId in evaluation result.
+- Support resource directory in config rule scene.
+- Fix terraform related bugs.
+
+
+## 1.8.638 - 2020-11-17
+- Supported International-26888 Sites Region Endpoints.
+
+
+## 1.8.637 - 2020-11-17
+- Supported International-26888 Sites Region Endpoints.
+
+
+## 1.8.636 - 2020-11-16
+- Nat public IP supports the ISP attribute.
+
+
+## 1.8.635 - 2020-11-16
+- Add a new interface for asynchronous image translation.
+
+
+## 1.8.634 - 2020-11-16
+- Update videoenhan.
+
+
+## 1.8.633 - 2020-11-16
+- Update videoseg.
+
+
+## 1.8.632 - 2020-11-16
+- Update videorecog.
+
+
+## 1.8.631 - 2020-11-16
+- Update objectdet.
+
+
+## 1.8.630 - 2020-11-16
+- Update imgsearch.
+
+
+## 1.8.629 - 2020-11-16
+- Update imagerecog.
+
+
+## 1.8.628 - 2020-11-16
+- Update goodstech.
+
+
+## 1.8.627 - 2020-11-13
+- Update Imageaudit.
+
+
+## 1.8.626 - 2020-11-13
+- Add DeccribeEngineVersion DescribeTasks DescribeInstanceConfig and more APIs.
+
+
+## 1.8.625 - 2020-11-13
+- Update DetectLungNodule.
+
+
+## 1.8.624 - 2020-11-13
+- Fix GetBranchInfo and DeleteBranch API 404 error.
+- Add ListRepositoryBranches and GetGroupDetail API.
+
+
+## 1.8.623 - 2020-11-13
+- Release ErasePerson.
+
+
+## 1.8.622 - 2020-11-13
+- Release DetectCardScreenshot RecognizePoiName.
+
+
+## 1.8.621 - 2020-11-13
+- Release GenerateHumanAnimeStyle CountCrowd.
+
+
+## 1.8.620 - 2020-11-13
+- Release SegmentHDSky SegmentHDCommonImage.
+
+
+## 1.8.619 - 2020-11-12
+- Support drm.
+
+
+## 1.8.618 - 2020-11-12
+- Fixed the display problem of the repo page.
+
+
+## 1.8.617 - 2020-11-12
+- Generated 2019-06-01 for `smc`.
+
+
+## 1.8.616 - 2020-11-12
+- Update new version.
+
+
+## 1.8.615 - 2020-11-12
+- Add API OpenOnsService which can active ons service.
+
+
+## 1.8.614 - 2020-11-12
+- Update Scdn API.
+
+
+## 1.8.613 - 2020-11-12
+- Support execute database script via open api.
+
+
+## 1.8.612 - 2020-11-12
+- Generated 2014-05-26 for `Ecs`.
+
+
+## 1.8.611 - 2020-11-12
+- Update cert API.
+
+
+## 1.8.610 - 2020-11-12
+- Update cert API.
+
+
+## 1.8.609 - 2020-11-12
+- Release latest features.
+
+
+## 1.8.608 - 2020-11-12
+- Update data API.
+
+
+## 1.8.607 - 2020-11-12
+- Add API OpenOnsService which can active ons service.
+
+
+## 1.8.606 - 2020-11-12
+- Add SaveTraceAppConfig api.
+
+
+## 1.8.605 - 2020-11-12
+- Update HasRenewChangeOrder type to Boolean in DescribeInstances.
+
+
+## 1.8.604 - 2020-11-12
+- Generated 2018-12-12 for `vs`.
+
+
+## 1.8.603 - 2020-11-12
+- Add Pipeline Member api.
+
+
+## 1.8.602 - 2020-11-12
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.601 - 2020-11-12
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.600 - 2020-11-12
+- Sync cdn APIs.
+
+
+## 1.8.599 - 2020-11-12
+- Add Content.
+
+
+## 1.8.598 - 2020-11-12
+- Generated 2014-05-26 for `Ecs`.
+
+
+## 1.8.597 - 2020-11-12
+- Minor update for r-kvstore.
+
+
+## 1.8.596 - 2020-11-12
+- Generated 2018-06-01 for `dataworks-public`.
+
+
+## 1.8.595 - 2020-11-12
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.594 - 2020-11-12
+- GetTitleIntelligence add interface.
+
+
+## 1.8.593 - 2020-11-12
+- Fix bug.
+
+
+## 1.8.592 - 2020-11-12
+- Support Sampling for jaeger.
+
+
+## 1.8.591 - 2020-11-12
+- Add alarm notification language settings.
+
+
+## 1.8.590 - 2020-11-12
+- Generated 2018-06-01 for `dataworks-public`.
+
+
+## 1.8.589 - 2020-11-12
+- Generated 2018-07-13 for `Ft`.
+
+
+## 1.8.588 - 2020-11-12
+- Supported Open Api.
+
+
+## 1.8.587 - 2020-11-12
+- Support OpenAPI.
+
+
+## 1.8.586 - 2020-11-12
+- Generated 2018-07-13 for `Ft`.
+
+
+## 1.8.585 - 2020-11-12
+- Update DescribeTrails Response.
+
+
+## 1.8.584 - 2020-11-5
+- Support modifyInstnaceType.
+
+
+## 1.8.583 - 2020-11-4
+- Generated 2019-01-01 for `Cassandra`.
+
+
+## 1.8.582 - 2020-11-4
+- Support modifyInstnaceType.
+
+
+## 1.8.581 - 2020-11-4
+- Generated 2019-01-01 for `Cassandra`.
+
+
+## 1.8.580 - 2020-11-4
+- Support modifyInstnaceType.
+
+
+## 1.8.579 - 2020-11-4
+- Generated 2018-07-13 for `Ft`.
+
+
+## 1.8.578 - 2020-11-4
+- Generated 2018-07-13 for `Ft`.
+
+
+## 1.8.577 - 2020-11-3
+- Minor update for r-kvstore.
+
+
+## 1.8.576 - 2020-11-3
+- Update data API.
+
+
+## 1.8.575 - 2020-11-2
+- Support create serverless by day price type.
+
+
+## 1.8.574 - 2020-11-1
+- Supported All Console APIs.
+
+
+## 1.8.573 - 2020-10-28
+- Support GetParameters, GetParametersByPath, GetSecretParameters, GetSecretParametersByPath.
+
+
+## 1.8.572 - 2020-10-28
+- Supported all language sdk.
+- Fixed some bugs for polardbx.
+
+
+## 1.8.571 - 2020-10-28
+- Supported golang sdk.
+- Fixed some bugs for drds.
+
+
+## 1.8.570 - 2020-10-27
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.569 - 2020-10-27
+- Support Sampling for jaeger.
+
+
+## 1.8.568 - 2020-10-27
+- Fix bug.
+
+
+## 1.8.567 - 2020-10-27
+- Add role authority management.
+
+
+## 1.8.566 - 2020-10-26
+- Generated 2014-05-26 for `Ecs`.
+
+
+## 1.8.565 - 2020-10-26
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.564 - 2020-10-26
+- Supported PaymentType for DescribeDnsProductInstance.
+
+
+## 1.8.563 - 2020-10-26
+- Update ScalingConfig parameters.
+
+
+## 1.8.562 - 2020-10-23
+- Change Configuration.
+
+
+## 1.8.561 - 2020-10-23
+- Support feedback.
+
+
+## 1.8.560 - 2020-10-22
+- Add Pipeline Member api.
+
+
+## 1.8.559 - 2020-10-22
+- Update data API.
+
+
+## 1.8.558 - 2020-10-22
+- Update data API.
+
+
+## 1.8.557 - 2020-10-22
+- Update cert API.
+
+
+## 1.8.556 - 2020-10-21
+- DescribeAvailableResource support AcceptLanguage.
+
+
+## 1.8.555 - 2020-10-21
+- Change Documentation configuration.
+
+
+## 1.8.554 - 2020-10-21
+- Cloud Storage Gateway openapi sdk is released.
+
+
+## 1.8.553 - 2020-10-21
+- Release latest features.
+
+
+## 1.8.552 - 2020-10-21
+- Change Documentation configuration.
+
+
+## 1.8.551 - 2020-10-21
+- Change Documentation configuration.
+
+
+## 1.8.550 - 2020-10-21
+- Add custom person interfaces, support registration, update etc.
+- Optimize updateSmarttagTemplate interface, set some parameters as optional.
+
+
+## 1.8.549 - 2020-10-21
+- Update cert API.
+
+
+## 1.8.548 - 2020-10-21
+- Add PHP sdk.
+
+
+## 1.8.547 - 2020-10-20
+- Add LivenessFaceVerify API.
+
+
+## 1.8.546 - 2020-10-20
+- Update Configuration.
+
+
+## 1.8.545 - 2020-10-20
+- Add isv interface.
+
+
+## 1.8.544 - 2020-10-20
+- AddDeleteSortScriptFileApi.
+
+
+## 1.8.543 - 2020-10-20
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.542 - 2020-10-19
+- Add a new interface for asynchronous image translation.
+
+
+## 1.8.541 - 2020-10-16
+- Update OTA API, including ListOTAModuleByProduct, DeleteOTAModule.
+
+
+## 1.8.540 - 2020-10-16
+- Supported AndroidNotificationNotifyId for Push and MassPush.
+- Supported iOSNotificationCollapseId for Push and MassPush.
+
+
+## 1.8.539 - 2020-10-16
+- Update cert API.
+
+
+## 1.8.538 - 2020-10-16
+- Update cert API.
+
+
+## 1.8.537 - 2020-10-15
+- Supported TAG APIs.
+
+
+## 1.8.536 - 2020-10-15
+- Add SaveTraceAppConfig api.
+
+
+## 1.8.535 - 2020-10-15
+- Generated 2018-06-01 for `dataworks-public`.
+
+
+## 1.8.534 - 2020-10-15
+- Generated 2018-06-01 for `dataworks-public`.
+
+
+## 1.8.533 - 2020-10-14
+- Generated 2014-05-26 for `Ecs`.
+
+
+## 1.8.532 - 2020-10-13
+- Add Content.
+
+
+## 1.8.531 - 2020-10-13
+- Add describe devices to return device status.
+
+
+## 1.8.530 - 2020-10-13
+- Update Scdn API.
+
+
+## 1.8.529 - 2020-10-13
+- Sync cdn APIs.
+
+
+## 1.8.528 - 2020-10-13
+- Update HasRenewChangeOrder type to Boolean in DescribeInstances.
+
+
+## 1.8.527 - 2020-10-13
+- Add describe devices to return device status.
+
+
+## 1.8.526 - 2020-10-13
+- Add spotDuration support.
+
+
+## 1.8.525 - 2020-10-13
+- GetTitleIntelligence add interface.
+
+
+## 1.8.524 - 2020-10-13
+- Generated 2018-01-11 for `rtc`.
+
+
+## 1.8.523 - 2020-10-13
+- Add DeviceCenter API, including QueryDeviceBySQL.
+- Add OTA API, including ListOTAModuleByProduct, DeleteOTAModule.
+- Update error message in response with InvokeThingService, SetDeviceProperty.
+- Update OTA API, including CreateOTAModule, QueryDeviceVersionCountByPkFromOTA, QueryFirmwareByUid.
+- Update thing model API, ImportThingModelTsl.
+
+
+## 1.8.522 - 2020-10-13
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.521 - 2020-10-13
+- Generated 2018-01-11 for `rtc`.
+
+
+## 1.8.520 - 2020-10-13
+- Generated 2018-12-12 for `vs`.
+
+
+## 1.8.519 - 2020-10-12
+- Support add webhook, get repository info via id or path.
+
+
+## 1.8.518 - 2020-10-12
+- Add list Organizations.
+
+
+## 1.8.517 - 2020-10-12
+- ChatApp third version.
+- Add contack check api.
+
+
+## 1.8.516 - 2020-10-9
+- Update Scdn API.
+
+
+## 1.8.515 - 2020-10-9
+- Update DescribeCdnUserBillHistory API.
+
+
+## 1.8.514 - 2020-10-9
+- Update SetVideoSeekConfig API.
+
+
+## 1.8.513 - 2020-9-29
+- Add API OpenOnsService which can active ons service.
+
+
+## 1.8.512 - 2020-9-29
+- Add API OpenOnsService which can active ons service.
+
+
+## 1.8.511 - 2020-9-29
+- Add API OpenOnsService which can active ons service.
+
+
+## 1.8.510 - 2020-9-29
+- Add API OpenOnsService which can active ons service.
+
+
+## 1.8.509 - 2020-9-28
+- Update Scdn API.
+
+
+## 1.8.508 - 2020-9-28
+- Support filtering keys and secrets.
+- Support opening KMS service and describing service status by API.
+- Add a prefix limitation for SecretName.
+
+
+## 1.8.507 - 2020-9-27
+- Update domain API.
+
+
+## 1.8.506 - 2020-9-27
+- Support Open Service API.
+
+
+## 1.8.505 - 2020-9-25
+- Support DescribeSuspEventQuaraFiles API.
+- Support RefreshContainerAsserts API.
+
+
+## 1.8.504 - 2020-9-24
+- ContrastFaceVerify API Add Model Parameter.
+
+
+## 1.8.503 - 2020-9-24
+- Add a new api named SubmitAIImageAuditJob to submit image ai detection job.
+- Add a new api named CreateDNADB to create a DNA analysis library.
+- Add a new api named ListDNADB to query the list of DNA analysis libraries.
+- Add a new api named GetDNADB to query specified DNA analysis library.
+- Add a new field DNADBId to the request parameter Config structure for SubmitAIJob api.
+
+
+## 1.8.502 - 2020-9-23
+- Add spotDuration support.
+
+
+## 1.8.501 - 2020-9-23
+- Some new parameters are supported.
+
+
+## 1.8.500 - 2020-9-23
+- Update domain API.
+
+
+## 1.8.499 - 2020-9-23
+- Update Scdn API.
+
+
+## 1.8.498 - 2020-9-23
+- Sync cdn APIs.
+
+
+## 1.8.497 - 2020-9-22
+- Generated 2019-03-08 for `ivision`.
+
+
+## 1.8.496 - 2020-9-22
+- Generated 2018-01-11 for `rtc`.
+
+
+## 1.8.495 - 2020-9-22
+- Generated 2018-12-12 for `vs`.
+
+
+## 1.8.494 - 2020-9-22
+- Generated 2016-11-01 for `live`.
+
+
+## 1.8.493 - 2020-9-21
+- Interface add column wordCount.
+
+
+## 1.8.492 - 2020-9-21
+- Add search object.
+
+
+## 1.8.491 - 2020-9-20
+- Add describe devices to return device status.
+
+
+## 1.8.490 - 2020-9-18
+- Add alarm notification language settings.
+
+
+## 1.8.489 - 2020-9-17
+- GetTitleIntelligence add interface.
+
+
+## 1.8.488 - 2020-9-16
+- Add Content.
+
+
+## 1.8.487 - 2020-9-15
+- Add describe devices to return device status.
+
+
+## 1.8.486 - 2020-9-11
+- Support execute database script via open api.
+
+
+## 1.8.485 - 2020-9-10
+- Add DisableBackupLog.
+- Add EnableBackupLog.
+- Add ReleaseBackupPlan.
+- Add ModifyStorageStrategy.
+- Modify ModifyBackupStrategy.
+- Modify ModifyBackupSetDownloadRules.
+
+
+## 1.8.484 - 2020-9-10
+- Update HasRenewChangeOrder type to Boolean in DescribeInstances.
+
+
+## 1.8.483 - 2020-9-9
+- Add support cn-beijing service region.
+- Add ai video cover interface,include submit and query.
+- Add dynamic image query interface.
+- Update SubmitMediaAuditJob support MediaAuditConfiguration to set ResourceType.
+
+
+## 1.8.482 - 2020-9-8
+- Supported backend interface for ICBU.
+
+
+## 1.8.481 - 2020-9-7
+- Support parameter APIs.
+
+
+## 1.8.480 - 2020-9-4
+- Sync cdn APIs.
+
+
+## 1.8.479 - 2020-9-4
+- Update Scdn API.
+
+
+## 1.8.478 - 2020-9-4
+- Update domain API.
+
+
+## 1.8.477 - 2020-9-4
+- Add GetImageQuality API.
+- Add more info as parameters to Images related APIs.
+
+
+## 1.8.476 - 2020-9-3
+- Generated 2020-07-02 for `scsp`.
+
+
+## 1.8.475 - 2020-9-3
+- Generated 2020-07-02 for `scsp`.
+
+
+## 1.8.474 - 2020-9-2
+- Support sg for ml region.
+
+
+## 1.8.473 - 2020-9-2
+- ChatApp second version.
+- Support new message fomat.
+
+
+## 1.8.472 - 2020-9-2
+- Meshstress.
+
+
+## 1.8.471 - 2020-9-2
+- Supported AndroidNotificationHuaweiChannel for Push and MassPush.
+
+
+## 1.8.470 - 2020-9-2
+- Supported AndroidNotificationHuaweiChannel for Push and MassPush.
+
+
+## 1.8.469 - 2020-9-1
+- Add Smart Verify API.
+
+
+## 1.8.468 - 2020-9-1
+- Generated 2020-07-02 for `scsp`.
+
+
+## 1.8.467 - 2020-9-1
+- Update Parameter.
+
+
+## 1.8.466 - 2020-8-31
+- Support PersonList.
+
+
+## 1.8.465 - 2020-8-31
+- Generated 2020-07-02 for `scsp`.
+
+
+## 1.8.464 - 2020-8-31
+- GetPersonList Support LastShotTime.
+
+
+## 1.8.463 - 2020-8-31
+- Supported AAA for BBB.
+- Fixed bugs for CCC.
+
+
+## 1.8.462 - 2020-8-31
+- Supported AAA for BBB.
+- Fixed bugs for CCC.
+
+
+## 1.8.461 - 2020-8-31
+- Supported AAA for BBB.
+- Fixed bugs for CCC.
+
+
+## 1.8.460 - 2020-8-31
+- Add list person visit count API.
+
+
+## 1.8.459 - 2020-8-28
+- Add name.
+
+
+## 1.8.458 - 2020-8-28
+- Support multiple security group for one ehpc cluster.
+- Update GWS apis.
+
+
+## 1.8.457 - 2020-8-28
+- Supported Add GetAlgorithmHistoryResult.
+
+
+## 1.8.456 - 2020-8-27
+- Update parameter.
+
+
+## 1.8.455 - 2020-8-26
+- Generated 2020-06-29 for `alinlp`.
+
+
+## 1.8.454 - 2020-8-26
+- Generated 2020-06-29 for `alinlp`.
+
+
+## 1.8.453 - 2020-8-25
+- Generated 2020-08-01 for `SmartHosting`.
+
+
+## 1.8.452 - 2020-8-25
+- Add list person visit count API.
+
+
+## 1.8.451 - 2020-8-25
+- Video Content analytics template introduced to this SDK.
+
+
+## 1.8.450 - 2020-8-24
+- Add project api.
+
+
+## 1.8.449 - 2020-8-24
+- Edit QueryMetricByPage api.
+
+
+## 1.8.448 - 2020-8-21
+- Add QueryMetricByPage api.
+- Add GetAppApiByPage api.
+
+
+## 1.8.447 - 2020-8-19
+- Add DescribeLiveDomainCertificateInfo.
+
+
+## 1.8.446 - 2020-8-19
+- Generated 2020-08-01 for `SmartHosting`.
+
+
+## 1.8.445 - 2020-8-18
+- Add API RenewAppGroup.
+
+
+## 1.8.444 - 2020-8-17
+- Add GetTrace api.
+- Edit Aler api.
+
+
+## 1.8.443 - 2020-8-17
+- Add pipeline status api.
+
+
+## 1.8.442 - 2020-8-17
+- Add Api HighlightGameVideo.
+
+
+## 1.8.441 - 2020-8-17
+- Add Api HighlightGameVideo.
+
+
+## 1.8.440 - 2020-8-17
+- Fix create project task.
+
+
+## 1.8.439 - 2020-8-14
+- Add POP-Model-related APIs.
+
+
+## 1.8.438 - 2020-8-14
+- Add sdk.
+
+
+## 1.8.437 - 2020-8-14
+- Supported Api DetectIPCPedestrian.
+
+
+## 1.8.436 - 2020-8-14
+- Supported CheckCloudResourceAuthorized API.
+
+
+## 1.8.435 - 2020-8-14
+- Add project Api.
+
+
+## 1.8.434 - 2020-8-13
+- Add PipCode and CommodityCode for QueryInstanceBill, QueryBillOverview, QueryBill, QuerySettleBill, QueryAccountBill, QuerySplitItemBill.
+- Support BillOwnerId filter for QueryInstanceBill, QueryBillOverview, QueryBill, QuerySettleBill, QueryAccountBill, QuerySplitItemBill.
+
+
+## 1.8.433 - 2020-8-13
+- Release DetectKneeXRay DetectSpineMRI TranslateMed.
+
+
+## 1.8.432 - 2020-8-13
+- Release DetectKneeXRay DetectSpineMRI TranslateMed.
+
+
+## 1.8.431 - 2020-8-13
+- DescribePrice update amount parameters type, float to string.
+- Add ResourceGroupId parameter to support resource group.
+
+
+## 1.8.430 - 2020-8-13
+- Release SegmentHalfBody.
+
+
+## 1.8.429 - 2020-8-12
+- Add pipeline status api.
+
+
+## 1.8.428 - 2020-8-11
+- Add ResourceGroup in resource snapshot.
+
+
+## 1.8.427 - 2020-8-10
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.426 - 2020-8-8
+- Update SearchImage.
+
+
+## 1.8.425 - 2020-8-7
+- GetTitleDiagnose GetTitleGenerate GetImageTranslate supported.
+
+
+## 1.8.424 - 2020-8-7
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.423 - 2020-8-7
+- GetTitleDiagnose GetTitleGenerate GetImageTranslate supported.
+
+
+## 1.8.422 - 2020-8-7
+- Add FindServiceList and GetService qps.
+
+
+## 1.8.421 - 2020-8-6
+- Update OTA API, including CreateOTAStaticUpgradeJob,CreateOTADynamicUpgradeJob and QueryOTAJob.
+
+
+## 1.8.420 - 2020-8-6
+- Add Smart Cloudauth API.
+
+
+## 1.8.419 - 2020-8-4
+- Update RecognizeTable.
+
+
+## 1.8.418 - 2020-8-4
+- Supported for deploy updateStrategy.
+
+
+## 1.8.417 - 2020-8-3
+- Fix Some API Response Define.
+
+
+## 1.8.416 - 2020-8-3
+- Add source picture url for Monitor.
+
+
+## 1.8.415 - 2020-8-3
+- Add Voice Synchronous Scan API.
+
+
+## 1.8.414 - 2020-8-3
+- Add ExtractPedestrianFeatureAttribute.
+
+
+## 1.8.413 - 2020-7-31
+- Edit GetStack api.
+
+
+## 1.8.412 - 2020-7-30
+- Update DetectCelebrity.
+
+
+## 1.8.411 - 2020-7-30
+- Add Smart Cloudauth API.
+
+
+## 1.8.410 - 2020-7-30
+- Add ABTest-related APIs.
+- Add UserAnalyzer-related APIs.
+- Add API ListSortExpressions.
+- Fix property tag_label of response of ListInterventionDictionaryEntries.
+
+
+## 1.8.409 - 2020-7-30
+- Add ChangeVideoSize.
+
+
+## 1.8.408 - 2020-7-30
+- Add SegmentLogo SegmentScene.
+
+
+## 1.8.407 - 2020-7-30
+- Add DetectCelebrity.
+
+
+## 1.8.406 - 2020-7-30
+- Supported ChatApp for SDK.
+
+
+## 1.8.405 - 2020-7-29
+- Add CreateGetDBListFromAgentTask.
+- Add GetDBListFromAgent.
+
+
+## 1.8.404 - 2020-7-29
+- API GetTaskStatus return task detail.
+
+
+## 1.8.403 - 2020-7-29
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.402 - 2020-7-28
+- Generated 2018-10-12 for `Airec`.
+
+
+## 1.8.401 - 2020-7-27
+- Supported CheckCloudResourceAuthorized API.
+
+
+## 1.8.400 - 2020-7-27
+- Add HSF apis.
+
+
+## 1.8.399 - 2020-7-24
+- Edit ListTraceApp api with add tags.
+- Edit SearchTraceAppByName api with add tags.
+- Edut SearchTraceAppByPage api with add tags.
+
+
+## 1.8.398 - 2020-7-24
+- Support GetImageCroppingSuggestions API.
+- Add Remarks to face group related APIs.
+- Add Model parameter to blind watermark related APIs.
+
+
+## 1.8.397 - 2020-7-24
+- First build.
+
+
+## 1.8.396 - 2020-7-23
+- Supported CloudGame.
+
+
+## 1.8.395 - 2020-7-23
+- Supported AAA for BBB.
+- Fixed bugs for CCC.
+
+
+## 1.8.394 - 2020-7-23
+- Update OTA API, including GenerateOTAUploadURL.
+
+
+## 1.8.393 - 2020-7-23
+- Add AddSecretBlacklist and DeleteSecretBlacklist.
+- Suppoort ASR.
+
+
+## 1.8.392 - 2020-7-23
+- Add GenerateAndExportDataKey, ExportDataKey, ReEncrypt api.
+
+
+## 1.8.391 - 2020-7-23
+- Add GenerateAndExportDataKey, ExportDataKey, ReEncrypt api.
+
+
+## 1.8.390 - 2020-7-22
+- Generated 2015-01-01 for `R-kvstore`.
+- Add SyncDtsStatus API.
+
+
+## 1.8.389 - 2020-7-22
+- Add source id for file uploader.
+
+
+## 1.8.388 - 2020-7-22
+- Add source id for file uploader.
+
+
+## 1.8.387 - 2020-7-21
+- Support Tag API.
+
+
+## 1.8.386 - 2020-7-21
+- Add algorithm type for ListPerson.
+
+
+## 1.8.385 - 2020-7-20
+- Add actions.
+
+
+## 1.8.384 - 2020-7-17
+- Add DescribeRegions.
+- Modify DescribeFullBackupList.
+- Modify DescribeBackupPlanList.
+- Modify DescribeRestoreRangeInfo.
+
+
+## 1.8.383 - 2020-7-17
+- Add actions.
+
+
+## 1.8.382 - 2020-7-16
+- Add more OpenAPIs related to QueryProcessor, FirstRank, SecondRank, etc.
+
+
+## 1.8.381 - 2020-7-15
+- Edit ListTraceApp api.
+- Edit SearchTraceAppByName api.
+- Edut SearchTraceAppByPage api.
+
+
+## 1.8.380 - 2020-7-15
+- Support ModifyImageAttribute by LaunchPermission.
+- Support ImageFamily.
+
+
+## 1.8.379 - 2020-7-14
+- Add Dynamic Registration APIs, including TransformClientId, DeleteClientIds, QueryClientIds, etc.
+- Update OTA API, including CreateOTAStaticUpgradeJob and QueryOTAJob.
+- Update Device Shadow API UpdateDeviceShadow.
+
+
+## 1.8.378 - 2020-7-14
+- Support Web SDK.
+
+
+## 1.8.377 - 2020-7-14
+- Fixed bug for service code.
+
+
+## 1.8.376 - 2020-7-14
+- Supported API for DescribeDohUserInfo.
+- Supported API for DescribeDohAccountStatistics.
+- Supported API for DescribeDohDomainStatistics.
+- Supported API for DescribeDohDomainStatisticsSummary.
+- Supported API for DescribeDohSubDomainStatistics.
+- Supported API for DescribeDohSubDomainStatisticsSummary.
+
+
+## 1.8.375 - 2020-7-10
+- Sdk for 109.
+
+
+## 1.8.374 - 2020-7-9
+- Add accountType for customer service.
+
+
+## 1.8.373 - 2020-7-9
+- Add accountType for renderOrder.
+
+
+## 1.8.372 - 2020-7-9
+- Add Log Monitoring API.
+- Add and modify non Alibaba Cloud host name API.
+
+
+## 1.8.371 - 2020-7-8
+- Remove GetFootwearPosition PullTakeShoesEvent PullTryOnShoesEvent.
+- Add GetFootwearEvent.
+- Please ignore the pd s pot.
+
+
+## 1.8.370 - 2020-7-8
+- Add video compose api.
+
+
+## 1.8.369 - 2020-7-8
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.368 - 2020-7-8
+- Support hotword and hint.
+
+
+## 1.8.367 - 2020-7-7
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.366 - 2020-7-6
+- Sdk for 101.
+
+
+## 1.8.365 - 2020-7-3
+- Supported UpdateUserBucketConfig.
+
+
+## 1.8.364 - 2020-7-3
+- Add ListResourceExecutionStatus API.
+- ListExecutions API supports filtering by resource id.
+- TriggerExecution API supports TimerTrigger.
+
+
+## 1.8.363 - 2020-7-3
+- Supports tag management APIs.
+
+
+## 1.8.362 - 2020-7-2
+- Build sdk.
+
+
+## 1.8.361 - 2020-7-2
+- Generated 2020-05-18 for `dataworks-public`.
+
+
+## 1.8.360 - 2020-7-2
+- SDK version 102.
+
+
+## 1.8.359 - 2020-7-2
+- Add GetFootwearPosition.
+- Add PullTakeShoesEvent.
+- Add PullTryOnShoesEvent.
+
+
+## 1.8.358 - 2020-7-2
+- Update endpoint.
+
+
+## 1.8.357 - 2020-7-2
+- CreateShardingDBInstance add ProtocolType, to support DynamoDB.
+- DescribeDBInstances add return ResourceGroupId.
+
+
+## 1.8.356 - 2020-7-1
+- Added API for modifying non Alibaba Cloud host names.
+- Fix the required type adjustment of several parameters.
+
+
+## 1.8.355 - 2020-7-1
+- SDK version 109.
+
+
+## 1.8.354 - 2020-7-1
+- SDK version 109.
+
+
+## 1.8.353 - 2020-7-1
+- ImageProcess First Version.
+
+
+## 1.8.352 - 2020-7-1
+- Sdk version 111.
+
+
+## 1.8.351 - 2020-7-1
+- SDK version 108.
+
+
+## 1.8.350 - 2020-7-1
+- Add API for GetMetadataAmount.
+
+
+## 1.8.349 - 2020-7-1
+- Support Saf For ExecuteExtendService.
+
+
+## 1.8.348 - 2020-6-30
+- Generated 2018-10-12 for `Airec`.
+
+
+## 1.8.347 - 2020-6-29
+- Supported Rotate.
+
+
+## 1.8.346 - 2020-6-29
+- Generated 2019-12-26 for `OutboundBot`.
+
+
+## 1.8.345 - 2020-6-29
+- Generated 2019-12-26 for `OutboundBot`.
+
+
+## 1.8.344 - 2020-6-29
+- Supported Rotate.
+
+
+## 1.8.343 - 2020-6-29
+- Supported gb28181 parent platform.
+
+
+## 1.8.342 - 2020-6-29
+- Add Model Parameter For InitFaceVerify API.
+
+
+## 1.8.341 - 2020-6-26
+- Supported Api EraseLogoInVideo.
+
+
+## 1.8.340 - 2020-6-24
+- Add DescribeBackupPlanBilling.
+- Modify ConfigureBackupPlan.
+- Modify CreateBackupPlan.
+- Modify CreateRestoreTask.
+- Modify DescribeRestoreTaskList.
+- Modify DescribeBackupPlanList.
+- Modify ModifyBackupSourceEndpoint.
+- Modify ModifyBackupStrategy.
+
+
+## 1.8.339 - 2020-6-23
+- Generated 2015-12-15 for `CS`.
+
+
+## 1.8.338 - 2020-6-23
+- Support SubmitOperationAuditInfo for Support self-service submission of approval information.
+- Support SubmitOperationCredentials for self-service submission of certificate information.
+- Support CancelOperationAudit for cancel audit.
+- Support GetOperationOssUploadPolic for get oss policy.
+- Support QueryOperationAuditInfoLis for query audit list.
+- Support QueryOperationAuditInfoDetail for query audit details.
+
+
+## 1.8.337 - 2020-6-23
+- Generated 2018-08-28 for `Tag`.
+
+
+## 1.8.336 - 2020-6-22
+- Add support cn-shenzhen region.
+
+
+## 1.8.335 - 2020-6-22
+- Add GetMultipleTrace api.
+- Add SearchTracesByPage api.
+- Add GetStack api.
+
+
+## 1.8.334 - 2020-6-21
+- Add persons API.
+
+
+## 1.8.333 - 2020-6-18
+- Supported TransformDBInstancePayType API.
+
+
+## 1.8.332 - 2020-6-18
+- Add GetAuthToken OpenAPI.
+
+
+## 1.8.331 - 2020-6-17
+- Supported sync create eni and assign private ip.
+
+
+## 1.8.330 - 2020-6-16
+- Support TargetImageId in ApplyNodes Interface.
+
+
+## 1.8.329 - 2020-6-15
+- Generated 2019-09-10 for `waf-openapi`.
+
+
+## 1.8.328 - 2020-6-15
+- Generated 2019-09-10 for `waf-openapi`.
+
+
+## 1.8.327 - 2020-6-12
+- Add CreateProduct API ProductSecret in Response.
+- Add AMQP APIs, including CreateSubscribeRelation, CreateConsumerGroup, etc.
+- Add LinkIoTEdge CreateSceneRule API.
+- Add LinkIoTEdge DeleteSceneRule API.
+- Add LinkIoTEdge UpdateSceneRule API.
+- Add LinkIoTEdge GetSceneRule API.
+- Add LinkIoTEdge QuerySceneRule API.
+- Add LinkIoTEdge EnableSceneRule API.
+- Add LinkIoTEdge DisableSceneRule API.
+- Add LinkIoTEdge TriggerSceneRule API.
+- Add LinkIoTEdge QuerySummarySceneRuleLog API.
+- Add LinkIoTEdge QueryDetailSceneRuleLog API.
+- Add LinkIoTEdge BindSceneRuleToEdgeInstance API.
+- Add LinkIoTEdge UnbindSceneRuleFromEdgeInstance API.
+- Add LinkIoTEdge QueryEdgeInstanceSceneRule API.
+
+
+## 1.8.326 - 2020-6-12
+- Update monitor related API.
+
+
+## 1.8.325 - 2020-6-12
+- Generated 2018-10-12 for `Airec`.
+
+
+## 1.8.324 - 2020-6-11
+- Support ServicePeriodUnit in QueryInstanceBill.
+
+
+## 1.8.323 - 2020-6-11
+- Supported AndroidNotificationVivoChannel for Push and MassPush.
+
+
+## 1.8.322 - 2020-6-9
+- Changed ServiceCode from `cr` to `acr`.
+
+
+## 1.8.321 - 2020-6-8
+- Support offline instance.
+
+
+## 1.8.320 - 2020-6-4
+- Generated 2019-12-26 for `OutboundBot`.
+
+
+## 1.8.319 - 2020-6-4
+- Update monitor related API.
+
+
+## 1.8.318 - 2020-6-4
+- Add SubmitMediaDNADeleteJob and ListMediaDNADeleteJob.
+- Modify GetMediaAuditResult interface, support ad logo and live result.
+- Modify GetMediaAuditResultTimeline interface, support ad logo and live result.
+
+
+## 1.8.317 - 2020-6-4
+- Update monitor related API.
+
+
+## 1.8.316 - 2020-6-3
+- DescribeCameraStatistics add filed.
+
+
+## 1.8.315 - 2020-6-2
+- Edit SearchTraces api.
+
+
+## 1.8.314 - 2020-5-29
+- Sdk version 111.
+
+
+## 1.8.313 - 2020-5-29
+- SDK version 108.
+
+
+## 1.8.312 - 2020-5-28
+- Supported AndroidNotificationXiaomiChannel for Push and MassPush.
+
+
+## 1.8.311 - 2020-5-27
+- Add app-group-management and quota-updating APIs.
+- Add app management APIs.
+
+
+## 1.8.310 - 2020-5-26
+- Support DescribeAllEntity API.
+
+
+## 1.8.309 - 2020-5-26
+- Add smartcall service api.
+
+
+## 1.8.308 - 2020-5-26
+- Add smartcall service api.
+
+
+## 1.8.307 - 2020-5-25
+- Supported auvsp protocol changes.
+- Supported start vod streams.
+- Supported stop vod streams.
+- Supported gb28281 alarm on device.
+
+
+## 1.8.306 - 2020-5-23
+- Generated 2015-01-01 for `R-kvstore`.
+- Add ModifyResourceGroup API.
+- DescribeInstanceAttribute return ResourceGroupId.
+
+
+## 1.8.305 - 2020-5-22
+- Add schedule crud api.
+
+
+## 1.8.304 - 2020-5-21
+- Support more error Codes.
+
+
+## 1.8.303 - 2020-5-20
+- Generated 2019-09-10 for `waf-openapi`.
+
+
+## 1.8.302 - 2020-5-20
+- Edit GetTrace and SearchTraces api.
+
+
+## 1.8.301 - 2020-5-20
+- Public beta version.
+- Add Api Overseas.
+
+
+## 1.8.300 - 2020-5-19
+- Public beta version.
+- Add Api Overseas.
+
+
+## 1.8.299 - 2020-5-19
+- Initial version.
+
+
+## 1.8.298 - 2020-5-18
+- Support sequence for listNodes.
+- Support StrictSatisfiedTargetCapacity for applyNodes.
+
+
+
+## 1.8.297 - 2020-5-18
+- Fix DescribeIpcLiveAddress , add in params.
+
+
+## 1.8.296 - 2020-5-17
+- Open API publish.
+
+
+## 1.8.295 - 2020-5-17
+- Open API publish.
+
+
+## 1.8.294 - 2020-5-17
+- Open API publish.
+
+
+## 1.8.293 - 2020-5-17
+- Open API publish.
+
+
+## 1.8.292 - 2020-5-15
+- Add LinkIoTEdge CreateEdgeInstanceChannel, BatchDeleteEdgeInstanceChannel, UpdateEdgeInstanceChannel, BatchGetEdgeInstanceChannel, QueryEdgeInstanceChannel, QueryEdgeInstanceDeviceByDriver, BatchGetEdgeInstanceDeviceDriver, BatchSetEdgeInstanceDeviceChannel, BatchGetEdgeInstanceDeviceChannel API.
+- Add LinkIoTEdge BindApplicationToEdgeInstance, UnbindApplicationFromEdgeInstance API.
+- Add LinkIoTEdge ReplaceEdgeInstanceGateway, ReleaseEdgeDriverVersion, BatchGetDeviceBindStatus API.
+
+
+## 1.8.291 - 2020-5-14
+- Generated 2015-01-01 for `R-kvstore`.
+- Fix DescribeCacheAnalysisReport return empty BigKeys because of wrong type defination.
+
+
+## 1.8.290 - 2020-5-14
+- Supported Grant Permission.
+- Supported Revoke Permission.
+
+
+## 1.8.289 - 2020-5-14
+- Add demo edition auth.
+
+
+## 1.8.288 - 2020-5-13
+- Add ListDevicesImages DescribeIpcLiveAddress.
+- Modify DescribeDevices.
+
+
+## 1.8.287 - 2020-5-13
+- Add ExportTas apis.
+
+
+## 1.8.286 - 2020-5-13
+- Generated 2019-09-10 for `waf-openapi`.
+
+
+## 1.8.285 - 2020-5-13
+- Supported AAA for BBB.
+- Fixed bugs for CCC.
+
+
+## 1.8.284 - 2020-5-13
+- Add ExportTas apis.
+
+
+## 1.8.283 - 2020-5-13
+- About 2019-03-07 and 2018-09-16 Version.
+
+
+## 1.8.282 - 2020-5-13
+- Generated 2018-12-12, 2018-12-07 for `UniMkt`.
+
+
+## 1.8.281 - 2020-5-12
+- Sdk version 109.
+
+
+## 1.8.280 - 2020-5-12
+- BugFix for DescribeProjectMessages not returned the totalCount property.
+
+
+## 1.8.279 - 2020-5-12
+- BugFix for DescribeProjectMessages not returned the totalCount property.
+
+
+## 1.8.278 - 2020-5-12
+- Supported DRM.
+
+
+## 1.8.277 - 2020-5-11
+- Add new openapi ApplyNodes.
+
+
+## 1.8.276 - 2020-5-11
+- Bugfix for DescribeProjectAttachments Integer AttachmentType updated to String AttachmentType.
+
+
+## 1.8.275 - 2020-5-11
+- Support CreationCategory for CreateDBCluster.
+
+
+## 1.8.274 - 2020-5-9
+- DescribeCamerasStatistics add pvType.
+
+
+## 1.8.273 - 2020-5-8
+- Support sg for region.
+
+
+## 1.8.272 - 2020-5-6
+- Describe describeAvailableResource.
+
+
+## 1.8.271 - 2020-4-30
+- Add prometheus ListDashboards api.
+
+
+## 1.8.270 - 2020-4-29
+- Add prometheus ListDashboards api.
+
+
+## 1.8.269 - 2020-4-29
+- Add prometheus ListDashboards api.
+
+
+## 1.8.268 - 2020-4-29
+- Supported VideoProduce.
+
+
+## 1.8.267 - 2020-4-29
+- Supported VideoProduce.
+
+
+## 1.8.266 - 2020-4-29
+- Supported VideoProduce.
+
+
+## 1.8.265 - 2020-4-29
+- Add ListTemplateVersions API.
+- GenerateExecutionPolicy supports TemplateVersion.
+- CreateTemplate and UpdateTemplate support VersionName.
+
+
+
+## 1.8.264 - 2020-4-29
+- Support groupId operations.
+
+
+## 1.8.263 - 2020-4-29
+- Add ExportTas apis.
+
+
+## 1.8.262 - 2020-4-29
+- Support Document Translation.
+- Support Lanuage Detection.
+
+
+## 1.8.261 - 2020-4-29
+- Sync cdn APIs.
+
+
+## 1.8.260 - 2020-4-29
+- Supported the Marketplace Delivery Center Project Api.
+- About Project info.
+
+
+## 1.8.259 - 2020-4-29
+- Add Scdn APIS.
+- Sync cdn APIS.
+
+
+## 1.8.258 - 2020-4-28
+- Generated 2018-12-12, 2018-12-07 for `UniMkt`.
+
+
+## 1.8.257 - 2020-4-28
+- Add CompareFaceVerify API.
+
+
+## 1.8.256 - 2020-4-28
+- Generated 2019-03-15 for `fnf`.
+
+
+## 1.8.255 - 2020-4-27
+- Support watermark.
+
+
+## 1.8.254 - 2020-4-27
+- Describe describeAvailableResource.
+
+
+## 1.8.253 - 2020-4-27
+- ContrastFaceVerify Return SubCode.
+
+
+## 1.8.252 - 2020-4-26
+- SDK versioin 101.
+
+
+## 1.8.251 - 2020-4-26
+- SDK version 108.
+
+
+## 1.8.250 - 2020-4-26
+- New api publish.
+
+
+## 1.8.249 - 2020-4-25
+- Generated 2015-01-01 for `R-kvstore`.
+- Add RestoreTime for CreateInstance API.
+
+
+## 1.8.248 - 2020-4-24
+- Template update.
+
+
+## 1.8.247 - 2020-4-24
+- Publish apis for ledger instances.
+- Publish apis for members.
+- Publish apis for time anchors.
+- Publish apis for endpoints.
+
+
+## 1.8.246 - 2020-4-24
+- Publish apis for ledger instances.
+- Publish apis for members.
+- Publish apis for time anchors.
+- Publish apis for endpoints.
+
+
+## 1.8.245 - 2020-4-23
+- Fixed bugs for MassPush API.
+
+
+## 1.8.244 - 2020-4-23
+- Add location info.
+
+
+## 1.8.243 - 2020-4-23
+- Support groupId operations.
+
+
+## 1.8.242 - 2020-4-22
+- Generated 2019-01-01 for `Cassandra`.
+
+
+## 1.8.241 - 2020-4-21
+- VideoSearch deploy SDK.
+
+
+## 1.8.240 - 2020-4-21
+- Supported API for DescribeTags.
+- Supported API for ListTagResources.
+- Supported API for TagResources.
+- Supported API for UntagResources.
+
+
+## 1.8.239 - 2020-4-21
+- Supported PackageDesign Apis.
+- Supported Api ListPackageDesignModelTypes.
+- Supported Api PreviewModelForPackageDesign.
+- Supported Api RenderImageForPackageDesign.
+- Supported Api GetRenderResult.
+
+
+## 1.8.238 - 2020-4-21
+- Add Statistics API.
+
+
+## 1.8.237 - 2020-4-20
+- Add TemplateId.
+
+
+## 1.8.236 - 2020-4-20
+- Fix FaceContrastPicture.
+
+
+## 1.8.235 - 2020-4-19
+- Multimedia poc modified.
+
+
+## 1.8.234 - 2020-4-16
+- Modify `SubmitSmarttagJob`.
+
+
+## 1.8.233 - 2020-4-16
+- Add ModifyWhiteIps.
+
+
+## 1.8.232 - 2020-4-16
+- Add BatchOptimization param in Stop and Start Instances.
+- Add RemoveSymbols in GetInstanceConsoleOutput.
+- Add ImageFamily in ModifyImageAttribute.
+- Customize InstanceType on DedicatedHosts is supported.
+- Add StorageCapacityUnit interfaces.
+- Add param Tag in CreateAutoSnapshotPolicy.
+
+
+## 1.8.231 - 2020-4-16
+- Add features for open api.
+
+
+## 1.8.230 - 2020-4-15
+- Add pre train service api.
+
+
+## 1.8.229 - 2020-4-15
+- CreateNode API add return NodeId.
+
+
+## 1.8.228 - 2020-4-15
+- Vision-poc response modified.
+
+
+## 1.8.227 - 2020-4-14
+- Support ListSensitiveColumns, ListSensitiveColumnsDetail API.
+- ListUsers API return user execute query count information.
+- Fix ListWorkFlowTemplates to return create user information.
+- UpdateUser API support to update user max execute query count.
+
+
+## 1.8.226 - 2020-4-14
+- Supported CreateSegmentBodyJob.
+
+
+## 1.8.225 - 2020-4-13
+- ImageProcess First Version.
+
+
+## 1.8.224 - 2020-4-13
+- Fix ListTaskExecutions SDK error.
+
+
+## 1.8.223 - 2020-4-10
+- Support GetOfficeEditURL.
+- Support RefreshOfficeEditToken.
+
+
+## 1.8.222 - 2020-4-10
+- Support DescribeIpv4Location.
+
+
+## 1.8.221 - 2020-4-9
+- Add prometheus api AddGrafana and AddIntegration.
+
+
+## 1.8.220 - 2020-4-9
+- Generated 2018-03-13 for `retailcloud`.
+
+
+## 1.8.219 - 2020-4-9
+- Generated 2015-01-01 for `R-kvstore`.
+- Add DescribePrice API.
+
+
+## 1.8.218 - 2020-4-9
+- Add DescribePrice API.
+
+
+## 1.8.217 - 2020-4-9
+- WAF OpenApi SDK Release.
+
+
+## 1.8.216 - 2020-4-9
+- Add DescribeDBClusterAvailableResources.
+
+
+## 1.8.215 - 2020-4-8
+- Add SubCode for DescribeFaceVerify.
+
+
+## 1.8.214 - 2020-4-7
+- Generated 2020-03-20 for `imgsearch`.
+
+
+## 1.8.213 - 2020-4-7
+- Generated 2019-12-30 for `facebody`.
+
+
+## 1.8.212 - 2020-4-7
+- Support namespaces.
+
+
+## 1.8.211 - 2020-4-3
+- Add trace api.
+- Add prometheus api.
+
+
+## 1.8.210 - 2020-4-3
+- Support shelf type for planogram position.
+
+
+## 1.8.209 - 2020-4-3
+- Support sort script.
+
+
+## 1.8.208 - 2020-4-3
+- Support lmItemId.
+- Support STSToken.
+
+
+## 1.8.207 - 2020-4-2
+- Add slo metrics.
+
+
+## 1.8.206 - 2020-4-2
+- Add API ContrastFaceVerify.
+
+
+## 1.8.205 - 2020-4-2
+- Support light up led lamp for ESL.
+
+
+## 1.8.204 - 2020-4-2
+- Support for WaitTimeSeconds for DescribeExecution.
+
+
+## 1.8.203 - 2020-4-1
+- DescribeVerifyToken API Add Parameters-UserIp and UserPhoneNumber and UserRegistTime.
+
+
+## 1.8.202 - 2020-4-1
+- Parameters is string in StartExecution Response.
+
+
+## 1.8.201 - 2020-4-1
+- Counters and Parameters are changed to Map in ListExections and StartExecution.
+
+
+## 1.8.200 - 2020-3-25
+- Supported describe appkey for rtc application.
+- Supported set property for rtc channel.
+- Fixed the missing error code description for rtc removeterminal.
+
+
+## 1.8.199 - 2020-3-25
+- SDK versioin 101.
+
+
+## 1.8.198 - 2020-3-25
+- Supported describe appkey for rtc application.
+- Supported set property for rtc channel.
+- Fixed the missing error code description for rtc removeterminal.
+
+
+## 1.8.197 - 2020-3-24
+- DescribeInstanceTypes Supports EniIpv6AddressQuantity.
+
+
+## 1.8.196 - 2020-3-24
+- DescribeInstanceTypes Supports EniIpv6AddressQuantity.
+
+
+## 1.8.195 - 2020-3-23
+- SDK version 107.
+
+
+## 1.8.194 - 2020-3-23
+- SDK version 100.
+
+
+## 1.8.193 - 2020-3-23
+- SDK version 107.
+
+
+## 1.8.192 - 2020-3-23
+- SDK version 100.
+
+
+## 1.8.191 - 2020-3-23
+- SDK versioin 100.
+
+
+## 1.8.190 - 2020-3-23
+- SDK version 107.
+
+
+## 1.8.189 - 2020-3-23
+- SDK version 100.
+
+
+## 1.8.188 - 2020-3-23
+- SDK version 107.
+
+
+## 1.8.187 - 2020-3-23
+- Generated 2015-01-01 for `R-kvstore`.
+- Add DescribeSecurityGroupConfiguration API.
+- Add ModifySecurityGroupConfiguration API.
+
+
+## 1.8.186 - 2020-3-23
+- Sdk version 107.
+
+
+## 1.8.185 - 2020-3-23
+- SDK version 107.
+
+
+## 1.8.184 - 2020-3-23
+- SDK version 101.
+
+
+## 1.8.183 - 2020-3-23
+- Generated 2014-08-15 for `Rds`.
+
+
+## 1.8.182 - 2020-3-19
+- UploadImageToLib add Urls.
+
+
+## 1.8.181 - 2020-3-19
+- UploadImageToLib add Urls.
+
+
+## 1.8.180 - 2020-3-18
+- Supported API for DescribeInstanceDomains.
+
+
+## 1.8.179 - 2020-3-18
+- ACM POP SDK.
+
+
+## 1.8.178 - 2020-3-18
+- Generated 2018-08-28 for `Tag`.
+
+
+## 1.8.177 - 2020-3-16
+- DescribeFaceVerify API Return DeviceToken Field.
+
+
+## 1.8.176 - 2020-3-16
+- Add exporter related API.
+
+
+## 1.8.175 - 2020-3-16
+- Release.
+- Add virtual host modification API.
+- Add exchange modification API.
+- Add queue modification API.
+- Add binding modification API.
+
+
+## 1.8.174 - 2020-3-16
+- Add ImageFamily paramters and apis, in Instance creation apis and Image query apis, and add DescribeImageFromFamily.
+- Add Instance batch operation apis RebootInstances StartInstances and StopInstances.
+- Add EncryptAlgorithm paramter in instance creati
+
+
+## 1.8.173 - 2020-3-13
+- ACM POP SDK.
+
+
+## 1.8.172 - 2020-3-12
+- Add new Api SegmentBody.
+
+
+## 1.8.171 - 2020-3-12
+- Add new Api SegmentBody.
+
+
+## 1.8.170 - 2020-3-11
+- Update structure for DescribeAvailableResource without compatible.
+
+
+## 1.8.169 - 2020-3-11
+- Support certificate translate.
+
+
+## 1.8.168 - 2020-3-11
+- Support certificate translate.
+
+
+## 1.8.167 - 2020-3-11
+- Support certificate translate.
+
+
+## 1.8.166 - 2020-3-11
+- Support certificate translate.
+
+
+## 1.8.165 - 2020-3-11
+- Add new Api SegmentBody.
+
+
+## 1.8.164 - 2020-3-11
+- Support certificate translate.
+
+
+## 1.8.163 - 2020-3-11
+- Public beta version.
+- Add Api GetMeetingMebers.
+
+
+## 1.8.162 - 2020-3-11
+- Supported ondemand record.
+- Supported ivision template binding.
+
+
+## 1.8.161 - 2020-3-10
+- ACM POP SDK.
+
+
+## 1.8.160 - 2020-3-10
+- Add ExportTas apis.
+
+
+## 1.8.159 - 2020-3-9
+- Add BackupStorageType.
+
+
+## 1.8.158 - 2020-3-9
+- Add EmotionConfidence to GetImage.
+
+
+## 1.8.157 - 2020-3-9
+- NlpAutoml update contract api.
+
+
+## 1.8.156 - 2020-3-6
+- Add LinkIoTEdge CreateEdgeOssPreSignedAddress API.
+
+
+## 1.8.155 - 2020-3-6
+- Add LinkIoTEdge CreateEdgeOssPreSignedAddress API.
+
+
+## 1.8.154 - 2020-3-6
+- Supported Saf for cn.
+
+
+## 1.8.153 - 2020-3-6
+- Supported Saf for cn.
+
+
+## 1.8.152 - 2020-3-6
+- Supported Saf for oversea.
+
+
+## 1.8.151 - 2020-3-6
+- Supported Saf for oversea.
+
+
+## 1.8.150 - 2020-3-6
+- Add request parameter groupType for OnsGroupCreate.
+- Add request parameter groupType for OnsGroupList.
+
+
+## 1.8.149 - 2020-3-5
+- Add param InstanceType for ListImages and ListCustomImages.
+- Fix error codes for SubmitJobs and so on.
+
+
+## 1.8.148 - 2020-3-5
+- Add CreateEdgeDriver, DeleteEdgeDriver, BatchGetEdgeDriver, QueryEdgeDriver, CreateEdgeDriverVersion, DeleteEdgeDriverVersion, UpdateEdgeDriverVersion, GetEdgeDriverVersion, QueryEdgeDriverVersion API.
+- Add ResetThing API, support reset thing topo and 
+
+
+## 1.8.147 - 2020-3-5
+- Add CreateEdgeDriver, DeleteEdgeDriver, BatchGetEdgeDriver, QueryEdgeDriver, CreateEdgeDriverVersion, DeleteEdgeDriverVersion, UpdateEdgeDriverVersion, GetEdgeDriverVersion, QueryEdgeDriverVersion API.
+- Add ResetThing API, support reset thing topo and 
+
+
+## 1.8.146 - 2020-3-5
+- Update send message noPresistFlag param.
+
+
+## 1.8.145 - 2020-3-4
+- Update.
+
+
+## 1.8.144 - 2020-3-4
+- Public beta version.
+- Add Api GetMeetingMebers.
+
+
+## 1.8.143 - 2020-3-3
+- Supported secretmanager stable version for kms.
+
+
+## 1.8.142 - 2020-3-3
+- Supported secretmanager stable version for kms.
+
+
+## 1.8.141 - 2020-3-3
+- GeoIP Databases SDK initial release.
+
+
+## 1.8.140 - 2020-3-3
+- Supported secretmanager for kms.
+
+
+## 1.8.139 - 2020-2-28
+- Add QueryPhoneNoAByTrackNo  and AddAxnTrackNo.
+
+
+## 1.8.138 - 2020-2-28
+- Supported for eip operation idempotence.
+
+
+## 1.8.137 - 2020-2-28
+- Supported for eip operation idempotence.
+
+
+## 1.8.136 - 2020-2-27
+- Add translate api.
+
+
+## 1.8.135 - 2020-2-27
+- Sixth version.
+
+
+## 1.8.134 - 2020-2-27
+- Sixth sdk version.
+
+
+## 1.8.133 - 2020-2-27
+- Sixth sdk version.
+
+
+## 1.8.132 - 2020-2-27
+- Sixth version.
+
+
+## 1.8.131 - 2020-2-27
+- Sixth version.
+
+
+## 1.8.130 - 2020-2-27
+- Sixth version.
+
+
+## 1.8.129 - 2020-2-27
+- Release Ft SDK.
+
+
+## 1.8.128 - 2020-2-26
+- Fix tag upper case parameters.
+- Fix patch.
+
+
+## 1.8.127 - 2020-2-26
+- Upgrade sdk.
+
+
+## 1.8.126 - 2020-2-26
+- Generated 2015-01-01 for `R-kvstore`.
+- Add VpcCloudInstanceId for DescribeInstanceAttribute.
+
+
+## 1.8.125 - 2020-2-26
+- Add InitFaceVerify and DescribeFaceVerify API.
+
+
+## 1.8.124 - 2020-2-25
+- Fix ListWorkFlowTemplates, ListWorkFlowNodes API Go SDK build error.
+
+
+## 1.8.123 - 2020-2-25
+- JAVA fifth sdk version.
+- PYTHON second sdk version.
+
+
+## 1.8.122 - 2020-2-25
+- Update backupsetDownloadset fun.
+
+
+## 1.8.121 - 2020-2-24
+- ImmediateDelete.
+- DescribeInstance CreateTimeUTC ExpireTimeUTC.
+- DescribeInstances CreateTimeUTC ExpireTimeUTC.
+- DescribeIpWhitelist Groups GroupName.
+- CreateCluster.
+
+
+## 1.8.120 - 2020-2-24
+- Release Ft SDK.
+
+
+## 1.8.119 - 2020-2-24
+- Release Ft SDK.
+
+
+## 1.8.118 - 2020-2-24
+- Add tag of list instance parameters.
+
+
+## 1.8.117 - 2020-2-24
+- Add tag of list instance parameters.
+
+
+## 1.8.116 - 2020-2-24
+- Generated 2018-06-12 for `VoiceNavigator`.
+
+
+## 1.8.115 - 2020-2-24
+- Generated 2019-12-26 for `OutboundBot`.
+
+
+## 1.8.114 - 2020-2-21
+- Support TAG API.
+
+
+## 1.8.113 - 2020-2-20
+- Support set accountType.
+
+
+## 1.8.112 - 2020-2-20
+- Generated 2019-09-28 for `reid`.
+
+
+## 1.8.111 - 2020-2-20
+- Fix the problem that the three APIs, disablesitemonitors, enablesitemonitors and modifysitemonitor, return result fields are not fully define.
+
+
+## 1.8.110 - 2020-2-20
+- Add new interface ListMaskDetectionResults to support to pull mask detection results.
+
+
+## 1.8.109 - 2020-2-20
+- Add new api ListUsers.
+- Supported userRole setting for api, CreateApp, UpdateApp, DescribeAppDetail.
+
+
+## 1.8.108 - 2020-2-18
+- Supported customized params in device apis.
+
+
+## 1.8.107 - 2020-2-15
+- Supported ListWorkFlowTemplates, ListWorkFlowNodes API.
+
+
+## 1.8.106 - 2020-2-15
+- Add DescribeDBClusterSSL.
+- Add ModifyDBClusterSSL.
+
+
+## 1.8.105 - 2020-2-14
+- Update default endpoints.
+
+
+## 1.8.104 - 2020-2-14
+- Add callback params to StartExecution API.
+- Support ListExecutions with Status API.
+
+
+## 1.8.103 - 2020-2-14
+- Update default endpoints.
+
+
+## 1.8.102 - 2020-2-14
+- Fix the field definition for the site monitoring option OptionJson.
+
+
+## 1.8.101 - 2020-2-13
+- ModifyNetworkInterfaceAttribute support modify QueueNumber.
+- DescribeNetworkInterfaces support QueueNumber.
+
+
+## 1.8.100 - 2020-2-13
+- Add Staging apis.
+
+
+## 1.8.99 - 2020-2-13
+- ModifyNetworkInterfaceAttribute support modify QueueNumber.
+- DescribeNetworkInterfaces support QueueNumber.
+
+
+## 1.8.98 - 2020-2-13
+- ModifyNetworkInterfaceAttribute support modify QueueNumber.
+- DescribeNetworkInterfaces support QueueNumber.
+
+
+## 1.8.97 - 2020-2-13
+- ModifyNetworkInterfaceAttribute support modify QueueNumber.
+- DescribeNetworkInterfaces support QueueNumber.
+
+
+## 1.8.96 - 2020-2-13
+- ModifyNetworkInterfaceAttribute support modify QueueNumber.
+- DescribeNetworkInterfaces support QueueNumber.
+
+
+## 1.8.95 - 2020-2-13
+- ModifyNetworkInterfaceAttribute support modify QueueNumber.
+- DescribeNetworkInterfaces support QueueNumber.
+
+
+## 1.8.94 - 2020-2-13
+- Add Staging apis.
+
+
+## 1.8.93 - 2020-2-13
+- Add Staging apis.
+
+
+## 1.8.92 - 2020-2-13
+- Add Staging apis.
+
+
+## 1.8.91 - 2020-2-13
+- Add Staging apis.
+
+
+## 1.8.90 - 2020-2-13
+- Add Staging apis.
+
+
+## 1.8.89 - 2020-2-13
+- Fix GetDataCorrectOrderDetail API return empty database information.
+
+
+## 1.8.88 - 2020-2-13
+- Init MQTT SDK .
+
+
+## 1.8.87 - 2020-2-12
+- Support to create, describe and expire demo access token.
+
+
+## 1.8.86 - 2020-2-12
+- Generated 2018-12-12, 2018-12-07 for `UniMkt`.
+
+
+## 1.8.85 - 2020-2-12
+- Update Full showStorageTyp.
+
+
+## 1.8.84 - 2020-2-12
+- Add Full showStorageTyp.
+
+
+## 1.8.83 - 2020-2-12
+- Support mau.
+
+
+## 1.8.82 - 2020-2-11
+- Return `VpcInstanceId ` for DescribeDBClusterEndpoints.
+- Add DescribeBackupLogs.
+
+
+## 1.8.81 - 2020-2-11
+- Support ModifyInstanceAttributes for SecurityGroupIds.
+
+
+## 1.8.80 - 2020-2-11
+- Add Thing Model APIs, including CreateThingModel, UpdateThingModel, etc.
+- Add OTA API ListOTATaskByJob.
+- Update OTA API ListOTAJobByFirmware.
+- Update Thing Core Model API InvokeThingsService.
+
+
+## 1.8.79 - 2020-2-10
+- Update default endpoints.
+
+
+## 1.8.78 - 2020-2-10
+- Supported address for GetMediaMeta.
+
+
+## 1.8.77 - 2020-2-9
+- Sdk version 104.
+
+
+## 1.8.76 - 2020-2-8
+- Add DetectMask Api.
+
+
+## 1.8.75 - 2020-2-7
+- Fix bug for DescribeZoneInfo, delete return result of reionId.
+- Fix bug for DeleteZone, parameter zoneId change to compulsory.
+- Fix bug for SetProxyPattern, parameter zoneId change to compulsory.
+
+
+## 1.8.74 - 2020-2-5
+- Supported GetOfficePreviewURL.
+- Supported RefreshOfficePreviewToken.
+
+
+## 1.8.73 - 2020-2-4
+- Update default endpoints.
+
+
+## 1.8.72 - 2020-1-20
+- Add Thing Model APIs, including QueryThingModel, PublishThingModel, etc.
+
+
+## 1.8.71 - 2020-1-20
+- Onezeroone sdk version.
+
+
+## 1.8.70 - 2020-1-20
+- Onezeroone sdk version.
+
+
+## 1.8.69 - 2020-1-20
+- Release on full language support.
+
+
+## 1.8.68 - 2020-1-17
+- Supported Add the history event signature function.
+
+
+## 1.8.67 - 2020-1-17
+- Supported AAA for BBB.
+- Fixed bugs for CCC.
+
+
+## 1.8.66 - 2020-1-16
+- Fix the result value of DeleteSiteMonitors.
+
+
+## 1.8.65 - 2020-1-16
+- Generated 2015-01-01 for `R-kvstore`.
+- Update DescribeAvailableResource.
+
+
+## 1.8.64 - 2020-1-16
+- Add fields faceComparisonScore for DescribeVerifyResult and VerifyMaterials interface.
+
+
+## 1.8.63 - 2020-1-15
+- Fix SignatureDoesNotMatch issue of GetOrderBaseInfo API.
+
+
+## 1.8.62 - 2020-1-15
+- Fix parameter issues for label synchronization group.
+
+
+## 1.8.61 - 2020-1-15
+- Fix parameter issues for label synchronization group.
+
+
+## 1.8.60 - 2020-1-14
+- Publish SDK For Java python, PHP.
+- Base on 2018-07-13.
+
+
+## 1.8.59 - 2020-1-14
+- Visionai online.
+
+
+## 1.8.58 - 2020-1-14
+- Visionai online.
+
+
+## 1.8.57 - 2020-1-13
+- New API DescribeAvailableResource.
+
+
+## 1.8.56 - 2020-1-13
+- Supported ondemand start transfer stream.
+
+
+## 1.8.55 - 2020-1-13
+- Add Dynamic Tag API.
+
+
+## 1.8.54 - 2020-1-13
+- Supported InstanceMaintenanceAtrributes for maintening the attributes of instances.
+- Deleted MaintenanceProperty.
+- Supported RedeployDedicatedHost for redeploying dedicated host in under-assessment status.
+
+
+## 1.8.53 - 2020-1-10
+- Return `ConsistentTime` for DescribeBackups.
+- Return `DBNodeIds` for CreateDBNodes.
+
+
+## 1.8.52 - 2020-1-9
+- Supported ondemand transfer stream.
+- Supported device position.
+
+
+## 1.8.51 - 2020-1-9
+- Support DAILY report in QueryInstanBill.
+
+
+## 1.8.50 - 2020-1-8
+- Add TagLevel to ListSetTags.
+
+
+## 1.8.49 - 2020-1-7
+- Modify desribeInstance return dict item.
+
+
+## 1.8.48 - 2020-1-7
+- Supported AAA for BBB.
+- Fixed bugs for CCC.
+
+
+## 1.8.47 - 2020-1-3
+- Add GWS serie apis.
+- Add QueryReport.
+- Fix ListJobs.
+- Etc.
+
+
+## 1.8.46 - 2020-1-3
+- New API DescribeAvailableResource.
+
+
+## 1.8.45 - 2020-1-3
+- ImmediateDelete.
+- DescribeInstance CreateTimeUTC ExpireTimeUTC.
+- DescribeInstances CreateTimeUTC ExpireTimeUTC.
+- DescribeIpWhitelist Groups GroupName.
+
+
+## 1.8.44 - 2019-12-31
+- Add OTA APIs, including GenerateOTAUploadURL, CreateOTAFirmware, etc.
+- Add UpdateProductFilterConfig interface, support setting product filter config.
+
+
+## 1.8.43 - 2019-12-31
+- Supported SQL SERVER support delete backup set according to time range.
+
+
+## 1.8.42 - 2019-12-31
+- Add CreateMarketCellSpace method.
+
+
+## 1.8.41 - 2019-12-31
+- Support asymmetric keys.
+
+
+## 1.8.40 - 2019-12-31
+- Add request parameter groupType for OnsGroupCreate.
+
+
+## 1.8.39 - 2019-12-31
+- Supported image for process.
+
+
+## 1.8.38 - 2019-12-31
+- Generated 2019-09-28 for `reid`.
+
+
+## 1.8.37 - 2019-12-31
+- Support DeleteDBCluster.
+- Support ModifyDBCluster.
+- Support DescribeAvailableResource.
+
+
+## 1.8.36 - 2019-12-30
+- Disable Base64 string data support.
+
+
+## 1.8.35 - 2019-12-30
+- Disable Base64 string data support.
+
+
+## 1.8.34 - 2019-12-30
+- Disable Base64 string data support.
+
+
+## 1.8.33 - 2019-12-30
+- Disable Base64 Image string data support.
+
+
+## 1.8.32 - 2019-12-30
+- Visionai online.
+
+
+## 1.8.31 - 2019-12-29
+- Add new api.
+
+
+## 1.8.30 - 2019-12-29
+- Add new api.
+
+
+## 1.8.29 - 2019-12-29
+- Add new api.
+
+
+## 1.8.28 - 2019-12-29
+- Add new api.
+
+
+## 1.8.27 - 2019-12-29
+- Add new api.
+
+
+## 1.8.26 - 2019-12-27
+- Support set accountType.
+
+
+## 1.8.25 - 2019-12-27
+- Support set accountType.
+
+
+## 1.8.24 - 2019-12-26
+- NlpAutoml add async api.
+
+
+## 1.8.23 - 2019-12-26
+- Modify CreateRestoreTask.
+
+
+## 1.8.22 - 2019-12-25
+- Support merchant sync item info.
+
+
+## 1.8.21 - 2019-12-25
+- Support merchant sync item info.
+
+
+## 1.8.20 - 2019-12-25
+- Support merchant sync item info.
+
+
+## 1.8.19 - 2019-12-24
+- Generated 2018-12-12, 2018-12-07 for `UniMkt`.
+
+
+## 1.8.18 - 2019-12-20
+- Support miniapp.
+- Support account type.
+
+
+## 1.8.17 - 2019-12-20
+- Supported Authorization API, includes GrantUserPermission, RevokeUserPermission, ListDatabaseUserPermssions, ListUserPermissions.
+- Supported Database or Table Metadata synchronization API, includes SyncInstanceMeta, SyncDatabaseMeta.
+- Supported Database or Table Owner set up API.
+- Supported GetUser API to get information of one DMS user.
+- Supported set Dingding mobile number with RegisterUser API.
+
+
+## 1.8.16 - 2019-12-20
+- Supported Search stream predict task list use modelId for IVISION.
+
+
+## 1.8.15 - 2019-12-20
+- Add result value for OnsConsumerStatus.
+
+
+## 1.8.14 - 2019-12-19
+- Add DescribeSlowLogRecords,DescribeSlowLogs for SlowLog.
+
+
+## 1.8.13 - 2019-12-19
+- Generated 2019-09-28 for `reid`.
+
+
+## 1.8.12 - 2019-12-19
+- DescribeNetworkInterfaces Supports NextToken.
+
+
+## 1.8.11 - 2019-12-18
+- Third sdk version.
+
+
+## 1.8.10 - 2019-12-18
+- Second sdk version.
+
+
+## 1.8.9 - 2019-12-18
+- Second sdk version.
+
+
+## 1.8.8 - 2019-12-18
+- Second sdk version.
+
+
+## 1.8.7 - 2019-12-18
+- First sdk version.
+
+
+## 1.8.6 - 2019-12-18
+- First sdk version.
+
+
+## 1.8.5 - 2019-12-18
+- First sdk version.
+
+
+## 1.8.4 - 2019-12-18
+- First sdk version.
+
+
+## 1.8.3 - 2019-12-18
+- First sdk version.
+
+
+## 1.8.2 - 2019-12-18
+- First sdk version.
+
+
+## 1.8.1 - 2019-12-18
+- First sdk version.
+
+
+## 1.7.197 - 2019-12-16
+- DescribeTransferDomains add query param, TargetUserId, FromUserId, DomainName.
+
+
+## 1.7.196 - 2019-12-14
+- Generated 2015-01-01 for `R-kvstore`.
+
+
+## 1.7.195 - 2019-12-14
+- Update DescribeAvailableResource.
+
+
+## 1.7.194 - 2019-12-14
+- Update DescribeAvailableResource.
+
+
+## 1.7.193 - 2019-12-11
+- Add api `BatchAddThingTopo`, support add multiple sub-devices for a gateway.
+- Add api `QueryDeviceByStatus`, support query device list by device status.
+- Support grouping products and rules.
+- Support using RAM to authorize resouces, including products, devices, rules, groups and instances, to RAM users.
+
+
+## 1.7.192 - 2019-12-11
+- Add tag API.
+- Add group process monitoring API.
+- Add API for batch setting alarm rules.
+
+
+## 1.7.191 - 2019-12-5
+- Add api QueryMetric.
+
+
+## 1.7.190 - 2019-12-4
+- Delete invalid Api.
+
+
+## 1.7.189 - 2019-12-4
+- Generated 2019-01-01 for `HBase`.
+
+
+## 1.7.188 - 2019-12-4
+- Supported ModifyDBInstanceSpec for Direction param.
+
+
+## 1.7.187 - 2019-12-4
+- Supported ModifyDBInstanceSpec for Direction param.
+
+
+## 1.7.186 - 2019-12-3
+- Supported face library operation.
+- Supported task template and words.
+
+
+## 1.7.185 - 2019-12-2
+- Remove QuerySmsProdStatus OpenAPI.
+
+
+## 1.7.184 - 2019-11-29
+- Add RenewInstance.
+- Add RenewLogstash.
+- Add UpdateInstanceChargeType.
+- Add UpdateLogstashChargeType.
+
+
+## 1.7.183 - 2019-11-28
+- Supported API GetTxtRecordForVerify.
+- Supported API RetrieveDomain.
+
+
+## 1.7.182 - 2019-11-28
+- Supported dash for compress.
+
+
+## 1.7.181 - 2019-11-28
+- Eni Supports Multi-SecurityGroup.
+
+
+## 1.7.180 - 2019-11-28
+- Support Order Basis API, include CreateOrder, CloseOrder, ListOrders, GetOrderBaseInfo.
+- Support Order Approval API, include SubmitOrderApproval, ApproveOrder, GetApprovalDetail.
+- Support DataCorrect Order Operation API, include ExecuteDataCorrect, GetDataCorrectOrderDetail, GetDataCorrectBackupFiles.
+- Support DDL Order Operation API, include CreatePublishGroupTask.
+- Support DataExport Operation API, include ExecuteDataExport, GetDataExportOrderDetail, GetDataExportDownloadURL.
+
+
+## 1.7.179 - 2019-11-27
+- CreateReplicationJob API supports the specified instance type.
+
+
+## 1.7.178 - 2019-11-26
+- Generated 2018-12-12, 2018-12-07 for `UniMkt`.
+
+
+## 1.7.177 - 2019-11-26
+- Modify QueryBill, add SubOrderId in item of response.
+
+
+## 1.7.176 - 2019-11-26
+- Supported API BindInstanceDomains.
+- Supported API UnbindInstanceDomains.
+- Supported API AddCustomLine.
+- Supported API UpdateCustomLine.
+- Supported API DeleteCustomLines.
+- Supported API DescribeCustomLine.
+- Supported API DescribeCustomLines.
+
+
+## 1.7.175 - 2019-11-25
+- One or more people can be subscribed when creating tasks.
+
+
+## 1.7.174 - 2019-11-22
+- Supported ondemand snapshot.
+
+
+## 1.7.173 - 2019-11-22
+- First version.
+
+
+## 1.7.172 - 2019-11-22
+- Update Api Request And Response structure.
+
+
+## 1.7.171 - 2019-11-21
+- Add ConvertPayType.
+- Add ConvertLogstashPayType.
+
+
+## 1.7.170 - 2019-11-20
+- Update Nlp Automl SDK.
+
+
+## 1.7.169 - 2019-11-20
+- Add new OpenAPI.
+
+
+## 1.7.168 - 2019-11-20
+- Add new pop api.
+
+
+## 1.7.167 - 2019-11-20
+- Supported ecsDemand CreateDemand, ModifyDemand, DeleteDemand API.
+- Modify ecsDemand DescribesDemands API.
+
+
+## 1.7.166 - 2019-11-20
+- Generated 2019-01-01 for `HBase`.
+
+
+## 1.7.165 - 2019-11-20
+- Support anonymous account for enableOrder.
+
+
+## 1.7.164 - 2019-11-20
+- Support anonymous account for enableOrder.
+
+
+## 1.7.163 - 2019-11-20
+- Add API ReportVoipProblems.
+- Add API QueryVoipNumberBindINfos.
+
+
+## 1.7.162 - 2019-11-19
+- Supported transcode template.
+
+
+## 1.7.161 - 2019-11-18
+- Add seller refuse reason for queryRefundDetail.
+
+
+## 1.7.160 - 2019-11-15
+- Nlp Automl SDK.
+
+
+## 1.7.159 - 2019-11-15
+- Init php sdk.
+
+
+## 1.7.158 - 2019-11-15
+- Sync cdn APIs.
+
+
+## 1.7.157 - 2019-11-15
+- Fixed bugs.
+
+
+## 1.7.156 - 2019-11-15
+- Sync cdn APIs.
+
+
+## 1.7.155 - 2019-11-15
+- Add Scdn APIS.
+- Sync cdn APIS.
+
+
+## 1.7.154 - 2019-11-15
+- Modify QueryAccountBill, support group by product.
+
+
+## 1.7.153 - 2019-11-15
+- Modify DescribeRestoreRangeInfo.
+
+
+## 1.7.152 - 2019-11-15
+- Add DescribeRestoreRangeInfo.
+
+
+## 1.7.151 - 2019-11-14
+- Released dysms OpenAPI.
+
+
+## 1.7.150 - 2019-11-14
+- Support Tag OpenAPI.
+- Fix endpoint problem.
+
+
+## 1.7.149 - 2019-11-13
+- Supported Stream analyse.
+
+
+## 1.7.148 - 2019-11-13
+- Fix ResourceId type from Long to String on QueryCostUnitResource.
+
+
+## 1.7.147 - 2019-11-13
+- Fix ResourceId type from Long to String on QueryCostUnitResource.
+
+
+## 1.7.146 - 2019-11-13
+- Add new API QueryBillToOSSSubscription.
+
+
+## 1.7.145 - 2019-11-13
+- Supported API UpdateDomainRemark for Update Domain Remark.
+- Supported API UpdateDomainRecordRemark for Update Record Remark.
+- Unsupported API CheckDomainRecord.
+
+
+## 1.7.144 - 2019-11-13
+- FindServiceList add RouteConfJson result.
+
+
+## 1.7.143 - 2019-11-13
+- Support Go SDK.
+- Support C SDK.
+- Support PHP SDK.
+
+
+## 1.7.142 - 2019-11-8
+- Add DescribeJobErrorCode.
+
+
+## 1.7.141 - 2019-11-5
+- Add OperateBlackNo.
+
+
+## 1.7.140 - 2019-11-2
+- Generated 2017-05-25 for `Dyvmsapi`.
+
+
+## 1.7.139 - 2019-11-1
+- Supported directory APIs.
+
+
+## 1.7.138 - 2019-10-31
+- Initial construction.
+- Public beta version.
+- Supported AliyunController for Interface.
+- Supported ConsoleController for Interface.
+- Supported AccountController for Interface.
+
+
+## 1.7.137 - 2019-10-31
+- Initial construction.
+- Public beta version.
+- Supported AliyunController for Interface.
+- Supported ConsoleController for Interface.
+- Supported AccountController for Interface.
+
+
+## 1.7.136 - 2019-10-30
+- Update interface params of the cloudauth.
+
+
+## 1.7.135 - 2019-10-30
+- Add features for open api.
+
+
+## 1.7.134 - 2019-10-29
+- Add a new Alibaba Cloud Bill API named QueryAccountBill.
+
+
+## 1.7.133 - 2019-10-25
+- Initial construction.
+- Public beta version.
+- Supported AliyunController for Interface.
+- Supported ConsoleController for Interface.
+- Supported AccountController for Interface.
+
+
+## 1.7.132 - 2019-10-25
+- Supported query push records.
+
+
+## 1.7.131 - 2019-10-25
+- Add DescribeDBClusterPerformance, DescribeDBNodePerformance for performance.
+
+
+## 1.7.130 - 2019-10-24
+- Generated 2017-12-14 for `BssOpenApi`.
+
+
+## 1.7.129 - 2019-10-23
+- Add a new api named SubmitDynamicImageJob capture a certain part of the video as a dynamic image.
+- Add a new api named SubmitWorkflowJob to initiate the VoD workflow processing for audio and video.
+- Add a new field AuditStatus in the structure ImageInfo to GetImageInfo api response, which is used to identify the audit status of the image.
+- Modify the data type of return field StorageLocation to String.
+- Add a new field named MediaType to SubmitAIMediaAuditJob api request.
+
+
+## 1.7.128 - 2019-10-23
+- Add a new api named SubmitDynamicImageJob capture a certain part of the video as a dynamic image.
+- Add a new api named SubmitWorkflowJob to initiate the VoD workflow processing for audio and video.
+- Add a new field AuditStatus in the structure ImageInfo to GetImageInfo api response, which is used to identify the audit status of the image.
+- Modify the data type of return field StorageLocation to String.
+- Add a new field named MediaType to SubmitAIMediaAuditJob api request.
+
+
+## 1.7.127 - 2019-10-23
+- Add a new api named SubmitDynamicImageJob capture a certain part of the video as a dynamic image.
+- Add a new api named SubmitWorkflowJob to initiate the VoD workflow processing for audio and video.
+- Add a new field AuditStatus in the structure ImageInfo to GetImageInfo api response, which is used to identify the audit status of the image.
+- Modify the data type of return field StorageLocation to String.
+- Add a new field named MediaType to SubmitAIMediaAuditJob api request.
+
+
+## 1.7.126 - 2019-10-22
+- Supported Sync predict for Image.
+- Supported Set Frame Frequency for Stream Predict.
+- Fixed Errore Code For APIs.
+
+
+## 1.7.125 - 2019-10-22
+- RunInstances support AutoSnapshotPolicyId.
+
+
+## 1.7.124 - 2019-10-22
+- Fix ListDatabases CatalogName dataType integer to string.
+- Remove GetLogicDatabase invalid output param named TotalCount.
+- Remove ListIndexes invalid output param named ColumnList.
+- Support SearchTable API to filter searchTarget.
+
+
+## 1.7.123 - 2019-10-22
+- Supported ExternalId IMM.
+
+
+## 1.7.122 - 2019-10-21
+- Release first version.
+
+
+## 1.7.121 - 2019-10-18
+- Generated 2019-09-10 for `DnsKnocker`.
+
+
+## 1.7.120 - 2019-10-18
+- Add X509 API, including queryDeviceCert, queryCertUrlByApplyId, createDeviceCert.
+- Add authType parameter of APIs, including createProduct, queryProduct, queryProductList, CreateProductPop, QueryProductAllInfo, QueryProductListPop, ListProductConsole, QueryAllProductListPop, QueryDeviceBatchList.
+
+
+## 1.7.119 - 2019-10-17
+- Support instance manage API, includes UpdateInstance and DeleteInstance.
+- Support user manage API, includes ListUsers and UpdateUser.
+- Support meta data information API, includes ListInstances, ListDatabases, ListLogicDatabases, ListTables, ListLogicTables, ListColumns, ListIndexes.
+- Support meta data search API, inclues SearchDatabase, SearcTable.
+- Support RegisterInstance API to set datalinkName and useDsql option.
+
+
+## 1.7.118 - 2019-10-16
+- Add ListTagResources OpenApi.
+- Add TagResources OpenApi.
+- Add UntagResources OpenApi.
+- Add ModifyDBInstanceAutoUpgradeMinorVersion OpenApi.
+
+
+## 1.7.117 - 2019-10-14
+- Supported callback for groups APIs.
+- Supported NVR historical stream for DescribeStreamURL.
+
+
+## 1.7.116 - 2019-10-14
+- Support continuous pushing.
+
+
+## 1.7.115 - 2019-10-12
+- Add new api.
+
+
+## 1.7.114 - 2019-10-9
+- Add VideoCancelScan Api.
+
+
+## 1.7.113 - 2019-10-9
+- Support API RecognizeImageColor.
+- Support API DetectImageElements.
+- Support API RecolorImage.
+- Support API SegmentImage.
+- Support API ChangeImageSize.
+- Support API ExtendImageStyle.
+- Support API RecognizeImageStyle.
+- Support API MakeSuperResolution.
+
+
+## 1.7.112 - 2019-10-8
+- Supported Grab Frame IMM.
+
+
+## 1.7.111 - 2019-10-8
+- Supported API MassPush for Push Message or Notice.
+
+
+## 1.7.110 - 2019-10-8
+- Generated 2016-01-20 for `Kms`.
+
+
+## 1.7.109 - 2019-9-26
+- Supported RingConfig for BindAxb,BindAxn,BindAxg,BindAxnExtension.
+- Add QuerySubsId.
+
+
+## 1.7.108 - 2019-9-25
+- Support anonymous account.
+
+
+## 1.7.107 - 2019-9-24
+- Generated 2019-08-10 for `multimediaai`.
+
+
+## 1.7.106 - 2019-9-24
+- Generated 2019-04-30 for `schedulerx2`.
+
+
+## 1.7.105 - 2019-9-23
+- Add param, DescribePrice supprot ReservedInstance.
+
+
+## 1.7.104 - 2019-9-19
+- Supported Video Abstract for IMM.
+
+
+## 1.7.103 - 2019-9-19
+- Supported Video Abstract for IMM.
+
+
+## 1.7.102 - 2019-9-19
+- Add bizSubCode and so on.
+
+
+## 1.7.101 - 2019-9-18
+- Supported Video Abstract for IMM.
+
+
+## 1.7.100 - 2019-9-18
+- Generated 2016-11-01 for `live`.
+
+
+## 1.7.99 - 2019-9-9
+- CreateInstance add toen.
+- UpdateInstance add toen.
+
+
+## 1.7.98 - 2019-9-6
+- Update endpoint data.
+
+
+## 1.7.97 - 2019-9-6
+- Generated 2016-04-28 for `Vpc`.
+
+
+## 1.7.96 - 2019-9-5
+- Supported for setEndpoint method.
+
+
+## 1.7.95 - 2019-9-5
+- Generated 2014-05-15 for `Slb`.
+
+
+## 1.7.94 - 2019-9-5
+- Generated 2018-11-11 for `foas`.
+
+
+## 1.7.93 - 2019-9-5
+- Generated 2019-05-24 for `cusanalytic_sc_online`.
+
+
+## 1.7.92 - 2019-9-5
+- Generated 2015-11-01 for `Market`.
+
+
+## 1.7.91 - 2019-9-5
+- Generated 2016-07-14 for `CloudAPI`.
+
+
+## 1.7.90 - 2019-9-5
+- Generated 2017-08-01 for `polardb`.
+
+
+## 1.7.89 - 2019-9-5
+- Generated 2017-12-14 for `BssOpenApi`.
+
+
+## 1.7.88 - 2019-9-3
+- Generated 2014-08-15 for `Rds`.
+
+
+## 1.7.87 - 2019-8-30
+- Revert to 2015-09-01.
+
+
+## 1.7.86 - 2019-8-30
+- Release Apis of Version 2019-09-10.
+
+
+## 1.7.85 - 2019-8-30
+- Supported Meida complex for IMM.
+
+
+## 1.7.84 - 2019-8-30
+- Add api for getTrace and searchTracelist.
+
+
+## 1.7.83 - 2019-8-29
+- Add PTZ APIs.
+
+
+## 1.7.82 - 2019-8-29
+- Move StopExecution params to body.
+
+
+## 1.7.81 - 2019-8-29
+- For publish.
+
+
+## 1.7.80 - 2019-8-28
+- Add DBS API UpgradeBackupPlan.
+- Add DBS API DescribePreCheckProgressList.
+
+
+## 1.7.79 - 2019-8-26
+- QueryInstanceBillResponse change ownerId type from Long to String.
+- QueryInstanceBillResponse change usage type from float to String.
+- QueryInstanceBillResponse change listPrice type from float to String.
+- QueryInstanceBillResponse change deductedByResourcePackage type from float to String.
+
+
+## 1.7.78 - 2019-8-22
+- Support API RecognizeImageColor.
+- Support API DetectImageElements.
+- Support API RecolorImage.
+- Support API SegmentImage.
+- Support API ChangeImageSize.
+- Support API ExtendImageStyle.
+- Support API RecognizeImageStyle.
+- Support API MakeSuperResolutionImage.
+
+
+## 1.7.77 - 2019-8-22
+- Api release 2019-08-08 public sdk 2-5-2 sdk release 20190822 shichun-fsc.
+
+
+## 1.7.76 - 2019-8-21
+- Move StartExecution params to body.
+
+
+## 1.7.75 - 2019-8-21
+- Return backup job id when create backup.
+- Return backup set size when describe backups.
+
+
+## 1.7.74 - 2019-8-20
+- API TaobaoFilmGetSchedules retrun col add hallId.
+
+
+## 1.7.73 - 2019-8-16
+- Add LinkIoTEdge API.
+
+
+## 1.7.72 - 2019-8-15
+- FnF public version.
+- Add Report task api.
+
+
+## 1.7.71 - 2019-8-15
+- Add API BatchStartCdnDomain, BatchStopCdnDomain, DescribeTagResources, DescribeUserTags, TagResources, UntagResources.
+
+
+## 1.7.70 - 2019-8-15
+- QueryInstanceBillResponse add ServicePeriod.
+
+
+## 1.7.69 - 2019-8-14
+- Expose the interface to the yundun-console.
+- Update interface definitions of the cloudauth.
+
+
+## 1.7.68 - 2019-8-13
+- Optimize return code.
+- Edit QueryDataset.
+
+
+## 1.7.67 - 2019-8-13
+- Supported for openapi new version.
+
+
+## 1.7.66 - 2019-8-12
+- Support Defect Face API.
+
+
+## 1.7.65 - 2019-8-9
+- Add a lot of new API.
+
+
+## 1.7.64 - 2019-8-8
+- Add CreateStorageSet api to support storageSet.
+- Add DeleteStorageSet api to support storageSet.
+- Add ModifyStorageSetAttribute api to support storageSet.
+- Add DescribeStorageSets api to support storageSet.
+- Add DescribeStorageSetDetails api to support storageSet.
+- Add parameter StorageSetId,StorageSetPartitionNumber to api CreateDisk,RunInstances,CreateInstance support storageSet.
+- Add StorageSetId,StorageSetPartitionNumber with response of api DescribeDisks.
+- Add DescribeNetworkInterfaces to support filter by PrivateIpAddress.
+
+
+## 1.7.63 - 2019-8-8
+- Group, Plugin support tag authentication.
+
+
+## 1.7.62 - 2019-8-7
+- Generated 2018-03-13 for `retailcloud`.
+
+
+## 1.7.61 - 2019-8-6
+- Supported GetMediaMeta for IMM.
+
+
+## 1.7.60 - 2019-8-6
+- Supported GetMediaMeta for IMM.
+
+
+## 1.7.59 - 2019-8-6
+- Supported GetMediaMeta for IMM.
+
+
+## 1.7.58 - 2019-8-6
+- Supported GetMediaMeta for IMM.
+
+
+## 1.7.57 - 2019-8-6
+- Supported GetMediaMeta for IMM.
+
+
+## 1.7.56 - 2019-8-5
+- GetOrderDetail add originalConfig param.
+
+
+## 1.7.55 - 2019-8-5
+- GetOrderDetail add originalConfig param.
+
+
+## 1.7.54 - 2019-8-5
+- Modify DBS API DescribeFullBackupList.
+
+
+## 1.7.53 - 2019-8-2
+- SubscribeBillToOSSRequest add multAccountRelSubscribe, bucketOwnerId.
+- UnsubscribeBillToOSSRequest add multAccountRelSubscribe.
+
+
+## 1.7.52 - 2019-7-31
+- Endpoint auto route.
+
+
+## 1.7.51 - 2019-7-30
+- Suport ImportCredentials api.
+
+
+## 1.7.50 - 2019-7-30
+- Suport ImportCredentials api.
+
+
+## 1.7.49 - 2019-7-29
+- Supported group API.
+- Supported device APIs.
+- Supported stream APIs.
+- Supported template APIs.
+- Supported record APIs.
+- Supported domain APIs.
+
+
+## 1.7.48 - 2019-7-26
+- Generated 2019-05-24 for `cusanalytic_sc_online`.
+
+
+## 1.7.47 - 2019-7-26
+- Generated 2019-05-24 for `cusanalytic_sc_online`.
+
+
+## 1.7.46 - 2019-7-25
+- Api createKey add optional parameter `ProtectionLevel`.
+- Api describeKey add a field `ProtectionLevel` in the response.
+- Add Api `DescribeService`.
+
+
+## 1.7.45 - 2019-7-25
+- App-related actions support tag authentication.
+
+
+## 1.7.44 - 2019-7-23
+- Supported CreationOption of CreateDBCluster with `CloneFromPolarDB `,`CloneFromRDS`,`MigrationFromRDS`.
+
+
+## 1.7.43 - 2019-7-19
+- QueryMonthlyBillResponse add roundDownDiscount.
+- QueryBillResponse add roundDownDiscount.
+- QueryInstanceBillResponse add item.
+
+
+## 1.7.42 - 2019-7-18
+- Generated 2016-06-07 for `cr`.
+
+
+## 1.7.41 - 2019-7-18
+- Add a new field named Input to SubmitAIJob api request to set the input file of AI job.
+- Change the field MediaId of SubmitAIJob api to non-mandatory.
+
+
+## 1.7.40 - 2019-7-17
+- Add a lot of new API.
+
+
+## 1.7.39 - 2019-7-14
+- Modify DBS API DescribeBackupPlanList.
+
+
+## 1.7.38 - 2019-7-12
+- Public api AddLivePullStreamInfoConfig.
+
+
+## 1.7.37 - 2019-7-11
+- Modify CreateBackupPlan.
+- Modify ConfigureBackupPlan.
+- Modify DescribeFullBackupList.
+- Modify DescribeRestoreTaskList.
+- Add ModifyBackupSourceEndpoint.
+- Add ModifyBackupStrategy.
+- Add ModifyBackupPlanName.
+
+
+## 1.7.36 - 2019-7-5
+- Supported library managment for simillarity scene.
+- Remove the local file uploader code which can be downloaded from yundun content security document.
+
+
+## 1.7.35 - 2019-7-5
+- Add TaskCancelStatus for QueryTaskList api.
+
+
+## 1.7.34 - 2019-7-4
+- Supported API DescribeRecordStatisticsy for Query Volume.
+- Supported API DescribeDomainStatistics for Query Volume.
+
+
+## 1.7.33 - 2019-7-4
+- Supported batch querying for device detail.
+
+
+## 1.7.32 - 2019-7-3
+- Supported API DescribeRecordStatisticsSummary for Query Volume.
+- Supported API DescribeDomainStatisticsSummary for Query Volume.
+- Supported API DescribeRecordStatisticsHistory for Query Volume.
+- Supported API DescribeDomainDnsStatistics for Query Volume.
+
+
+## 1.7.31 - 2019-7-2
+- FnF public version.
+
+
+## 1.7.30 - 2019-7-1
+- Support cloud_essd disk category for API CreateDisk, CreateInstance and RunInstances, and support configurating PerformanceLevel when choose cloud_essd.
+- Add ModifyDiskSpec API to support cloud_essd PerformanceLevel modification.
+- Add AutoProvisioningGroup interfaces, provide AutoProvisioningGroup function.
+- Add RetentionDays to snapshot creating.
+
+
+## 1.7.29 - 2019-6-27
+- Added setting of crop_mode parameter.
+
+
+## 1.7.28 - 2019-6-24
+- Add some new apis to manage VoD domain, such as AddVodDomain, UpdateVodDomain, DeleteVodDomain, BatchStartVodDomain, BatchStopVodDomain, DescribeVodUserDomains, DescribeVodDomainDetail.
+- Add some new apis to manage VoD domain config, such as BatchSetVodDomainConfigs, DescribeVodDomainConfigs, DeleteVodSpecificConfig, SetVodDomainCertificate, DescribeVodCertificateList, DescribeVodDomainCertificateInfo.
+- Add a new field named AppId to some apis supporting the VoD App feature, such as AddWorkFlow, GetWorkFlow, ListWorkFlow, AddVodTemplate, GetVodTemplate, ListVodTemplate, AddTranscodeTemplateGroup, GetTranscodeTemplateGroup, ListTranscodeTemplateGroup, AddWatermark, GetWatermark, ListWatermark, UploadMediaByURL.
+- Add a new field named UserData to SubmitTranscodeJobs api request to support user-defined extension fields, which can be used for transparent return when callbacks.
+
+
+## 1.7.27 - 2019-6-24
+- Add some new apis to manage VoD domain, such as AddVodDomain, UpdateVodDomain, DeleteVodDomain, BatchStartVodDomain, BatchStopVodDomain, DescribeVodUserDomains, DescribeVodDomainDetail.
+- Add some new apis to manage VoD domain config, such as BatchSetVodDomainConfigs, DescribeVodDomainConfigs, DeleteVodSpecificConfig, SetVodDomainCertificate, DescribeVodCertificateList, DescribeVodDomainCertificateInfo.
+- Add a new field named AppId to some apis supporting the VoD App feature, such as AddWorkFlow, GetWorkFlow, ListWorkFlow, AddVodTemplate, GetVodTemplate, ListVodTemplate, AddTranscodeTemplateGroup, GetTranscodeTemplateGroup, ListTranscodeTemplateGroup, AddWatermark, GetWatermark, ListWatermark, UploadMediaByURL.
+- Add a new field named UserData to SubmitTranscodeJobs api request to support user-defined extension fields, which can be used for transparent return when callbacks.
+
+
+## 1.7.26 - 2019-6-19
+- Removed 2018-12-01 for `cr`.
+
+
+## 1.7.25 - 2019-6-19
+- Generated 2018-12-01 for `cr`.
+
+
+## 1.7.24 - 2019-6-19
+1, Add DefaultPolicyVersion as return field to GetPolicy interface, Facilitating to get policy document from this interface.
+2, Add RotateStrategy as input field to CreatePolicyVersion interface for rotating policy version when reaching policy version limit.
+
+
+## 1.7.23 - 2019-6-18
+- Supported the related recommend.
+- Supported exposure time controll and exposure filter by scene.
+
+
+## 1.7.22 - 2019-6-17
+- Companyreg release.
+
+
+## 1.7.21 - 2019-6-13
+- Fixed DescribeAvailableResource OpenApi AvailableZones value problem.
+
+
+## 1.7.20 - 2019-6-13
+- Generated 2015-01-01 for `R-kvstore`.
+
+
+## 1.7.19 - 2019-6-13
+- Added Network Assistant openapi SDK.
+
+
+## 1.7.18 - 2019-6-13
+- Added DescribeAvailableResource OpenApi.
+- Upgrade version to 2.3.8
+
+
+## 1.7.17 - 2019-6-12
+- Added RenewBackupPlan DBS interface.
+
+
+## 1.7.16 - 2019-6-12
+- Fixed bug.
+
+
+## 1.7.15 - 2019-6-12
+- Generated 2018-12-01 for `cr`.
+
+
+## 1.7.14 - 2019-6-12
+- Added InvokeDataAPIService interface, support invoke service of data api to get sql query result.
+- Added GetDataAPIServiceDetail interface, support get data api's detail information.
+- Added CreateDataAPIService interface, support create data api with sql statement.
+
+
+## 1.7.13 - 2019-6-12
+- Removed `2015-05-06`,`2018-12-01` for `Cr`.
+
+
+## 1.7.12 - 2019-6-12
+- Generated 2019-03-06 for `Dbs`.
+
+
+## 1.7.11 - 2019-6-11
+- Generated 2015-05-06, 2016-06-07, 2018-12-01 for `cr`.
+
+
+## 1.7.10 - 2019-6-10
+- Generated 2015-05-06, 2016-06-07, 2018-12-01 for `cr`.
+
+
+## 1.7.9 - 2019-6-3
+- Generated 2018-01-12 for `afs`.
+
+
+## 1.7.8 - 2019-6-3
+- Generated 2018-05-24 for `welfare-inner`.
+
+
+## 1.7.7 - 2019-6-2
+- Generated 2015-05-06, 2016-06-07, 2018-12-01 for `cr`.
+
+
+## 1.7.6 - 2019-5-31
+- Generated 2016-11-11, 2015-06-30 for `BatchCompute`.
+
+
+## 1.7.5 - 2019-5-30
+- Generated 2013-01-11, 2016-11-11 for `BatchCompute`.
+
+
+## 1.7.4 - 2019-5-30
+- Generated 2019-05-21 for `saf`.
+
+
+## 1.7.3 - 2019-5-30
+- Generated 2015-12-15, 2018-04-18 for `CS`.
+
+
+## 1.7.2 - 2019-5-30
+- Generated 2014-02-14, 2015-05-01, 2018-03-02 for `Ram`.
+
+
+## 1.7.1 - 2019-5-30
+- Generated 2015-05-06, 2016-06-07, 2018-12-01 for `cr`.
+
+
+## 1.7.0 - 2019-5-29
+- Supported `replace`. 
+
+
+## 1.6.8 - 2019-5-29
+- Update Smartag.
+
+
+## 1.6.7 - 2019-5-29
+- Update product.
+
+
+## 1.6.6 - 2019-5-29
+- Generated 2015-05-06, 2016-06-07, 2018-12-01 for `cr`.
+
+
+## 1.6.5 - 2019-5-29
+- Generated 2015-05-06 for `cr`.
+
+
+## 1.6.4 - 2019-05-27
+- Improved Docs.
+- Updated APIs.
+
+
+## 1.6.3 - 2019-05-20
+- Updated APIs.
+
+
+## 1.6.2 - 2019-05-16
+- Updated APIs.
+
+
+## 1.6.1 - 2019-05-09
+- Regenerate products.
+- Generate `composer.json` for each product.
+
+
+## 1.6.0 - 2019-05-07
+- Changed `Resolver` file name.
+
+
+## 1.5.1 - 2019-04-19
+- Supported `Sas`, `Ivision`.
+- Added tests for `Sas`, `Ivision`.
+
+
+## 1.5.0 - 2019-04-18
+- Improved parameters methods.
+- Optimized the logic for body encode.
+
+
+## 1.4.0 - 2019-04-11
+- Added `2019-03-25` for `ImageSearch`.
+
+
+## 1.3.5 - 2019-04-09
+- Support `Kms`.
+
+
+## 1.3.4 - 2019-04-09
+- Fixed `MNS`.
+
+
+## 1.3.3 - 2019-04-08
+- Added Apis for `Dbs`.
+
+
+## 1.3.2 - 2019-04-08
+- Support `Dypnsapi`.
+
+
+## 1.3.1 - 2019-04-02
+- Remove `finmall`.
+
+
+## 1.3.0 - 2019-04-01
+- Updated `composer.json`.
+
+
+## 1.2.10 - 2019-03-27
+- Improve `Resolver`.
+
+
+## 1.2.9 - 2019-03-27
+- Support `Dbs`.
+- Support `AliProbe`.
+- Fixed `BatchReceiveMessage`.
+
+
+## 1.2.8 - 2019-03-25
+- Updated README.md.
+- Updated Apis.
+
+
+## 1.2.7 - 2019-03-24
+- Append `SDK` for User-Agent.
+
+
+## 1.2.6 - 2019-03-24
+- Update APIs.
+
+
+## 1.2.5 - 2019-03-23
+- Remove SVG.
+
+
+## 1.2.4 - 2019-03-19
+- Support `alikafka`.
+- Support `bss`.
+- Support `cds`.
+- Support `cf`.
+- Support `Commondriver`.
+- Support `dataworks-public`.
+- Support `drcloud`.
+- Support `Edas`.
+- Support `Foas`.
+- Support `HPC`.
+- Support `ITaaS`.
+- Support `jarvis-public`.
+- Support `LinkWAN`.
+- Support `Lubanruler`.
+- Support `Oms`.
+- Support `PTS`.
+- Support `Qualitycheck`.
+- Support `waf-openapi`.
+
+
+## 1.2.3 - 2019-03-19
+- Support `cloudwf`.
+- Update APIs for `Aegis`.
+- Update APIs for `cdn`.
+- Update APIs for `dcdn`.
+- Update APIs for `imm`.
+- Update APIs for `live`.
+- Update APIs for `NAS`.
+
+
+## 1.2.2 - 2019-03-19
+- Update docs.
+
+
+## 1.2.1 - 2019-03-17
+- Add `Supported.md`.
+- Support `ProductCatalog`.
+- Support `polardb`.
+- Support `cloudmarketing`.
+- Support `Aas`.
+- Support `Ft`.
+- Support `gpdb`.
+- Support `OssAdmin`.
+- Support `PetaData`.
+
+
+## 1.2.0 - 2019-03-16
+- Redesign the request class to reduce the code size.
+- Support `Yundun`.
+- Support `Actiontrail`.
+- Support `industry-brain`.
+- Support `welfare-inner`.
+- Support `xspace`.
+- Support `ROS`.
+- Support `openanalytics`.
+- Support `Cbn`.
+- Support `cr`.
+- Support `MoPen`.
+- Support `Snsuapi`.
+- Support `finmall`.
+- Support `Emr`.
+
+## 1.1.2 - 2019-03-15
+- Add `Iot` Tests.
+- Add `Aegis` Apis.
+
+
+## 1.1.1 - 2019-03-14
+- Add `DescribeWhiteListStrategyList` for `Aegis`.
+- Add `DescribeAvailableCrossRegion` for `Rds`.
+- Add `DescribeAvailableRecoveryTime` for `Rds`.
+- Add `DescribeCrossRegionBackupDBInstance` for `Rds`.
+- Update Apis for `Aegis`.
+- Update Apis for `BssOpenApi`.
+- Update Apis for `Green`.
+
+
+## 1.1.0 - 2019-03-14
+- IDE auto-prompt for unlabeling discarded methods.
+- Reduce size.
+- Added support for 127 Api.
+- Functional testing increased from 28 to 35.
+
+
+## 1.0.10 - 2019-03-13
+- Update Docs.
+
+
+## 1.0.9 - 2019-03-07
+- Optimize api analysis.
+
+
+## 1.0.8 - 2019-02-22
+- 238 interfaces added to support 29 products.
+
+
+## 1.0.7 - 2019-02-21
+- Add APIs for `VOD`.
+
+
+## 1.0.6 - 2019-02-12
+- Support Image Search.
+
+
+## 1.0.5 - 2019-01-23
+- `AlibabaCloud\Dybaseapi\MNS` - Support MNS with Feature test.
+- Update readme.
+- Update bootstrap for test.
+
+
+## 1.0.4 - 2019-01-15
+- Improve Test.
+- Improve Resolver.
+
+
+## 1.0.3 - 2019-01-11
+- `AlibabaCloud\CloudAPI` - Support CloudAPI.
+
+
+## 1.0.2 - 2019-01-11
+- Support test on the Windows.
+
+
+## 1.0.1 - 2019-01-09
+- `AlibabaCloud\NlsFiletrans` - Support NLS Filetrans.
+- `AlibabaCloud\NlsCloudMeta` - Support NLS Cloud Meta.
+
+## 1.0.0 - 2019-01-07
+- Initial release of the Alibaba Cloud SDK for PHP Version 1.0.0 on Packagist See <https://github.com/aliyun/openapi-sdk-php> for more information.

Some files were not shown because too many files changed in this diff