wupengfei 2 年之前
父節點
當前提交
38cfffb43c
共有 100 個文件被更改,包括 8262 次插入2019 次删除
  1. 21 0
      vendor/cloudauth-20190307-1.0.2/ChangeLog.md
  2. 201 0
      vendor/cloudauth-20190307-1.0.2/LICENSE
  3. 6 5
      vendor/cloudauth-20190307-1.0.2/composer.json
  4. 839 805
      vendor/cloudauth-20190307-1.0.2/src/Cloudauth.php
  5. 39 27
      vendor/cloudauth-20190307-1.0.2/src/Models/CompareFaceVerifyRequest.php
  6. 24 38
      vendor/cloudauth-20190307-1.0.2/src/Models/CompareFaceVerifyResponse.php
  7. 84 0
      vendor/cloudauth-20190307-1.0.2/src/Models/CompareFaceVerifyResponseBody.php
  8. 71 0
      vendor/cloudauth-20190307-1.0.2/src/Models/CompareFaceVerifyResponseBody/resultObject.php
  9. 10 10
      vendor/cloudauth-20190307-1.0.2/src/Models/CompareFacesRequest.php
  10. 24 51
      vendor/cloudauth-20190307-1.0.2/src/Models/CompareFacesResponse.php
  11. 96 0
      vendor/cloudauth-20190307-1.0.2/src/Models/CompareFacesResponseBody.php
  12. 59 0
      vendor/cloudauth-20190307-1.0.2/src/Models/CompareFacesResponseBody/data.php
  13. 100 76
      vendor/cloudauth-20190307-1.0.2/src/Models/ContrastFaceVerifyAdvanceRequest.php
  14. 103 79
      vendor/cloudauth-20190307-1.0.2/src/Models/ContrastFaceVerifyRequest.php
  15. 24 38
      vendor/cloudauth-20190307-1.0.2/src/Models/ContrastFaceVerifyResponse.php
  16. 84 0
      vendor/cloudauth-20190307-1.0.2/src/Models/ContrastFaceVerifyResponseBody.php
  17. 95 0
      vendor/cloudauth-20190307-1.0.2/src/Models/ContrastFaceVerifyResponseBody/resultObject.php
  18. 17 17
      vendor/cloudauth-20190307-1.0.2/src/Models/CreateAuthKeyRequest.php
  19. 29 16
      vendor/cloudauth-20190307-1.0.2/src/Models/CreateAuthKeyResponse.php
  20. 59 0
      vendor/cloudauth-20190307-1.0.2/src/Models/CreateAuthKeyResponseBody.php
  21. 18 21
      vendor/cloudauth-20190307-1.0.2/src/Models/CreateVerifySettingRequest.php
  22. 24 52
      vendor/cloudauth-20190307-1.0.2/src/Models/CreateVerifySettingResponse.php
  23. 97 0
      vendor/cloudauth-20190307-1.0.2/src/Models/CreateVerifySettingResponseBody.php
  24. 29 29
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeDeviceInfoRequest.php
  25. 23 50
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeDeviceInfoResponse.php
  26. 96 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeDeviceInfoResponseBody.php
  27. 60 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeDeviceInfoResponseBody/deviceInfoList.php
  28. 95 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeDeviceInfoResponseBody/deviceInfoList/deviceInfo.php
  29. 12 12
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeFaceVerifyRequest.php
  30. 24 38
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeFaceVerifyResponse.php
  31. 84 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeFaceVerifyResponseBody.php
  32. 95 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeFaceVerifyResponseBody/resultObject.php
  33. 29 17
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeOssUploadTokenResponse.php
  34. 60 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeOssUploadTokenResponseBody.php
  35. 119 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeOssUploadTokenResponseBody/ossUploadToken.php
  36. 0 2
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyResultRequest.php
  37. 23 63
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyResultResponse.php
  38. 108 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyResultResponseBody.php
  39. 134 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyResultResponseBody/material.php
  40. 155 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyResultResponseBody/material/idCardInfo.php
  41. 0 1
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifySDKRequest.php
  42. 29 16
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifySDKResponse.php
  43. 59 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifySDKResponseBody.php
  44. 49 51
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyTokenRequest.php
  45. 24 38
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyTokenResponse.php
  46. 84 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyTokenResponseBody.php
  47. 119 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyTokenResponseBody/ossUploadToken.php
  48. 9 10
      vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesRequest.php
  49. 24 51
      vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponse.php
  50. 96 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody.php
  51. 72 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody/data.php
  52. 60 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody/data/faceInfos.php
  53. 61 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo.php
  54. 133 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes.php
  55. 71 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes/headpose.php
  56. 59 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes/smiling.php
  57. 83 0
      vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceRect.php
  58. 132 84
      vendor/cloudauth-20190307-1.0.2/src/Models/InitFaceVerifyRequest.php
  59. 24 38
      vendor/cloudauth-20190307-1.0.2/src/Models/InitFaceVerifyResponse.php
  60. 84 0
      vendor/cloudauth-20190307-1.0.2/src/Models/InitFaceVerifyResponseBody.php
  61. 59 0
      vendor/cloudauth-20190307-1.0.2/src/Models/InitFaceVerifyResponseBody/resultObject.php
  62. 74 62
      vendor/cloudauth-20190307-1.0.2/src/Models/LivenessFaceVerifyRequest.php
  63. 24 38
      vendor/cloudauth-20190307-1.0.2/src/Models/LivenessFaceVerifyResponse.php
  64. 84 0
      vendor/cloudauth-20190307-1.0.2/src/Models/LivenessFaceVerifyResponseBody.php
  65. 83 0
      vendor/cloudauth-20190307-1.0.2/src/Models/LivenessFaceVerifyResponseBody/resultObject.php
  66. 19 20
      vendor/cloudauth-20190307-1.0.2/src/Models/ModifyDeviceInfoRequest.php
  67. 24 63
      vendor/cloudauth-20190307-1.0.2/src/Models/ModifyDeviceInfoResponse.php
  68. 107 0
      vendor/cloudauth-20190307-1.0.2/src/Models/ModifyDeviceInfoResponseBody.php
  69. 33 38
      vendor/cloudauth-20190307-1.0.2/src/Models/VerifyMaterialRequest.php
  70. 23 63
      vendor/cloudauth-20190307-1.0.2/src/Models/VerifyMaterialResponse.php
  71. 108 0
      vendor/cloudauth-20190307-1.0.2/src/Models/VerifyMaterialResponseBody.php
  72. 120 0
      vendor/cloudauth-20190307-1.0.2/src/Models/VerifyMaterialResponseBody/material.php
  73. 155 0
      vendor/cloudauth-20190307-1.0.2/src/Models/VerifyMaterialResponseBody/material/idCardInfo.php
  74. 15 0
      vendor/darabonba-openapi/.gitignore
  75. 65 0
      vendor/darabonba-openapi/.php_cs.dist
  76. 31 0
      vendor/darabonba-openapi/README-CN.md
  77. 31 0
      vendor/darabonba-openapi/README.md
  78. 15 0
      vendor/darabonba-openapi/autoload.php
  79. 33 0
      vendor/darabonba-openapi/composer.json
  80. 420 0
      vendor/darabonba-openapi/src/Models/Config.php
  81. 73 0
      vendor/darabonba-openapi/src/Models/OpenApiRequest.php
  82. 137 0
      vendor/darabonba-openapi/src/Models/Params.php
  83. 1044 0
      vendor/darabonba-openapi/src/OpenApiClient.php
  84. 14 0
      vendor/tea-console/.gitignore
  85. 65 0
      vendor/tea-console/.php_cs.dist
  86. 13 0
      vendor/tea-console/LICENSE
  87. 31 0
      vendor/tea-console/README-CN.md
  88. 31 0
      vendor/tea-console/README.md
  89. 25 0
      vendor/tea-console/composer.json
  90. 109 0
      vendor/tea-console/src/Console.php
  91. 12 0
      vendor/tea-fileform/.gitignore
  92. 65 0
      vendor/tea-fileform/.php_cs.dist
  93. 31 0
      vendor/tea-fileform/README-CN.md
  94. 31 0
      vendor/tea-fileform/README.md
  95. 44 0
      vendor/tea-fileform/composer.json
  96. 32 0
      vendor/tea-fileform/phpunit.xml
  97. 16 0
      vendor/tea-fileform/src/FileForm.php
  98. 22 0
      vendor/tea-fileform/src/FileForm/FileField.php
  99. 321 0
      vendor/tea-fileform/src/FileFormStream.php
  100. 81 0
      vendor/tea-fileform/tests/FileFormTest.php

+ 21 - 0
vendor/cloudauth-20190307-1.0.2/ChangeLog.md

@@ -1,3 +1,24 @@
+2022-06-29 Version: 2.0.3
+- For 2019-03-07.
+
+2022-02-23 Version: 1.0.7
+- Add AuthId.
+
+2021-12-16 Version: 2.0.2
+- Generated php 2019-03-07 for Cloudauth.
+
+2021-10-27 Version: 2.0.1
+- Generated php 2019-03-07 for Cloudauth.
+
+2021-10-27 Version: 1.0.6
+- Generated php 2019-03-07 for Cloudauth.
+
+2021-09-09 Version: 1.0.5
+- AMP Version Change.
+
+2021-09-08 Version: 1.0.4
+- Support crop face image.
+
 2021-04-20 Version: 1.0.2
 - LivenessFaceVerify ContrastFaceVerify CompareFaceVerify API Return CertifyId.
 

+ 201 - 0
vendor/cloudauth-20190307-1.0.2/LICENSE

@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   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.

+ 6 - 5
vendor/cloudauth-20190307-1.0.2/composer.json

@@ -12,13 +12,14 @@
   "require": {
     "php": ">5.5",
     "alibabacloud/tea-utils": "^0.2.0",
-    "alibabacloud/tea-rpc-utils": "^0.2.0",
-    "alibabacloud/tea-rpc": "^0.1.5",
-    "alibabacloud/endpoint-util": "^0.1.0",
     "alibabacloud/tea-oss-sdk": "^0.3.0",
-    "alibabacloud/openplatform-20191219": "1.0.2",
+    "alibabacloud/tea-rpc": "^0.1.5",
+    "alibabacloud/openplatform-20191219": "^1.0.3",
     "alibabacloud/tea-oss-utils": "^0.2.0",
-    "alibabacloud/tea-fileform": "^0.3.0"
+    "alibabacloud/tea-fileform": "^0.3.0",
+    "alibabacloud/darabonba-openapi": "^0.2.5",
+    "alibabacloud/openapi-util": "^0.1.10",
+    "alibabacloud/endpoint-util": "^0.1.0"
   },
   "autoload": {
     "psr-4": {

+ 839 - 805
vendor/cloudauth-20190307-1.0.2/src/Cloudauth.php

@@ -5,6 +5,7 @@
 namespace AlibabaCloud\SDK\Cloudauth\V20190307;
 
 use AlibabaCloud\Endpoint\Endpoint;
+use AlibabaCloud\OpenApiUtil\OpenApiUtilClient;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFacesRequest;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFacesResponse;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFaceVerifyRequest;
@@ -14,72 +15,27 @@ use AlibabaCloud\SDK\Cloudauth\V20190307\Models\ContrastFaceVerifyRequest;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\ContrastFaceVerifyResponse;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateAuthKeyRequest;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateAuthKeyResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateFaceConfigRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateFaceConfigResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateRPSDKRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateRPSDKResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateVerifySDKRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateVerifySDKResponse;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateVerifySettingRequest;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateVerifySettingResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateWhitelistRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CreateWhitelistResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DeleteWhitelistRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DeleteWhitelistResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeAppInfoRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeAppInfoResponse;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeDeviceInfoRequest;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeDeviceInfoResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceConfigRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceConfigResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceUsageRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceUsageResponse;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceVerifyRequest;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceVerifyResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeOssUploadTokenRequest;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeOssUploadTokenResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeRPSDKRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeRPSDKResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeSdkUrlRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeSdkUrlResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeUpdatePackageResultRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeUpdatePackageResultResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeUploadInfoRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeUploadInfoResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeUserStatusRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeUserStatusResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyRecordsRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyRecordsResponse;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyResultRequest;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyResultResponse;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifySDKRequest;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifySDKResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifySettingRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifySettingResponse;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyTokenRequest;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyTokenResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyUsageRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyUsageResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeWhitelistRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeWhitelistResponse;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesRequest;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitDeviceRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitDeviceResponse;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitFaceVerifyRequest;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitFaceVerifyResponse;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\LivenessFaceVerifyRequest;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\LivenessFaceVerifyResponse;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\ModifyDeviceInfoRequest;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\ModifyDeviceInfoResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\UpdateAppPackageRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\UpdateAppPackageResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\UpdateFaceConfigRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\UpdateFaceConfigResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\UpdateVerifySettingRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\UpdateVerifySettingResponse;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyDeviceRequest;
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyDeviceResponse;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyMaterialRequest;
 use AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyMaterialResponse;
 use AlibabaCloud\SDK\OpenPlatform\V20191219\Models\AuthorizeFileUploadRequest;
@@ -89,14 +45,14 @@ use AlibabaCloud\SDK\OSS\OSS;
 use AlibabaCloud\SDK\OSS\OSS\PostObjectRequest;
 use AlibabaCloud\SDK\OSS\OSS\PostObjectRequest\header;
 use AlibabaCloud\Tea\FileForm\FileForm\FileField;
-use AlibabaCloud\Tea\Rpc\Rpc;
 use AlibabaCloud\Tea\Rpc\Rpc\Config;
-use AlibabaCloud\Tea\RpcUtils\RpcUtils;
-use AlibabaCloud\Tea\Tea;
 use AlibabaCloud\Tea\Utils\Utils;
 use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
+use Darabonba\OpenApi\Models\OpenApiRequest;
+use Darabonba\OpenApi\Models\Params;
+use Darabonba\OpenApi\OpenApiClient;
 
-class Cloudauth extends Rpc
+class Cloudauth extends OpenApiClient
 {
     public function __construct($config)
     {
@@ -107,178 +63,26 @@ class Cloudauth extends Rpc
     }
 
     /**
-     * @param DescribeWhitelistRequest $request
-     * @param RuntimeOptions           $runtime
-     *
-     * @return DescribeWhitelistResponse
-     */
-    public function describeWhitelist($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return DescribeWhitelistResponse::fromMap($this->doRequest('DescribeWhitelist', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param DescribeWhitelistRequest $request
-     *
-     * @return DescribeWhitelistResponse
-     */
-    public function describeWhitelistSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->describeWhitelist($request, $runtime);
-    }
-
-    /**
-     * @param DeleteWhitelistRequest $request
-     * @param RuntimeOptions         $runtime
-     *
-     * @return DeleteWhitelistResponse
-     */
-    public function deleteWhitelist($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return DeleteWhitelistResponse::fromMap($this->doRequest('DeleteWhitelist', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param DeleteWhitelistRequest $request
-     *
-     * @return DeleteWhitelistResponse
-     */
-    public function deleteWhitelistSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->deleteWhitelist($request, $runtime);
-    }
-
-    /**
-     * @param CreateWhitelistRequest $request
-     * @param RuntimeOptions         $runtime
-     *
-     * @return CreateWhitelistResponse
-     */
-    public function createWhitelist($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return CreateWhitelistResponse::fromMap($this->doRequest('CreateWhitelist', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param CreateWhitelistRequest $request
-     *
-     * @return CreateWhitelistResponse
-     */
-    public function createWhitelistSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->createWhitelist($request, $runtime);
-    }
-
-    /**
-     * @param DescribeFaceConfigRequest $request
-     * @param RuntimeOptions            $runtime
-     *
-     * @return DescribeFaceConfigResponse
-     */
-    public function describeFaceConfig($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return DescribeFaceConfigResponse::fromMap($this->doRequest('DescribeFaceConfig', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param DescribeFaceConfigRequest $request
-     *
-     * @return DescribeFaceConfigResponse
-     */
-    public function describeFaceConfigSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->describeFaceConfig($request, $runtime);
-    }
-
-    /**
-     * @param UpdateFaceConfigRequest $request
-     * @param RuntimeOptions          $runtime
-     *
-     * @return UpdateFaceConfigResponse
-     */
-    public function updateFaceConfig($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return UpdateFaceConfigResponse::fromMap($this->doRequest('UpdateFaceConfig', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param UpdateFaceConfigRequest $request
-     *
-     * @return UpdateFaceConfigResponse
-     */
-    public function updateFaceConfigSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->updateFaceConfig($request, $runtime);
-    }
-
-    /**
-     * @param CreateFaceConfigRequest $request
-     * @param RuntimeOptions          $runtime
-     *
-     * @return CreateFaceConfigResponse
-     */
-    public function createFaceConfig($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return CreateFaceConfigResponse::fromMap($this->doRequest('CreateFaceConfig', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param CreateFaceConfigRequest $request
-     *
-     * @return CreateFaceConfigResponse
-     */
-    public function createFaceConfigSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->createFaceConfig($request, $runtime);
-    }
-
-    /**
-     * @param LivenessFaceVerifyRequest $request
-     * @param RuntimeOptions            $runtime
-     *
-     * @return LivenessFaceVerifyResponse
-     */
-    public function livenessFaceVerify($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return LivenessFaceVerifyResponse::fromMap($this->doRequest('LivenessFaceVerify', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param LivenessFaceVerifyRequest $request
+     * @param string   $productId
+     * @param string   $regionId
+     * @param string   $endpointRule
+     * @param string   $network
+     * @param string   $suffix
+     * @param string[] $endpointMap
+     * @param string   $endpoint
      *
-     * @return LivenessFaceVerifyResponse
+     * @return string
      */
-    public function livenessFaceVerifySimply($request)
+    public function getEndpoint($productId, $regionId, $endpointRule, $network, $suffix, $endpointMap, $endpoint)
     {
-        $runtime = new RuntimeOptions([]);
+        if (!Utils::empty_($endpoint)) {
+            return $endpoint;
+        }
+        if (!Utils::isUnset($endpointMap) && !Utils::empty_(@$endpointMap[$regionId])) {
+            return @$endpointMap[$regionId];
+        }
 
-        return $this->livenessFaceVerify($request, $runtime);
+        return Endpoint::getEndpointRules($productId, $regionId, $endpointRule, $network, $suffix);
     }
 
     /**
@@ -287,11 +91,68 @@ class Cloudauth extends Rpc
      *
      * @return CompareFaceVerifyResponse
      */
-    public function compareFaceVerify($request, $runtime)
+    public function compareFaceVerifyWithOptions($request, $runtime)
     {
         Utils::validateModel($request);
+        $body = [];
+        if (!Utils::isUnset($request->crop)) {
+            $body['Crop'] = $request->crop;
+        }
+        if (!Utils::isUnset($request->outerOrderNo)) {
+            $body['OuterOrderNo'] = $request->outerOrderNo;
+        }
+        if (!Utils::isUnset($request->productCode)) {
+            $body['ProductCode'] = $request->productCode;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $body['SceneId'] = $request->sceneId;
+        }
+        if (!Utils::isUnset($request->sourceCertifyId)) {
+            $body['SourceCertifyId'] = $request->sourceCertifyId;
+        }
+        if (!Utils::isUnset($request->sourceFaceContrastPicture)) {
+            $body['SourceFaceContrastPicture'] = $request->sourceFaceContrastPicture;
+        }
+        if (!Utils::isUnset($request->sourceFaceContrastPictureUrl)) {
+            $body['SourceFaceContrastPictureUrl'] = $request->sourceFaceContrastPictureUrl;
+        }
+        if (!Utils::isUnset($request->sourceOssBucketName)) {
+            $body['SourceOssBucketName'] = $request->sourceOssBucketName;
+        }
+        if (!Utils::isUnset($request->sourceOssObjectName)) {
+            $body['SourceOssObjectName'] = $request->sourceOssObjectName;
+        }
+        if (!Utils::isUnset($request->targetCertifyId)) {
+            $body['TargetCertifyId'] = $request->targetCertifyId;
+        }
+        if (!Utils::isUnset($request->targetFaceContrastPicture)) {
+            $body['TargetFaceContrastPicture'] = $request->targetFaceContrastPicture;
+        }
+        if (!Utils::isUnset($request->targetFaceContrastPictureUrl)) {
+            $body['TargetFaceContrastPictureUrl'] = $request->targetFaceContrastPictureUrl;
+        }
+        if (!Utils::isUnset($request->targetOssBucketName)) {
+            $body['TargetOssBucketName'] = $request->targetOssBucketName;
+        }
+        if (!Utils::isUnset($request->targetOssObjectName)) {
+            $body['TargetOssObjectName'] = $request->targetOssObjectName;
+        }
+        $req = new OpenApiRequest([
+            'body' => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'CompareFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return CompareFaceVerifyResponse::fromMap($this->doRequest('CompareFaceVerify', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return CompareFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
@@ -299,111 +160,63 @@ class Cloudauth extends Rpc
      *
      * @return CompareFaceVerifyResponse
      */
-    public function compareFaceVerifySimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->compareFaceVerify($request, $runtime);
-    }
-
-    /**
-     * @param DescribeSdkUrlRequest $request
-     * @param RuntimeOptions        $runtime
-     *
-     * @return DescribeSdkUrlResponse
-     */
-    public function describeSdkUrl($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return DescribeSdkUrlResponse::fromMap($this->doRequest('DescribeSdkUrl', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param DescribeSdkUrlRequest $request
-     *
-     * @return DescribeSdkUrlResponse
-     */
-    public function describeSdkUrlSimply($request)
+    public function compareFaceVerify($request)
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->describeSdkUrl($request, $runtime);
-    }
-
-    /**
-     * @param DescribeUpdatePackageResultRequest $request
-     * @param RuntimeOptions                     $runtime
-     *
-     * @return DescribeUpdatePackageResultResponse
-     */
-    public function describeUpdatePackageResult($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return DescribeUpdatePackageResultResponse::fromMap($this->doRequest('DescribeUpdatePackageResult', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return $this->compareFaceVerifyWithOptions($request, $runtime);
     }
 
     /**
-     * @param DescribeUpdatePackageResultRequest $request
-     *
-     * @return DescribeUpdatePackageResultResponse
-     */
-    public function describeUpdatePackageResultSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->describeUpdatePackageResult($request, $runtime);
-    }
-
-    /**
-     * @param UpdateAppPackageRequest $request
-     * @param RuntimeOptions          $runtime
-     *
-     * @return UpdateAppPackageResponse
-     */
-    public function updateAppPackage($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return UpdateAppPackageResponse::fromMap($this->doRequest('UpdateAppPackage', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param UpdateAppPackageRequest $request
-     *
-     * @return UpdateAppPackageResponse
-     */
-    public function updateAppPackageSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->updateAppPackage($request, $runtime);
-    }
-
-    /**
-     * @param DescribeAppInfoRequest $request
-     * @param RuntimeOptions         $runtime
+     * @param CompareFacesRequest $request
+     * @param RuntimeOptions      $runtime
      *
-     * @return DescribeAppInfoResponse
+     * @return CompareFacesResponse
      */
-    public function describeAppInfo($request, $runtime)
+    public function compareFacesWithOptions($request, $runtime)
     {
         Utils::validateModel($request);
+        $body = [];
+        if (!Utils::isUnset($request->sourceImageType)) {
+            $body['SourceImageType'] = $request->sourceImageType;
+        }
+        if (!Utils::isUnset($request->sourceImageValue)) {
+            $body['SourceImageValue'] = $request->sourceImageValue;
+        }
+        if (!Utils::isUnset($request->targetImageType)) {
+            $body['TargetImageType'] = $request->targetImageType;
+        }
+        if (!Utils::isUnset($request->targetImageValue)) {
+            $body['TargetImageValue'] = $request->targetImageValue;
+        }
+        $req = new OpenApiRequest([
+            'body' => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'CompareFaces',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return DescribeAppInfoResponse::fromMap($this->doRequest('DescribeAppInfo', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return CompareFacesResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
-     * @param DescribeAppInfoRequest $request
+     * @param CompareFacesRequest $request
      *
-     * @return DescribeAppInfoResponse
+     * @return CompareFacesResponse
      */
-    public function describeAppInfoSimply($request)
+    public function compareFaces($request)
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->describeAppInfo($request, $runtime);
+        return $this->compareFacesWithOptions($request, $runtime);
     }
 
     /**
@@ -412,11 +225,85 @@ class Cloudauth extends Rpc
      *
      * @return ContrastFaceVerifyResponse
      */
-    public function contrastFaceVerify($request, $runtime)
+    public function contrastFaceVerifyWithOptions($request, $runtime)
     {
         Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->model)) {
+            $query['Model'] = $request->model;
+        }
+        $body = [];
+        if (!Utils::isUnset($request->certName)) {
+            $body['CertName'] = $request->certName;
+        }
+        if (!Utils::isUnset($request->certNo)) {
+            $body['CertNo'] = $request->certNo;
+        }
+        if (!Utils::isUnset($request->certType)) {
+            $body['CertType'] = $request->certType;
+        }
+        if (!Utils::isUnset($request->certifyId)) {
+            $body['CertifyId'] = $request->certifyId;
+        }
+        if (!Utils::isUnset($request->crop)) {
+            $body['Crop'] = $request->crop;
+        }
+        if (!Utils::isUnset($request->deviceToken)) {
+            $body['DeviceToken'] = $request->deviceToken;
+        }
+        if (!Utils::isUnset($request->encryptType)) {
+            $body['EncryptType'] = $request->encryptType;
+        }
+        if (!Utils::isUnset($request->faceContrastFile)) {
+            $body['FaceContrastFile'] = $request->faceContrastFile;
+        }
+        if (!Utils::isUnset($request->faceContrastPicture)) {
+            $body['FaceContrastPicture'] = $request->faceContrastPicture;
+        }
+        if (!Utils::isUnset($request->faceContrastPictureUrl)) {
+            $body['FaceContrastPictureUrl'] = $request->faceContrastPictureUrl;
+        }
+        if (!Utils::isUnset($request->ip)) {
+            $body['Ip'] = $request->ip;
+        }
+        if (!Utils::isUnset($request->mobile)) {
+            $body['Mobile'] = $request->mobile;
+        }
+        if (!Utils::isUnset($request->ossBucketName)) {
+            $body['OssBucketName'] = $request->ossBucketName;
+        }
+        if (!Utils::isUnset($request->ossObjectName)) {
+            $body['OssObjectName'] = $request->ossObjectName;
+        }
+        if (!Utils::isUnset($request->outerOrderNo)) {
+            $body['OuterOrderNo'] = $request->outerOrderNo;
+        }
+        if (!Utils::isUnset($request->productCode)) {
+            $body['ProductCode'] = $request->productCode;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $body['SceneId'] = $request->sceneId;
+        }
+        if (!Utils::isUnset($request->userId)) {
+            $body['UserId'] = $request->userId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+            'body'  => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'ContrastFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return ContrastFaceVerifyResponse::fromMap($this->doRequest('ContrastFaceVerify', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return ContrastFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
@@ -424,11 +311,11 @@ class Cloudauth extends Rpc
      *
      * @return ContrastFaceVerifyResponse
      */
-    public function contrastFaceVerifySimply($request)
+    public function contrastFaceVerify($request)
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->contrastFaceVerify($request, $runtime);
+        return $this->contrastFaceVerifyWithOptions($request, $runtime);
     }
 
     /**
@@ -442,710 +329,857 @@ class Cloudauth extends Rpc
         // Step 0: init client
         $accessKeyId          = $this->_credential->getAccessKeyId();
         $accessKeySecret      = $this->_credential->getAccessKeySecret();
+        $securityToken        = $this->_credential->getSecurityToken();
+        $credentialType       = $this->_credential->getType();
         $openPlatformEndpoint = $this->_openPlatformEndpoint;
-        if (Utils::isUnset($openPlatformEndpoint)) {
-            $openPlatformEndpoint = 'openplatform.aliyuncs.com';
-        }
-        $authConfig = new Config([
-            'accessKeyId'     => $accessKeyId,
-            'accessKeySecret' => $accessKeySecret,
-            'type'            => 'access_key',
-            'endpoint'        => $openPlatformEndpoint,
-            'protocol'        => $this->_protocol,
-            'regionId'        => $this->_regionId,
-        ]);
-        $authClient  = new OpenPlatform($authConfig);
-        $authRequest = new AuthorizeFileUploadRequest([
-            'product'  => 'Cloudauth',
-            'regionId' => $this->_regionId,
-        ]);
-        $authResponse = new AuthorizeFileUploadResponse([]);
-        $ossConfig    = new \AlibabaCloud\SDK\OSS\OSS\Config([
-            'accessKeySecret' => $accessKeySecret,
-            'type'            => 'access_key',
-            'protocol'        => $this->_protocol,
-            'regionId'        => $this->_regionId,
-        ]);
-        $ossClient     = null;
-        $fileObj       = new FileField([]);
-        $ossHeader     = new header([]);
-        $uploadRequest = new PostObjectRequest([]);
-        $ossRuntime    = new \AlibabaCloud\Tea\OSSUtils\OSSUtils\RuntimeOptions([]);
-        RpcUtils::convert($runtime, $ossRuntime);
-        $contrastFaceVerifyReq = new ContrastFaceVerifyRequest([]);
-        RpcUtils::convert($request, $contrastFaceVerifyReq);
-        $authResponse           = $authClient->authorizeFileUploadWithOptions($authRequest, $runtime);
-        $ossConfig->accessKeyId = $authResponse->accessKeyId;
-        $ossConfig->endpoint    = RpcUtils::getEndpoint($authResponse->endpoint, $authResponse->useAccelerate, $this->_endpointType);
-        $ossClient              = new OSS($ossConfig);
-        $fileObj                = new FileField([
-            'filename'    => $authResponse->objectKey,
-            'content'     => $request->faceContrastFileObject,
-            'contentType' => '',
-        ]);
-        $ossHeader = new header([
-            'accessKeyId'         => $authResponse->accessKeyId,
-            'policy'              => $authResponse->encodedPolicy,
-            'signature'           => $authResponse->signature,
-            'key'                 => $authResponse->objectKey,
-            'file'                => $fileObj,
-            'successActionStatus' => '201',
-        ]);
-        $uploadRequest = new PostObjectRequest([
-            'bucketName' => $authResponse->bucket,
-            'header'     => $ossHeader,
-        ]);
-        $ossClient->postObject($uploadRequest, $ossRuntime);
-        $contrastFaceVerifyReq->faceContrastFile = 'http://' . $authResponse->bucket . '.' . $authResponse->endpoint . '/' . $authResponse->objectKey . '';
-
-        return $this->contrastFaceVerify($contrastFaceVerifyReq, $runtime);
-    }
-
-    /**
-     * @param InitDeviceRequest $request
-     * @param RuntimeOptions    $runtime
-     *
-     * @return InitDeviceResponse
-     */
-    public function initDevice($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return InitDeviceResponse::fromMap($this->doRequest('InitDevice', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param InitDeviceRequest $request
-     *
-     * @return InitDeviceResponse
-     */
-    public function initDeviceSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->initDevice($request, $runtime);
-    }
-
-    /**
-     * @param InitFaceVerifyRequest $request
-     * @param RuntimeOptions        $runtime
-     *
-     * @return InitFaceVerifyResponse
-     */
-    public function initFaceVerify($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return InitFaceVerifyResponse::fromMap($this->doRequest('InitFaceVerify', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param InitFaceVerifyRequest $request
-     *
-     * @return InitFaceVerifyResponse
-     */
-    public function initFaceVerifySimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->initFaceVerify($request, $runtime);
-    }
-
-    /**
-     * @param DescribeFaceVerifyRequest $request
-     * @param RuntimeOptions            $runtime
-     *
-     * @return DescribeFaceVerifyResponse
-     */
-    public function describeFaceVerify($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return DescribeFaceVerifyResponse::fromMap($this->doRequest('DescribeFaceVerify', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param DescribeFaceVerifyRequest $request
-     *
-     * @return DescribeFaceVerifyResponse
-     */
-    public function describeFaceVerifySimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->describeFaceVerify($request, $runtime);
-    }
-
-    /**
-     * @param VerifyDeviceRequest $request
-     * @param RuntimeOptions      $runtime
-     *
-     * @return VerifyDeviceResponse
-     */
-    public function verifyDevice($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return VerifyDeviceResponse::fromMap($this->doRequest('VerifyDevice', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param VerifyDeviceRequest $request
-     *
-     * @return VerifyDeviceResponse
-     */
-    public function verifyDeviceSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->verifyDevice($request, $runtime);
-    }
-
-    /**
-     * @param ModifyDeviceInfoRequest $request
-     * @param RuntimeOptions          $runtime
-     *
-     * @return ModifyDeviceInfoResponse
-     */
-    public function modifyDeviceInfo($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return ModifyDeviceInfoResponse::fromMap($this->doRequest('ModifyDeviceInfo', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param ModifyDeviceInfoRequest $request
-     *
-     * @return ModifyDeviceInfoResponse
-     */
-    public function modifyDeviceInfoSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->modifyDeviceInfo($request, $runtime);
-    }
-
-    /**
-     * @param DescribeVerifySDKRequest $request
-     * @param RuntimeOptions           $runtime
-     *
-     * @return DescribeVerifySDKResponse
-     */
-    public function describeVerifySDK($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return DescribeVerifySDKResponse::fromMap($this->doRequest('DescribeVerifySDK', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param DescribeVerifySDKRequest $request
-     *
-     * @return DescribeVerifySDKResponse
-     */
-    public function describeVerifySDKSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->describeVerifySDK($request, $runtime);
-    }
-
-    /**
-     * @param DescribeDeviceInfoRequest $request
-     * @param RuntimeOptions            $runtime
-     *
-     * @return DescribeDeviceInfoResponse
-     */
-    public function describeDeviceInfo($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return DescribeDeviceInfoResponse::fromMap($this->doRequest('DescribeDeviceInfo', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param DescribeDeviceInfoRequest $request
-     *
-     * @return DescribeDeviceInfoResponse
-     */
-    public function describeDeviceInfoSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->describeDeviceInfo($request, $runtime);
-    }
-
-    /**
-     * @param CreateVerifySDKRequest $request
-     * @param RuntimeOptions         $runtime
-     *
-     * @return CreateVerifySDKResponse
-     */
-    public function createVerifySDK($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return CreateVerifySDKResponse::fromMap($this->doRequest('CreateVerifySDK', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param CreateVerifySDKRequest $request
-     *
-     * @return CreateVerifySDKResponse
-     */
-    public function createVerifySDKSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->createVerifySDK($request, $runtime);
-    }
-
-    /**
-     * @param CreateAuthKeyRequest $request
-     * @param RuntimeOptions       $runtime
-     *
-     * @return CreateAuthKeyResponse
-     */
-    public function createAuthKey($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return CreateAuthKeyResponse::fromMap($this->doRequest('CreateAuthKey', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param CreateAuthKeyRequest $request
-     *
-     * @return CreateAuthKeyResponse
-     */
-    public function createAuthKeySimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->createAuthKey($request, $runtime);
-    }
-
-    /**
-     * @param DetectFaceAttributesRequest $request
-     * @param RuntimeOptions              $runtime
-     *
-     * @return DetectFaceAttributesResponse
-     */
-    public function detectFaceAttributes($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return DetectFaceAttributesResponse::fromMap($this->doRequest('DetectFaceAttributes', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param DetectFaceAttributesRequest $request
-     *
-     * @return DetectFaceAttributesResponse
-     */
-    public function detectFaceAttributesSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->detectFaceAttributes($request, $runtime);
-    }
-
-    /**
-     * @param CompareFacesRequest $request
-     * @param RuntimeOptions      $runtime
-     *
-     * @return CompareFacesResponse
-     */
-    public function compareFaces($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return CompareFacesResponse::fromMap($this->doRequest('CompareFaces', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param CompareFacesRequest $request
-     *
-     * @return CompareFacesResponse
-     */
-    public function compareFacesSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
-
-        return $this->compareFaces($request, $runtime);
-    }
-
-    /**
-     * @param DescribeFaceUsageRequest $request
-     * @param RuntimeOptions           $runtime
-     *
-     * @return DescribeFaceUsageResponse
-     */
-    public function describeFaceUsage($request, $runtime)
-    {
-        Utils::validateModel($request);
-
-        return DescribeFaceUsageResponse::fromMap($this->doRequest('DescribeFaceUsage', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
-    }
-
-    /**
-     * @param DescribeFaceUsageRequest $request
-     *
-     * @return DescribeFaceUsageResponse
-     */
-    public function describeFaceUsageSimply($request)
-    {
-        $runtime = new RuntimeOptions([]);
+        if (Utils::isUnset($openPlatformEndpoint)) {
+            $openPlatformEndpoint = 'openplatform.aliyuncs.com';
+        }
+        if (Utils::isUnset($credentialType)) {
+            $credentialType = 'access_key';
+        }
+        $authConfig = new Config([
+            'accessKeyId'     => $accessKeyId,
+            'accessKeySecret' => $accessKeySecret,
+            'securityToken'   => $securityToken,
+            'type'            => $credentialType,
+            'endpoint'        => $openPlatformEndpoint,
+            'protocol'        => $this->_protocol,
+            'regionId'        => $this->_regionId,
+        ]);
+        $authClient  = new OpenPlatform($authConfig);
+        $authRequest = new AuthorizeFileUploadRequest([
+            'product'  => 'Cloudauth',
+            'regionId' => $this->_regionId,
+        ]);
+        $authResponse = new AuthorizeFileUploadResponse([]);
+        $ossConfig    = new \AlibabaCloud\SDK\OSS\OSS\Config([
+            'accessKeySecret' => $accessKeySecret,
+            'type'            => 'access_key',
+            'protocol'        => $this->_protocol,
+            'regionId'        => $this->_regionId,
+        ]);
+        $ossClient     = null;
+        $fileObj       = new FileField([]);
+        $ossHeader     = new header([]);
+        $uploadRequest = new PostObjectRequest([]);
+        $ossRuntime    = new \AlibabaCloud\Tea\OSSUtils\OSSUtils\RuntimeOptions([]);
+        OpenApiUtilClient::convert($runtime, $ossRuntime);
+        $contrastFaceVerifyReq = new ContrastFaceVerifyRequest([]);
+        OpenApiUtilClient::convert($request, $contrastFaceVerifyReq);
+        if (!Utils::isUnset($request->faceContrastFileObject)) {
+            $authResponse           = $authClient->authorizeFileUploadWithOptions($authRequest, $runtime);
+            $ossConfig->accessKeyId = $authResponse->accessKeyId;
+            $ossConfig->endpoint    = OpenApiUtilClient::getEndpoint($authResponse->endpoint, $authResponse->useAccelerate, $this->_endpointType);
+            $ossClient              = new OSS($ossConfig);
+            $fileObj                = new FileField([
+                'filename'    => $authResponse->objectKey,
+                'content'     => $request->faceContrastFileObject,
+                'contentType' => '',
+            ]);
+            $ossHeader = new header([
+                'accessKeyId'         => $authResponse->accessKeyId,
+                'policy'              => $authResponse->encodedPolicy,
+                'signature'           => $authResponse->signature,
+                'key'                 => $authResponse->objectKey,
+                'file'                => $fileObj,
+                'successActionStatus' => '201',
+            ]);
+            $uploadRequest = new PostObjectRequest([
+                'bucketName' => $authResponse->bucket,
+                'header'     => $ossHeader,
+            ]);
+            $ossClient->postObject($uploadRequest, $ossRuntime);
+            $contrastFaceVerifyReq->faceContrastFile = 'http://' . $authResponse->bucket . '.' . $authResponse->endpoint . '/' . $authResponse->objectKey . '';
+        }
 
-        return $this->describeFaceUsage($request, $runtime);
+        return $this->contrastFaceVerifyWithOptions($contrastFaceVerifyReq, $runtime);
     }
 
     /**
-     * @param DescribeVerifyRecordsRequest $request
-     * @param RuntimeOptions               $runtime
+     * @param CreateAuthKeyRequest $request
+     * @param RuntimeOptions       $runtime
      *
-     * @return DescribeVerifyRecordsResponse
+     * @return CreateAuthKeyResponse
      */
-    public function describeVerifyRecords($request, $runtime)
+    public function createAuthKeyWithOptions($request, $runtime)
     {
         Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->authYears)) {
+            $query['AuthYears'] = $request->authYears;
+        }
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->test)) {
+            $query['Test'] = $request->test;
+        }
+        if (!Utils::isUnset($request->userDeviceId)) {
+            $query['UserDeviceId'] = $request->userDeviceId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'CreateAuthKey',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return DescribeVerifyRecordsResponse::fromMap($this->doRequest('DescribeVerifyRecords', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return CreateAuthKeyResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
-     * @param DescribeVerifyRecordsRequest $request
+     * @param CreateAuthKeyRequest $request
      *
-     * @return DescribeVerifyRecordsResponse
+     * @return CreateAuthKeyResponse
      */
-    public function describeVerifyRecordsSimply($request)
+    public function createAuthKey($request)
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->describeVerifyRecords($request, $runtime);
+        return $this->createAuthKeyWithOptions($request, $runtime);
     }
 
     /**
-     * @param UpdateVerifySettingRequest $request
+     * @param CreateVerifySettingRequest $request
      * @param RuntimeOptions             $runtime
      *
-     * @return UpdateVerifySettingResponse
+     * @return CreateVerifySettingResponse
      */
-    public function updateVerifySetting($request, $runtime)
+    public function createVerifySettingWithOptions($request, $runtime)
     {
         Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->bizName)) {
+            $query['BizName'] = $request->bizName;
+        }
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->guideStep)) {
+            $query['GuideStep'] = $request->guideStep;
+        }
+        if (!Utils::isUnset($request->privacyStep)) {
+            $query['PrivacyStep'] = $request->privacyStep;
+        }
+        if (!Utils::isUnset($request->resultStep)) {
+            $query['ResultStep'] = $request->resultStep;
+        }
+        if (!Utils::isUnset($request->solution)) {
+            $query['Solution'] = $request->solution;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'CreateVerifySetting',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return UpdateVerifySettingResponse::fromMap($this->doRequest('UpdateVerifySetting', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return CreateVerifySettingResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
-     * @param UpdateVerifySettingRequest $request
+     * @param CreateVerifySettingRequest $request
      *
-     * @return UpdateVerifySettingResponse
+     * @return CreateVerifySettingResponse
      */
-    public function updateVerifySettingSimply($request)
+    public function createVerifySetting($request)
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->updateVerifySetting($request, $runtime);
+        return $this->createVerifySettingWithOptions($request, $runtime);
     }
 
     /**
-     * @param CreateVerifySettingRequest $request
-     * @param RuntimeOptions             $runtime
+     * @param DescribeDeviceInfoRequest $request
+     * @param RuntimeOptions            $runtime
      *
-     * @return CreateVerifySettingResponse
+     * @return DescribeDeviceInfoResponse
      */
-    public function createVerifySetting($request, $runtime)
+    public function describeDeviceInfoWithOptions($request, $runtime)
     {
         Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->currentPage)) {
+            $query['CurrentPage'] = $request->currentPage;
+        }
+        if (!Utils::isUnset($request->deviceId)) {
+            $query['DeviceId'] = $request->deviceId;
+        }
+        if (!Utils::isUnset($request->expiredEndDay)) {
+            $query['ExpiredEndDay'] = $request->expiredEndDay;
+        }
+        if (!Utils::isUnset($request->expiredStartDay)) {
+            $query['ExpiredStartDay'] = $request->expiredStartDay;
+        }
+        if (!Utils::isUnset($request->pageSize)) {
+            $query['PageSize'] = $request->pageSize;
+        }
+        if (!Utils::isUnset($request->userDeviceId)) {
+            $query['UserDeviceId'] = $request->userDeviceId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'DescribeDeviceInfo',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return CreateVerifySettingResponse::fromMap($this->doRequest('CreateVerifySetting', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return DescribeDeviceInfoResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
-     * @param CreateVerifySettingRequest $request
+     * @param DescribeDeviceInfoRequest $request
      *
-     * @return CreateVerifySettingResponse
+     * @return DescribeDeviceInfoResponse
      */
-    public function createVerifySettingSimply($request)
+    public function describeDeviceInfo($request)
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->createVerifySetting($request, $runtime);
+        return $this->describeDeviceInfoWithOptions($request, $runtime);
     }
 
     /**
-     * @param DescribeVerifySettingRequest $request
-     * @param RuntimeOptions               $runtime
+     * @param DescribeFaceVerifyRequest $request
+     * @param RuntimeOptions            $runtime
      *
-     * @return DescribeVerifySettingResponse
+     * @return DescribeFaceVerifyResponse
      */
-    public function describeVerifySetting($request, $runtime)
+    public function describeFaceVerifyWithOptions($request, $runtime)
     {
         Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->certifyId)) {
+            $query['CertifyId'] = $request->certifyId;
+        }
+        if (!Utils::isUnset($request->pictureReturnType)) {
+            $query['PictureReturnType'] = $request->pictureReturnType;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $query['SceneId'] = $request->sceneId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'DescribeFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return DescribeVerifySettingResponse::fromMap($this->doRequest('DescribeVerifySetting', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return DescribeFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
-     * @param DescribeVerifySettingRequest $request
+     * @param DescribeFaceVerifyRequest $request
      *
-     * @return DescribeVerifySettingResponse
+     * @return DescribeFaceVerifyResponse
      */
-    public function describeVerifySettingSimply($request)
+    public function describeFaceVerify($request)
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->describeVerifySetting($request, $runtime);
+        return $this->describeFaceVerifyWithOptions($request, $runtime);
     }
 
     /**
-     * @param DescribeVerifyUsageRequest $request
-     * @param RuntimeOptions             $runtime
+     * @param RuntimeOptions $runtime
      *
-     * @return DescribeVerifyUsageResponse
+     * @return DescribeOssUploadTokenResponse
      */
-    public function describeVerifyUsage($request, $runtime)
-    {
-        Utils::validateModel($request);
+    public function describeOssUploadTokenWithOptions($runtime)
+    {
+        $req    = new OpenApiRequest([]);
+        $params = new Params([
+            'action'      => 'DescribeOssUploadToken',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return DescribeVerifyUsageResponse::fromMap($this->doRequest('DescribeVerifyUsage', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return DescribeOssUploadTokenResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
-     * @param DescribeVerifyUsageRequest $request
-     *
-     * @return DescribeVerifyUsageResponse
+     * @return DescribeOssUploadTokenResponse
      */
-    public function describeVerifyUsageSimply($request)
+    public function describeOssUploadToken()
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->describeVerifyUsage($request, $runtime);
+        return $this->describeOssUploadTokenWithOptions($runtime);
     }
 
     /**
-     * @param DescribeUserStatusRequest $request
-     * @param RuntimeOptions            $runtime
+     * @param DescribeVerifyResultRequest $request
+     * @param RuntimeOptions              $runtime
      *
-     * @return DescribeUserStatusResponse
+     * @return DescribeVerifyResultResponse
      */
-    public function describeUserStatus($request, $runtime)
+    public function describeVerifyResultWithOptions($request, $runtime)
     {
         Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->bizId)) {
+            $query['BizId'] = $request->bizId;
+        }
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'DescribeVerifyResult',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return DescribeUserStatusResponse::fromMap($this->doRequest('DescribeUserStatus', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return DescribeVerifyResultResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
-     * @param DescribeUserStatusRequest $request
+     * @param DescribeVerifyResultRequest $request
      *
-     * @return DescribeUserStatusResponse
+     * @return DescribeVerifyResultResponse
      */
-    public function describeUserStatusSimply($request)
+    public function describeVerifyResult($request)
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->describeUserStatus($request, $runtime);
+        return $this->describeVerifyResultWithOptions($request, $runtime);
     }
 
     /**
-     * @param DescribeUploadInfoRequest $request
-     * @param RuntimeOptions            $runtime
+     * @param DescribeVerifySDKRequest $request
+     * @param RuntimeOptions           $runtime
      *
-     * @return DescribeUploadInfoResponse
+     * @return DescribeVerifySDKResponse
      */
-    public function describeUploadInfo($request, $runtime)
+    public function describeVerifySDKWithOptions($request, $runtime)
     {
         Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->taskId)) {
+            $query['TaskId'] = $request->taskId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'DescribeVerifySDK',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return DescribeUploadInfoResponse::fromMap($this->doRequest('DescribeUploadInfo', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return DescribeVerifySDKResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
-     * @param DescribeUploadInfoRequest $request
+     * @param DescribeVerifySDKRequest $request
      *
-     * @return DescribeUploadInfoResponse
+     * @return DescribeVerifySDKResponse
      */
-    public function describeUploadInfoSimply($request)
+    public function describeVerifySDK($request)
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->describeUploadInfo($request, $runtime);
+        return $this->describeVerifySDKWithOptions($request, $runtime);
     }
 
     /**
-     * @param DescribeRPSDKRequest $request
-     * @param RuntimeOptions       $runtime
+     * @param DescribeVerifyTokenRequest $request
+     * @param RuntimeOptions             $runtime
      *
-     * @return DescribeRPSDKResponse
+     * @return DescribeVerifyTokenResponse
      */
-    public function describeRPSDK($request, $runtime)
+    public function describeVerifyTokenWithOptions($request, $runtime)
     {
         Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->bizId)) {
+            $query['BizId'] = $request->bizId;
+        }
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->callbackSeed)) {
+            $query['CallbackSeed'] = $request->callbackSeed;
+        }
+        if (!Utils::isUnset($request->callbackUrl)) {
+            $query['CallbackUrl'] = $request->callbackUrl;
+        }
+        if (!Utils::isUnset($request->faceRetainedImageUrl)) {
+            $query['FaceRetainedImageUrl'] = $request->faceRetainedImageUrl;
+        }
+        if (!Utils::isUnset($request->failedRedirectUrl)) {
+            $query['FailedRedirectUrl'] = $request->failedRedirectUrl;
+        }
+        if (!Utils::isUnset($request->idCardBackImageUrl)) {
+            $query['IdCardBackImageUrl'] = $request->idCardBackImageUrl;
+        }
+        if (!Utils::isUnset($request->idCardFrontImageUrl)) {
+            $query['IdCardFrontImageUrl'] = $request->idCardFrontImageUrl;
+        }
+        if (!Utils::isUnset($request->idCardNumber)) {
+            $query['IdCardNumber'] = $request->idCardNumber;
+        }
+        if (!Utils::isUnset($request->name)) {
+            $query['Name'] = $request->name;
+        }
+        if (!Utils::isUnset($request->passedRedirectUrl)) {
+            $query['PassedRedirectUrl'] = $request->passedRedirectUrl;
+        }
+        if (!Utils::isUnset($request->userId)) {
+            $query['UserId'] = $request->userId;
+        }
+        if (!Utils::isUnset($request->userIp)) {
+            $query['UserIp'] = $request->userIp;
+        }
+        if (!Utils::isUnset($request->userPhoneNumber)) {
+            $query['UserPhoneNumber'] = $request->userPhoneNumber;
+        }
+        if (!Utils::isUnset($request->userRegistTime)) {
+            $query['UserRegistTime'] = $request->userRegistTime;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'DescribeVerifyToken',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return DescribeRPSDKResponse::fromMap($this->doRequest('DescribeRPSDK', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return DescribeVerifyTokenResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
-     * @param DescribeRPSDKRequest $request
+     * @param DescribeVerifyTokenRequest $request
      *
-     * @return DescribeRPSDKResponse
+     * @return DescribeVerifyTokenResponse
      */
-    public function describeRPSDKSimply($request)
+    public function describeVerifyToken($request)
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->describeRPSDK($request, $runtime);
+        return $this->describeVerifyTokenWithOptions($request, $runtime);
     }
 
     /**
-     * @param CreateRPSDKRequest $request
-     * @param RuntimeOptions     $runtime
+     * @param DetectFaceAttributesRequest $request
+     * @param RuntimeOptions              $runtime
      *
-     * @return CreateRPSDKResponse
+     * @return DetectFaceAttributesResponse
      */
-    public function createRPSDK($request, $runtime)
+    public function detectFaceAttributesWithOptions($request, $runtime)
     {
         Utils::validateModel($request);
+        $body = [];
+        if (!Utils::isUnset($request->bizType)) {
+            $body['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->materialValue)) {
+            $body['MaterialValue'] = $request->materialValue;
+        }
+        $req = new OpenApiRequest([
+            'body' => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'DetectFaceAttributes',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return CreateRPSDKResponse::fromMap($this->doRequest('CreateRPSDK', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return DetectFaceAttributesResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
-     * @param CreateRPSDKRequest $request
+     * @param DetectFaceAttributesRequest $request
      *
-     * @return CreateRPSDKResponse
+     * @return DetectFaceAttributesResponse
      */
-    public function createRPSDKSimply($request)
+    public function detectFaceAttributes($request)
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->createRPSDK($request, $runtime);
+        return $this->detectFaceAttributesWithOptions($request, $runtime);
     }
 
     /**
-     * @param VerifyMaterialRequest $request
+     * @param InitFaceVerifyRequest $request
      * @param RuntimeOptions        $runtime
      *
-     * @return VerifyMaterialResponse
+     * @return InitFaceVerifyResponse
      */
-    public function verifyMaterial($request, $runtime)
+    public function initFaceVerifyWithOptions($request, $runtime)
     {
         Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->callbackToken)) {
+            $query['CallbackToken'] = $request->callbackToken;
+        }
+        if (!Utils::isUnset($request->callbackUrl)) {
+            $query['CallbackUrl'] = $request->callbackUrl;
+        }
+        if (!Utils::isUnset($request->certName)) {
+            $query['CertName'] = $request->certName;
+        }
+        if (!Utils::isUnset($request->certNo)) {
+            $query['CertNo'] = $request->certNo;
+        }
+        if (!Utils::isUnset($request->certType)) {
+            $query['CertType'] = $request->certType;
+        }
+        if (!Utils::isUnset($request->certifyId)) {
+            $query['CertifyId'] = $request->certifyId;
+        }
+        if (!Utils::isUnset($request->certifyUrlType)) {
+            $query['CertifyUrlType'] = $request->certifyUrlType;
+        }
+        if (!Utils::isUnset($request->encryptType)) {
+            $query['EncryptType'] = $request->encryptType;
+        }
+        if (!Utils::isUnset($request->faceContrastPictureUrl)) {
+            $query['FaceContrastPictureUrl'] = $request->faceContrastPictureUrl;
+        }
+        if (!Utils::isUnset($request->ip)) {
+            $query['Ip'] = $request->ip;
+        }
+        if (!Utils::isUnset($request->metaInfo)) {
+            $query['MetaInfo'] = $request->metaInfo;
+        }
+        if (!Utils::isUnset($request->mobile)) {
+            $query['Mobile'] = $request->mobile;
+        }
+        if (!Utils::isUnset($request->ossBucketName)) {
+            $query['OssBucketName'] = $request->ossBucketName;
+        }
+        if (!Utils::isUnset($request->ossObjectName)) {
+            $query['OssObjectName'] = $request->ossObjectName;
+        }
+        if (!Utils::isUnset($request->outerOrderNo)) {
+            $query['OuterOrderNo'] = $request->outerOrderNo;
+        }
+        if (!Utils::isUnset($request->productCode)) {
+            $query['ProductCode'] = $request->productCode;
+        }
+        if (!Utils::isUnset($request->returnUrl)) {
+            $query['ReturnUrl'] = $request->returnUrl;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $query['SceneId'] = $request->sceneId;
+        }
+        if (!Utils::isUnset($request->userId)) {
+            $query['UserId'] = $request->userId;
+        }
+        $body = [];
+        if (!Utils::isUnset($request->authId)) {
+            $body['AuthId'] = $request->authId;
+        }
+        if (!Utils::isUnset($request->crop)) {
+            $body['Crop'] = $request->crop;
+        }
+        if (!Utils::isUnset($request->faceContrastPicture)) {
+            $body['FaceContrastPicture'] = $request->faceContrastPicture;
+        }
+        if (!Utils::isUnset($request->model)) {
+            $body['Model'] = $request->model;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+            'body'  => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'InitFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return VerifyMaterialResponse::fromMap($this->doRequest('VerifyMaterial', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return InitFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
-     * @param VerifyMaterialRequest $request
+     * @param InitFaceVerifyRequest $request
      *
-     * @return VerifyMaterialResponse
+     * @return InitFaceVerifyResponse
      */
-    public function verifyMaterialSimply($request)
+    public function initFaceVerify($request)
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->verifyMaterial($request, $runtime);
+        return $this->initFaceVerifyWithOptions($request, $runtime);
     }
 
     /**
-     * @param DescribeVerifyResultRequest $request
-     * @param RuntimeOptions              $runtime
+     * @param LivenessFaceVerifyRequest $request
+     * @param RuntimeOptions            $runtime
      *
-     * @return DescribeVerifyResultResponse
+     * @return LivenessFaceVerifyResponse
      */
-    public function describeVerifyResult($request, $runtime)
+    public function livenessFaceVerifyWithOptions($request, $runtime)
     {
         Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->model)) {
+            $query['Model'] = $request->model;
+        }
+        $body = [];
+        if (!Utils::isUnset($request->certifyId)) {
+            $body['CertifyId'] = $request->certifyId;
+        }
+        if (!Utils::isUnset($request->crop)) {
+            $body['Crop'] = $request->crop;
+        }
+        if (!Utils::isUnset($request->deviceToken)) {
+            $body['DeviceToken'] = $request->deviceToken;
+        }
+        if (!Utils::isUnset($request->faceContrastPicture)) {
+            $body['FaceContrastPicture'] = $request->faceContrastPicture;
+        }
+        if (!Utils::isUnset($request->faceContrastPictureUrl)) {
+            $body['FaceContrastPictureUrl'] = $request->faceContrastPictureUrl;
+        }
+        if (!Utils::isUnset($request->ip)) {
+            $body['Ip'] = $request->ip;
+        }
+        if (!Utils::isUnset($request->mobile)) {
+            $body['Mobile'] = $request->mobile;
+        }
+        if (!Utils::isUnset($request->ossBucketName)) {
+            $body['OssBucketName'] = $request->ossBucketName;
+        }
+        if (!Utils::isUnset($request->ossObjectName)) {
+            $body['OssObjectName'] = $request->ossObjectName;
+        }
+        if (!Utils::isUnset($request->outerOrderNo)) {
+            $body['OuterOrderNo'] = $request->outerOrderNo;
+        }
+        if (!Utils::isUnset($request->productCode)) {
+            $body['ProductCode'] = $request->productCode;
+        }
+        if (!Utils::isUnset($request->sceneId)) {
+            $body['SceneId'] = $request->sceneId;
+        }
+        if (!Utils::isUnset($request->userId)) {
+            $body['UserId'] = $request->userId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+            'body'  => OpenApiUtilClient::parseToMap($body),
+        ]);
+        $params = new Params([
+            'action'      => 'LivenessFaceVerify',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return DescribeVerifyResultResponse::fromMap($this->doRequest('DescribeVerifyResult', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return LivenessFaceVerifyResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
-     * @param DescribeVerifyResultRequest $request
+     * @param LivenessFaceVerifyRequest $request
      *
-     * @return DescribeVerifyResultResponse
+     * @return LivenessFaceVerifyResponse
      */
-    public function describeVerifyResultSimply($request)
+    public function livenessFaceVerify($request)
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->describeVerifyResult($request, $runtime);
+        return $this->livenessFaceVerifyWithOptions($request, $runtime);
     }
 
     /**
-     * @param DescribeOssUploadTokenRequest $request
-     * @param RuntimeOptions                $runtime
+     * @param ModifyDeviceInfoRequest $request
+     * @param RuntimeOptions          $runtime
      *
-     * @return DescribeOssUploadTokenResponse
+     * @return ModifyDeviceInfoResponse
      */
-    public function describeOssUploadToken($request, $runtime)
+    public function modifyDeviceInfoWithOptions($request, $runtime)
     {
         Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->deviceId)) {
+            $query['DeviceId'] = $request->deviceId;
+        }
+        if (!Utils::isUnset($request->duration)) {
+            $query['Duration'] = $request->duration;
+        }
+        if (!Utils::isUnset($request->expiredDay)) {
+            $query['ExpiredDay'] = $request->expiredDay;
+        }
+        if (!Utils::isUnset($request->userDeviceId)) {
+            $query['UserDeviceId'] = $request->userDeviceId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'ModifyDeviceInfo',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return DescribeOssUploadTokenResponse::fromMap($this->doRequest('DescribeOssUploadToken', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return ModifyDeviceInfoResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
-     * @param DescribeOssUploadTokenRequest $request
+     * @param ModifyDeviceInfoRequest $request
      *
-     * @return DescribeOssUploadTokenResponse
+     * @return ModifyDeviceInfoResponse
      */
-    public function describeOssUploadTokenSimply($request)
+    public function modifyDeviceInfo($request)
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->describeOssUploadToken($request, $runtime);
+        return $this->modifyDeviceInfoWithOptions($request, $runtime);
     }
 
     /**
-     * @param DescribeVerifyTokenRequest $request
-     * @param RuntimeOptions             $runtime
+     * @param VerifyMaterialRequest $request
+     * @param RuntimeOptions        $runtime
      *
-     * @return DescribeVerifyTokenResponse
+     * @return VerifyMaterialResponse
      */
-    public function describeVerifyToken($request, $runtime)
+    public function verifyMaterialWithOptions($request, $runtime)
     {
         Utils::validateModel($request);
+        $query = [];
+        if (!Utils::isUnset($request->bizId)) {
+            $query['BizId'] = $request->bizId;
+        }
+        if (!Utils::isUnset($request->bizType)) {
+            $query['BizType'] = $request->bizType;
+        }
+        if (!Utils::isUnset($request->faceImageUrl)) {
+            $query['FaceImageUrl'] = $request->faceImageUrl;
+        }
+        if (!Utils::isUnset($request->idCardBackImageUrl)) {
+            $query['IdCardBackImageUrl'] = $request->idCardBackImageUrl;
+        }
+        if (!Utils::isUnset($request->idCardFrontImageUrl)) {
+            $query['IdCardFrontImageUrl'] = $request->idCardFrontImageUrl;
+        }
+        if (!Utils::isUnset($request->idCardNumber)) {
+            $query['IdCardNumber'] = $request->idCardNumber;
+        }
+        if (!Utils::isUnset($request->name)) {
+            $query['Name'] = $request->name;
+        }
+        if (!Utils::isUnset($request->userId)) {
+            $query['UserId'] = $request->userId;
+        }
+        $req = new OpenApiRequest([
+            'query' => OpenApiUtilClient::query($query),
+        ]);
+        $params = new Params([
+            'action'      => 'VerifyMaterial',
+            'version'     => '2019-03-07',
+            'protocol'    => 'HTTPS',
+            'pathname'    => '/',
+            'method'      => 'POST',
+            'authType'    => 'AK',
+            'style'       => 'RPC',
+            'reqBodyType' => 'formData',
+            'bodyType'    => 'json',
+        ]);
 
-        return DescribeVerifyTokenResponse::fromMap($this->doRequest('DescribeVerifyToken', 'HTTPS', 'POST', '2019-03-07', 'AK', null, Tea::merge($request), $runtime));
+        return VerifyMaterialResponse::fromMap($this->callApi($params, $req, $runtime));
     }
 
     /**
-     * @param DescribeVerifyTokenRequest $request
+     * @param VerifyMaterialRequest $request
      *
-     * @return DescribeVerifyTokenResponse
+     * @return VerifyMaterialResponse
      */
-    public function describeVerifyTokenSimply($request)
+    public function verifyMaterial($request)
     {
         $runtime = new RuntimeOptions([]);
 
-        return $this->describeVerifyToken($request, $runtime);
-    }
-
-    /**
-     * @param string   $productId
-     * @param string   $regionId
-     * @param string   $endpointRule
-     * @param string   $network
-     * @param string   $suffix
-     * @param string[] $endpointMap
-     * @param string   $endpoint
-     *
-     * @return string
-     */
-    public function getEndpoint($productId, $regionId, $endpointRule, $network, $suffix, $endpointMap, $endpoint)
-    {
-        if (!Utils::empty_($endpoint)) {
-            return $endpoint;
-        }
-        if (!Utils::isUnset($endpointMap) && !Utils::empty_(@$endpointMap[$regionId])) {
-            return @$endpointMap[$regionId];
-        }
-
-        return Endpoint::getEndpointRules($productId, $regionId, $endpointRule, $network, $suffix);
+        return $this->verifyMaterialWithOptions($request, $runtime);
     }
 }

+ 39 - 27
vendor/cloudauth-20190307-1.0.2/src/Models/CompareFaceVerifyRequest.php

@@ -9,9 +9,9 @@ use AlibabaCloud\Tea\Model;
 class CompareFaceVerifyRequest extends Model
 {
     /**
-     * @var int
+     * @var string
      */
-    public $sceneId;
+    public $crop;
 
     /**
      * @var string
@@ -24,19 +24,24 @@ class CompareFaceVerifyRequest extends Model
     public $productCode;
 
     /**
+     * @var int
+     */
+    public $sceneId;
+
+    /**
      * @var string
      */
-    public $sourceFaceContrastPicture;
+    public $sourceCertifyId;
 
     /**
      * @var string
      */
-    public $sourceFaceContrastPictureUrl;
+    public $sourceFaceContrastPicture;
 
     /**
      * @var string
      */
-    public $sourceCertifyId;
+    public $sourceFaceContrastPictureUrl;
 
     /**
      * @var string
@@ -51,17 +56,17 @@ class CompareFaceVerifyRequest extends Model
     /**
      * @var string
      */
-    public $targetFaceContrastPicture;
+    public $targetCertifyId;
 
     /**
      * @var string
      */
-    public $targetFaceContrastPictureUrl;
+    public $targetFaceContrastPicture;
 
     /**
      * @var string
      */
-    public $targetCertifyId;
+    public $targetFaceContrastPictureUrl;
 
     /**
      * @var string
@@ -73,17 +78,18 @@ class CompareFaceVerifyRequest extends Model
      */
     public $targetOssObjectName;
     protected $_name = [
-        'sceneId'                      => 'SceneId',
+        'crop'                         => 'Crop',
         'outerOrderNo'                 => 'OuterOrderNo',
         'productCode'                  => 'ProductCode',
+        'sceneId'                      => 'SceneId',
+        'sourceCertifyId'              => 'SourceCertifyId',
         'sourceFaceContrastPicture'    => 'SourceFaceContrastPicture',
         'sourceFaceContrastPictureUrl' => 'SourceFaceContrastPictureUrl',
-        'sourceCertifyId'              => 'SourceCertifyId',
         'sourceOssBucketName'          => 'SourceOssBucketName',
         'sourceOssObjectName'          => 'SourceOssObjectName',
+        'targetCertifyId'              => 'TargetCertifyId',
         'targetFaceContrastPicture'    => 'TargetFaceContrastPicture',
         'targetFaceContrastPictureUrl' => 'TargetFaceContrastPictureUrl',
-        'targetCertifyId'              => 'TargetCertifyId',
         'targetOssBucketName'          => 'TargetOssBucketName',
         'targetOssObjectName'          => 'TargetOssObjectName',
     ];
@@ -95,8 +101,8 @@ class CompareFaceVerifyRequest extends Model
     public function toMap()
     {
         $res = [];
-        if (null !== $this->sceneId) {
-            $res['SceneId'] = $this->sceneId;
+        if (null !== $this->crop) {
+            $res['Crop'] = $this->crop;
         }
         if (null !== $this->outerOrderNo) {
             $res['OuterOrderNo'] = $this->outerOrderNo;
@@ -104,30 +110,33 @@ class CompareFaceVerifyRequest extends Model
         if (null !== $this->productCode) {
             $res['ProductCode'] = $this->productCode;
         }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
+        if (null !== $this->sourceCertifyId) {
+            $res['SourceCertifyId'] = $this->sourceCertifyId;
+        }
         if (null !== $this->sourceFaceContrastPicture) {
             $res['SourceFaceContrastPicture'] = $this->sourceFaceContrastPicture;
         }
         if (null !== $this->sourceFaceContrastPictureUrl) {
             $res['SourceFaceContrastPictureUrl'] = $this->sourceFaceContrastPictureUrl;
         }
-        if (null !== $this->sourceCertifyId) {
-            $res['SourceCertifyId'] = $this->sourceCertifyId;
-        }
         if (null !== $this->sourceOssBucketName) {
             $res['SourceOssBucketName'] = $this->sourceOssBucketName;
         }
         if (null !== $this->sourceOssObjectName) {
             $res['SourceOssObjectName'] = $this->sourceOssObjectName;
         }
+        if (null !== $this->targetCertifyId) {
+            $res['TargetCertifyId'] = $this->targetCertifyId;
+        }
         if (null !== $this->targetFaceContrastPicture) {
             $res['TargetFaceContrastPicture'] = $this->targetFaceContrastPicture;
         }
         if (null !== $this->targetFaceContrastPictureUrl) {
             $res['TargetFaceContrastPictureUrl'] = $this->targetFaceContrastPictureUrl;
         }
-        if (null !== $this->targetCertifyId) {
-            $res['TargetCertifyId'] = $this->targetCertifyId;
-        }
         if (null !== $this->targetOssBucketName) {
             $res['TargetOssBucketName'] = $this->targetOssBucketName;
         }
@@ -146,8 +155,8 @@ class CompareFaceVerifyRequest extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['SceneId'])) {
-            $model->sceneId = $map['SceneId'];
+        if (isset($map['Crop'])) {
+            $model->crop = $map['Crop'];
         }
         if (isset($map['OuterOrderNo'])) {
             $model->outerOrderNo = $map['OuterOrderNo'];
@@ -155,30 +164,33 @@ class CompareFaceVerifyRequest extends Model
         if (isset($map['ProductCode'])) {
             $model->productCode = $map['ProductCode'];
         }
+        if (isset($map['SceneId'])) {
+            $model->sceneId = $map['SceneId'];
+        }
+        if (isset($map['SourceCertifyId'])) {
+            $model->sourceCertifyId = $map['SourceCertifyId'];
+        }
         if (isset($map['SourceFaceContrastPicture'])) {
             $model->sourceFaceContrastPicture = $map['SourceFaceContrastPicture'];
         }
         if (isset($map['SourceFaceContrastPictureUrl'])) {
             $model->sourceFaceContrastPictureUrl = $map['SourceFaceContrastPictureUrl'];
         }
-        if (isset($map['SourceCertifyId'])) {
-            $model->sourceCertifyId = $map['SourceCertifyId'];
-        }
         if (isset($map['SourceOssBucketName'])) {
             $model->sourceOssBucketName = $map['SourceOssBucketName'];
         }
         if (isset($map['SourceOssObjectName'])) {
             $model->sourceOssObjectName = $map['SourceOssObjectName'];
         }
+        if (isset($map['TargetCertifyId'])) {
+            $model->targetCertifyId = $map['TargetCertifyId'];
+        }
         if (isset($map['TargetFaceContrastPicture'])) {
             $model->targetFaceContrastPicture = $map['TargetFaceContrastPicture'];
         }
         if (isset($map['TargetFaceContrastPictureUrl'])) {
             $model->targetFaceContrastPictureUrl = $map['TargetFaceContrastPictureUrl'];
         }
-        if (isset($map['TargetCertifyId'])) {
-            $model->targetCertifyId = $map['TargetCertifyId'];
-        }
         if (isset($map['TargetOssBucketName'])) {
             $model->targetOssBucketName = $map['TargetOssBucketName'];
         }

+ 24 - 38
vendor/cloudauth-20190307-1.0.2/src/Models/CompareFaceVerifyResponse.php

@@ -4,59 +4,48 @@
 
 namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
 
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFaceVerifyResponse\resultObject;
 use AlibabaCloud\Tea\Model;
 
 class CompareFaceVerifyResponse extends Model
 {
     /**
-     * @var string
+     * @var string[]
      */
-    public $requestId;
+    public $headers;
 
     /**
-     * @var string
+     * @var int
      */
-    public $message;
+    public $statusCode;
 
     /**
-     * @var string
+     * @var CompareFaceVerifyResponseBody
      */
-    public $code;
-
-    /**
-     * @var resultObject
-     */
-    public $resultObject;
+    public $body;
     protected $_name = [
-        'requestId'    => 'RequestId',
-        'message'      => 'Message',
-        'code'         => 'Code',
-        'resultObject' => 'ResultObject',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('message', $this->message, true);
-        Model::validateRequired('code', $this->code, true);
-        Model::validateRequired('resultObject', $this->resultObject, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->message) {
-            $res['Message'] = $this->message;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
         }
-        if (null !== $this->code) {
-            $res['Code'] = $this->code;
-        }
-        if (null !== $this->resultObject) {
-            $res['ResultObject'] = null !== $this->resultObject ? $this->resultObject->toMap() : null;
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -70,17 +59,14 @@ class CompareFaceVerifyResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
-        }
-        if (isset($map['Message'])) {
-            $model->message = $map['Message'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
         }
-        if (isset($map['Code'])) {
-            $model->code = $map['Code'];
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['ResultObject'])) {
-            $model->resultObject = resultObject::fromMap($map['ResultObject']);
+        if (isset($map['body'])) {
+            $model->body = CompareFaceVerifyResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 84 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/CompareFaceVerifyResponseBody.php

@@ -0,0 +1,84 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFaceVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class CompareFaceVerifyResponseBody extends Model
+{
+    /**
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var resultObject
+     */
+    public $resultObject;
+    protected $_name = [
+        'code'         => 'Code',
+        'message'      => 'Message',
+        'requestId'    => 'RequestId',
+        'resultObject' => 'ResultObject',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->code) {
+            $res['Code'] = $this->code;
+        }
+        if (null !== $this->message) {
+            $res['Message'] = $this->message;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->resultObject) {
+            $res['ResultObject'] = null !== $this->resultObject ? $this->resultObject->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CompareFaceVerifyResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Code'])) {
+            $model->code = $map['Code'];
+        }
+        if (isset($map['Message'])) {
+            $model->message = $map['Message'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['ResultObject'])) {
+            $model->resultObject = resultObject::fromMap($map['ResultObject']);
+        }
+
+        return $model;
+    }
+}

+ 71 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/CompareFaceVerifyResponseBody/resultObject.php

@@ -0,0 +1,71 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFaceVerifyResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class resultObject extends Model
+{
+    /**
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @var string
+     */
+    public $passed;
+
+    /**
+     * @var float
+     */
+    public $verifyScore;
+    protected $_name = [
+        'certifyId'   => 'CertifyId',
+        'passed'      => 'Passed',
+        'verifyScore' => 'VerifyScore',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->passed) {
+            $res['Passed'] = $this->passed;
+        }
+        if (null !== $this->verifyScore) {
+            $res['VerifyScore'] = $this->verifyScore;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return resultObject
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['Passed'])) {
+            $model->passed = $map['Passed'];
+        }
+        if (isset($map['VerifyScore'])) {
+            $model->verifyScore = $map['VerifyScore'];
+        }
+
+        return $model;
+    }
+}

+ 10 - 10
vendor/cloudauth-20190307-1.0.2/src/Models/CompareFacesRequest.php

@@ -11,26 +11,26 @@ class CompareFacesRequest extends Model
     /**
      * @var string
      */
-    public $targetImageType;
+    public $sourceImageType;
 
     /**
      * @var string
      */
-    public $sourceImageType;
+    public $sourceImageValue;
 
     /**
      * @var string
      */
-    public $sourceImageValue;
+    public $targetImageType;
 
     /**
      * @var string
      */
     public $targetImageValue;
     protected $_name = [
-        'targetImageType'  => 'TargetImageType',
         'sourceImageType'  => 'SourceImageType',
         'sourceImageValue' => 'SourceImageValue',
+        'targetImageType'  => 'TargetImageType',
         'targetImageValue' => 'TargetImageValue',
     ];
 
@@ -41,15 +41,15 @@ class CompareFacesRequest extends Model
     public function toMap()
     {
         $res = [];
-        if (null !== $this->targetImageType) {
-            $res['TargetImageType'] = $this->targetImageType;
-        }
         if (null !== $this->sourceImageType) {
             $res['SourceImageType'] = $this->sourceImageType;
         }
         if (null !== $this->sourceImageValue) {
             $res['SourceImageValue'] = $this->sourceImageValue;
         }
+        if (null !== $this->targetImageType) {
+            $res['TargetImageType'] = $this->targetImageType;
+        }
         if (null !== $this->targetImageValue) {
             $res['TargetImageValue'] = $this->targetImageValue;
         }
@@ -65,15 +65,15 @@ class CompareFacesRequest extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['TargetImageType'])) {
-            $model->targetImageType = $map['TargetImageType'];
-        }
         if (isset($map['SourceImageType'])) {
             $model->sourceImageType = $map['SourceImageType'];
         }
         if (isset($map['SourceImageValue'])) {
             $model->sourceImageValue = $map['SourceImageValue'];
         }
+        if (isset($map['TargetImageType'])) {
+            $model->targetImageType = $map['TargetImageType'];
+        }
         if (isset($map['TargetImageValue'])) {
             $model->targetImageValue = $map['TargetImageValue'];
         }

+ 24 - 51
vendor/cloudauth-20190307-1.0.2/src/Models/CompareFacesResponse.php

@@ -4,69 +4,48 @@
 
 namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
 
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFacesResponse\data;
 use AlibabaCloud\Tea\Model;
 
 class CompareFacesResponse extends Model
 {
     /**
-     * @var string
+     * @var string[]
      */
-    public $requestId;
+    public $headers;
 
     /**
-     * @var bool
+     * @var int
      */
-    public $success;
+    public $statusCode;
 
     /**
-     * @var string
+     * @var CompareFacesResponseBody
      */
-    public $code;
-
-    /**
-     * @var string
-     */
-    public $message;
-
-    /**
-     * @var data
-     */
-    public $data;
+    public $body;
     protected $_name = [
-        'requestId' => 'RequestId',
-        'success'   => 'Success',
-        'code'      => 'Code',
-        'message'   => 'Message',
-        'data'      => 'Data',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('success', $this->success, true);
-        Model::validateRequired('code', $this->code, true);
-        Model::validateRequired('message', $this->message, true);
-        Model::validateRequired('data', $this->data, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
-        }
-        if (null !== $this->success) {
-            $res['Success'] = $this->success;
-        }
-        if (null !== $this->code) {
-            $res['Code'] = $this->code;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->message) {
-            $res['Message'] = $this->message;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
         }
-        if (null !== $this->data) {
-            $res['Data'] = null !== $this->data ? $this->data->toMap() : null;
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -80,20 +59,14 @@ class CompareFacesResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
-        }
-        if (isset($map['Success'])) {
-            $model->success = $map['Success'];
-        }
-        if (isset($map['Code'])) {
-            $model->code = $map['Code'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
         }
-        if (isset($map['Message'])) {
-            $model->message = $map['Message'];
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['Data'])) {
-            $model->data = data::fromMap($map['Data']);
+        if (isset($map['body'])) {
+            $model->body = CompareFacesResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 96 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/CompareFacesResponseBody.php

@@ -0,0 +1,96 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFacesResponseBody\data;
+use AlibabaCloud\Tea\Model;
+
+class CompareFacesResponseBody extends Model
+{
+    /**
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @var data
+     */
+    public $data;
+
+    /**
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var bool
+     */
+    public $success;
+    protected $_name = [
+        'code'      => 'Code',
+        'data'      => 'Data',
+        'message'   => 'Message',
+        'requestId' => 'RequestId',
+        'success'   => 'Success',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->code) {
+            $res['Code'] = $this->code;
+        }
+        if (null !== $this->data) {
+            $res['Data'] = null !== $this->data ? $this->data->toMap() : null;
+        }
+        if (null !== $this->message) {
+            $res['Message'] = $this->message;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->success) {
+            $res['Success'] = $this->success;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CompareFacesResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Code'])) {
+            $model->code = $map['Code'];
+        }
+        if (isset($map['Data'])) {
+            $model->data = data::fromMap($map['Data']);
+        }
+        if (isset($map['Message'])) {
+            $model->message = $map['Message'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['Success'])) {
+            $model->success = $map['Success'];
+        }
+
+        return $model;
+    }
+}

+ 59 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/CompareFacesResponseBody/data.php

@@ -0,0 +1,59 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\CompareFacesResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class data extends Model
+{
+    /**
+     * @var string
+     */
+    public $confidenceThresholds;
+
+    /**
+     * @var float
+     */
+    public $similarityScore;
+    protected $_name = [
+        'confidenceThresholds' => 'ConfidenceThresholds',
+        'similarityScore'      => 'SimilarityScore',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->confidenceThresholds) {
+            $res['ConfidenceThresholds'] = $this->confidenceThresholds;
+        }
+        if (null !== $this->similarityScore) {
+            $res['SimilarityScore'] = $this->similarityScore;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return data
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['ConfidenceThresholds'])) {
+            $model->confidenceThresholds = $map['ConfidenceThresholds'];
+        }
+        if (isset($map['SimilarityScore'])) {
+            $model->similarityScore = $map['SimilarityScore'];
+        }
+
+        return $model;
+    }
+}

+ 100 - 76
vendor/cloudauth-20190307-1.0.2/src/Models/ContrastFaceVerifyAdvanceRequest.php

@@ -15,49 +15,49 @@ class ContrastFaceVerifyAdvanceRequest extends Model
     public $faceContrastFileObject;
 
     /**
-     * @var int
+     * @var string
      */
-    public $sceneId;
+    public $certName;
 
     /**
      * @var string
      */
-    public $outerOrderNo;
+    public $certNo;
 
     /**
      * @var string
      */
-    public $productCode;
+    public $certType;
 
     /**
      * @var string
      */
-    public $certType;
+    public $certifyId;
 
     /**
      * @var string
      */
-    public $certName;
+    public $crop;
 
     /**
      * @var string
      */
-    public $certNo;
+    public $deviceToken;
 
     /**
      * @var string
      */
-    public $faceContrastPicture;
+    public $encryptType;
 
     /**
      * @var string
      */
-    public $deviceToken;
+    public $faceContrastPicture;
 
     /**
      * @var string
      */
-    public $mobile;
+    public $faceContrastPictureUrl;
 
     /**
      * @var string
@@ -67,50 +67,62 @@ class ContrastFaceVerifyAdvanceRequest extends Model
     /**
      * @var string
      */
-    public $userId;
+    public $mobile;
 
     /**
      * @var string
      */
-    public $faceContrastPictureUrl;
+    public $model;
 
     /**
      * @var string
      */
-    public $certifyId;
+    public $ossBucketName;
 
     /**
      * @var string
      */
-    public $ossBucketName;
+    public $ossObjectName;
 
     /**
      * @var string
      */
-    public $ossObjectName;
+    public $outerOrderNo;
 
     /**
      * @var string
      */
-    public $model;
+    public $productCode;
+
+    /**
+     * @var int
+     */
+    public $sceneId;
+
+    /**
+     * @var string
+     */
+    public $userId;
     protected $_name = [
         'faceContrastFileObject' => 'FaceContrastFileObject',
-        'sceneId'                => 'SceneId',
-        'outerOrderNo'           => 'OuterOrderNo',
-        'productCode'            => 'ProductCode',
-        'certType'               => 'CertType',
         'certName'               => 'CertName',
         'certNo'                 => 'CertNo',
-        'faceContrastPicture'    => 'FaceContrastPicture',
+        'certType'               => 'CertType',
+        'certifyId'              => 'CertifyId',
+        'crop'                   => 'Crop',
         'deviceToken'            => 'DeviceToken',
-        'mobile'                 => 'Mobile',
-        'ip'                     => 'Ip',
-        'userId'                 => 'UserId',
+        'encryptType'            => 'EncryptType',
+        'faceContrastPicture'    => 'FaceContrastPicture',
         'faceContrastPictureUrl' => 'FaceContrastPictureUrl',
-        'certifyId'              => 'CertifyId',
+        'ip'                     => 'Ip',
+        'mobile'                 => 'Mobile',
+        'model'                  => 'Model',
         'ossBucketName'          => 'OssBucketName',
         'ossObjectName'          => 'OssObjectName',
-        'model'                  => 'Model',
+        'outerOrderNo'           => 'OuterOrderNo',
+        'productCode'            => 'ProductCode',
+        'sceneId'                => 'SceneId',
+        'userId'                 => 'UserId',
     ];
 
     public function validate()
@@ -124,44 +136,41 @@ class ContrastFaceVerifyAdvanceRequest extends Model
         if (null !== $this->faceContrastFileObject) {
             $res['FaceContrastFileObject'] = $this->faceContrastFileObject;
         }
-        if (null !== $this->sceneId) {
-            $res['SceneId'] = $this->sceneId;
-        }
-        if (null !== $this->outerOrderNo) {
-            $res['OuterOrderNo'] = $this->outerOrderNo;
-        }
-        if (null !== $this->productCode) {
-            $res['ProductCode'] = $this->productCode;
-        }
-        if (null !== $this->certType) {
-            $res['CertType'] = $this->certType;
-        }
         if (null !== $this->certName) {
             $res['CertName'] = $this->certName;
         }
         if (null !== $this->certNo) {
             $res['CertNo'] = $this->certNo;
         }
-        if (null !== $this->faceContrastPicture) {
-            $res['FaceContrastPicture'] = $this->faceContrastPicture;
+        if (null !== $this->certType) {
+            $res['CertType'] = $this->certType;
+        }
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->crop) {
+            $res['Crop'] = $this->crop;
         }
         if (null !== $this->deviceToken) {
             $res['DeviceToken'] = $this->deviceToken;
         }
-        if (null !== $this->mobile) {
-            $res['Mobile'] = $this->mobile;
-        }
-        if (null !== $this->ip) {
-            $res['Ip'] = $this->ip;
+        if (null !== $this->encryptType) {
+            $res['EncryptType'] = $this->encryptType;
         }
-        if (null !== $this->userId) {
-            $res['UserId'] = $this->userId;
+        if (null !== $this->faceContrastPicture) {
+            $res['FaceContrastPicture'] = $this->faceContrastPicture;
         }
         if (null !== $this->faceContrastPictureUrl) {
             $res['FaceContrastPictureUrl'] = $this->faceContrastPictureUrl;
         }
-        if (null !== $this->certifyId) {
-            $res['CertifyId'] = $this->certifyId;
+        if (null !== $this->ip) {
+            $res['Ip'] = $this->ip;
+        }
+        if (null !== $this->mobile) {
+            $res['Mobile'] = $this->mobile;
+        }
+        if (null !== $this->model) {
+            $res['Model'] = $this->model;
         }
         if (null !== $this->ossBucketName) {
             $res['OssBucketName'] = $this->ossBucketName;
@@ -169,8 +178,17 @@ class ContrastFaceVerifyAdvanceRequest extends Model
         if (null !== $this->ossObjectName) {
             $res['OssObjectName'] = $this->ossObjectName;
         }
-        if (null !== $this->model) {
-            $res['Model'] = $this->model;
+        if (null !== $this->outerOrderNo) {
+            $res['OuterOrderNo'] = $this->outerOrderNo;
+        }
+        if (null !== $this->productCode) {
+            $res['ProductCode'] = $this->productCode;
+        }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
+        if (null !== $this->userId) {
+            $res['UserId'] = $this->userId;
         }
 
         return $res;
@@ -187,44 +205,41 @@ class ContrastFaceVerifyAdvanceRequest extends Model
         if (isset($map['FaceContrastFileObject'])) {
             $model->faceContrastFileObject = $map['FaceContrastFileObject'];
         }
-        if (isset($map['SceneId'])) {
-            $model->sceneId = $map['SceneId'];
-        }
-        if (isset($map['OuterOrderNo'])) {
-            $model->outerOrderNo = $map['OuterOrderNo'];
-        }
-        if (isset($map['ProductCode'])) {
-            $model->productCode = $map['ProductCode'];
-        }
-        if (isset($map['CertType'])) {
-            $model->certType = $map['CertType'];
-        }
         if (isset($map['CertName'])) {
             $model->certName = $map['CertName'];
         }
         if (isset($map['CertNo'])) {
             $model->certNo = $map['CertNo'];
         }
-        if (isset($map['FaceContrastPicture'])) {
-            $model->faceContrastPicture = $map['FaceContrastPicture'];
+        if (isset($map['CertType'])) {
+            $model->certType = $map['CertType'];
+        }
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['Crop'])) {
+            $model->crop = $map['Crop'];
         }
         if (isset($map['DeviceToken'])) {
             $model->deviceToken = $map['DeviceToken'];
         }
-        if (isset($map['Mobile'])) {
-            $model->mobile = $map['Mobile'];
+        if (isset($map['EncryptType'])) {
+            $model->encryptType = $map['EncryptType'];
         }
-        if (isset($map['Ip'])) {
-            $model->ip = $map['Ip'];
-        }
-        if (isset($map['UserId'])) {
-            $model->userId = $map['UserId'];
+        if (isset($map['FaceContrastPicture'])) {
+            $model->faceContrastPicture = $map['FaceContrastPicture'];
         }
         if (isset($map['FaceContrastPictureUrl'])) {
             $model->faceContrastPictureUrl = $map['FaceContrastPictureUrl'];
         }
-        if (isset($map['CertifyId'])) {
-            $model->certifyId = $map['CertifyId'];
+        if (isset($map['Ip'])) {
+            $model->ip = $map['Ip'];
+        }
+        if (isset($map['Mobile'])) {
+            $model->mobile = $map['Mobile'];
+        }
+        if (isset($map['Model'])) {
+            $model->model = $map['Model'];
         }
         if (isset($map['OssBucketName'])) {
             $model->ossBucketName = $map['OssBucketName'];
@@ -232,8 +247,17 @@ class ContrastFaceVerifyAdvanceRequest extends Model
         if (isset($map['OssObjectName'])) {
             $model->ossObjectName = $map['OssObjectName'];
         }
-        if (isset($map['Model'])) {
-            $model->model = $map['Model'];
+        if (isset($map['OuterOrderNo'])) {
+            $model->outerOrderNo = $map['OuterOrderNo'];
+        }
+        if (isset($map['ProductCode'])) {
+            $model->productCode = $map['ProductCode'];
+        }
+        if (isset($map['SceneId'])) {
+            $model->sceneId = $map['SceneId'];
+        }
+        if (isset($map['UserId'])) {
+            $model->userId = $map['UserId'];
         }
 
         return $model;

+ 103 - 79
vendor/cloudauth-20190307-1.0.2/src/Models/ContrastFaceVerifyRequest.php

@@ -9,69 +9,69 @@ use AlibabaCloud\Tea\Model;
 class ContrastFaceVerifyRequest extends Model
 {
     /**
-     * @var int
+     * @var string
      */
-    public $sceneId;
+    public $certName;
 
     /**
      * @var string
      */
-    public $outerOrderNo;
+    public $certNo;
 
     /**
      * @var string
      */
-    public $productCode;
+    public $certType;
 
     /**
      * @var string
      */
-    public $certType;
+    public $certifyId;
 
     /**
      * @var string
      */
-    public $certName;
+    public $crop;
 
     /**
      * @var string
      */
-    public $certNo;
+    public $deviceToken;
 
     /**
      * @var string
      */
-    public $faceContrastPicture;
+    public $encryptType;
 
     /**
      * @var string
      */
-    public $deviceToken;
+    public $faceContrastFile;
 
     /**
      * @var string
      */
-    public $mobile;
+    public $faceContrastPicture;
 
     /**
      * @var string
      */
-    public $ip;
+    public $faceContrastPictureUrl;
 
     /**
      * @var string
      */
-    public $userId;
+    public $ip;
 
     /**
      * @var string
      */
-    public $faceContrastPictureUrl;
+    public $mobile;
 
     /**
      * @var string
      */
-    public $certifyId;
+    public $model;
 
     /**
      * @var string
@@ -86,30 +86,42 @@ class ContrastFaceVerifyRequest extends Model
     /**
      * @var string
      */
-    public $model;
+    public $outerOrderNo;
 
     /**
      * @var string
      */
-    public $faceContrastFile;
+    public $productCode;
+
+    /**
+     * @var int
+     */
+    public $sceneId;
+
+    /**
+     * @var string
+     */
+    public $userId;
     protected $_name = [
-        'sceneId'                => 'SceneId',
-        'outerOrderNo'           => 'OuterOrderNo',
-        'productCode'            => 'ProductCode',
-        'certType'               => 'CertType',
         'certName'               => 'CertName',
         'certNo'                 => 'CertNo',
-        'faceContrastPicture'    => 'FaceContrastPicture',
+        'certType'               => 'CertType',
+        'certifyId'              => 'CertifyId',
+        'crop'                   => 'Crop',
         'deviceToken'            => 'DeviceToken',
-        'mobile'                 => 'Mobile',
-        'ip'                     => 'Ip',
-        'userId'                 => 'UserId',
+        'encryptType'            => 'EncryptType',
+        'faceContrastFile'       => 'FaceContrastFile',
+        'faceContrastPicture'    => 'FaceContrastPicture',
         'faceContrastPictureUrl' => 'FaceContrastPictureUrl',
-        'certifyId'              => 'CertifyId',
+        'ip'                     => 'Ip',
+        'mobile'                 => 'Mobile',
+        'model'                  => 'Model',
         'ossBucketName'          => 'OssBucketName',
         'ossObjectName'          => 'OssObjectName',
-        'model'                  => 'Model',
-        'faceContrastFile'       => 'FaceContrastFile',
+        'outerOrderNo'           => 'OuterOrderNo',
+        'productCode'            => 'ProductCode',
+        'sceneId'                => 'SceneId',
+        'userId'                 => 'UserId',
     ];
 
     public function validate()
@@ -119,44 +131,44 @@ class ContrastFaceVerifyRequest extends Model
     public function toMap()
     {
         $res = [];
-        if (null !== $this->sceneId) {
-            $res['SceneId'] = $this->sceneId;
-        }
-        if (null !== $this->outerOrderNo) {
-            $res['OuterOrderNo'] = $this->outerOrderNo;
-        }
-        if (null !== $this->productCode) {
-            $res['ProductCode'] = $this->productCode;
-        }
-        if (null !== $this->certType) {
-            $res['CertType'] = $this->certType;
-        }
         if (null !== $this->certName) {
             $res['CertName'] = $this->certName;
         }
         if (null !== $this->certNo) {
             $res['CertNo'] = $this->certNo;
         }
-        if (null !== $this->faceContrastPicture) {
-            $res['FaceContrastPicture'] = $this->faceContrastPicture;
+        if (null !== $this->certType) {
+            $res['CertType'] = $this->certType;
+        }
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->crop) {
+            $res['Crop'] = $this->crop;
         }
         if (null !== $this->deviceToken) {
             $res['DeviceToken'] = $this->deviceToken;
         }
-        if (null !== $this->mobile) {
-            $res['Mobile'] = $this->mobile;
+        if (null !== $this->encryptType) {
+            $res['EncryptType'] = $this->encryptType;
         }
-        if (null !== $this->ip) {
-            $res['Ip'] = $this->ip;
+        if (null !== $this->faceContrastFile) {
+            $res['FaceContrastFile'] = $this->faceContrastFile;
         }
-        if (null !== $this->userId) {
-            $res['UserId'] = $this->userId;
+        if (null !== $this->faceContrastPicture) {
+            $res['FaceContrastPicture'] = $this->faceContrastPicture;
         }
         if (null !== $this->faceContrastPictureUrl) {
             $res['FaceContrastPictureUrl'] = $this->faceContrastPictureUrl;
         }
-        if (null !== $this->certifyId) {
-            $res['CertifyId'] = $this->certifyId;
+        if (null !== $this->ip) {
+            $res['Ip'] = $this->ip;
+        }
+        if (null !== $this->mobile) {
+            $res['Mobile'] = $this->mobile;
+        }
+        if (null !== $this->model) {
+            $res['Model'] = $this->model;
         }
         if (null !== $this->ossBucketName) {
             $res['OssBucketName'] = $this->ossBucketName;
@@ -164,11 +176,17 @@ class ContrastFaceVerifyRequest extends Model
         if (null !== $this->ossObjectName) {
             $res['OssObjectName'] = $this->ossObjectName;
         }
-        if (null !== $this->model) {
-            $res['Model'] = $this->model;
+        if (null !== $this->outerOrderNo) {
+            $res['OuterOrderNo'] = $this->outerOrderNo;
         }
-        if (null !== $this->faceContrastFile) {
-            $res['FaceContrastFile'] = $this->faceContrastFile;
+        if (null !== $this->productCode) {
+            $res['ProductCode'] = $this->productCode;
+        }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
+        if (null !== $this->userId) {
+            $res['UserId'] = $this->userId;
         }
 
         return $res;
@@ -182,44 +200,44 @@ class ContrastFaceVerifyRequest extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['SceneId'])) {
-            $model->sceneId = $map['SceneId'];
-        }
-        if (isset($map['OuterOrderNo'])) {
-            $model->outerOrderNo = $map['OuterOrderNo'];
-        }
-        if (isset($map['ProductCode'])) {
-            $model->productCode = $map['ProductCode'];
-        }
-        if (isset($map['CertType'])) {
-            $model->certType = $map['CertType'];
-        }
         if (isset($map['CertName'])) {
             $model->certName = $map['CertName'];
         }
         if (isset($map['CertNo'])) {
             $model->certNo = $map['CertNo'];
         }
-        if (isset($map['FaceContrastPicture'])) {
-            $model->faceContrastPicture = $map['FaceContrastPicture'];
+        if (isset($map['CertType'])) {
+            $model->certType = $map['CertType'];
+        }
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['Crop'])) {
+            $model->crop = $map['Crop'];
         }
         if (isset($map['DeviceToken'])) {
             $model->deviceToken = $map['DeviceToken'];
         }
-        if (isset($map['Mobile'])) {
-            $model->mobile = $map['Mobile'];
+        if (isset($map['EncryptType'])) {
+            $model->encryptType = $map['EncryptType'];
         }
-        if (isset($map['Ip'])) {
-            $model->ip = $map['Ip'];
+        if (isset($map['FaceContrastFile'])) {
+            $model->faceContrastFile = $map['FaceContrastFile'];
         }
-        if (isset($map['UserId'])) {
-            $model->userId = $map['UserId'];
+        if (isset($map['FaceContrastPicture'])) {
+            $model->faceContrastPicture = $map['FaceContrastPicture'];
         }
         if (isset($map['FaceContrastPictureUrl'])) {
             $model->faceContrastPictureUrl = $map['FaceContrastPictureUrl'];
         }
-        if (isset($map['CertifyId'])) {
-            $model->certifyId = $map['CertifyId'];
+        if (isset($map['Ip'])) {
+            $model->ip = $map['Ip'];
+        }
+        if (isset($map['Mobile'])) {
+            $model->mobile = $map['Mobile'];
+        }
+        if (isset($map['Model'])) {
+            $model->model = $map['Model'];
         }
         if (isset($map['OssBucketName'])) {
             $model->ossBucketName = $map['OssBucketName'];
@@ -227,11 +245,17 @@ class ContrastFaceVerifyRequest extends Model
         if (isset($map['OssObjectName'])) {
             $model->ossObjectName = $map['OssObjectName'];
         }
-        if (isset($map['Model'])) {
-            $model->model = $map['Model'];
+        if (isset($map['OuterOrderNo'])) {
+            $model->outerOrderNo = $map['OuterOrderNo'];
         }
-        if (isset($map['FaceContrastFile'])) {
-            $model->faceContrastFile = $map['FaceContrastFile'];
+        if (isset($map['ProductCode'])) {
+            $model->productCode = $map['ProductCode'];
+        }
+        if (isset($map['SceneId'])) {
+            $model->sceneId = $map['SceneId'];
+        }
+        if (isset($map['UserId'])) {
+            $model->userId = $map['UserId'];
         }
 
         return $model;

+ 24 - 38
vendor/cloudauth-20190307-1.0.2/src/Models/ContrastFaceVerifyResponse.php

@@ -4,59 +4,48 @@
 
 namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
 
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\ContrastFaceVerifyResponse\resultObject;
 use AlibabaCloud\Tea\Model;
 
 class ContrastFaceVerifyResponse extends Model
 {
     /**
-     * @var string
+     * @var string[]
      */
-    public $requestId;
+    public $headers;
 
     /**
-     * @var string
+     * @var int
      */
-    public $message;
+    public $statusCode;
 
     /**
-     * @var string
+     * @var ContrastFaceVerifyResponseBody
      */
-    public $code;
-
-    /**
-     * @var resultObject
-     */
-    public $resultObject;
+    public $body;
     protected $_name = [
-        'requestId'    => 'RequestId',
-        'message'      => 'Message',
-        'code'         => 'Code',
-        'resultObject' => 'ResultObject',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('message', $this->message, true);
-        Model::validateRequired('code', $this->code, true);
-        Model::validateRequired('resultObject', $this->resultObject, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->message) {
-            $res['Message'] = $this->message;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
         }
-        if (null !== $this->code) {
-            $res['Code'] = $this->code;
-        }
-        if (null !== $this->resultObject) {
-            $res['ResultObject'] = null !== $this->resultObject ? $this->resultObject->toMap() : null;
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -70,17 +59,14 @@ class ContrastFaceVerifyResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
-        }
-        if (isset($map['Message'])) {
-            $model->message = $map['Message'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
         }
-        if (isset($map['Code'])) {
-            $model->code = $map['Code'];
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['ResultObject'])) {
-            $model->resultObject = resultObject::fromMap($map['ResultObject']);
+        if (isset($map['body'])) {
+            $model->body = ContrastFaceVerifyResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 84 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/ContrastFaceVerifyResponseBody.php

@@ -0,0 +1,84 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\ContrastFaceVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class ContrastFaceVerifyResponseBody extends Model
+{
+    /**
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var resultObject
+     */
+    public $resultObject;
+    protected $_name = [
+        'code'         => 'Code',
+        'message'      => 'Message',
+        'requestId'    => 'RequestId',
+        'resultObject' => 'ResultObject',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->code) {
+            $res['Code'] = $this->code;
+        }
+        if (null !== $this->message) {
+            $res['Message'] = $this->message;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->resultObject) {
+            $res['ResultObject'] = null !== $this->resultObject ? $this->resultObject->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return ContrastFaceVerifyResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Code'])) {
+            $model->code = $map['Code'];
+        }
+        if (isset($map['Message'])) {
+            $model->message = $map['Message'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['ResultObject'])) {
+            $model->resultObject = resultObject::fromMap($map['ResultObject']);
+        }
+
+        return $model;
+    }
+}

+ 95 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/ContrastFaceVerifyResponseBody/resultObject.php

@@ -0,0 +1,95 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\ContrastFaceVerifyResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class resultObject extends Model
+{
+    /**
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @var string
+     */
+    public $identityInfo;
+
+    /**
+     * @var string
+     */
+    public $materialInfo;
+
+    /**
+     * @var string
+     */
+    public $passed;
+
+    /**
+     * @var string
+     */
+    public $subCode;
+    protected $_name = [
+        'certifyId'    => 'CertifyId',
+        'identityInfo' => 'IdentityInfo',
+        'materialInfo' => 'MaterialInfo',
+        'passed'       => 'Passed',
+        'subCode'      => 'SubCode',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->identityInfo) {
+            $res['IdentityInfo'] = $this->identityInfo;
+        }
+        if (null !== $this->materialInfo) {
+            $res['MaterialInfo'] = $this->materialInfo;
+        }
+        if (null !== $this->passed) {
+            $res['Passed'] = $this->passed;
+        }
+        if (null !== $this->subCode) {
+            $res['SubCode'] = $this->subCode;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return resultObject
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['IdentityInfo'])) {
+            $model->identityInfo = $map['IdentityInfo'];
+        }
+        if (isset($map['MaterialInfo'])) {
+            $model->materialInfo = $map['MaterialInfo'];
+        }
+        if (isset($map['Passed'])) {
+            $model->passed = $map['Passed'];
+        }
+        if (isset($map['SubCode'])) {
+            $model->subCode = $map['SubCode'];
+        }
+
+        return $model;
+    }
+}

+ 17 - 17
vendor/cloudauth-20190307-1.0.2/src/Models/CreateAuthKeyRequest.php

@@ -9,14 +9,14 @@ use AlibabaCloud\Tea\Model;
 class CreateAuthKeyRequest extends Model
 {
     /**
-     * @var string
+     * @var int
      */
-    public $bizType;
+    public $authYears;
 
     /**
      * @var string
      */
-    public $userDeviceId;
+    public $bizType;
 
     /**
      * @var bool
@@ -24,14 +24,14 @@ class CreateAuthKeyRequest extends Model
     public $test;
 
     /**
-     * @var int
+     * @var string
      */
-    public $authYears;
+    public $userDeviceId;
     protected $_name = [
+        'authYears'    => 'AuthYears',
         'bizType'      => 'BizType',
-        'userDeviceId' => 'UserDeviceId',
         'test'         => 'Test',
-        'authYears'    => 'AuthYears',
+        'userDeviceId' => 'UserDeviceId',
     ];
 
     public function validate()
@@ -41,17 +41,17 @@ class CreateAuthKeyRequest extends Model
     public function toMap()
     {
         $res = [];
+        if (null !== $this->authYears) {
+            $res['AuthYears'] = $this->authYears;
+        }
         if (null !== $this->bizType) {
             $res['BizType'] = $this->bizType;
         }
-        if (null !== $this->userDeviceId) {
-            $res['UserDeviceId'] = $this->userDeviceId;
-        }
         if (null !== $this->test) {
             $res['Test'] = $this->test;
         }
-        if (null !== $this->authYears) {
-            $res['AuthYears'] = $this->authYears;
+        if (null !== $this->userDeviceId) {
+            $res['UserDeviceId'] = $this->userDeviceId;
         }
 
         return $res;
@@ -65,17 +65,17 @@ class CreateAuthKeyRequest extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
+        if (isset($map['AuthYears'])) {
+            $model->authYears = $map['AuthYears'];
+        }
         if (isset($map['BizType'])) {
             $model->bizType = $map['BizType'];
         }
-        if (isset($map['UserDeviceId'])) {
-            $model->userDeviceId = $map['UserDeviceId'];
-        }
         if (isset($map['Test'])) {
             $model->test = $map['Test'];
         }
-        if (isset($map['AuthYears'])) {
-            $model->authYears = $map['AuthYears'];
+        if (isset($map['UserDeviceId'])) {
+            $model->userDeviceId = $map['UserDeviceId'];
         }
 
         return $model;

+ 29 - 16
vendor/cloudauth-20190307-1.0.2/src/Models/CreateAuthKeyResponse.php

@@ -9,33 +9,43 @@ use AlibabaCloud\Tea\Model;
 class CreateAuthKeyResponse extends Model
 {
     /**
-     * @var string
+     * @var string[]
      */
-    public $requestId;
+    public $headers;
 
     /**
-     * @var string
+     * @var int
      */
-    public $authKey;
+    public $statusCode;
+
+    /**
+     * @var CreateAuthKeyResponseBody
+     */
+    public $body;
     protected $_name = [
-        'requestId' => 'RequestId',
-        'authKey'   => 'AuthKey',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('authKey', $this->authKey, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->authKey) {
-            $res['AuthKey'] = $this->authKey;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -49,11 +59,14 @@ class CreateAuthKeyResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['AuthKey'])) {
-            $model->authKey = $map['AuthKey'];
+        if (isset($map['body'])) {
+            $model->body = CreateAuthKeyResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 59 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/CreateAuthKeyResponseBody.php

@@ -0,0 +1,59 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class CreateAuthKeyResponseBody extends Model
+{
+    /**
+     * @var string
+     */
+    public $authKey;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+    protected $_name = [
+        'authKey'   => 'AuthKey',
+        'requestId' => 'RequestId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->authKey) {
+            $res['AuthKey'] = $this->authKey;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CreateAuthKeyResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['AuthKey'])) {
+            $model->authKey = $map['AuthKey'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+
+        return $model;
+    }
+}

+ 18 - 21
vendor/cloudauth-20190307-1.0.2/src/Models/CreateVerifySettingRequest.php

@@ -11,17 +11,12 @@ class CreateVerifySettingRequest extends Model
     /**
      * @var string
      */
-    public $bizType;
-
-    /**
-     * @var string
-     */
     public $bizName;
 
     /**
      * @var string
      */
-    public $solution;
+    public $bizType;
 
     /**
      * @var bool
@@ -37,33 +32,32 @@ class CreateVerifySettingRequest extends Model
      * @var bool
      */
     public $resultStep;
+
+    /**
+     * @var string
+     */
+    public $solution;
     protected $_name = [
-        'bizType'     => 'BizType',
         'bizName'     => 'BizName',
-        'solution'    => 'Solution',
+        'bizType'     => 'BizType',
         'guideStep'   => 'GuideStep',
         'privacyStep' => 'PrivacyStep',
         'resultStep'  => 'ResultStep',
+        'solution'    => 'Solution',
     ];
 
     public function validate()
     {
-        Model::validateRequired('bizType', $this->bizType, true);
-        Model::validateRequired('bizName', $this->bizName, true);
-        Model::validateRequired('solution', $this->solution, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->bizType) {
-            $res['BizType'] = $this->bizType;
-        }
         if (null !== $this->bizName) {
             $res['BizName'] = $this->bizName;
         }
-        if (null !== $this->solution) {
-            $res['Solution'] = $this->solution;
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
         }
         if (null !== $this->guideStep) {
             $res['GuideStep'] = $this->guideStep;
@@ -74,6 +68,9 @@ class CreateVerifySettingRequest extends Model
         if (null !== $this->resultStep) {
             $res['ResultStep'] = $this->resultStep;
         }
+        if (null !== $this->solution) {
+            $res['Solution'] = $this->solution;
+        }
 
         return $res;
     }
@@ -86,14 +83,11 @@ class CreateVerifySettingRequest extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['BizType'])) {
-            $model->bizType = $map['BizType'];
-        }
         if (isset($map['BizName'])) {
             $model->bizName = $map['BizName'];
         }
-        if (isset($map['Solution'])) {
-            $model->solution = $map['Solution'];
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
         }
         if (isset($map['GuideStep'])) {
             $model->guideStep = $map['GuideStep'];
@@ -104,6 +98,9 @@ class CreateVerifySettingRequest extends Model
         if (isset($map['ResultStep'])) {
             $model->resultStep = $map['ResultStep'];
         }
+        if (isset($map['Solution'])) {
+            $model->solution = $map['Solution'];
+        }
 
         return $model;
     }

+ 24 - 52
vendor/cloudauth-20190307-1.0.2/src/Models/CreateVerifySettingResponse.php

@@ -9,63 +9,43 @@ use AlibabaCloud\Tea\Model;
 class CreateVerifySettingResponse extends Model
 {
     /**
-     * @var string
-     */
-    public $requestId;
-
-    /**
-     * @var string
-     */
-    public $bizType;
-
-    /**
-     * @var string
+     * @var string[]
      */
-    public $bizName;
+    public $headers;
 
     /**
-     * @var string
+     * @var int
      */
-    public $solution;
+    public $statusCode;
 
     /**
-     * @var string[]
+     * @var CreateVerifySettingResponseBody
      */
-    public $stepList;
+    public $body;
     protected $_name = [
-        'requestId' => 'RequestId',
-        'bizType'   => 'BizType',
-        'bizName'   => 'BizName',
-        'solution'  => 'Solution',
-        'stepList'  => 'StepList',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('bizType', $this->bizType, true);
-        Model::validateRequired('bizName', $this->bizName, true);
-        Model::validateRequired('solution', $this->solution, true);
-        Model::validateRequired('stepList', $this->stepList, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
-        }
-        if (null !== $this->bizType) {
-            $res['BizType'] = $this->bizType;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->bizName) {
-            $res['BizName'] = $this->bizName;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
         }
-        if (null !== $this->solution) {
-            $res['Solution'] = $this->solution;
-        }
-        if (null !== $this->stepList) {
-            $res['StepList'] = $this->stepList;
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -79,22 +59,14 @@ class CreateVerifySettingResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
-        }
-        if (isset($map['BizType'])) {
-            $model->bizType = $map['BizType'];
-        }
-        if (isset($map['BizName'])) {
-            $model->bizName = $map['BizName'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
         }
-        if (isset($map['Solution'])) {
-            $model->solution = $map['Solution'];
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['StepList'])) {
-            if (!empty($map['StepList'])) {
-                $model->stepList = $map['StepList'];
-            }
+        if (isset($map['body'])) {
+            $model->body = CreateVerifySettingResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 97 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/CreateVerifySettingResponseBody.php

@@ -0,0 +1,97 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class CreateVerifySettingResponseBody extends Model
+{
+    /**
+     * @var string
+     */
+    public $bizName;
+
+    /**
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var string
+     */
+    public $solution;
+
+    /**
+     * @var string[]
+     */
+    public $stepList;
+    protected $_name = [
+        'bizName'   => 'BizName',
+        'bizType'   => 'BizType',
+        'requestId' => 'RequestId',
+        'solution'  => 'Solution',
+        'stepList'  => 'StepList',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->bizName) {
+            $res['BizName'] = $this->bizName;
+        }
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->solution) {
+            $res['Solution'] = $this->solution;
+        }
+        if (null !== $this->stepList) {
+            $res['StepList'] = $this->stepList;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return CreateVerifySettingResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['BizName'])) {
+            $model->bizName = $map['BizName'];
+        }
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['Solution'])) {
+            $model->solution = $map['Solution'];
+        }
+        if (isset($map['StepList'])) {
+            if (!empty($map['StepList'])) {
+                $model->stepList = $map['StepList'];
+            }
+        }
+
+        return $model;
+    }
+}

+ 29 - 29
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeDeviceInfoRequest.php

@@ -9,9 +9,9 @@ use AlibabaCloud\Tea\Model;
 class DescribeDeviceInfoRequest extends Model
 {
     /**
-     * @var int
+     * @var string
      */
-    public $pageSize;
+    public $bizType;
 
     /**
      * @var int
@@ -26,30 +26,30 @@ class DescribeDeviceInfoRequest extends Model
     /**
      * @var string
      */
-    public $bizType;
+    public $expiredEndDay;
 
     /**
      * @var string
      */
-    public $userDeviceId;
+    public $expiredStartDay;
 
     /**
-     * @var string
+     * @var int
      */
-    public $expiredStartDay;
+    public $pageSize;
 
     /**
      * @var string
      */
-    public $expiredEndDay;
+    public $userDeviceId;
     protected $_name = [
-        'pageSize'        => 'PageSize',
+        'bizType'         => 'BizType',
         'currentPage'     => 'CurrentPage',
         'deviceId'        => 'DeviceId',
-        'bizType'         => 'BizType',
-        'userDeviceId'    => 'UserDeviceId',
-        'expiredStartDay' => 'ExpiredStartDay',
         'expiredEndDay'   => 'ExpiredEndDay',
+        'expiredStartDay' => 'ExpiredStartDay',
+        'pageSize'        => 'PageSize',
+        'userDeviceId'    => 'UserDeviceId',
     ];
 
     public function validate()
@@ -59,8 +59,8 @@ class DescribeDeviceInfoRequest extends Model
     public function toMap()
     {
         $res = [];
-        if (null !== $this->pageSize) {
-            $res['PageSize'] = $this->pageSize;
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
         }
         if (null !== $this->currentPage) {
             $res['CurrentPage'] = $this->currentPage;
@@ -68,17 +68,17 @@ class DescribeDeviceInfoRequest extends Model
         if (null !== $this->deviceId) {
             $res['DeviceId'] = $this->deviceId;
         }
-        if (null !== $this->bizType) {
-            $res['BizType'] = $this->bizType;
-        }
-        if (null !== $this->userDeviceId) {
-            $res['UserDeviceId'] = $this->userDeviceId;
+        if (null !== $this->expiredEndDay) {
+            $res['ExpiredEndDay'] = $this->expiredEndDay;
         }
         if (null !== $this->expiredStartDay) {
             $res['ExpiredStartDay'] = $this->expiredStartDay;
         }
-        if (null !== $this->expiredEndDay) {
-            $res['ExpiredEndDay'] = $this->expiredEndDay;
+        if (null !== $this->pageSize) {
+            $res['PageSize'] = $this->pageSize;
+        }
+        if (null !== $this->userDeviceId) {
+            $res['UserDeviceId'] = $this->userDeviceId;
         }
 
         return $res;
@@ -92,8 +92,8 @@ class DescribeDeviceInfoRequest extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['PageSize'])) {
-            $model->pageSize = $map['PageSize'];
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
         }
         if (isset($map['CurrentPage'])) {
             $model->currentPage = $map['CurrentPage'];
@@ -101,17 +101,17 @@ class DescribeDeviceInfoRequest extends Model
         if (isset($map['DeviceId'])) {
             $model->deviceId = $map['DeviceId'];
         }
-        if (isset($map['BizType'])) {
-            $model->bizType = $map['BizType'];
-        }
-        if (isset($map['UserDeviceId'])) {
-            $model->userDeviceId = $map['UserDeviceId'];
+        if (isset($map['ExpiredEndDay'])) {
+            $model->expiredEndDay = $map['ExpiredEndDay'];
         }
         if (isset($map['ExpiredStartDay'])) {
             $model->expiredStartDay = $map['ExpiredStartDay'];
         }
-        if (isset($map['ExpiredEndDay'])) {
-            $model->expiredEndDay = $map['ExpiredEndDay'];
+        if (isset($map['PageSize'])) {
+            $model->pageSize = $map['PageSize'];
+        }
+        if (isset($map['UserDeviceId'])) {
+            $model->userDeviceId = $map['UserDeviceId'];
         }
 
         return $model;

+ 23 - 50
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeDeviceInfoResponse.php

@@ -4,69 +4,48 @@
 
 namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
 
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeDeviceInfoResponse\deviceInfoList;
 use AlibabaCloud\Tea\Model;
 
 class DescribeDeviceInfoResponse extends Model
 {
     /**
-     * @var string
+     * @var string[]
      */
-    public $requestId;
+    public $headers;
 
     /**
      * @var int
      */
-    public $pageSize;
+    public $statusCode;
 
     /**
-     * @var int
-     */
-    public $currentPage;
-
-    /**
-     * @var int
-     */
-    public $totalCount;
-
-    /**
-     * @var deviceInfoList
+     * @var DescribeDeviceInfoResponseBody
      */
-    public $deviceInfoList;
+    public $body;
     protected $_name = [
-        'requestId'      => 'RequestId',
-        'pageSize'       => 'PageSize',
-        'currentPage'    => 'CurrentPage',
-        'totalCount'     => 'TotalCount',
-        'deviceInfoList' => 'DeviceInfoList',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('pageSize', $this->pageSize, true);
-        Model::validateRequired('currentPage', $this->currentPage, true);
-        Model::validateRequired('totalCount', $this->totalCount, true);
-        Model::validateRequired('deviceInfoList', $this->deviceInfoList, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
-        }
-        if (null !== $this->pageSize) {
-            $res['PageSize'] = $this->pageSize;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->currentPage) {
-            $res['CurrentPage'] = $this->currentPage;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
         }
-        if (null !== $this->totalCount) {
-            $res['TotalCount'] = $this->totalCount;
-        }
-        if (null !== $this->deviceInfoList) {
-            $res['DeviceInfoList'] = null !== $this->deviceInfoList ? $this->deviceInfoList->toMap() : null;
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -80,20 +59,14 @@ class DescribeDeviceInfoResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
-        }
-        if (isset($map['PageSize'])) {
-            $model->pageSize = $map['PageSize'];
-        }
-        if (isset($map['CurrentPage'])) {
-            $model->currentPage = $map['CurrentPage'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
         }
-        if (isset($map['TotalCount'])) {
-            $model->totalCount = $map['TotalCount'];
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['DeviceInfoList'])) {
-            $model->deviceInfoList = deviceInfoList::fromMap($map['DeviceInfoList']);
+        if (isset($map['body'])) {
+            $model->body = DescribeDeviceInfoResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 96 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeDeviceInfoResponseBody.php

@@ -0,0 +1,96 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeDeviceInfoResponseBody\deviceInfoList;
+use AlibabaCloud\Tea\Model;
+
+class DescribeDeviceInfoResponseBody extends Model
+{
+    /**
+     * @var int
+     */
+    public $currentPage;
+
+    /**
+     * @var deviceInfoList
+     */
+    public $deviceInfoList;
+
+    /**
+     * @var int
+     */
+    public $pageSize;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var int
+     */
+    public $totalCount;
+    protected $_name = [
+        'currentPage'    => 'CurrentPage',
+        'deviceInfoList' => 'DeviceInfoList',
+        'pageSize'       => 'PageSize',
+        'requestId'      => 'RequestId',
+        'totalCount'     => 'TotalCount',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->currentPage) {
+            $res['CurrentPage'] = $this->currentPage;
+        }
+        if (null !== $this->deviceInfoList) {
+            $res['DeviceInfoList'] = null !== $this->deviceInfoList ? $this->deviceInfoList->toMap() : null;
+        }
+        if (null !== $this->pageSize) {
+            $res['PageSize'] = $this->pageSize;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->totalCount) {
+            $res['TotalCount'] = $this->totalCount;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeDeviceInfoResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CurrentPage'])) {
+            $model->currentPage = $map['CurrentPage'];
+        }
+        if (isset($map['DeviceInfoList'])) {
+            $model->deviceInfoList = deviceInfoList::fromMap($map['DeviceInfoList']);
+        }
+        if (isset($map['PageSize'])) {
+            $model->pageSize = $map['PageSize'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['TotalCount'])) {
+            $model->totalCount = $map['TotalCount'];
+        }
+
+        return $model;
+    }
+}

+ 60 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeDeviceInfoResponseBody/deviceInfoList.php

@@ -0,0 +1,60 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeDeviceInfoResponseBody;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeDeviceInfoResponseBody\deviceInfoList\deviceInfo;
+use AlibabaCloud\Tea\Model;
+
+class deviceInfoList extends Model
+{
+    /**
+     * @var deviceInfo[]
+     */
+    public $deviceInfo;
+    protected $_name = [
+        'deviceInfo' => 'DeviceInfo',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->deviceInfo) {
+            $res['DeviceInfo'] = [];
+            if (null !== $this->deviceInfo && \is_array($this->deviceInfo)) {
+                $n = 0;
+                foreach ($this->deviceInfo as $item) {
+                    $res['DeviceInfo'][$n++] = null !== $item ? $item->toMap() : $item;
+                }
+            }
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return deviceInfoList
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['DeviceInfo'])) {
+            if (!empty($map['DeviceInfo'])) {
+                $model->deviceInfo = [];
+                $n                 = 0;
+                foreach ($map['DeviceInfo'] as $item) {
+                    $model->deviceInfo[$n++] = null !== $item ? deviceInfo::fromMap($item) : $item;
+                }
+            }
+        }
+
+        return $model;
+    }
+}

+ 95 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeDeviceInfoResponseBody/deviceInfoList/deviceInfo.php

@@ -0,0 +1,95 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeDeviceInfoResponseBody\deviceInfoList;
+
+use AlibabaCloud\Tea\Model;
+
+class deviceInfo extends Model
+{
+    /**
+     * @var string
+     */
+    public $beginDay;
+
+    /**
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @var string
+     */
+    public $deviceId;
+
+    /**
+     * @var string
+     */
+    public $expiredDay;
+
+    /**
+     * @var string
+     */
+    public $userDeviceId;
+    protected $_name = [
+        'beginDay'     => 'BeginDay',
+        'bizType'      => 'BizType',
+        'deviceId'     => 'DeviceId',
+        'expiredDay'   => 'ExpiredDay',
+        'userDeviceId' => 'UserDeviceId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->beginDay) {
+            $res['BeginDay'] = $this->beginDay;
+        }
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
+        }
+        if (null !== $this->deviceId) {
+            $res['DeviceId'] = $this->deviceId;
+        }
+        if (null !== $this->expiredDay) {
+            $res['ExpiredDay'] = $this->expiredDay;
+        }
+        if (null !== $this->userDeviceId) {
+            $res['UserDeviceId'] = $this->userDeviceId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return deviceInfo
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['BeginDay'])) {
+            $model->beginDay = $map['BeginDay'];
+        }
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
+        }
+        if (isset($map['DeviceId'])) {
+            $model->deviceId = $map['DeviceId'];
+        }
+        if (isset($map['ExpiredDay'])) {
+            $model->expiredDay = $map['ExpiredDay'];
+        }
+        if (isset($map['UserDeviceId'])) {
+            $model->userDeviceId = $map['UserDeviceId'];
+        }
+
+        return $model;
+    }
+}

+ 12 - 12
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeFaceVerifyRequest.php

@@ -9,11 +9,6 @@ use AlibabaCloud\Tea\Model;
 class DescribeFaceVerifyRequest extends Model
 {
     /**
-     * @var int
-     */
-    public $sceneId;
-
-    /**
      * @var string
      */
     public $certifyId;
@@ -22,10 +17,15 @@ class DescribeFaceVerifyRequest extends Model
      * @var string
      */
     public $pictureReturnType;
+
+    /**
+     * @var int
+     */
+    public $sceneId;
     protected $_name = [
-        'sceneId'           => 'SceneId',
         'certifyId'         => 'CertifyId',
         'pictureReturnType' => 'PictureReturnType',
+        'sceneId'           => 'SceneId',
     ];
 
     public function validate()
@@ -35,15 +35,15 @@ class DescribeFaceVerifyRequest extends Model
     public function toMap()
     {
         $res = [];
-        if (null !== $this->sceneId) {
-            $res['SceneId'] = $this->sceneId;
-        }
         if (null !== $this->certifyId) {
             $res['CertifyId'] = $this->certifyId;
         }
         if (null !== $this->pictureReturnType) {
             $res['PictureReturnType'] = $this->pictureReturnType;
         }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
 
         return $res;
     }
@@ -56,15 +56,15 @@ class DescribeFaceVerifyRequest extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['SceneId'])) {
-            $model->sceneId = $map['SceneId'];
-        }
         if (isset($map['CertifyId'])) {
             $model->certifyId = $map['CertifyId'];
         }
         if (isset($map['PictureReturnType'])) {
             $model->pictureReturnType = $map['PictureReturnType'];
         }
+        if (isset($map['SceneId'])) {
+            $model->sceneId = $map['SceneId'];
+        }
 
         return $model;
     }

+ 24 - 38
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeFaceVerifyResponse.php

@@ -4,59 +4,48 @@
 
 namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
 
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceVerifyResponse\resultObject;
 use AlibabaCloud\Tea\Model;
 
 class DescribeFaceVerifyResponse extends Model
 {
     /**
-     * @var string
+     * @var string[]
      */
-    public $requestId;
+    public $headers;
 
     /**
-     * @var string
+     * @var int
      */
-    public $message;
+    public $statusCode;
 
     /**
-     * @var string
+     * @var DescribeFaceVerifyResponseBody
      */
-    public $code;
-
-    /**
-     * @var resultObject
-     */
-    public $resultObject;
+    public $body;
     protected $_name = [
-        'requestId'    => 'RequestId',
-        'message'      => 'Message',
-        'code'         => 'Code',
-        'resultObject' => 'ResultObject',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('message', $this->message, true);
-        Model::validateRequired('code', $this->code, true);
-        Model::validateRequired('resultObject', $this->resultObject, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->message) {
-            $res['Message'] = $this->message;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
         }
-        if (null !== $this->code) {
-            $res['Code'] = $this->code;
-        }
-        if (null !== $this->resultObject) {
-            $res['ResultObject'] = null !== $this->resultObject ? $this->resultObject->toMap() : null;
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -70,17 +59,14 @@ class DescribeFaceVerifyResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
-        }
-        if (isset($map['Message'])) {
-            $model->message = $map['Message'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
         }
-        if (isset($map['Code'])) {
-            $model->code = $map['Code'];
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['ResultObject'])) {
-            $model->resultObject = resultObject::fromMap($map['ResultObject']);
+        if (isset($map['body'])) {
+            $model->body = DescribeFaceVerifyResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 84 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeFaceVerifyResponseBody.php

@@ -0,0 +1,84 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class DescribeFaceVerifyResponseBody extends Model
+{
+    /**
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var resultObject
+     */
+    public $resultObject;
+    protected $_name = [
+        'code'         => 'Code',
+        'message'      => 'Message',
+        'requestId'    => 'RequestId',
+        'resultObject' => 'ResultObject',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->code) {
+            $res['Code'] = $this->code;
+        }
+        if (null !== $this->message) {
+            $res['Message'] = $this->message;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->resultObject) {
+            $res['ResultObject'] = null !== $this->resultObject ? $this->resultObject->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeFaceVerifyResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Code'])) {
+            $model->code = $map['Code'];
+        }
+        if (isset($map['Message'])) {
+            $model->message = $map['Message'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['ResultObject'])) {
+            $model->resultObject = resultObject::fromMap($map['ResultObject']);
+        }
+
+        return $model;
+    }
+}

+ 95 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeFaceVerifyResponseBody/resultObject.php

@@ -0,0 +1,95 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeFaceVerifyResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class resultObject extends Model
+{
+    /**
+     * @var string
+     */
+    public $deviceToken;
+
+    /**
+     * @var string
+     */
+    public $identityInfo;
+
+    /**
+     * @var string
+     */
+    public $materialInfo;
+
+    /**
+     * @var string
+     */
+    public $passed;
+
+    /**
+     * @var string
+     */
+    public $subCode;
+    protected $_name = [
+        'deviceToken'  => 'DeviceToken',
+        'identityInfo' => 'IdentityInfo',
+        'materialInfo' => 'MaterialInfo',
+        'passed'       => 'Passed',
+        'subCode'      => 'SubCode',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->deviceToken) {
+            $res['DeviceToken'] = $this->deviceToken;
+        }
+        if (null !== $this->identityInfo) {
+            $res['IdentityInfo'] = $this->identityInfo;
+        }
+        if (null !== $this->materialInfo) {
+            $res['MaterialInfo'] = $this->materialInfo;
+        }
+        if (null !== $this->passed) {
+            $res['Passed'] = $this->passed;
+        }
+        if (null !== $this->subCode) {
+            $res['SubCode'] = $this->subCode;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return resultObject
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['DeviceToken'])) {
+            $model->deviceToken = $map['DeviceToken'];
+        }
+        if (isset($map['IdentityInfo'])) {
+            $model->identityInfo = $map['IdentityInfo'];
+        }
+        if (isset($map['MaterialInfo'])) {
+            $model->materialInfo = $map['MaterialInfo'];
+        }
+        if (isset($map['Passed'])) {
+            $model->passed = $map['Passed'];
+        }
+        if (isset($map['SubCode'])) {
+            $model->subCode = $map['SubCode'];
+        }
+
+        return $model;
+    }
+}

+ 29 - 17
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeOssUploadTokenResponse.php

@@ -4,39 +4,48 @@
 
 namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
 
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeOssUploadTokenResponse\ossUploadToken;
 use AlibabaCloud\Tea\Model;
 
 class DescribeOssUploadTokenResponse extends Model
 {
     /**
-     * @var string
+     * @var string[]
      */
-    public $requestId;
+    public $headers;
 
     /**
-     * @var ossUploadToken
+     * @var int
      */
-    public $ossUploadToken;
+    public $statusCode;
+
+    /**
+     * @var DescribeOssUploadTokenResponseBody
+     */
+    public $body;
     protected $_name = [
-        'requestId'      => 'RequestId',
-        'ossUploadToken' => 'OssUploadToken',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('ossUploadToken', $this->ossUploadToken, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->ossUploadToken) {
-            $res['OssUploadToken'] = null !== $this->ossUploadToken ? $this->ossUploadToken->toMap() : null;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -50,11 +59,14 @@ class DescribeOssUploadTokenResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['OssUploadToken'])) {
-            $model->ossUploadToken = ossUploadToken::fromMap($map['OssUploadToken']);
+        if (isset($map['body'])) {
+            $model->body = DescribeOssUploadTokenResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 60 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeOssUploadTokenResponseBody.php

@@ -0,0 +1,60 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeOssUploadTokenResponseBody\ossUploadToken;
+use AlibabaCloud\Tea\Model;
+
+class DescribeOssUploadTokenResponseBody extends Model
+{
+    /**
+     * @var ossUploadToken
+     */
+    public $ossUploadToken;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+    protected $_name = [
+        'ossUploadToken' => 'OssUploadToken',
+        'requestId'      => 'RequestId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->ossUploadToken) {
+            $res['OssUploadToken'] = null !== $this->ossUploadToken ? $this->ossUploadToken->toMap() : null;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeOssUploadTokenResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['OssUploadToken'])) {
+            $model->ossUploadToken = ossUploadToken::fromMap($map['OssUploadToken']);
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+
+        return $model;
+    }
+}

+ 119 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeOssUploadTokenResponseBody/ossUploadToken.php

@@ -0,0 +1,119 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeOssUploadTokenResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class ossUploadToken extends Model
+{
+    /**
+     * @var string
+     */
+    public $bucket;
+
+    /**
+     * @var string
+     */
+    public $endPoint;
+
+    /**
+     * @var int
+     */
+    public $expired;
+
+    /**
+     * @var string
+     */
+    public $key;
+
+    /**
+     * @var string
+     */
+    public $path;
+
+    /**
+     * @var string
+     */
+    public $secret;
+
+    /**
+     * @var string
+     */
+    public $token;
+    protected $_name = [
+        'bucket'   => 'Bucket',
+        'endPoint' => 'EndPoint',
+        'expired'  => 'Expired',
+        'key'      => 'Key',
+        'path'     => 'Path',
+        'secret'   => 'Secret',
+        'token'    => 'Token',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->bucket) {
+            $res['Bucket'] = $this->bucket;
+        }
+        if (null !== $this->endPoint) {
+            $res['EndPoint'] = $this->endPoint;
+        }
+        if (null !== $this->expired) {
+            $res['Expired'] = $this->expired;
+        }
+        if (null !== $this->key) {
+            $res['Key'] = $this->key;
+        }
+        if (null !== $this->path) {
+            $res['Path'] = $this->path;
+        }
+        if (null !== $this->secret) {
+            $res['Secret'] = $this->secret;
+        }
+        if (null !== $this->token) {
+            $res['Token'] = $this->token;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return ossUploadToken
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Bucket'])) {
+            $model->bucket = $map['Bucket'];
+        }
+        if (isset($map['EndPoint'])) {
+            $model->endPoint = $map['EndPoint'];
+        }
+        if (isset($map['Expired'])) {
+            $model->expired = $map['Expired'];
+        }
+        if (isset($map['Key'])) {
+            $model->key = $map['Key'];
+        }
+        if (isset($map['Path'])) {
+            $model->path = $map['Path'];
+        }
+        if (isset($map['Secret'])) {
+            $model->secret = $map['Secret'];
+        }
+        if (isset($map['Token'])) {
+            $model->token = $map['Token'];
+        }
+
+        return $model;
+    }
+}

+ 0 - 2
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyResultRequest.php

@@ -24,8 +24,6 @@ class DescribeVerifyResultRequest extends Model
 
     public function validate()
     {
-        Model::validateRequired('bizId', $this->bizId, true);
-        Model::validateRequired('bizType', $this->bizType, true);
     }
 
     public function toMap()

+ 23 - 63
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyResultResponse.php

@@ -4,79 +4,48 @@
 
 namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
 
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyResultResponse\material;
 use AlibabaCloud\Tea\Model;
 
 class DescribeVerifyResultResponse extends Model
 {
     /**
-     * @var string
+     * @var string[]
      */
-    public $requestId;
+    public $headers;
 
     /**
      * @var int
      */
-    public $verifyStatus;
+    public $statusCode;
 
     /**
-     * @var float
+     * @var DescribeVerifyResultResponseBody
      */
-    public $authorityComparisionScore;
-
-    /**
-     * @var float
-     */
-    public $faceComparisonScore;
-
-    /**
-     * @var float
-     */
-    public $idCardFaceComparisonScore;
-
-    /**
-     * @var material
-     */
-    public $material;
+    public $body;
     protected $_name = [
-        'requestId'                 => 'RequestId',
-        'verifyStatus'              => 'VerifyStatus',
-        'authorityComparisionScore' => 'AuthorityComparisionScore',
-        'faceComparisonScore'       => 'FaceComparisonScore',
-        'idCardFaceComparisonScore' => 'IdCardFaceComparisonScore',
-        'material'                  => 'Material',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('verifyStatus', $this->verifyStatus, true);
-        Model::validateRequired('authorityComparisionScore', $this->authorityComparisionScore, true);
-        Model::validateRequired('faceComparisonScore', $this->faceComparisonScore, true);
-        Model::validateRequired('idCardFaceComparisonScore', $this->idCardFaceComparisonScore, true);
-        Model::validateRequired('material', $this->material, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
-        }
-        if (null !== $this->verifyStatus) {
-            $res['VerifyStatus'] = $this->verifyStatus;
-        }
-        if (null !== $this->authorityComparisionScore) {
-            $res['AuthorityComparisionScore'] = $this->authorityComparisionScore;
-        }
-        if (null !== $this->faceComparisonScore) {
-            $res['FaceComparisonScore'] = $this->faceComparisonScore;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->idCardFaceComparisonScore) {
-            $res['IdCardFaceComparisonScore'] = $this->idCardFaceComparisonScore;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
         }
-        if (null !== $this->material) {
-            $res['Material'] = null !== $this->material ? $this->material->toMap() : null;
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -90,23 +59,14 @@ class DescribeVerifyResultResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
-        }
-        if (isset($map['VerifyStatus'])) {
-            $model->verifyStatus = $map['VerifyStatus'];
-        }
-        if (isset($map['AuthorityComparisionScore'])) {
-            $model->authorityComparisionScore = $map['AuthorityComparisionScore'];
-        }
-        if (isset($map['FaceComparisonScore'])) {
-            $model->faceComparisonScore = $map['FaceComparisonScore'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
         }
-        if (isset($map['IdCardFaceComparisonScore'])) {
-            $model->idCardFaceComparisonScore = $map['IdCardFaceComparisonScore'];
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['Material'])) {
-            $model->material = material::fromMap($map['Material']);
+        if (isset($map['body'])) {
+            $model->body = DescribeVerifyResultResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 108 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyResultResponseBody.php

@@ -0,0 +1,108 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyResultResponseBody\material;
+use AlibabaCloud\Tea\Model;
+
+class DescribeVerifyResultResponseBody extends Model
+{
+    /**
+     * @var float
+     */
+    public $authorityComparisionScore;
+
+    /**
+     * @var float
+     */
+    public $faceComparisonScore;
+
+    /**
+     * @var float
+     */
+    public $idCardFaceComparisonScore;
+
+    /**
+     * @var material
+     */
+    public $material;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var int
+     */
+    public $verifyStatus;
+    protected $_name = [
+        'authorityComparisionScore' => 'AuthorityComparisionScore',
+        'faceComparisonScore'       => 'FaceComparisonScore',
+        'idCardFaceComparisonScore' => 'IdCardFaceComparisonScore',
+        'material'                  => 'Material',
+        'requestId'                 => 'RequestId',
+        'verifyStatus'              => 'VerifyStatus',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->authorityComparisionScore) {
+            $res['AuthorityComparisionScore'] = $this->authorityComparisionScore;
+        }
+        if (null !== $this->faceComparisonScore) {
+            $res['FaceComparisonScore'] = $this->faceComparisonScore;
+        }
+        if (null !== $this->idCardFaceComparisonScore) {
+            $res['IdCardFaceComparisonScore'] = $this->idCardFaceComparisonScore;
+        }
+        if (null !== $this->material) {
+            $res['Material'] = null !== $this->material ? $this->material->toMap() : null;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->verifyStatus) {
+            $res['VerifyStatus'] = $this->verifyStatus;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeVerifyResultResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['AuthorityComparisionScore'])) {
+            $model->authorityComparisionScore = $map['AuthorityComparisionScore'];
+        }
+        if (isset($map['FaceComparisonScore'])) {
+            $model->faceComparisonScore = $map['FaceComparisonScore'];
+        }
+        if (isset($map['IdCardFaceComparisonScore'])) {
+            $model->idCardFaceComparisonScore = $map['IdCardFaceComparisonScore'];
+        }
+        if (isset($map['Material'])) {
+            $model->material = material::fromMap($map['Material']);
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['VerifyStatus'])) {
+            $model->verifyStatus = $map['VerifyStatus'];
+        }
+
+        return $model;
+    }
+}

+ 134 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyResultResponseBody/material.php

@@ -0,0 +1,134 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyResultResponseBody;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyResultResponseBody\material\idCardInfo;
+use AlibabaCloud\Tea\Model;
+
+class material extends Model
+{
+    /**
+     * @var string
+     */
+    public $faceGlobalUrl;
+
+    /**
+     * @var string
+     */
+    public $faceImageUrl;
+
+    /**
+     * @var bool
+     */
+    public $faceMask;
+
+    /**
+     * @var string
+     */
+    public $faceQuality;
+
+    /**
+     * @var idCardInfo
+     */
+    public $idCardInfo;
+
+    /**
+     * @var string
+     */
+    public $idCardName;
+
+    /**
+     * @var string
+     */
+    public $idCardNumber;
+
+    /**
+     * @var string[]
+     */
+    public $videoUrls;
+    protected $_name = [
+        'faceGlobalUrl' => 'FaceGlobalUrl',
+        'faceImageUrl'  => 'FaceImageUrl',
+        'faceMask'      => 'FaceMask',
+        'faceQuality'   => 'FaceQuality',
+        'idCardInfo'    => 'IdCardInfo',
+        'idCardName'    => 'IdCardName',
+        'idCardNumber'  => 'IdCardNumber',
+        'videoUrls'     => 'VideoUrls',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->faceGlobalUrl) {
+            $res['FaceGlobalUrl'] = $this->faceGlobalUrl;
+        }
+        if (null !== $this->faceImageUrl) {
+            $res['FaceImageUrl'] = $this->faceImageUrl;
+        }
+        if (null !== $this->faceMask) {
+            $res['FaceMask'] = $this->faceMask;
+        }
+        if (null !== $this->faceQuality) {
+            $res['FaceQuality'] = $this->faceQuality;
+        }
+        if (null !== $this->idCardInfo) {
+            $res['IdCardInfo'] = null !== $this->idCardInfo ? $this->idCardInfo->toMap() : null;
+        }
+        if (null !== $this->idCardName) {
+            $res['IdCardName'] = $this->idCardName;
+        }
+        if (null !== $this->idCardNumber) {
+            $res['IdCardNumber'] = $this->idCardNumber;
+        }
+        if (null !== $this->videoUrls) {
+            $res['VideoUrls'] = $this->videoUrls;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return material
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['FaceGlobalUrl'])) {
+            $model->faceGlobalUrl = $map['FaceGlobalUrl'];
+        }
+        if (isset($map['FaceImageUrl'])) {
+            $model->faceImageUrl = $map['FaceImageUrl'];
+        }
+        if (isset($map['FaceMask'])) {
+            $model->faceMask = $map['FaceMask'];
+        }
+        if (isset($map['FaceQuality'])) {
+            $model->faceQuality = $map['FaceQuality'];
+        }
+        if (isset($map['IdCardInfo'])) {
+            $model->idCardInfo = idCardInfo::fromMap($map['IdCardInfo']);
+        }
+        if (isset($map['IdCardName'])) {
+            $model->idCardName = $map['IdCardName'];
+        }
+        if (isset($map['IdCardNumber'])) {
+            $model->idCardNumber = $map['IdCardNumber'];
+        }
+        if (isset($map['VideoUrls'])) {
+            if (!empty($map['VideoUrls'])) {
+                $model->videoUrls = $map['VideoUrls'];
+            }
+        }
+
+        return $model;
+    }
+}

+ 155 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyResultResponseBody/material/idCardInfo.php

@@ -0,0 +1,155 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyResultResponseBody\material;
+
+use AlibabaCloud\Tea\Model;
+
+class idCardInfo extends Model
+{
+    /**
+     * @var string
+     */
+    public $address;
+
+    /**
+     * @var string
+     */
+    public $authority;
+
+    /**
+     * @var string
+     */
+    public $backImageUrl;
+
+    /**
+     * @var string
+     */
+    public $birth;
+
+    /**
+     * @var string
+     */
+    public $endDate;
+
+    /**
+     * @var string
+     */
+    public $frontImageUrl;
+
+    /**
+     * @var string
+     */
+    public $name;
+
+    /**
+     * @var string
+     */
+    public $nationality;
+
+    /**
+     * @var string
+     */
+    public $number;
+
+    /**
+     * @var string
+     */
+    public $startDate;
+    protected $_name = [
+        'address'       => 'Address',
+        'authority'     => 'Authority',
+        'backImageUrl'  => 'BackImageUrl',
+        'birth'         => 'Birth',
+        'endDate'       => 'EndDate',
+        'frontImageUrl' => 'FrontImageUrl',
+        'name'          => 'Name',
+        'nationality'   => 'Nationality',
+        'number'        => 'Number',
+        'startDate'     => 'StartDate',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->address) {
+            $res['Address'] = $this->address;
+        }
+        if (null !== $this->authority) {
+            $res['Authority'] = $this->authority;
+        }
+        if (null !== $this->backImageUrl) {
+            $res['BackImageUrl'] = $this->backImageUrl;
+        }
+        if (null !== $this->birth) {
+            $res['Birth'] = $this->birth;
+        }
+        if (null !== $this->endDate) {
+            $res['EndDate'] = $this->endDate;
+        }
+        if (null !== $this->frontImageUrl) {
+            $res['FrontImageUrl'] = $this->frontImageUrl;
+        }
+        if (null !== $this->name) {
+            $res['Name'] = $this->name;
+        }
+        if (null !== $this->nationality) {
+            $res['Nationality'] = $this->nationality;
+        }
+        if (null !== $this->number) {
+            $res['Number'] = $this->number;
+        }
+        if (null !== $this->startDate) {
+            $res['StartDate'] = $this->startDate;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return idCardInfo
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Address'])) {
+            $model->address = $map['Address'];
+        }
+        if (isset($map['Authority'])) {
+            $model->authority = $map['Authority'];
+        }
+        if (isset($map['BackImageUrl'])) {
+            $model->backImageUrl = $map['BackImageUrl'];
+        }
+        if (isset($map['Birth'])) {
+            $model->birth = $map['Birth'];
+        }
+        if (isset($map['EndDate'])) {
+            $model->endDate = $map['EndDate'];
+        }
+        if (isset($map['FrontImageUrl'])) {
+            $model->frontImageUrl = $map['FrontImageUrl'];
+        }
+        if (isset($map['Name'])) {
+            $model->name = $map['Name'];
+        }
+        if (isset($map['Nationality'])) {
+            $model->nationality = $map['Nationality'];
+        }
+        if (isset($map['Number'])) {
+            $model->number = $map['Number'];
+        }
+        if (isset($map['StartDate'])) {
+            $model->startDate = $map['StartDate'];
+        }
+
+        return $model;
+    }
+}

+ 0 - 1
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifySDKRequest.php

@@ -18,7 +18,6 @@ class DescribeVerifySDKRequest extends Model
 
     public function validate()
     {
-        Model::validateRequired('taskId', $this->taskId, true);
     }
 
     public function toMap()

+ 29 - 16
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifySDKResponse.php

@@ -9,33 +9,43 @@ use AlibabaCloud\Tea\Model;
 class DescribeVerifySDKResponse extends Model
 {
     /**
-     * @var string
+     * @var string[]
      */
-    public $requestId;
+    public $headers;
 
     /**
-     * @var string
+     * @var int
      */
-    public $sdkUrl;
+    public $statusCode;
+
+    /**
+     * @var DescribeVerifySDKResponseBody
+     */
+    public $body;
     protected $_name = [
-        'requestId' => 'RequestId',
-        'sdkUrl'    => 'SdkUrl',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('sdkUrl', $this->sdkUrl, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->sdkUrl) {
-            $res['SdkUrl'] = $this->sdkUrl;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
+        }
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -49,11 +59,14 @@ class DescribeVerifySDKResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['SdkUrl'])) {
-            $model->sdkUrl = $map['SdkUrl'];
+        if (isset($map['body'])) {
+            $model->body = DescribeVerifySDKResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 59 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifySDKResponseBody.php

@@ -0,0 +1,59 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class DescribeVerifySDKResponseBody extends Model
+{
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var string
+     */
+    public $sdkUrl;
+    protected $_name = [
+        'requestId' => 'RequestId',
+        'sdkUrl'    => 'SdkUrl',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->sdkUrl) {
+            $res['SdkUrl'] = $this->sdkUrl;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeVerifySDKResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['SdkUrl'])) {
+            $model->sdkUrl = $map['SdkUrl'];
+        }
+
+        return $model;
+    }
+}

+ 49 - 51
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyTokenRequest.php

@@ -11,7 +11,7 @@ class DescribeVerifyTokenRequest extends Model
     /**
      * @var string
      */
-    public $idCardBackImageUrl;
+    public $bizId;
 
     /**
      * @var string
@@ -21,42 +21,42 @@ class DescribeVerifyTokenRequest extends Model
     /**
      * @var string
      */
-    public $failedRedirectUrl;
+    public $callbackSeed;
 
     /**
      * @var string
      */
-    public $faceRetainedImageUrl;
+    public $callbackUrl;
 
     /**
      * @var string
      */
-    public $callbackSeed;
+    public $faceRetainedImageUrl;
 
     /**
      * @var string
      */
-    public $idCardFrontImageUrl;
+    public $failedRedirectUrl;
 
     /**
      * @var string
      */
-    public $userId;
+    public $idCardBackImageUrl;
 
     /**
      * @var string
      */
-    public $bizId;
+    public $idCardFrontImageUrl;
 
     /**
      * @var string
      */
-    public $name;
+    public $idCardNumber;
 
     /**
      * @var string
      */
-    public $idCardNumber;
+    public $name;
 
     /**
      * @var string
@@ -66,7 +66,7 @@ class DescribeVerifyTokenRequest extends Model
     /**
      * @var string
      */
-    public $callbackUrl;
+    public $userId;
 
     /**
      * @var string
@@ -83,18 +83,18 @@ class DescribeVerifyTokenRequest extends Model
      */
     public $userRegistTime;
     protected $_name = [
-        'idCardBackImageUrl'   => 'IdCardBackImageUrl',
+        'bizId'                => 'BizId',
         'bizType'              => 'BizType',
-        'failedRedirectUrl'    => 'FailedRedirectUrl',
-        'faceRetainedImageUrl' => 'FaceRetainedImageUrl',
         'callbackSeed'         => 'CallbackSeed',
+        'callbackUrl'          => 'CallbackUrl',
+        'faceRetainedImageUrl' => 'FaceRetainedImageUrl',
+        'failedRedirectUrl'    => 'FailedRedirectUrl',
+        'idCardBackImageUrl'   => 'IdCardBackImageUrl',
         'idCardFrontImageUrl'  => 'IdCardFrontImageUrl',
-        'userId'               => 'UserId',
-        'bizId'                => 'BizId',
-        'name'                 => 'Name',
         'idCardNumber'         => 'IdCardNumber',
+        'name'                 => 'Name',
         'passedRedirectUrl'    => 'PassedRedirectUrl',
-        'callbackUrl'          => 'CallbackUrl',
+        'userId'               => 'UserId',
         'userIp'               => 'UserIp',
         'userPhoneNumber'      => 'UserPhoneNumber',
         'userRegistTime'       => 'UserRegistTime',
@@ -102,48 +102,46 @@ class DescribeVerifyTokenRequest extends Model
 
     public function validate()
     {
-        Model::validateRequired('bizType', $this->bizType, true);
-        Model::validateRequired('bizId', $this->bizId, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->idCardBackImageUrl) {
-            $res['IdCardBackImageUrl'] = $this->idCardBackImageUrl;
+        if (null !== $this->bizId) {
+            $res['BizId'] = $this->bizId;
         }
         if (null !== $this->bizType) {
             $res['BizType'] = $this->bizType;
         }
-        if (null !== $this->failedRedirectUrl) {
-            $res['FailedRedirectUrl'] = $this->failedRedirectUrl;
+        if (null !== $this->callbackSeed) {
+            $res['CallbackSeed'] = $this->callbackSeed;
+        }
+        if (null !== $this->callbackUrl) {
+            $res['CallbackUrl'] = $this->callbackUrl;
         }
         if (null !== $this->faceRetainedImageUrl) {
             $res['FaceRetainedImageUrl'] = $this->faceRetainedImageUrl;
         }
-        if (null !== $this->callbackSeed) {
-            $res['CallbackSeed'] = $this->callbackSeed;
+        if (null !== $this->failedRedirectUrl) {
+            $res['FailedRedirectUrl'] = $this->failedRedirectUrl;
+        }
+        if (null !== $this->idCardBackImageUrl) {
+            $res['IdCardBackImageUrl'] = $this->idCardBackImageUrl;
         }
         if (null !== $this->idCardFrontImageUrl) {
             $res['IdCardFrontImageUrl'] = $this->idCardFrontImageUrl;
         }
-        if (null !== $this->userId) {
-            $res['UserId'] = $this->userId;
-        }
-        if (null !== $this->bizId) {
-            $res['BizId'] = $this->bizId;
+        if (null !== $this->idCardNumber) {
+            $res['IdCardNumber'] = $this->idCardNumber;
         }
         if (null !== $this->name) {
             $res['Name'] = $this->name;
         }
-        if (null !== $this->idCardNumber) {
-            $res['IdCardNumber'] = $this->idCardNumber;
-        }
         if (null !== $this->passedRedirectUrl) {
             $res['PassedRedirectUrl'] = $this->passedRedirectUrl;
         }
-        if (null !== $this->callbackUrl) {
-            $res['CallbackUrl'] = $this->callbackUrl;
+        if (null !== $this->userId) {
+            $res['UserId'] = $this->userId;
         }
         if (null !== $this->userIp) {
             $res['UserIp'] = $this->userIp;
@@ -166,41 +164,41 @@ class DescribeVerifyTokenRequest extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['IdCardBackImageUrl'])) {
-            $model->idCardBackImageUrl = $map['IdCardBackImageUrl'];
+        if (isset($map['BizId'])) {
+            $model->bizId = $map['BizId'];
         }
         if (isset($map['BizType'])) {
             $model->bizType = $map['BizType'];
         }
-        if (isset($map['FailedRedirectUrl'])) {
-            $model->failedRedirectUrl = $map['FailedRedirectUrl'];
+        if (isset($map['CallbackSeed'])) {
+            $model->callbackSeed = $map['CallbackSeed'];
+        }
+        if (isset($map['CallbackUrl'])) {
+            $model->callbackUrl = $map['CallbackUrl'];
         }
         if (isset($map['FaceRetainedImageUrl'])) {
             $model->faceRetainedImageUrl = $map['FaceRetainedImageUrl'];
         }
-        if (isset($map['CallbackSeed'])) {
-            $model->callbackSeed = $map['CallbackSeed'];
+        if (isset($map['FailedRedirectUrl'])) {
+            $model->failedRedirectUrl = $map['FailedRedirectUrl'];
+        }
+        if (isset($map['IdCardBackImageUrl'])) {
+            $model->idCardBackImageUrl = $map['IdCardBackImageUrl'];
         }
         if (isset($map['IdCardFrontImageUrl'])) {
             $model->idCardFrontImageUrl = $map['IdCardFrontImageUrl'];
         }
-        if (isset($map['UserId'])) {
-            $model->userId = $map['UserId'];
-        }
-        if (isset($map['BizId'])) {
-            $model->bizId = $map['BizId'];
+        if (isset($map['IdCardNumber'])) {
+            $model->idCardNumber = $map['IdCardNumber'];
         }
         if (isset($map['Name'])) {
             $model->name = $map['Name'];
         }
-        if (isset($map['IdCardNumber'])) {
-            $model->idCardNumber = $map['IdCardNumber'];
-        }
         if (isset($map['PassedRedirectUrl'])) {
             $model->passedRedirectUrl = $map['PassedRedirectUrl'];
         }
-        if (isset($map['CallbackUrl'])) {
-            $model->callbackUrl = $map['CallbackUrl'];
+        if (isset($map['UserId'])) {
+            $model->userId = $map['UserId'];
         }
         if (isset($map['UserIp'])) {
             $model->userIp = $map['UserIp'];

+ 24 - 38
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyTokenResponse.php

@@ -4,59 +4,48 @@
 
 namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
 
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyTokenResponse\ossUploadToken;
 use AlibabaCloud\Tea\Model;
 
 class DescribeVerifyTokenResponse extends Model
 {
     /**
-     * @var string
+     * @var string[]
      */
-    public $requestId;
+    public $headers;
 
     /**
-     * @var string
+     * @var int
      */
-    public $verifyPageUrl;
+    public $statusCode;
 
     /**
-     * @var string
+     * @var DescribeVerifyTokenResponseBody
      */
-    public $verifyToken;
-
-    /**
-     * @var ossUploadToken
-     */
-    public $ossUploadToken;
+    public $body;
     protected $_name = [
-        'requestId'      => 'RequestId',
-        'verifyPageUrl'  => 'VerifyPageUrl',
-        'verifyToken'    => 'VerifyToken',
-        'ossUploadToken' => 'OssUploadToken',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('verifyPageUrl', $this->verifyPageUrl, true);
-        Model::validateRequired('verifyToken', $this->verifyToken, true);
-        Model::validateRequired('ossUploadToken', $this->ossUploadToken, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->verifyPageUrl) {
-            $res['VerifyPageUrl'] = $this->verifyPageUrl;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
         }
-        if (null !== $this->verifyToken) {
-            $res['VerifyToken'] = $this->verifyToken;
-        }
-        if (null !== $this->ossUploadToken) {
-            $res['OssUploadToken'] = null !== $this->ossUploadToken ? $this->ossUploadToken->toMap() : null;
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -70,17 +59,14 @@ class DescribeVerifyTokenResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
-        }
-        if (isset($map['VerifyPageUrl'])) {
-            $model->verifyPageUrl = $map['VerifyPageUrl'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
         }
-        if (isset($map['VerifyToken'])) {
-            $model->verifyToken = $map['VerifyToken'];
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['OssUploadToken'])) {
-            $model->ossUploadToken = ossUploadToken::fromMap($map['OssUploadToken']);
+        if (isset($map['body'])) {
+            $model->body = DescribeVerifyTokenResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 84 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyTokenResponseBody.php

@@ -0,0 +1,84 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyTokenResponseBody\ossUploadToken;
+use AlibabaCloud\Tea\Model;
+
+class DescribeVerifyTokenResponseBody extends Model
+{
+    /**
+     * @var ossUploadToken
+     */
+    public $ossUploadToken;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var string
+     */
+    public $verifyPageUrl;
+
+    /**
+     * @var string
+     */
+    public $verifyToken;
+    protected $_name = [
+        'ossUploadToken' => 'OssUploadToken',
+        'requestId'      => 'RequestId',
+        'verifyPageUrl'  => 'VerifyPageUrl',
+        'verifyToken'    => 'VerifyToken',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->ossUploadToken) {
+            $res['OssUploadToken'] = null !== $this->ossUploadToken ? $this->ossUploadToken->toMap() : null;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->verifyPageUrl) {
+            $res['VerifyPageUrl'] = $this->verifyPageUrl;
+        }
+        if (null !== $this->verifyToken) {
+            $res['VerifyToken'] = $this->verifyToken;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DescribeVerifyTokenResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['OssUploadToken'])) {
+            $model->ossUploadToken = ossUploadToken::fromMap($map['OssUploadToken']);
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['VerifyPageUrl'])) {
+            $model->verifyPageUrl = $map['VerifyPageUrl'];
+        }
+        if (isset($map['VerifyToken'])) {
+            $model->verifyToken = $map['VerifyToken'];
+        }
+
+        return $model;
+    }
+}

+ 119 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DescribeVerifyTokenResponseBody/ossUploadToken.php

@@ -0,0 +1,119 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DescribeVerifyTokenResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class ossUploadToken extends Model
+{
+    /**
+     * @var string
+     */
+    public $bucket;
+
+    /**
+     * @var string
+     */
+    public $endPoint;
+
+    /**
+     * @var int
+     */
+    public $expired;
+
+    /**
+     * @var string
+     */
+    public $key;
+
+    /**
+     * @var string
+     */
+    public $path;
+
+    /**
+     * @var string
+     */
+    public $secret;
+
+    /**
+     * @var string
+     */
+    public $token;
+    protected $_name = [
+        'bucket'   => 'Bucket',
+        'endPoint' => 'EndPoint',
+        'expired'  => 'Expired',
+        'key'      => 'Key',
+        'path'     => 'Path',
+        'secret'   => 'Secret',
+        'token'    => 'Token',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->bucket) {
+            $res['Bucket'] = $this->bucket;
+        }
+        if (null !== $this->endPoint) {
+            $res['EndPoint'] = $this->endPoint;
+        }
+        if (null !== $this->expired) {
+            $res['Expired'] = $this->expired;
+        }
+        if (null !== $this->key) {
+            $res['Key'] = $this->key;
+        }
+        if (null !== $this->path) {
+            $res['Path'] = $this->path;
+        }
+        if (null !== $this->secret) {
+            $res['Secret'] = $this->secret;
+        }
+        if (null !== $this->token) {
+            $res['Token'] = $this->token;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return ossUploadToken
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Bucket'])) {
+            $model->bucket = $map['Bucket'];
+        }
+        if (isset($map['EndPoint'])) {
+            $model->endPoint = $map['EndPoint'];
+        }
+        if (isset($map['Expired'])) {
+            $model->expired = $map['Expired'];
+        }
+        if (isset($map['Key'])) {
+            $model->key = $map['Key'];
+        }
+        if (isset($map['Path'])) {
+            $model->path = $map['Path'];
+        }
+        if (isset($map['Secret'])) {
+            $model->secret = $map['Secret'];
+        }
+        if (isset($map['Token'])) {
+            $model->token = $map['Token'];
+        }
+
+        return $model;
+    }
+}

+ 9 - 10
vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesRequest.php

@@ -11,31 +11,30 @@ class DetectFaceAttributesRequest extends Model
     /**
      * @var string
      */
-    public $materialValue;
+    public $bizType;
 
     /**
      * @var string
      */
-    public $bizType;
+    public $materialValue;
     protected $_name = [
-        'materialValue' => 'MaterialValue',
         'bizType'       => 'BizType',
+        'materialValue' => 'MaterialValue',
     ];
 
     public function validate()
     {
-        Model::validateRequired('materialValue', $this->materialValue, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->materialValue) {
-            $res['MaterialValue'] = $this->materialValue;
-        }
         if (null !== $this->bizType) {
             $res['BizType'] = $this->bizType;
         }
+        if (null !== $this->materialValue) {
+            $res['MaterialValue'] = $this->materialValue;
+        }
 
         return $res;
     }
@@ -48,12 +47,12 @@ class DetectFaceAttributesRequest extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['MaterialValue'])) {
-            $model->materialValue = $map['MaterialValue'];
-        }
         if (isset($map['BizType'])) {
             $model->bizType = $map['BizType'];
         }
+        if (isset($map['MaterialValue'])) {
+            $model->materialValue = $map['MaterialValue'];
+        }
 
         return $model;
     }

+ 24 - 51
vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponse.php

@@ -4,69 +4,48 @@
 
 namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
 
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponse\data;
 use AlibabaCloud\Tea\Model;
 
 class DetectFaceAttributesResponse extends Model
 {
     /**
-     * @var string
+     * @var string[]
      */
-    public $requestId;
+    public $headers;
 
     /**
-     * @var bool
+     * @var int
      */
-    public $success;
+    public $statusCode;
 
     /**
-     * @var string
+     * @var DetectFaceAttributesResponseBody
      */
-    public $code;
-
-    /**
-     * @var string
-     */
-    public $message;
-
-    /**
-     * @var data
-     */
-    public $data;
+    public $body;
     protected $_name = [
-        'requestId' => 'RequestId',
-        'success'   => 'Success',
-        'code'      => 'Code',
-        'message'   => 'Message',
-        'data'      => 'Data',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('success', $this->success, true);
-        Model::validateRequired('code', $this->code, true);
-        Model::validateRequired('message', $this->message, true);
-        Model::validateRequired('data', $this->data, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
-        }
-        if (null !== $this->success) {
-            $res['Success'] = $this->success;
-        }
-        if (null !== $this->code) {
-            $res['Code'] = $this->code;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->message) {
-            $res['Message'] = $this->message;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
         }
-        if (null !== $this->data) {
-            $res['Data'] = null !== $this->data ? $this->data->toMap() : null;
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -80,20 +59,14 @@ class DetectFaceAttributesResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
-        }
-        if (isset($map['Success'])) {
-            $model->success = $map['Success'];
-        }
-        if (isset($map['Code'])) {
-            $model->code = $map['Code'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
         }
-        if (isset($map['Message'])) {
-            $model->message = $map['Message'];
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['Data'])) {
-            $model->data = data::fromMap($map['Data']);
+        if (isset($map['body'])) {
+            $model->body = DetectFaceAttributesResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 96 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody.php

@@ -0,0 +1,96 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data;
+use AlibabaCloud\Tea\Model;
+
+class DetectFaceAttributesResponseBody extends Model
+{
+    /**
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @var data
+     */
+    public $data;
+
+    /**
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var bool
+     */
+    public $success;
+    protected $_name = [
+        'code'      => 'Code',
+        'data'      => 'Data',
+        'message'   => 'Message',
+        'requestId' => 'RequestId',
+        'success'   => 'Success',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->code) {
+            $res['Code'] = $this->code;
+        }
+        if (null !== $this->data) {
+            $res['Data'] = null !== $this->data ? $this->data->toMap() : null;
+        }
+        if (null !== $this->message) {
+            $res['Message'] = $this->message;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->success) {
+            $res['Success'] = $this->success;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return DetectFaceAttributesResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Code'])) {
+            $model->code = $map['Code'];
+        }
+        if (isset($map['Data'])) {
+            $model->data = data::fromMap($map['Data']);
+        }
+        if (isset($map['Message'])) {
+            $model->message = $map['Message'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['Success'])) {
+            $model->success = $map['Success'];
+        }
+
+        return $model;
+    }
+}

+ 72 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody/data.php

@@ -0,0 +1,72 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos;
+use AlibabaCloud\Tea\Model;
+
+class data extends Model
+{
+    /**
+     * @var faceInfos
+     */
+    public $faceInfos;
+
+    /**
+     * @var int
+     */
+    public $imgHeight;
+
+    /**
+     * @var int
+     */
+    public $imgWidth;
+    protected $_name = [
+        'faceInfos' => 'FaceInfos',
+        'imgHeight' => 'ImgHeight',
+        'imgWidth'  => 'ImgWidth',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->faceInfos) {
+            $res['FaceInfos'] = null !== $this->faceInfos ? $this->faceInfos->toMap() : null;
+        }
+        if (null !== $this->imgHeight) {
+            $res['ImgHeight'] = $this->imgHeight;
+        }
+        if (null !== $this->imgWidth) {
+            $res['ImgWidth'] = $this->imgWidth;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return data
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['FaceInfos'])) {
+            $model->faceInfos = faceInfos::fromMap($map['FaceInfos']);
+        }
+        if (isset($map['ImgHeight'])) {
+            $model->imgHeight = $map['ImgHeight'];
+        }
+        if (isset($map['ImgWidth'])) {
+            $model->imgWidth = $map['ImgWidth'];
+        }
+
+        return $model;
+    }
+}

+ 60 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody/data/faceInfos.php

@@ -0,0 +1,60 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo;
+use AlibabaCloud\Tea\Model;
+
+class faceInfos extends Model
+{
+    /**
+     * @var faceAttributesDetectInfo[]
+     */
+    public $faceAttributesDetectInfo;
+    protected $_name = [
+        'faceAttributesDetectInfo' => 'FaceAttributesDetectInfo',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->faceAttributesDetectInfo) {
+            $res['FaceAttributesDetectInfo'] = [];
+            if (null !== $this->faceAttributesDetectInfo && \is_array($this->faceAttributesDetectInfo)) {
+                $n = 0;
+                foreach ($this->faceAttributesDetectInfo as $item) {
+                    $res['FaceAttributesDetectInfo'][$n++] = null !== $item ? $item->toMap() : $item;
+                }
+            }
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return faceInfos
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['FaceAttributesDetectInfo'])) {
+            if (!empty($map['FaceAttributesDetectInfo'])) {
+                $model->faceAttributesDetectInfo = [];
+                $n                               = 0;
+                foreach ($map['FaceAttributesDetectInfo'] as $item) {
+                    $model->faceAttributesDetectInfo[$n++] = null !== $item ? faceAttributesDetectInfo::fromMap($item) : $item;
+                }
+            }
+        }
+
+        return $model;
+    }
+}

+ 61 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo.php

@@ -0,0 +1,61 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo\faceAttributes;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo\faceRect;
+use AlibabaCloud\Tea\Model;
+
+class faceAttributesDetectInfo extends Model
+{
+    /**
+     * @var faceAttributes
+     */
+    public $faceAttributes;
+
+    /**
+     * @var faceRect
+     */
+    public $faceRect;
+    protected $_name = [
+        'faceAttributes' => 'FaceAttributes',
+        'faceRect'       => 'FaceRect',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->faceAttributes) {
+            $res['FaceAttributes'] = null !== $this->faceAttributes ? $this->faceAttributes->toMap() : null;
+        }
+        if (null !== $this->faceRect) {
+            $res['FaceRect'] = null !== $this->faceRect ? $this->faceRect->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return faceAttributesDetectInfo
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['FaceAttributes'])) {
+            $model->faceAttributes = faceAttributes::fromMap($map['FaceAttributes']);
+        }
+        if (isset($map['FaceRect'])) {
+            $model->faceRect = faceRect::fromMap($map['FaceRect']);
+        }
+
+        return $model;
+    }
+}

+ 133 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes.php

@@ -0,0 +1,133 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo\faceAttributes\headpose;
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo\faceAttributes\smiling;
+use AlibabaCloud\Tea\Model;
+
+class faceAttributes extends Model
+{
+    /**
+     * @var float
+     */
+    public $blur;
+
+    /**
+     * @var float
+     */
+    public $facequal;
+
+    /**
+     * @var string
+     */
+    public $facetype;
+
+    /**
+     * @var string
+     */
+    public $glasses;
+
+    /**
+     * @var headpose
+     */
+    public $headpose;
+
+    /**
+     * @var int
+     */
+    public $integrity;
+
+    /**
+     * @var string
+     */
+    public $respirator;
+
+    /**
+     * @var smiling
+     */
+    public $smiling;
+    protected $_name = [
+        'blur'       => 'Blur',
+        'facequal'   => 'Facequal',
+        'facetype'   => 'Facetype',
+        'glasses'    => 'Glasses',
+        'headpose'   => 'Headpose',
+        'integrity'  => 'Integrity',
+        'respirator' => 'Respirator',
+        'smiling'    => 'Smiling',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->blur) {
+            $res['Blur'] = $this->blur;
+        }
+        if (null !== $this->facequal) {
+            $res['Facequal'] = $this->facequal;
+        }
+        if (null !== $this->facetype) {
+            $res['Facetype'] = $this->facetype;
+        }
+        if (null !== $this->glasses) {
+            $res['Glasses'] = $this->glasses;
+        }
+        if (null !== $this->headpose) {
+            $res['Headpose'] = null !== $this->headpose ? $this->headpose->toMap() : null;
+        }
+        if (null !== $this->integrity) {
+            $res['Integrity'] = $this->integrity;
+        }
+        if (null !== $this->respirator) {
+            $res['Respirator'] = $this->respirator;
+        }
+        if (null !== $this->smiling) {
+            $res['Smiling'] = null !== $this->smiling ? $this->smiling->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return faceAttributes
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Blur'])) {
+            $model->blur = $map['Blur'];
+        }
+        if (isset($map['Facequal'])) {
+            $model->facequal = $map['Facequal'];
+        }
+        if (isset($map['Facetype'])) {
+            $model->facetype = $map['Facetype'];
+        }
+        if (isset($map['Glasses'])) {
+            $model->glasses = $map['Glasses'];
+        }
+        if (isset($map['Headpose'])) {
+            $model->headpose = headpose::fromMap($map['Headpose']);
+        }
+        if (isset($map['Integrity'])) {
+            $model->integrity = $map['Integrity'];
+        }
+        if (isset($map['Respirator'])) {
+            $model->respirator = $map['Respirator'];
+        }
+        if (isset($map['Smiling'])) {
+            $model->smiling = smiling::fromMap($map['Smiling']);
+        }
+
+        return $model;
+    }
+}

+ 71 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes/headpose.php

@@ -0,0 +1,71 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo\faceAttributes;
+
+use AlibabaCloud\Tea\Model;
+
+class headpose extends Model
+{
+    /**
+     * @var float
+     */
+    public $pitchAngle;
+
+    /**
+     * @var float
+     */
+    public $rollAngle;
+
+    /**
+     * @var float
+     */
+    public $yawAngle;
+    protected $_name = [
+        'pitchAngle' => 'PitchAngle',
+        'rollAngle'  => 'RollAngle',
+        'yawAngle'   => 'YawAngle',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->pitchAngle) {
+            $res['PitchAngle'] = $this->pitchAngle;
+        }
+        if (null !== $this->rollAngle) {
+            $res['RollAngle'] = $this->rollAngle;
+        }
+        if (null !== $this->yawAngle) {
+            $res['YawAngle'] = $this->yawAngle;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return headpose
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['PitchAngle'])) {
+            $model->pitchAngle = $map['PitchAngle'];
+        }
+        if (isset($map['RollAngle'])) {
+            $model->rollAngle = $map['RollAngle'];
+        }
+        if (isset($map['YawAngle'])) {
+            $model->yawAngle = $map['YawAngle'];
+        }
+
+        return $model;
+    }
+}

+ 59 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceAttributes/smiling.php

@@ -0,0 +1,59 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo\faceAttributes;
+
+use AlibabaCloud\Tea\Model;
+
+class smiling extends Model
+{
+    /**
+     * @var float
+     */
+    public $threshold;
+
+    /**
+     * @var float
+     */
+    public $value;
+    protected $_name = [
+        'threshold' => 'Threshold',
+        'value'     => 'Value',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->threshold) {
+            $res['Threshold'] = $this->threshold;
+        }
+        if (null !== $this->value) {
+            $res['Value'] = $this->value;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return smiling
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Threshold'])) {
+            $model->threshold = $map['Threshold'];
+        }
+        if (isset($map['Value'])) {
+            $model->value = $map['Value'];
+        }
+
+        return $model;
+    }
+}

+ 83 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/DetectFaceAttributesResponseBody/data/faceInfos/faceAttributesDetectInfo/faceRect.php

@@ -0,0 +1,83 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\DetectFaceAttributesResponseBody\data\faceInfos\faceAttributesDetectInfo;
+
+use AlibabaCloud\Tea\Model;
+
+class faceRect extends Model
+{
+    /**
+     * @var int
+     */
+    public $height;
+
+    /**
+     * @var int
+     */
+    public $left;
+
+    /**
+     * @var int
+     */
+    public $top;
+
+    /**
+     * @var int
+     */
+    public $width;
+    protected $_name = [
+        'height' => 'Height',
+        'left'   => 'Left',
+        'top'    => 'Top',
+        'width'  => 'Width',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->height) {
+            $res['Height'] = $this->height;
+        }
+        if (null !== $this->left) {
+            $res['Left'] = $this->left;
+        }
+        if (null !== $this->top) {
+            $res['Top'] = $this->top;
+        }
+        if (null !== $this->width) {
+            $res['Width'] = $this->width;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return faceRect
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Height'])) {
+            $model->height = $map['Height'];
+        }
+        if (isset($map['Left'])) {
+            $model->left = $map['Left'];
+        }
+        if (isset($map['Top'])) {
+            $model->top = $map['Top'];
+        }
+        if (isset($map['Width'])) {
+            $model->width = $map['Width'];
+        }
+
+        return $model;
+    }
+}

+ 132 - 84
vendor/cloudauth-20190307-1.0.2/src/Models/InitFaceVerifyRequest.php

@@ -9,19 +9,29 @@ use AlibabaCloud\Tea\Model;
 class InitFaceVerifyRequest extends Model
 {
     /**
-     * @var int
+     * @var string
      */
-    public $sceneId;
+    public $authId;
 
     /**
      * @var string
      */
-    public $outerOrderNo;
+    public $callbackToken;
 
     /**
      * @var string
      */
-    public $productCode;
+    public $callbackUrl;
+
+    /**
+     * @var string
+     */
+    public $certName;
+
+    /**
+     * @var string
+     */
+    public $certNo;
 
     /**
      * @var string
@@ -31,32 +41,32 @@ class InitFaceVerifyRequest extends Model
     /**
      * @var string
      */
-    public $certName;
+    public $certifyId;
 
     /**
      * @var string
      */
-    public $certNo;
+    public $certifyUrlType;
 
     /**
      * @var string
      */
-    public $returnUrl;
+    public $crop;
 
     /**
      * @var string
      */
-    public $faceContrastPicture;
+    public $encryptType;
 
     /**
      * @var string
      */
-    public $metaInfo;
+    public $faceContrastPicture;
 
     /**
      * @var string
      */
-    public $mobile;
+    public $faceContrastPictureUrl;
 
     /**
      * @var string
@@ -66,17 +76,17 @@ class InitFaceVerifyRequest extends Model
     /**
      * @var string
      */
-    public $userId;
+    public $metaInfo;
 
     /**
      * @var string
      */
-    public $faceContrastPictureUrl;
+    public $mobile;
 
     /**
      * @var string
      */
-    public $certifyId;
+    public $model;
 
     /**
      * @var string
@@ -91,37 +101,51 @@ class InitFaceVerifyRequest extends Model
     /**
      * @var string
      */
-    public $model;
+    public $outerOrderNo;
 
     /**
      * @var string
      */
-    public $callbackUrl;
+    public $productCode;
 
     /**
      * @var string
      */
-    public $callbackToken;
+    public $returnUrl;
+
+    /**
+     * @var int
+     */
+    public $sceneId;
+
+    /**
+     * @var string
+     */
+    public $userId;
     protected $_name = [
-        'sceneId'                => 'SceneId',
-        'outerOrderNo'           => 'OuterOrderNo',
-        'productCode'            => 'ProductCode',
-        'certType'               => 'CertType',
+        'authId'                 => 'AuthId',
+        'callbackToken'          => 'CallbackToken',
+        'callbackUrl'            => 'CallbackUrl',
         'certName'               => 'CertName',
         'certNo'                 => 'CertNo',
-        'returnUrl'              => 'ReturnUrl',
+        'certType'               => 'CertType',
+        'certifyId'              => 'CertifyId',
+        'certifyUrlType'         => 'CertifyUrlType',
+        'crop'                   => 'Crop',
+        'encryptType'            => 'EncryptType',
         'faceContrastPicture'    => 'FaceContrastPicture',
+        'faceContrastPictureUrl' => 'FaceContrastPictureUrl',
+        'ip'                     => 'Ip',
         'metaInfo'               => 'MetaInfo',
         'mobile'                 => 'Mobile',
-        'ip'                     => 'Ip',
-        'userId'                 => 'UserId',
-        'faceContrastPictureUrl' => 'FaceContrastPictureUrl',
-        'certifyId'              => 'CertifyId',
+        'model'                  => 'Model',
         'ossBucketName'          => 'OssBucketName',
         'ossObjectName'          => 'OssObjectName',
-        'model'                  => 'Model',
-        'callbackUrl'            => 'CallbackUrl',
-        'callbackToken'          => 'CallbackToken',
+        'outerOrderNo'           => 'OuterOrderNo',
+        'productCode'            => 'ProductCode',
+        'returnUrl'              => 'ReturnUrl',
+        'sceneId'                => 'SceneId',
+        'userId'                 => 'UserId',
     ];
 
     public function validate()
@@ -131,17 +155,14 @@ class InitFaceVerifyRequest extends Model
     public function toMap()
     {
         $res = [];
-        if (null !== $this->sceneId) {
-            $res['SceneId'] = $this->sceneId;
-        }
-        if (null !== $this->outerOrderNo) {
-            $res['OuterOrderNo'] = $this->outerOrderNo;
+        if (null !== $this->authId) {
+            $res['AuthId'] = $this->authId;
         }
-        if (null !== $this->productCode) {
-            $res['ProductCode'] = $this->productCode;
+        if (null !== $this->callbackToken) {
+            $res['CallbackToken'] = $this->callbackToken;
         }
-        if (null !== $this->certType) {
-            $res['CertType'] = $this->certType;
+        if (null !== $this->callbackUrl) {
+            $res['CallbackUrl'] = $this->callbackUrl;
         }
         if (null !== $this->certName) {
             $res['CertName'] = $this->certName;
@@ -149,29 +170,38 @@ class InitFaceVerifyRequest extends Model
         if (null !== $this->certNo) {
             $res['CertNo'] = $this->certNo;
         }
-        if (null !== $this->returnUrl) {
-            $res['ReturnUrl'] = $this->returnUrl;
+        if (null !== $this->certType) {
+            $res['CertType'] = $this->certType;
+        }
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->certifyUrlType) {
+            $res['CertifyUrlType'] = $this->certifyUrlType;
+        }
+        if (null !== $this->crop) {
+            $res['Crop'] = $this->crop;
+        }
+        if (null !== $this->encryptType) {
+            $res['EncryptType'] = $this->encryptType;
         }
         if (null !== $this->faceContrastPicture) {
             $res['FaceContrastPicture'] = $this->faceContrastPicture;
         }
-        if (null !== $this->metaInfo) {
-            $res['MetaInfo'] = $this->metaInfo;
-        }
-        if (null !== $this->mobile) {
-            $res['Mobile'] = $this->mobile;
+        if (null !== $this->faceContrastPictureUrl) {
+            $res['FaceContrastPictureUrl'] = $this->faceContrastPictureUrl;
         }
         if (null !== $this->ip) {
             $res['Ip'] = $this->ip;
         }
-        if (null !== $this->userId) {
-            $res['UserId'] = $this->userId;
+        if (null !== $this->metaInfo) {
+            $res['MetaInfo'] = $this->metaInfo;
         }
-        if (null !== $this->faceContrastPictureUrl) {
-            $res['FaceContrastPictureUrl'] = $this->faceContrastPictureUrl;
+        if (null !== $this->mobile) {
+            $res['Mobile'] = $this->mobile;
         }
-        if (null !== $this->certifyId) {
-            $res['CertifyId'] = $this->certifyId;
+        if (null !== $this->model) {
+            $res['Model'] = $this->model;
         }
         if (null !== $this->ossBucketName) {
             $res['OssBucketName'] = $this->ossBucketName;
@@ -179,14 +209,20 @@ class InitFaceVerifyRequest extends Model
         if (null !== $this->ossObjectName) {
             $res['OssObjectName'] = $this->ossObjectName;
         }
-        if (null !== $this->model) {
-            $res['Model'] = $this->model;
+        if (null !== $this->outerOrderNo) {
+            $res['OuterOrderNo'] = $this->outerOrderNo;
         }
-        if (null !== $this->callbackUrl) {
-            $res['CallbackUrl'] = $this->callbackUrl;
+        if (null !== $this->productCode) {
+            $res['ProductCode'] = $this->productCode;
         }
-        if (null !== $this->callbackToken) {
-            $res['CallbackToken'] = $this->callbackToken;
+        if (null !== $this->returnUrl) {
+            $res['ReturnUrl'] = $this->returnUrl;
+        }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
+        if (null !== $this->userId) {
+            $res['UserId'] = $this->userId;
         }
 
         return $res;
@@ -200,17 +236,14 @@ class InitFaceVerifyRequest extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['SceneId'])) {
-            $model->sceneId = $map['SceneId'];
-        }
-        if (isset($map['OuterOrderNo'])) {
-            $model->outerOrderNo = $map['OuterOrderNo'];
+        if (isset($map['AuthId'])) {
+            $model->authId = $map['AuthId'];
         }
-        if (isset($map['ProductCode'])) {
-            $model->productCode = $map['ProductCode'];
+        if (isset($map['CallbackToken'])) {
+            $model->callbackToken = $map['CallbackToken'];
         }
-        if (isset($map['CertType'])) {
-            $model->certType = $map['CertType'];
+        if (isset($map['CallbackUrl'])) {
+            $model->callbackUrl = $map['CallbackUrl'];
         }
         if (isset($map['CertName'])) {
             $model->certName = $map['CertName'];
@@ -218,29 +251,38 @@ class InitFaceVerifyRequest extends Model
         if (isset($map['CertNo'])) {
             $model->certNo = $map['CertNo'];
         }
-        if (isset($map['ReturnUrl'])) {
-            $model->returnUrl = $map['ReturnUrl'];
+        if (isset($map['CertType'])) {
+            $model->certType = $map['CertType'];
+        }
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['CertifyUrlType'])) {
+            $model->certifyUrlType = $map['CertifyUrlType'];
+        }
+        if (isset($map['Crop'])) {
+            $model->crop = $map['Crop'];
+        }
+        if (isset($map['EncryptType'])) {
+            $model->encryptType = $map['EncryptType'];
         }
         if (isset($map['FaceContrastPicture'])) {
             $model->faceContrastPicture = $map['FaceContrastPicture'];
         }
-        if (isset($map['MetaInfo'])) {
-            $model->metaInfo = $map['MetaInfo'];
-        }
-        if (isset($map['Mobile'])) {
-            $model->mobile = $map['Mobile'];
+        if (isset($map['FaceContrastPictureUrl'])) {
+            $model->faceContrastPictureUrl = $map['FaceContrastPictureUrl'];
         }
         if (isset($map['Ip'])) {
             $model->ip = $map['Ip'];
         }
-        if (isset($map['UserId'])) {
-            $model->userId = $map['UserId'];
+        if (isset($map['MetaInfo'])) {
+            $model->metaInfo = $map['MetaInfo'];
         }
-        if (isset($map['FaceContrastPictureUrl'])) {
-            $model->faceContrastPictureUrl = $map['FaceContrastPictureUrl'];
+        if (isset($map['Mobile'])) {
+            $model->mobile = $map['Mobile'];
         }
-        if (isset($map['CertifyId'])) {
-            $model->certifyId = $map['CertifyId'];
+        if (isset($map['Model'])) {
+            $model->model = $map['Model'];
         }
         if (isset($map['OssBucketName'])) {
             $model->ossBucketName = $map['OssBucketName'];
@@ -248,14 +290,20 @@ class InitFaceVerifyRequest extends Model
         if (isset($map['OssObjectName'])) {
             $model->ossObjectName = $map['OssObjectName'];
         }
-        if (isset($map['Model'])) {
-            $model->model = $map['Model'];
+        if (isset($map['OuterOrderNo'])) {
+            $model->outerOrderNo = $map['OuterOrderNo'];
         }
-        if (isset($map['CallbackUrl'])) {
-            $model->callbackUrl = $map['CallbackUrl'];
+        if (isset($map['ProductCode'])) {
+            $model->productCode = $map['ProductCode'];
         }
-        if (isset($map['CallbackToken'])) {
-            $model->callbackToken = $map['CallbackToken'];
+        if (isset($map['ReturnUrl'])) {
+            $model->returnUrl = $map['ReturnUrl'];
+        }
+        if (isset($map['SceneId'])) {
+            $model->sceneId = $map['SceneId'];
+        }
+        if (isset($map['UserId'])) {
+            $model->userId = $map['UserId'];
         }
 
         return $model;

+ 24 - 38
vendor/cloudauth-20190307-1.0.2/src/Models/InitFaceVerifyResponse.php

@@ -4,59 +4,48 @@
 
 namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
 
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitFaceVerifyResponse\resultObject;
 use AlibabaCloud\Tea\Model;
 
 class InitFaceVerifyResponse extends Model
 {
     /**
-     * @var string
+     * @var string[]
      */
-    public $requestId;
+    public $headers;
 
     /**
-     * @var string
+     * @var int
      */
-    public $message;
+    public $statusCode;
 
     /**
-     * @var string
+     * @var InitFaceVerifyResponseBody
      */
-    public $code;
-
-    /**
-     * @var resultObject
-     */
-    public $resultObject;
+    public $body;
     protected $_name = [
-        'requestId'    => 'RequestId',
-        'message'      => 'Message',
-        'code'         => 'Code',
-        'resultObject' => 'ResultObject',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('message', $this->message, true);
-        Model::validateRequired('code', $this->code, true);
-        Model::validateRequired('resultObject', $this->resultObject, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->message) {
-            $res['Message'] = $this->message;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
         }
-        if (null !== $this->code) {
-            $res['Code'] = $this->code;
-        }
-        if (null !== $this->resultObject) {
-            $res['ResultObject'] = null !== $this->resultObject ? $this->resultObject->toMap() : null;
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -70,17 +59,14 @@ class InitFaceVerifyResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
-        }
-        if (isset($map['Message'])) {
-            $model->message = $map['Message'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
         }
-        if (isset($map['Code'])) {
-            $model->code = $map['Code'];
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['ResultObject'])) {
-            $model->resultObject = resultObject::fromMap($map['ResultObject']);
+        if (isset($map['body'])) {
+            $model->body = InitFaceVerifyResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 84 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/InitFaceVerifyResponseBody.php

@@ -0,0 +1,84 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitFaceVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class InitFaceVerifyResponseBody extends Model
+{
+    /**
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var resultObject
+     */
+    public $resultObject;
+    protected $_name = [
+        'code'         => 'Code',
+        'message'      => 'Message',
+        'requestId'    => 'RequestId',
+        'resultObject' => 'ResultObject',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->code) {
+            $res['Code'] = $this->code;
+        }
+        if (null !== $this->message) {
+            $res['Message'] = $this->message;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->resultObject) {
+            $res['ResultObject'] = null !== $this->resultObject ? $this->resultObject->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return InitFaceVerifyResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Code'])) {
+            $model->code = $map['Code'];
+        }
+        if (isset($map['Message'])) {
+            $model->message = $map['Message'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['ResultObject'])) {
+            $model->resultObject = resultObject::fromMap($map['ResultObject']);
+        }
+
+        return $model;
+    }
+}

+ 59 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/InitFaceVerifyResponseBody/resultObject.php

@@ -0,0 +1,59 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\InitFaceVerifyResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class resultObject extends Model
+{
+    /**
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @var string
+     */
+    public $certifyUrl;
+    protected $_name = [
+        'certifyId'  => 'CertifyId',
+        'certifyUrl' => 'CertifyUrl',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->certifyUrl) {
+            $res['CertifyUrl'] = $this->certifyUrl;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return resultObject
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['CertifyUrl'])) {
+            $model->certifyUrl = $map['CertifyUrl'];
+        }
+
+        return $model;
+    }
+}

+ 74 - 62
vendor/cloudauth-20190307-1.0.2/src/Models/LivenessFaceVerifyRequest.php

@@ -9,19 +9,19 @@ use AlibabaCloud\Tea\Model;
 class LivenessFaceVerifyRequest extends Model
 {
     /**
-     * @var int
+     * @var string
      */
-    public $sceneId;
+    public $certifyId;
 
     /**
      * @var string
      */
-    public $outerOrderNo;
+    public $crop;
 
     /**
      * @var string
      */
-    public $productCode;
+    public $deviceToken;
 
     /**
      * @var string
@@ -31,61 +31,67 @@ class LivenessFaceVerifyRequest extends Model
     /**
      * @var string
      */
-    public $deviceToken;
+    public $faceContrastPictureUrl;
 
     /**
      * @var string
      */
-    public $mobile;
+    public $ip;
 
     /**
      * @var string
      */
-    public $ip;
+    public $mobile;
 
     /**
      * @var string
      */
-    public $userId;
+    public $model;
 
     /**
      * @var string
      */
-    public $faceContrastPictureUrl;
+    public $ossBucketName;
 
     /**
      * @var string
      */
-    public $certifyId;
+    public $ossObjectName;
 
     /**
      * @var string
      */
-    public $ossBucketName;
+    public $outerOrderNo;
 
     /**
      * @var string
      */
-    public $ossObjectName;
+    public $productCode;
+
+    /**
+     * @var int
+     */
+    public $sceneId;
 
     /**
      * @var string
      */
-    public $model;
+    public $userId;
     protected $_name = [
-        'sceneId'                => 'SceneId',
-        'outerOrderNo'           => 'OuterOrderNo',
-        'productCode'            => 'ProductCode',
-        'faceContrastPicture'    => 'FaceContrastPicture',
+        'certifyId'              => 'CertifyId',
+        'crop'                   => 'Crop',
         'deviceToken'            => 'DeviceToken',
-        'mobile'                 => 'Mobile',
-        'ip'                     => 'Ip',
-        'userId'                 => 'UserId',
+        'faceContrastPicture'    => 'FaceContrastPicture',
         'faceContrastPictureUrl' => 'FaceContrastPictureUrl',
-        'certifyId'              => 'CertifyId',
+        'ip'                     => 'Ip',
+        'mobile'                 => 'Mobile',
+        'model'                  => 'Model',
         'ossBucketName'          => 'OssBucketName',
         'ossObjectName'          => 'OssObjectName',
-        'model'                  => 'Model',
+        'outerOrderNo'           => 'OuterOrderNo',
+        'productCode'            => 'ProductCode',
+        'sceneId'                => 'SceneId',
+        'userId'                 => 'UserId',
     ];
 
     public function validate()
@@ -95,35 +101,29 @@ class LivenessFaceVerifyRequest extends Model
     public function toMap()
     {
         $res = [];
-        if (null !== $this->sceneId) {
-            $res['SceneId'] = $this->sceneId;
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
         }
-        if (null !== $this->outerOrderNo) {
-            $res['OuterOrderNo'] = $this->outerOrderNo;
+        if (null !== $this->crop) {
+            $res['Crop'] = $this->crop;
         }
-        if (null !== $this->productCode) {
-            $res['ProductCode'] = $this->productCode;
+        if (null !== $this->deviceToken) {
+            $res['DeviceToken'] = $this->deviceToken;
         }
         if (null !== $this->faceContrastPicture) {
             $res['FaceContrastPicture'] = $this->faceContrastPicture;
         }
-        if (null !== $this->deviceToken) {
-            $res['DeviceToken'] = $this->deviceToken;
-        }
-        if (null !== $this->mobile) {
-            $res['Mobile'] = $this->mobile;
+        if (null !== $this->faceContrastPictureUrl) {
+            $res['FaceContrastPictureUrl'] = $this->faceContrastPictureUrl;
         }
         if (null !== $this->ip) {
             $res['Ip'] = $this->ip;
         }
-        if (null !== $this->userId) {
-            $res['UserId'] = $this->userId;
-        }
-        if (null !== $this->faceContrastPictureUrl) {
-            $res['FaceContrastPictureUrl'] = $this->faceContrastPictureUrl;
+        if (null !== $this->mobile) {
+            $res['Mobile'] = $this->mobile;
         }
-        if (null !== $this->certifyId) {
-            $res['CertifyId'] = $this->certifyId;
+        if (null !== $this->model) {
+            $res['Model'] = $this->model;
         }
         if (null !== $this->ossBucketName) {
             $res['OssBucketName'] = $this->ossBucketName;
@@ -131,8 +131,17 @@ class LivenessFaceVerifyRequest extends Model
         if (null !== $this->ossObjectName) {
             $res['OssObjectName'] = $this->ossObjectName;
         }
-        if (null !== $this->model) {
-            $res['Model'] = $this->model;
+        if (null !== $this->outerOrderNo) {
+            $res['OuterOrderNo'] = $this->outerOrderNo;
+        }
+        if (null !== $this->productCode) {
+            $res['ProductCode'] = $this->productCode;
+        }
+        if (null !== $this->sceneId) {
+            $res['SceneId'] = $this->sceneId;
+        }
+        if (null !== $this->userId) {
+            $res['UserId'] = $this->userId;
         }
 
         return $res;
@@ -146,35 +155,29 @@ class LivenessFaceVerifyRequest extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['SceneId'])) {
-            $model->sceneId = $map['SceneId'];
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
         }
-        if (isset($map['OuterOrderNo'])) {
-            $model->outerOrderNo = $map['OuterOrderNo'];
+        if (isset($map['Crop'])) {
+            $model->crop = $map['Crop'];
         }
-        if (isset($map['ProductCode'])) {
-            $model->productCode = $map['ProductCode'];
+        if (isset($map['DeviceToken'])) {
+            $model->deviceToken = $map['DeviceToken'];
         }
         if (isset($map['FaceContrastPicture'])) {
             $model->faceContrastPicture = $map['FaceContrastPicture'];
         }
-        if (isset($map['DeviceToken'])) {
-            $model->deviceToken = $map['DeviceToken'];
-        }
-        if (isset($map['Mobile'])) {
-            $model->mobile = $map['Mobile'];
+        if (isset($map['FaceContrastPictureUrl'])) {
+            $model->faceContrastPictureUrl = $map['FaceContrastPictureUrl'];
         }
         if (isset($map['Ip'])) {
             $model->ip = $map['Ip'];
         }
-        if (isset($map['UserId'])) {
-            $model->userId = $map['UserId'];
-        }
-        if (isset($map['FaceContrastPictureUrl'])) {
-            $model->faceContrastPictureUrl = $map['FaceContrastPictureUrl'];
+        if (isset($map['Mobile'])) {
+            $model->mobile = $map['Mobile'];
         }
-        if (isset($map['CertifyId'])) {
-            $model->certifyId = $map['CertifyId'];
+        if (isset($map['Model'])) {
+            $model->model = $map['Model'];
         }
         if (isset($map['OssBucketName'])) {
             $model->ossBucketName = $map['OssBucketName'];
@@ -182,8 +185,17 @@ class LivenessFaceVerifyRequest extends Model
         if (isset($map['OssObjectName'])) {
             $model->ossObjectName = $map['OssObjectName'];
         }
-        if (isset($map['Model'])) {
-            $model->model = $map['Model'];
+        if (isset($map['OuterOrderNo'])) {
+            $model->outerOrderNo = $map['OuterOrderNo'];
+        }
+        if (isset($map['ProductCode'])) {
+            $model->productCode = $map['ProductCode'];
+        }
+        if (isset($map['SceneId'])) {
+            $model->sceneId = $map['SceneId'];
+        }
+        if (isset($map['UserId'])) {
+            $model->userId = $map['UserId'];
         }
 
         return $model;

+ 24 - 38
vendor/cloudauth-20190307-1.0.2/src/Models/LivenessFaceVerifyResponse.php

@@ -4,59 +4,48 @@
 
 namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
 
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\LivenessFaceVerifyResponse\resultObject;
 use AlibabaCloud\Tea\Model;
 
 class LivenessFaceVerifyResponse extends Model
 {
     /**
-     * @var string
+     * @var string[]
      */
-    public $requestId;
+    public $headers;
 
     /**
-     * @var string
+     * @var int
      */
-    public $message;
+    public $statusCode;
 
     /**
-     * @var string
+     * @var LivenessFaceVerifyResponseBody
      */
-    public $code;
-
-    /**
-     * @var resultObject
-     */
-    public $resultObject;
+    public $body;
     protected $_name = [
-        'requestId'    => 'RequestId',
-        'message'      => 'Message',
-        'code'         => 'Code',
-        'resultObject' => 'ResultObject',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('message', $this->message, true);
-        Model::validateRequired('code', $this->code, true);
-        Model::validateRequired('resultObject', $this->resultObject, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->message) {
-            $res['Message'] = $this->message;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
         }
-        if (null !== $this->code) {
-            $res['Code'] = $this->code;
-        }
-        if (null !== $this->resultObject) {
-            $res['ResultObject'] = null !== $this->resultObject ? $this->resultObject->toMap() : null;
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -70,17 +59,14 @@ class LivenessFaceVerifyResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
-        }
-        if (isset($map['Message'])) {
-            $model->message = $map['Message'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
         }
-        if (isset($map['Code'])) {
-            $model->code = $map['Code'];
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['ResultObject'])) {
-            $model->resultObject = resultObject::fromMap($map['ResultObject']);
+        if (isset($map['body'])) {
+            $model->body = LivenessFaceVerifyResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 84 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/LivenessFaceVerifyResponseBody.php

@@ -0,0 +1,84 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\LivenessFaceVerifyResponseBody\resultObject;
+use AlibabaCloud\Tea\Model;
+
+class LivenessFaceVerifyResponseBody extends Model
+{
+    /**
+     * @var string
+     */
+    public $code;
+
+    /**
+     * @var string
+     */
+    public $message;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var resultObject
+     */
+    public $resultObject;
+    protected $_name = [
+        'code'         => 'Code',
+        'message'      => 'Message',
+        'requestId'    => 'RequestId',
+        'resultObject' => 'ResultObject',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->code) {
+            $res['Code'] = $this->code;
+        }
+        if (null !== $this->message) {
+            $res['Message'] = $this->message;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->resultObject) {
+            $res['ResultObject'] = null !== $this->resultObject ? $this->resultObject->toMap() : null;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return LivenessFaceVerifyResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Code'])) {
+            $model->code = $map['Code'];
+        }
+        if (isset($map['Message'])) {
+            $model->message = $map['Message'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['ResultObject'])) {
+            $model->resultObject = resultObject::fromMap($map['ResultObject']);
+        }
+
+        return $model;
+    }
+}

+ 83 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/LivenessFaceVerifyResponseBody/resultObject.php

@@ -0,0 +1,83 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\LivenessFaceVerifyResponseBody;
+
+use AlibabaCloud\Tea\Model;
+
+class resultObject extends Model
+{
+    /**
+     * @var string
+     */
+    public $certifyId;
+
+    /**
+     * @var string
+     */
+    public $materialInfo;
+
+    /**
+     * @var string
+     */
+    public $passed;
+
+    /**
+     * @var string
+     */
+    public $subCode;
+    protected $_name = [
+        'certifyId'    => 'CertifyId',
+        'materialInfo' => 'MaterialInfo',
+        'passed'       => 'Passed',
+        'subCode'      => 'SubCode',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->certifyId) {
+            $res['CertifyId'] = $this->certifyId;
+        }
+        if (null !== $this->materialInfo) {
+            $res['MaterialInfo'] = $this->materialInfo;
+        }
+        if (null !== $this->passed) {
+            $res['Passed'] = $this->passed;
+        }
+        if (null !== $this->subCode) {
+            $res['SubCode'] = $this->subCode;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return resultObject
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['CertifyId'])) {
+            $model->certifyId = $map['CertifyId'];
+        }
+        if (isset($map['MaterialInfo'])) {
+            $model->materialInfo = $map['MaterialInfo'];
+        }
+        if (isset($map['Passed'])) {
+            $model->passed = $map['Passed'];
+        }
+        if (isset($map['SubCode'])) {
+            $model->subCode = $map['SubCode'];
+        }
+
+        return $model;
+    }
+}

+ 19 - 20
vendor/cloudauth-20190307-1.0.2/src/Models/ModifyDeviceInfoRequest.php

@@ -11,58 +11,57 @@ class ModifyDeviceInfoRequest extends Model
     /**
      * @var string
      */
-    public $deviceId;
+    public $bizType;
 
     /**
      * @var string
      */
-    public $userDeviceId;
+    public $deviceId;
 
     /**
      * @var string
      */
-    public $bizType;
+    public $duration;
 
     /**
      * @var string
      */
-    public $duration;
+    public $expiredDay;
 
     /**
      * @var string
      */
-    public $expiredDay;
+    public $userDeviceId;
     protected $_name = [
-        'deviceId'     => 'DeviceId',
-        'userDeviceId' => 'UserDeviceId',
         'bizType'      => 'BizType',
+        'deviceId'     => 'DeviceId',
         'duration'     => 'Duration',
         'expiredDay'   => 'ExpiredDay',
+        'userDeviceId' => 'UserDeviceId',
     ];
 
     public function validate()
     {
-        Model::validateRequired('deviceId', $this->deviceId, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->deviceId) {
-            $res['DeviceId'] = $this->deviceId;
-        }
-        if (null !== $this->userDeviceId) {
-            $res['UserDeviceId'] = $this->userDeviceId;
-        }
         if (null !== $this->bizType) {
             $res['BizType'] = $this->bizType;
         }
+        if (null !== $this->deviceId) {
+            $res['DeviceId'] = $this->deviceId;
+        }
         if (null !== $this->duration) {
             $res['Duration'] = $this->duration;
         }
         if (null !== $this->expiredDay) {
             $res['ExpiredDay'] = $this->expiredDay;
         }
+        if (null !== $this->userDeviceId) {
+            $res['UserDeviceId'] = $this->userDeviceId;
+        }
 
         return $res;
     }
@@ -75,21 +74,21 @@ class ModifyDeviceInfoRequest extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['DeviceId'])) {
-            $model->deviceId = $map['DeviceId'];
-        }
-        if (isset($map['UserDeviceId'])) {
-            $model->userDeviceId = $map['UserDeviceId'];
-        }
         if (isset($map['BizType'])) {
             $model->bizType = $map['BizType'];
         }
+        if (isset($map['DeviceId'])) {
+            $model->deviceId = $map['DeviceId'];
+        }
         if (isset($map['Duration'])) {
             $model->duration = $map['Duration'];
         }
         if (isset($map['ExpiredDay'])) {
             $model->expiredDay = $map['ExpiredDay'];
         }
+        if (isset($map['UserDeviceId'])) {
+            $model->userDeviceId = $map['UserDeviceId'];
+        }
 
         return $model;
     }

+ 24 - 63
vendor/cloudauth-20190307-1.0.2/src/Models/ModifyDeviceInfoResponse.php

@@ -9,73 +9,43 @@ use AlibabaCloud\Tea\Model;
 class ModifyDeviceInfoResponse extends Model
 {
     /**
-     * @var string
+     * @var string[]
      */
-    public $requestId;
+    public $headers;
 
     /**
-     * @var string
+     * @var int
      */
-    public $deviceId;
+    public $statusCode;
 
     /**
-     * @var string
+     * @var ModifyDeviceInfoResponseBody
      */
-    public $userDeviceId;
-
-    /**
-     * @var string
-     */
-    public $bizType;
-
-    /**
-     * @var string
-     */
-    public $beginDay;
-
-    /**
-     * @var string
-     */
-    public $expiredDay;
+    public $body;
     protected $_name = [
-        'requestId'    => 'RequestId',
-        'deviceId'     => 'DeviceId',
-        'userDeviceId' => 'UserDeviceId',
-        'bizType'      => 'BizType',
-        'beginDay'     => 'BeginDay',
-        'expiredDay'   => 'ExpiredDay',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('deviceId', $this->deviceId, true);
-        Model::validateRequired('userDeviceId', $this->userDeviceId, true);
-        Model::validateRequired('bizType', $this->bizType, true);
-        Model::validateRequired('beginDay', $this->beginDay, true);
-        Model::validateRequired('expiredDay', $this->expiredDay, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
-        }
-        if (null !== $this->deviceId) {
-            $res['DeviceId'] = $this->deviceId;
-        }
-        if (null !== $this->userDeviceId) {
-            $res['UserDeviceId'] = $this->userDeviceId;
-        }
-        if (null !== $this->bizType) {
-            $res['BizType'] = $this->bizType;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->beginDay) {
-            $res['BeginDay'] = $this->beginDay;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
         }
-        if (null !== $this->expiredDay) {
-            $res['ExpiredDay'] = $this->expiredDay;
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -89,23 +59,14 @@ class ModifyDeviceInfoResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
-        }
-        if (isset($map['DeviceId'])) {
-            $model->deviceId = $map['DeviceId'];
-        }
-        if (isset($map['UserDeviceId'])) {
-            $model->userDeviceId = $map['UserDeviceId'];
-        }
-        if (isset($map['BizType'])) {
-            $model->bizType = $map['BizType'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
         }
-        if (isset($map['BeginDay'])) {
-            $model->beginDay = $map['BeginDay'];
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['ExpiredDay'])) {
-            $model->expiredDay = $map['ExpiredDay'];
+        if (isset($map['body'])) {
+            $model->body = ModifyDeviceInfoResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 107 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/ModifyDeviceInfoResponseBody.php

@@ -0,0 +1,107 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class ModifyDeviceInfoResponseBody extends Model
+{
+    /**
+     * @var string
+     */
+    public $beginDay;
+
+    /**
+     * @var string
+     */
+    public $bizType;
+
+    /**
+     * @var string
+     */
+    public $deviceId;
+
+    /**
+     * @var string
+     */
+    public $expiredDay;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var string
+     */
+    public $userDeviceId;
+    protected $_name = [
+        'beginDay'     => 'BeginDay',
+        'bizType'      => 'BizType',
+        'deviceId'     => 'DeviceId',
+        'expiredDay'   => 'ExpiredDay',
+        'requestId'    => 'RequestId',
+        'userDeviceId' => 'UserDeviceId',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->beginDay) {
+            $res['BeginDay'] = $this->beginDay;
+        }
+        if (null !== $this->bizType) {
+            $res['BizType'] = $this->bizType;
+        }
+        if (null !== $this->deviceId) {
+            $res['DeviceId'] = $this->deviceId;
+        }
+        if (null !== $this->expiredDay) {
+            $res['ExpiredDay'] = $this->expiredDay;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->userDeviceId) {
+            $res['UserDeviceId'] = $this->userDeviceId;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return ModifyDeviceInfoResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['BeginDay'])) {
+            $model->beginDay = $map['BeginDay'];
+        }
+        if (isset($map['BizType'])) {
+            $model->bizType = $map['BizType'];
+        }
+        if (isset($map['DeviceId'])) {
+            $model->deviceId = $map['DeviceId'];
+        }
+        if (isset($map['ExpiredDay'])) {
+            $model->expiredDay = $map['ExpiredDay'];
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['UserDeviceId'])) {
+            $model->userDeviceId = $map['UserDeviceId'];
+        }
+
+        return $model;
+    }
+}

+ 33 - 38
vendor/cloudauth-20190307-1.0.2/src/Models/VerifyMaterialRequest.php

@@ -11,27 +11,27 @@ class VerifyMaterialRequest extends Model
     /**
      * @var string
      */
-    public $idCardBackImageUrl;
+    public $bizId;
 
     /**
      * @var string
      */
-    public $faceImageUrl;
+    public $bizType;
 
     /**
      * @var string
      */
-    public $bizType;
+    public $faceImageUrl;
 
     /**
      * @var string
      */
-    public $bizId;
+    public $idCardBackImageUrl;
 
     /**
      * @var string
      */
-    public $name;
+    public $idCardFrontImageUrl;
 
     /**
      * @var string
@@ -41,55 +41,50 @@ class VerifyMaterialRequest extends Model
     /**
      * @var string
      */
-    public $idCardFrontImageUrl;
+    public $name;
 
     /**
      * @var string
      */
     public $userId;
     protected $_name = [
-        'idCardBackImageUrl'  => 'IdCardBackImageUrl',
-        'faceImageUrl'        => 'FaceImageUrl',
-        'bizType'             => 'BizType',
         'bizId'               => 'BizId',
-        'name'                => 'Name',
-        'idCardNumber'        => 'IdCardNumber',
+        'bizType'             => 'BizType',
+        'faceImageUrl'        => 'FaceImageUrl',
+        'idCardBackImageUrl'  => 'IdCardBackImageUrl',
         'idCardFrontImageUrl' => 'IdCardFrontImageUrl',
+        'idCardNumber'        => 'IdCardNumber',
+        'name'                => 'Name',
         'userId'              => 'UserId',
     ];
 
     public function validate()
     {
-        Model::validateRequired('faceImageUrl', $this->faceImageUrl, true);
-        Model::validateRequired('bizType', $this->bizType, true);
-        Model::validateRequired('bizId', $this->bizId, true);
-        Model::validateRequired('name', $this->name, true);
-        Model::validateRequired('idCardNumber', $this->idCardNumber, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->idCardBackImageUrl) {
-            $res['IdCardBackImageUrl'] = $this->idCardBackImageUrl;
-        }
-        if (null !== $this->faceImageUrl) {
-            $res['FaceImageUrl'] = $this->faceImageUrl;
+        if (null !== $this->bizId) {
+            $res['BizId'] = $this->bizId;
         }
         if (null !== $this->bizType) {
             $res['BizType'] = $this->bizType;
         }
-        if (null !== $this->bizId) {
-            $res['BizId'] = $this->bizId;
+        if (null !== $this->faceImageUrl) {
+            $res['FaceImageUrl'] = $this->faceImageUrl;
         }
-        if (null !== $this->name) {
-            $res['Name'] = $this->name;
+        if (null !== $this->idCardBackImageUrl) {
+            $res['IdCardBackImageUrl'] = $this->idCardBackImageUrl;
+        }
+        if (null !== $this->idCardFrontImageUrl) {
+            $res['IdCardFrontImageUrl'] = $this->idCardFrontImageUrl;
         }
         if (null !== $this->idCardNumber) {
             $res['IdCardNumber'] = $this->idCardNumber;
         }
-        if (null !== $this->idCardFrontImageUrl) {
-            $res['IdCardFrontImageUrl'] = $this->idCardFrontImageUrl;
+        if (null !== $this->name) {
+            $res['Name'] = $this->name;
         }
         if (null !== $this->userId) {
             $res['UserId'] = $this->userId;
@@ -106,26 +101,26 @@ class VerifyMaterialRequest extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['IdCardBackImageUrl'])) {
-            $model->idCardBackImageUrl = $map['IdCardBackImageUrl'];
-        }
-        if (isset($map['FaceImageUrl'])) {
-            $model->faceImageUrl = $map['FaceImageUrl'];
+        if (isset($map['BizId'])) {
+            $model->bizId = $map['BizId'];
         }
         if (isset($map['BizType'])) {
             $model->bizType = $map['BizType'];
         }
-        if (isset($map['BizId'])) {
-            $model->bizId = $map['BizId'];
+        if (isset($map['FaceImageUrl'])) {
+            $model->faceImageUrl = $map['FaceImageUrl'];
         }
-        if (isset($map['Name'])) {
-            $model->name = $map['Name'];
+        if (isset($map['IdCardBackImageUrl'])) {
+            $model->idCardBackImageUrl = $map['IdCardBackImageUrl'];
+        }
+        if (isset($map['IdCardFrontImageUrl'])) {
+            $model->idCardFrontImageUrl = $map['IdCardFrontImageUrl'];
         }
         if (isset($map['IdCardNumber'])) {
             $model->idCardNumber = $map['IdCardNumber'];
         }
-        if (isset($map['IdCardFrontImageUrl'])) {
-            $model->idCardFrontImageUrl = $map['IdCardFrontImageUrl'];
+        if (isset($map['Name'])) {
+            $model->name = $map['Name'];
         }
         if (isset($map['UserId'])) {
             $model->userId = $map['UserId'];

+ 23 - 63
vendor/cloudauth-20190307-1.0.2/src/Models/VerifyMaterialResponse.php

@@ -4,79 +4,48 @@
 
 namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
 
-use AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyMaterialResponse\material;
 use AlibabaCloud\Tea\Model;
 
 class VerifyMaterialResponse extends Model
 {
     /**
-     * @var string
+     * @var string[]
      */
-    public $requestId;
-
-    /**
-     * @var string
-     */
-    public $verifyToken;
+    public $headers;
 
     /**
      * @var int
      */
-    public $verifyStatus;
-
-    /**
-     * @var float
-     */
-    public $authorityComparisionScore;
+    public $statusCode;
 
     /**
-     * @var float
+     * @var VerifyMaterialResponseBody
      */
-    public $idCardFaceComparisonScore;
-
-    /**
-     * @var material
-     */
-    public $material;
+    public $body;
     protected $_name = [
-        'requestId'                 => 'RequestId',
-        'verifyToken'               => 'VerifyToken',
-        'verifyStatus'              => 'VerifyStatus',
-        'authorityComparisionScore' => 'AuthorityComparisionScore',
-        'idCardFaceComparisonScore' => 'IdCardFaceComparisonScore',
-        'material'                  => 'Material',
+        'headers'    => 'headers',
+        'statusCode' => 'statusCode',
+        'body'       => 'body',
     ];
 
     public function validate()
     {
-        Model::validateRequired('requestId', $this->requestId, true);
-        Model::validateRequired('verifyToken', $this->verifyToken, true);
-        Model::validateRequired('verifyStatus', $this->verifyStatus, true);
-        Model::validateRequired('authorityComparisionScore', $this->authorityComparisionScore, true);
-        Model::validateRequired('idCardFaceComparisonScore', $this->idCardFaceComparisonScore, true);
-        Model::validateRequired('material', $this->material, true);
+        Model::validateRequired('headers', $this->headers, true);
+        Model::validateRequired('statusCode', $this->statusCode, true);
+        Model::validateRequired('body', $this->body, true);
     }
 
     public function toMap()
     {
         $res = [];
-        if (null !== $this->requestId) {
-            $res['RequestId'] = $this->requestId;
-        }
-        if (null !== $this->verifyToken) {
-            $res['VerifyToken'] = $this->verifyToken;
-        }
-        if (null !== $this->verifyStatus) {
-            $res['VerifyStatus'] = $this->verifyStatus;
-        }
-        if (null !== $this->authorityComparisionScore) {
-            $res['AuthorityComparisionScore'] = $this->authorityComparisionScore;
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
         }
-        if (null !== $this->idCardFaceComparisonScore) {
-            $res['IdCardFaceComparisonScore'] = $this->idCardFaceComparisonScore;
+        if (null !== $this->statusCode) {
+            $res['statusCode'] = $this->statusCode;
         }
-        if (null !== $this->material) {
-            $res['Material'] = null !== $this->material ? $this->material->toMap() : null;
+        if (null !== $this->body) {
+            $res['body'] = null !== $this->body ? $this->body->toMap() : null;
         }
 
         return $res;
@@ -90,23 +59,14 @@ class VerifyMaterialResponse extends Model
     public static function fromMap($map = [])
     {
         $model = new self();
-        if (isset($map['RequestId'])) {
-            $model->requestId = $map['RequestId'];
-        }
-        if (isset($map['VerifyToken'])) {
-            $model->verifyToken = $map['VerifyToken'];
-        }
-        if (isset($map['VerifyStatus'])) {
-            $model->verifyStatus = $map['VerifyStatus'];
-        }
-        if (isset($map['AuthorityComparisionScore'])) {
-            $model->authorityComparisionScore = $map['AuthorityComparisionScore'];
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
         }
-        if (isset($map['IdCardFaceComparisonScore'])) {
-            $model->idCardFaceComparisonScore = $map['IdCardFaceComparisonScore'];
+        if (isset($map['statusCode'])) {
+            $model->statusCode = $map['statusCode'];
         }
-        if (isset($map['Material'])) {
-            $model->material = material::fromMap($map['Material']);
+        if (isset($map['body'])) {
+            $model->body = VerifyMaterialResponseBody::fromMap($map['body']);
         }
 
         return $model;

+ 108 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/VerifyMaterialResponseBody.php

@@ -0,0 +1,108 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyMaterialResponseBody\material;
+use AlibabaCloud\Tea\Model;
+
+class VerifyMaterialResponseBody extends Model
+{
+    /**
+     * @var float
+     */
+    public $authorityComparisionScore;
+
+    /**
+     * @var float
+     */
+    public $idCardFaceComparisonScore;
+
+    /**
+     * @var material
+     */
+    public $material;
+
+    /**
+     * @var string
+     */
+    public $requestId;
+
+    /**
+     * @var int
+     */
+    public $verifyStatus;
+
+    /**
+     * @var string
+     */
+    public $verifyToken;
+    protected $_name = [
+        'authorityComparisionScore' => 'AuthorityComparisionScore',
+        'idCardFaceComparisonScore' => 'IdCardFaceComparisonScore',
+        'material'                  => 'Material',
+        'requestId'                 => 'RequestId',
+        'verifyStatus'              => 'VerifyStatus',
+        'verifyToken'               => 'VerifyToken',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->authorityComparisionScore) {
+            $res['AuthorityComparisionScore'] = $this->authorityComparisionScore;
+        }
+        if (null !== $this->idCardFaceComparisonScore) {
+            $res['IdCardFaceComparisonScore'] = $this->idCardFaceComparisonScore;
+        }
+        if (null !== $this->material) {
+            $res['Material'] = null !== $this->material ? $this->material->toMap() : null;
+        }
+        if (null !== $this->requestId) {
+            $res['RequestId'] = $this->requestId;
+        }
+        if (null !== $this->verifyStatus) {
+            $res['VerifyStatus'] = $this->verifyStatus;
+        }
+        if (null !== $this->verifyToken) {
+            $res['VerifyToken'] = $this->verifyToken;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return VerifyMaterialResponseBody
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['AuthorityComparisionScore'])) {
+            $model->authorityComparisionScore = $map['AuthorityComparisionScore'];
+        }
+        if (isset($map['IdCardFaceComparisonScore'])) {
+            $model->idCardFaceComparisonScore = $map['IdCardFaceComparisonScore'];
+        }
+        if (isset($map['Material'])) {
+            $model->material = material::fromMap($map['Material']);
+        }
+        if (isset($map['RequestId'])) {
+            $model->requestId = $map['RequestId'];
+        }
+        if (isset($map['VerifyStatus'])) {
+            $model->verifyStatus = $map['VerifyStatus'];
+        }
+        if (isset($map['VerifyToken'])) {
+            $model->verifyToken = $map['VerifyToken'];
+        }
+
+        return $model;
+    }
+}

+ 120 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/VerifyMaterialResponseBody/material.php

@@ -0,0 +1,120 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyMaterialResponseBody;
+
+use AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyMaterialResponseBody\material\idCardInfo;
+use AlibabaCloud\Tea\Model;
+
+class material extends Model
+{
+    /**
+     * @var string
+     */
+    public $faceGlobalUrl;
+
+    /**
+     * @var string
+     */
+    public $faceImageUrl;
+
+    /**
+     * @var string
+     */
+    public $faceMask;
+
+    /**
+     * @var string
+     */
+    public $faceQuality;
+
+    /**
+     * @var idCardInfo
+     */
+    public $idCardInfo;
+
+    /**
+     * @var string
+     */
+    public $idCardName;
+
+    /**
+     * @var string
+     */
+    public $idCardNumber;
+    protected $_name = [
+        'faceGlobalUrl' => 'FaceGlobalUrl',
+        'faceImageUrl'  => 'FaceImageUrl',
+        'faceMask'      => 'FaceMask',
+        'faceQuality'   => 'FaceQuality',
+        'idCardInfo'    => 'IdCardInfo',
+        'idCardName'    => 'IdCardName',
+        'idCardNumber'  => 'IdCardNumber',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->faceGlobalUrl) {
+            $res['FaceGlobalUrl'] = $this->faceGlobalUrl;
+        }
+        if (null !== $this->faceImageUrl) {
+            $res['FaceImageUrl'] = $this->faceImageUrl;
+        }
+        if (null !== $this->faceMask) {
+            $res['FaceMask'] = $this->faceMask;
+        }
+        if (null !== $this->faceQuality) {
+            $res['FaceQuality'] = $this->faceQuality;
+        }
+        if (null !== $this->idCardInfo) {
+            $res['IdCardInfo'] = null !== $this->idCardInfo ? $this->idCardInfo->toMap() : null;
+        }
+        if (null !== $this->idCardName) {
+            $res['IdCardName'] = $this->idCardName;
+        }
+        if (null !== $this->idCardNumber) {
+            $res['IdCardNumber'] = $this->idCardNumber;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return material
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['FaceGlobalUrl'])) {
+            $model->faceGlobalUrl = $map['FaceGlobalUrl'];
+        }
+        if (isset($map['FaceImageUrl'])) {
+            $model->faceImageUrl = $map['FaceImageUrl'];
+        }
+        if (isset($map['FaceMask'])) {
+            $model->faceMask = $map['FaceMask'];
+        }
+        if (isset($map['FaceQuality'])) {
+            $model->faceQuality = $map['FaceQuality'];
+        }
+        if (isset($map['IdCardInfo'])) {
+            $model->idCardInfo = idCardInfo::fromMap($map['IdCardInfo']);
+        }
+        if (isset($map['IdCardName'])) {
+            $model->idCardName = $map['IdCardName'];
+        }
+        if (isset($map['IdCardNumber'])) {
+            $model->idCardNumber = $map['IdCardNumber'];
+        }
+
+        return $model;
+    }
+}

+ 155 - 0
vendor/cloudauth-20190307-1.0.2/src/Models/VerifyMaterialResponseBody/material/idCardInfo.php

@@ -0,0 +1,155 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace AlibabaCloud\SDK\Cloudauth\V20190307\Models\VerifyMaterialResponseBody\material;
+
+use AlibabaCloud\Tea\Model;
+
+class idCardInfo extends Model
+{
+    /**
+     * @var string
+     */
+    public $address;
+
+    /**
+     * @var string
+     */
+    public $authority;
+
+    /**
+     * @var string
+     */
+    public $backImageUrl;
+
+    /**
+     * @var string
+     */
+    public $birth;
+
+    /**
+     * @var string
+     */
+    public $endDate;
+
+    /**
+     * @var string
+     */
+    public $frontImageUrl;
+
+    /**
+     * @var string
+     */
+    public $name;
+
+    /**
+     * @var string
+     */
+    public $nationality;
+
+    /**
+     * @var string
+     */
+    public $number;
+
+    /**
+     * @var string
+     */
+    public $startDate;
+    protected $_name = [
+        'address'       => 'Address',
+        'authority'     => 'Authority',
+        'backImageUrl'  => 'BackImageUrl',
+        'birth'         => 'Birth',
+        'endDate'       => 'EndDate',
+        'frontImageUrl' => 'FrontImageUrl',
+        'name'          => 'Name',
+        'nationality'   => 'Nationality',
+        'number'        => 'Number',
+        'startDate'     => 'StartDate',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->address) {
+            $res['Address'] = $this->address;
+        }
+        if (null !== $this->authority) {
+            $res['Authority'] = $this->authority;
+        }
+        if (null !== $this->backImageUrl) {
+            $res['BackImageUrl'] = $this->backImageUrl;
+        }
+        if (null !== $this->birth) {
+            $res['Birth'] = $this->birth;
+        }
+        if (null !== $this->endDate) {
+            $res['EndDate'] = $this->endDate;
+        }
+        if (null !== $this->frontImageUrl) {
+            $res['FrontImageUrl'] = $this->frontImageUrl;
+        }
+        if (null !== $this->name) {
+            $res['Name'] = $this->name;
+        }
+        if (null !== $this->nationality) {
+            $res['Nationality'] = $this->nationality;
+        }
+        if (null !== $this->number) {
+            $res['Number'] = $this->number;
+        }
+        if (null !== $this->startDate) {
+            $res['StartDate'] = $this->startDate;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return idCardInfo
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['Address'])) {
+            $model->address = $map['Address'];
+        }
+        if (isset($map['Authority'])) {
+            $model->authority = $map['Authority'];
+        }
+        if (isset($map['BackImageUrl'])) {
+            $model->backImageUrl = $map['BackImageUrl'];
+        }
+        if (isset($map['Birth'])) {
+            $model->birth = $map['Birth'];
+        }
+        if (isset($map['EndDate'])) {
+            $model->endDate = $map['EndDate'];
+        }
+        if (isset($map['FrontImageUrl'])) {
+            $model->frontImageUrl = $map['FrontImageUrl'];
+        }
+        if (isset($map['Name'])) {
+            $model->name = $map['Name'];
+        }
+        if (isset($map['Nationality'])) {
+            $model->nationality = $map['Nationality'];
+        }
+        if (isset($map['Number'])) {
+            $model->number = $map['Number'];
+        }
+        if (isset($map['StartDate'])) {
+            $model->startDate = $map['StartDate'];
+        }
+
+        return $model;
+    }
+}

+ 15 - 0
vendor/darabonba-openapi/.gitignore

@@ -0,0 +1,15 @@
+composer.phar
+/vendor/
+
+# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
+# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
+composer.lock
+
+.vscode/
+.idea
+.DS_Store
+
+cache/
+*.cache
+runtime/
+.php_cs.cache

+ 65 - 0
vendor/darabonba-openapi/.php_cs.dist

@@ -0,0 +1,65 @@
+<?php
+/*
+ * This document has been generated with
+ * https://mlocati.github.io/php-cs-fixer-configurator/#version:2.15|configurator
+ * you can change this configuration by importing this file.
+ */
+
+return PhpCsFixer\Config::create()
+    ->setRiskyAllowed(true)
+    ->setIndent('    ')
+    ->setRules([
+        '@PSR2'                                       => true,
+        '@PhpCsFixer'                                 => true,
+        '@Symfony:risky'                              => true,
+        'concat_space'                                => ['spacing' => 'one'],
+        'array_syntax'                                => ['syntax' => 'short'],
+        'array_indentation'                           => true,
+        'combine_consecutive_unsets'                  => true,
+        'method_separation'                           => true,
+        'single_quote'                                => true,
+        'declare_equal_normalize'                     => true,
+        'function_typehint_space'                     => true,
+        'hash_to_slash_comment'                       => true,
+        'include'                                     => true,
+        'lowercase_cast'                              => true,
+        'no_multiline_whitespace_before_semicolons'   => true,
+        'no_leading_import_slash'                     => true,
+        'no_multiline_whitespace_around_double_arrow' => true,
+        'no_spaces_around_offset'                     => true,
+        'no_unneeded_control_parentheses'             => true,
+        'no_unused_imports'                           => true,
+        'no_whitespace_before_comma_in_array'         => true,
+        'no_whitespace_in_blank_line'                 => true,
+        'object_operator_without_whitespace'          => true,
+        'single_blank_line_before_namespace'          => true,
+        'single_class_element_per_statement'          => true,
+        'space_after_semicolon'                       => true,
+        'standardize_not_equals'                      => true,
+        'ternary_operator_spaces'                     => true,
+        'trailing_comma_in_multiline_array'           => true,
+        'trim_array_spaces'                           => true,
+        'unary_operator_spaces'                       => true,
+        'whitespace_after_comma_in_array'             => true,
+        'no_extra_consecutive_blank_lines'            => [
+            'curly_brace_block',
+            'extra',
+            'parenthesis_brace_block',
+            'square_brace_block',
+            'throw',
+            'use',
+        ],
+        'binary_operator_spaces'       => [
+            'align_double_arrow' => true,
+            'align_equals'       => true,
+        ],
+        'braces'                                    => [
+            'allow_single_line_closure' => true,
+        ],
+    ])
+    ->setFinder(
+        PhpCsFixer\Finder::create()
+            ->exclude('vendor')
+            ->exclude('tests')
+            ->in(__DIR__)
+  );

+ 31 - 0
vendor/darabonba-openapi/README-CN.md

@@ -0,0 +1,31 @@
+[English](README.md) | 简体中文
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+## Alibaba Cloud OpenApi Client
+
+## 安装
+
+### Composer
+
+```bash
+composer require alibabacloud/darabonba-openapi
+```
+
+## 问题
+
+[提交 Issue](https://github.com/aliyun/darabonba-openapi/issues/new),不符合指南的问题可能会立即关闭。
+
+## 发行说明
+
+每个版本的详细更改记录在[发行说明](./ChangeLog.txt)中。
+
+## 相关
+
+* [最新源码](https://github.com/aliyun/darabonba-openapi)
+
+## 许可证
+
+[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.

+ 31 - 0
vendor/darabonba-openapi/README.md

@@ -0,0 +1,31 @@
+English | [简体中文](README-CN.md)
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+## Alibaba Cloud OpenApi Client
+
+## Installation
+
+### Composer
+
+```bash
+composer require alibabacloud/darabonba-openapi
+```
+
+## Issues
+
+[Opening an Issue](https://github.com/aliyun/darabonba-openapi/issues/new), Issues not conforming to the guidelines may be closed immediately.
+
+## Changelog
+
+Detailed changes for each release are documented in the [release notes](./ChangeLog.txt).
+
+## References
+
+* [Latest Release](https://github.com/aliyun/darabonba-openapi)
+
+## License
+
+[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.

+ 15 - 0
vendor/darabonba-openapi/autoload.php

@@ -0,0 +1,15 @@
+<?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('Darabonba\\OpenApi\\', '', $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;
+});

+ 33 - 0
vendor/darabonba-openapi/composer.json

@@ -0,0 +1,33 @@
+{
+  "name": "alibabacloud/darabonba-openapi",
+  "description": "Alibaba Cloud OpenApi Client",
+  "type": "library",
+  "license": "Apache-2.0",
+  "authors": [
+    {
+      "name": "Alibaba Cloud SDK",
+      "email": "sdk-team@alibabacloud.com"
+    }
+  ],
+  "require": {
+    "php": ">5.5",
+    "alibabacloud/tea-utils": "^0.2.0",
+    "alibabacloud/credentials": "^1.1",
+    "alibabacloud/openapi-util": "^0.1.10",
+    "alibabacloud/gateway-spi": "^0.0.1"
+  },
+  "autoload": {
+    "psr-4": {
+      "Darabonba\\OpenApi\\": "src"
+    }
+  },
+  "scripts": {
+    "fixer": "php-cs-fixer fix ./"
+  },
+  "config": {
+    "sort-packages": true,
+    "preferred-install": "dist",
+    "optimize-autoloader": true
+  },
+  "prefer-stable": true
+}

+ 420 - 0
vendor/darabonba-openapi/src/Models/Config.php

@@ -0,0 +1,420 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace Darabonba\OpenApi\Models;
+
+use AlibabaCloud\Credentials\Credential;
+use AlibabaCloud\Tea\Model;
+
+/**
+ * Model for initing client.
+ */
+class Config extends Model
+{
+    protected $_default = [
+        'accessKeyId' => '',
+        'accessKeySecret' => '',
+        'securityToken' => '',
+        'protocol' => 'http',
+        'method' => '',
+        'regionId' => '',
+        'readTimeout' => '',
+        'connectTimeout' => '',
+        'httpProxy' => '',
+        'httpsProxy' => '',
+        'credential' => '',
+        'endpoint' => '',
+        'noProxy' => '',
+        'maxIdleConns' => '',
+        'network' => '',
+        'userAgent' => '',
+        'suffix' => '',
+        'socks5Proxy' => '',
+        'socks5NetWork' => '',
+        'endpointType' => '',
+        'openPlatformEndpoint' => '',
+        'type' => '',
+        'signatureVersion' => '',
+        'signatureAlgorithm' => '',
+    ];
+
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->accessKeyId) {
+            $res['accessKeyId'] = $this->accessKeyId;
+        }
+        if (null !== $this->accessKeySecret) {
+            $res['accessKeySecret'] = $this->accessKeySecret;
+        }
+        if (null !== $this->securityToken) {
+            $res['securityToken'] = $this->securityToken;
+        }
+        if (null !== $this->protocol) {
+            $res['protocol'] = $this->protocol;
+        }
+        if (null !== $this->method) {
+            $res['method'] = $this->method;
+        }
+        if (null !== $this->regionId) {
+            $res['regionId'] = $this->regionId;
+        }
+        if (null !== $this->readTimeout) {
+            $res['readTimeout'] = $this->readTimeout;
+        }
+        if (null !== $this->connectTimeout) {
+            $res['connectTimeout'] = $this->connectTimeout;
+        }
+        if (null !== $this->httpProxy) {
+            $res['httpProxy'] = $this->httpProxy;
+        }
+        if (null !== $this->httpsProxy) {
+            $res['httpsProxy'] = $this->httpsProxy;
+        }
+        if (null !== $this->credential) {
+            $res['credential'] = null !== $this->credential ? $this->credential->toMap() : null;
+        }
+        if (null !== $this->endpoint) {
+            $res['endpoint'] = $this->endpoint;
+        }
+        if (null !== $this->noProxy) {
+            $res['noProxy'] = $this->noProxy;
+        }
+        if (null !== $this->maxIdleConns) {
+            $res['maxIdleConns'] = $this->maxIdleConns;
+        }
+        if (null !== $this->network) {
+            $res['network'] = $this->network;
+        }
+        if (null !== $this->userAgent) {
+            $res['userAgent'] = $this->userAgent;
+        }
+        if (null !== $this->suffix) {
+            $res['suffix'] = $this->suffix;
+        }
+        if (null !== $this->socks5Proxy) {
+            $res['socks5Proxy'] = $this->socks5Proxy;
+        }
+        if (null !== $this->socks5NetWork) {
+            $res['socks5NetWork'] = $this->socks5NetWork;
+        }
+        if (null !== $this->endpointType) {
+            $res['endpointType'] = $this->endpointType;
+        }
+        if (null !== $this->openPlatformEndpoint) {
+            $res['openPlatformEndpoint'] = $this->openPlatformEndpoint;
+        }
+        if (null !== $this->type) {
+            $res['type'] = $this->type;
+        }
+        if (null !== $this->signatureVersion) {
+            $res['signatureVersion'] = $this->signatureVersion;
+        }
+        if (null !== $this->signatureAlgorithm) {
+            $res['signatureAlgorithm'] = $this->signatureAlgorithm;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return Config
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['accessKeyId'])) {
+            $model->accessKeyId = $map['accessKeyId'];
+        }
+        if (isset($map['accessKeySecret'])) {
+            $model->accessKeySecret = $map['accessKeySecret'];
+        }
+        if (isset($map['securityToken'])) {
+            $model->securityToken = $map['securityToken'];
+        }
+        if (isset($map['protocol'])) {
+            $model->protocol = $map['protocol'];
+        }
+        if (isset($map['method'])) {
+            $model->method = $map['method'];
+        }
+        if (isset($map['regionId'])) {
+            $model->regionId = $map['regionId'];
+        }
+        if (isset($map['readTimeout'])) {
+            $model->readTimeout = $map['readTimeout'];
+        }
+        if (isset($map['connectTimeout'])) {
+            $model->connectTimeout = $map['connectTimeout'];
+        }
+        if (isset($map['httpProxy'])) {
+            $model->httpProxy = $map['httpProxy'];
+        }
+        if (isset($map['httpsProxy'])) {
+            $model->httpsProxy = $map['httpsProxy'];
+        }
+        if (isset($map['credential'])) {
+            $model->credential = Credential::fromMap($map['credential']);
+        }
+        if (isset($map['endpoint'])) {
+            $model->endpoint = $map['endpoint'];
+        }
+        if (isset($map['noProxy'])) {
+            $model->noProxy = $map['noProxy'];
+        }
+        if (isset($map['maxIdleConns'])) {
+            $model->maxIdleConns = $map['maxIdleConns'];
+        }
+        if (isset($map['network'])) {
+            $model->network = $map['network'];
+        }
+        if (isset($map['userAgent'])) {
+            $model->userAgent = $map['userAgent'];
+        }
+        if (isset($map['suffix'])) {
+            $model->suffix = $map['suffix'];
+        }
+        if (isset($map['socks5Proxy'])) {
+            $model->socks5Proxy = $map['socks5Proxy'];
+        }
+        if (isset($map['socks5NetWork'])) {
+            $model->socks5NetWork = $map['socks5NetWork'];
+        }
+        if (isset($map['endpointType'])) {
+            $model->endpointType = $map['endpointType'];
+        }
+        if (isset($map['openPlatformEndpoint'])) {
+            $model->openPlatformEndpoint = $map['openPlatformEndpoint'];
+        }
+        if (isset($map['type'])) {
+            $model->type = $map['type'];
+        }
+        if (isset($map['signatureVersion'])) {
+            $model->signatureVersion = $map['signatureVersion'];
+        }
+        if (isset($map['signatureAlgorithm'])) {
+            $model->signatureAlgorithm = $map['signatureAlgorithm'];
+        }
+
+        return $model;
+    }
+
+    /**
+     * @description accesskey id
+     *
+     * @var string
+     */
+    public $accessKeyId;
+
+    /**
+     * @description accesskey secret
+     *
+     * @var string
+     */
+    public $accessKeySecret;
+
+    /**
+     * @description security token
+     *
+     * @example a.txt
+     *
+     * @var string
+     */
+    public $securityToken;
+
+    /**
+     * @description http protocol
+     *
+     * @example http
+     *
+     * @var string
+     */
+    public $protocol;
+
+    /**
+     * @description http method
+     *
+     * @example GET
+     *
+     * @var string
+     */
+    public $method;
+
+    /**
+     * @description region id
+     *
+     * @example cn-hangzhou
+     *
+     * @var string
+     */
+    public $regionId;
+
+    /**
+     * @description read timeout
+     *
+     * @example 10
+     *
+     * @var int
+     */
+    public $readTimeout;
+
+    /**
+     * @description connect timeout
+     *
+     * @example 10
+     *
+     * @var int
+     */
+    public $connectTimeout;
+
+    /**
+     * @description http proxy
+     *
+     * @example http://localhost
+     *
+     * @var string
+     */
+    public $httpProxy;
+
+    /**
+     * @description https proxy
+     *
+     * @example https://localhost
+     *
+     * @var string
+     */
+    public $httpsProxy;
+
+    /**
+     * @description credential
+     *
+     * @example
+     *
+     * @var Credential
+     */
+    public $credential;
+
+    /**
+     * @description endpoint
+     *
+     * @example cs.aliyuncs.com
+     *
+     * @var string
+     */
+    public $endpoint;
+
+    /**
+     * @description proxy white list
+     *
+     * @example http://localhost
+     *
+     * @var string
+     */
+    public $noProxy;
+
+    /**
+     * @description max idle conns
+     *
+     * @example 3
+     *
+     * @var int
+     */
+    public $maxIdleConns;
+
+    /**
+     * @description network for endpoint
+     *
+     * @example public
+     *
+     * @var string
+     */
+    public $network;
+
+    /**
+     * @description user agent
+     *
+     * @example Alibabacloud/1
+     *
+     * @var string
+     */
+    public $userAgent;
+
+    /**
+     * @description suffix for endpoint
+     *
+     * @example aliyun
+     *
+     * @var string
+     */
+    public $suffix;
+
+    /**
+     * @description socks5 proxy
+     *
+     * @var string
+     */
+    public $socks5Proxy;
+
+    /**
+     * @description socks5 network
+     *
+     * @example TCP
+     *
+     * @var string
+     */
+    public $socks5NetWork;
+
+    /**
+     * @description endpoint type
+     *
+     * @example internal
+     *
+     * @var string
+     */
+    public $endpointType;
+
+    /**
+     * @description OpenPlatform endpoint
+     *
+     * @example openplatform.aliyuncs.com
+     *
+     * @var string
+     */
+    public $openPlatformEndpoint;
+
+    /**
+     * @description credential type
+     *
+     * @example access_key
+     *
+     * @deprecated
+     *
+     * @var string
+     */
+    public $type;
+
+    /**
+     * @description Signature Version
+     *
+     * @example v1
+     *
+     * @var string
+     */
+    public $signatureVersion;
+
+    /**
+     * @description Signature Algorithm
+     *
+     * @example ACS3-HMAC-SHA256
+     *
+     * @var string
+     */
+    public $signatureAlgorithm;
+}

+ 73 - 0
vendor/darabonba-openapi/src/Models/OpenApiRequest.php

@@ -0,0 +1,73 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace Darabonba\OpenApi\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class OpenApiRequest extends Model
+{
+    public function validate()
+    {
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->headers) {
+            $res['headers'] = $this->headers;
+        }
+        if (null !== $this->query) {
+            $res['query'] = $this->query;
+        }
+        if (null !== $this->body) {
+            $res['body'] = $this->body;
+        }
+        if (null !== $this->stream) {
+            $res['stream'] = $this->stream;
+        }
+        if (null !== $this->hostMap) {
+            $res['hostMap'] = $this->hostMap;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return OpenApiRequest
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['headers'])) {
+            $model->headers = $map['headers'];
+        }
+        if (isset($map['query'])) {
+            $model->query = $map['query'];
+        }
+        if (isset($map['body'])) {
+            $model->body = $map['body'];
+        }
+        if (isset($map['stream'])) {
+            $model->stream = $map['stream'];
+        }
+        if (isset($map['hostMap'])) {
+            $model->hostMap = $map['hostMap'];
+        }
+
+        return $model;
+    }
+
+    public $headers;
+
+    public $query;
+
+    public $body;
+
+    public $stream;
+
+    public $hostMap;
+}

+ 137 - 0
vendor/darabonba-openapi/src/Models/Params.php

@@ -0,0 +1,137 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace Darabonba\OpenApi\Models;
+
+use AlibabaCloud\Tea\Model;
+
+class Params extends Model
+{
+    public function validate()
+    {
+        Model::validateRequired('action', $this->action, true);
+        Model::validateRequired('version', $this->version, true);
+        Model::validateRequired('protocol', $this->protocol, true);
+        Model::validateRequired('pathname', $this->pathname, true);
+        Model::validateRequired('method', $this->method, true);
+        Model::validateRequired('authType', $this->authType, true);
+        Model::validateRequired('bodyType', $this->bodyType, true);
+        Model::validateRequired('reqBodyType', $this->reqBodyType, true);
+    }
+
+    public function toMap()
+    {
+        $res = [];
+        if (null !== $this->action) {
+            $res['action'] = $this->action;
+        }
+        if (null !== $this->version) {
+            $res['version'] = $this->version;
+        }
+        if (null !== $this->protocol) {
+            $res['protocol'] = $this->protocol;
+        }
+        if (null !== $this->pathname) {
+            $res['pathname'] = $this->pathname;
+        }
+        if (null !== $this->method) {
+            $res['method'] = $this->method;
+        }
+        if (null !== $this->authType) {
+            $res['authType'] = $this->authType;
+        }
+        if (null !== $this->bodyType) {
+            $res['bodyType'] = $this->bodyType;
+        }
+        if (null !== $this->reqBodyType) {
+            $res['reqBodyType'] = $this->reqBodyType;
+        }
+        if (null !== $this->style) {
+            $res['style'] = $this->style;
+        }
+
+        return $res;
+    }
+
+    /**
+     * @param array $map
+     *
+     * @return Params
+     */
+    public static function fromMap($map = [])
+    {
+        $model = new self();
+        if (isset($map['action'])) {
+            $model->action = $map['action'];
+        }
+        if (isset($map['version'])) {
+            $model->version = $map['version'];
+        }
+        if (isset($map['protocol'])) {
+            $model->protocol = $map['protocol'];
+        }
+        if (isset($map['pathname'])) {
+            $model->pathname = $map['pathname'];
+        }
+        if (isset($map['method'])) {
+            $model->method = $map['method'];
+        }
+        if (isset($map['authType'])) {
+            $model->authType = $map['authType'];
+        }
+        if (isset($map['bodyType'])) {
+            $model->bodyType = $map['bodyType'];
+        }
+        if (isset($map['reqBodyType'])) {
+            $model->reqBodyType = $map['reqBodyType'];
+        }
+        if (isset($map['style'])) {
+            $model->style = $map['style'];
+        }
+
+        return $model;
+    }
+
+    /**
+     * @var string
+     */
+    public $action;
+
+    /**
+     * @var string
+     */
+    public $version;
+
+    /**
+     * @var string
+     */
+    public $protocol;
+
+    /**
+     * @var string
+     */
+    public $pathname;
+
+    /**
+     * @var string
+     */
+    public $method;
+
+    /**
+     * @var string
+     */
+    public $authType;
+
+    /**
+     * @var string
+     */
+    public $bodyType;
+
+    /**
+     * @var string
+     */
+    public $reqBodyType;
+
+    public $style;
+}

+ 1044 - 0
vendor/darabonba-openapi/src/OpenApiClient.php

@@ -0,0 +1,1044 @@
+<?php
+
+// This file is auto-generated, don't edit it. Thanks.
+
+namespace Darabonba\OpenApi;
+
+use AlibabaCloud\Credentials\Credential;
+use AlibabaCloud\Credentials\Credential\Config;
+use AlibabaCloud\OpenApiUtil\OpenApiUtilClient;
+use AlibabaCloud\Tea\Exception\TeaError;
+use AlibabaCloud\Tea\Exception\TeaUnableRetryError;
+use AlibabaCloud\Tea\Request;
+use AlibabaCloud\Tea\Tea;
+use AlibabaCloud\Tea\Utils\Utils;
+use AlibabaCloud\Tea\Utils\Utils\RuntimeOptions;
+use Darabonba\GatewaySpi\Models\AttributeMap;
+use Darabonba\GatewaySpi\Models\InterceptorContext;
+use Darabonba\GatewaySpi\Models\InterceptorContext\configuration;
+use Darabonba\GatewaySpi\Models\InterceptorContext\response;
+use Darabonba\OpenApi\Models\OpenApiRequest;
+use Darabonba\OpenApi\Models\Params;
+use Exception;
+
+/**
+ * This is for OpenApi SDK.
+ */
+class OpenApiClient
+{
+    protected $_endpoint;
+
+    protected $_regionId;
+
+    protected $_protocol;
+
+    protected $_method;
+
+    protected $_userAgent;
+
+    protected $_endpointRule;
+
+    protected $_endpointMap;
+
+    protected $_suffix;
+
+    protected $_readTimeout;
+
+    protected $_connectTimeout;
+
+    protected $_httpProxy;
+
+    protected $_httpsProxy;
+
+    protected $_socks5Proxy;
+
+    protected $_socks5NetWork;
+
+    protected $_noProxy;
+
+    protected $_network;
+
+    protected $_productId;
+
+    protected $_maxIdleConns;
+
+    protected $_endpointType;
+
+    protected $_openPlatformEndpoint;
+
+    protected $_credential;
+
+    protected $_signatureVersion;
+
+    protected $_signatureAlgorithm;
+
+    protected $_headers;
+
+    protected $_spi;
+
+    /**
+     * Init client with Config.
+     *
+     * @param config config contains the necessary information to create a client
+     */
+    public function __construct($config)
+    {
+        if (Utils::isUnset($config)) {
+            throw new TeaError(['code' => 'ParameterMissing', 'message' => "'config' can not be unset"]);
+        }
+        if (!Utils::empty_($config->accessKeyId) && !Utils::empty_($config->accessKeySecret)) {
+            if (!Utils::empty_($config->securityToken)) {
+                $config->type = 'sts';
+            } else {
+                $config->type = 'access_key';
+            }
+            $credentialConfig = new Config([
+                'accessKeyId' => $config->accessKeyId,
+                'type' => $config->type,
+                'accessKeySecret' => $config->accessKeySecret,
+                'securityToken' => $config->securityToken,
+            ]);
+            $this->_credential = new Credential($credentialConfig);
+        } elseif (!Utils::isUnset($config->credential)) {
+            $this->_credential = $config->credential;
+        }
+        $this->_endpoint = $config->endpoint;
+        $this->_endpointType = $config->endpointType;
+        $this->_network = $config->network;
+        $this->_suffix = $config->suffix;
+        $this->_protocol = $config->protocol;
+        $this->_method = $config->method;
+        $this->_regionId = $config->regionId;
+        $this->_userAgent = $config->userAgent;
+        $this->_readTimeout = $config->readTimeout;
+        $this->_connectTimeout = $config->connectTimeout;
+        $this->_httpProxy = $config->httpProxy;
+        $this->_httpsProxy = $config->httpsProxy;
+        $this->_noProxy = $config->noProxy;
+        $this->_socks5Proxy = $config->socks5Proxy;
+        $this->_socks5NetWork = $config->socks5NetWork;
+        $this->_maxIdleConns = $config->maxIdleConns;
+        $this->_signatureVersion = $config->signatureVersion;
+        $this->_signatureAlgorithm = $config->signatureAlgorithm;
+    }
+
+    /**
+     * Encapsulate the request and invoke the network.
+     *
+     * @param string         $action   api name
+     * @param string         $version  product version
+     * @param string         $protocol http or https
+     * @param string         $method   e.g. GET
+     * @param string         $authType authorization type e.g. AK
+     * @param string         $bodyType response body type e.g. String
+     * @param OpenApiRequest $request  object of OpenApiRequest
+     * @param RuntimeOptions $runtime  which controls some details of call api, such as retry times
+     *
+     * @return array the response
+     *
+     * @throws TeaError
+     * @throws Exception
+     * @throws TeaUnableRetryError
+     */
+    public function doRPCRequest($action, $version, $protocol, $method, $authType, $bodyType, $request, $runtime)
+    {
+        $request->validate();
+        $runtime->validate();
+        $_runtime = [
+            'timeouted' => 'retry',
+            'readTimeout' => Utils::defaultNumber($runtime->readTimeout, $this->_readTimeout),
+            'connectTimeout' => Utils::defaultNumber($runtime->connectTimeout, $this->_connectTimeout),
+            'httpProxy' => Utils::defaultString($runtime->httpProxy, $this->_httpProxy),
+            'httpsProxy' => Utils::defaultString($runtime->httpsProxy, $this->_httpsProxy),
+            'noProxy' => Utils::defaultString($runtime->noProxy, $this->_noProxy),
+            'socks5Proxy' => Utils::defaultString($runtime->socks5Proxy, $this->_socks5Proxy),
+            'socks5NetWork' => Utils::defaultString($runtime->socks5NetWork, $this->_socks5NetWork),
+            'maxIdleConns' => Utils::defaultNumber($runtime->maxIdleConns, $this->_maxIdleConns),
+            'retry' => [
+                'retryable' => $runtime->autoretry,
+                'maxAttempts' => Utils::defaultNumber($runtime->maxAttempts, 3),
+            ],
+            'backoff' => [
+                'policy' => Utils::defaultString($runtime->backoffPolicy, 'no'),
+                'period' => Utils::defaultNumber($runtime->backoffPeriod, 1),
+            ],
+            'ignoreSSL' => $runtime->ignoreSSL,
+        ];
+        $_lastRequest = null;
+        $_lastException = null;
+        $_now = time();
+        $_retryTimes = 0;
+        while (Tea::allowRetry(@$_runtime['retry'], $_retryTimes, $_now)) {
+            if ($_retryTimes > 0) {
+                $_backoffTime = Tea::getBackoffTime(@$_runtime['backoff'], $_retryTimes);
+                if ($_backoffTime > 0) {
+                    Tea::sleep($_backoffTime);
+                }
+            }
+            $_retryTimes = $_retryTimes + 1;
+            try {
+                $_request = new Request();
+                $_request->protocol = Utils::defaultString($this->_protocol, $protocol);
+                $_request->method = $method;
+                $_request->pathname = '/';
+                $_request->query = Tea::merge([
+                    'Action' => $action,
+                    'Format' => 'json',
+                    'Version' => $version,
+                    'Timestamp' => OpenApiUtilClient::getTimestamp(),
+                    'SignatureNonce' => Utils::getNonce(),
+                ], $request->query);
+                $headers = $this->getRpcHeaders();
+                if (Utils::isUnset($headers)) {
+                    // endpoint is setted in product client
+                    $_request->headers = [
+                        'host' => $this->_endpoint,
+                        'x-acs-version' => $version,
+                        'x-acs-action' => $action,
+                        'user-agent' => $this->getUserAgent(),
+                    ];
+                } else {
+                    $_request->headers = Tea::merge([
+                        'host' => $this->_endpoint,
+                        'x-acs-version' => $version,
+                        'x-acs-action' => $action,
+                        'user-agent' => $this->getUserAgent(),
+                    ], $headers);
+                }
+                if (!Utils::isUnset($request->body)) {
+                    $m = Utils::assertAsMap($request->body);
+                    $tmp = Utils::anyifyMapValue(OpenApiUtilClient::query($m));
+                    $_request->body = Utils::toFormString($tmp);
+                    $_request->headers['content-type'] = 'application/x-www-form-urlencoded';
+                }
+                if (!Utils::equalString($authType, 'Anonymous')) {
+                    $accessKeyId = $this->getAccessKeyId();
+                    $accessKeySecret = $this->getAccessKeySecret();
+                    $securityToken = $this->getSecurityToken();
+                    if (!Utils::empty_($securityToken)) {
+                        $_request->query['SecurityToken'] = $securityToken;
+                    }
+                    $_request->query['SignatureMethod'] = 'HMAC-SHA1';
+                    $_request->query['SignatureVersion'] = '1.0';
+                    $_request->query['AccessKeyId'] = $accessKeyId;
+                    $t = null;
+                    if (!Utils::isUnset($request->body)) {
+                        $t = Utils::assertAsMap($request->body);
+                    }
+                    $signedParam = Tea::merge($_request->query, OpenApiUtilClient::query($t));
+                    $_request->query['Signature'] = OpenApiUtilClient::getRPCSignature($signedParam, $_request->method, $accessKeySecret);
+                }
+                $_lastRequest = $_request;
+                $_response = Tea::send($_request, $_runtime);
+                if (Utils::is4xx($_response->statusCode) || Utils::is5xx($_response->statusCode)) {
+                    $_res = Utils::readAsJSON($_response->body);
+                    $err = Utils::assertAsMap($_res);
+                    $requestId = self::defaultAny(@$err['RequestId'], @$err['requestId']);
+                    throw new TeaError(['code' => ''.(string) (self::defaultAny(@$err['Code'], @$err['code'])).'', 'message' => 'code: '.(string) ($_response->statusCode).', '.(string) (self::defaultAny(@$err['Message'], @$err['message'])).' request id: '.(string) ($requestId).'', 'data' => $err]);
+                }
+                if (Utils::equalString($bodyType, 'binary')) {
+                    $resp = [
+                        'body' => $_response->body,
+                        'headers' => $_response->headers,
+                    ];
+
+                    return $resp;
+                } elseif (Utils::equalString($bodyType, 'byte')) {
+                    $byt = Utils::readAsBytes($_response->body);
+
+                    return [
+                        'body' => $byt,
+                        'headers' => $_response->headers,
+                    ];
+                } elseif (Utils::equalString($bodyType, 'string')) {
+                    $str = Utils::readAsString($_response->body);
+
+                    return [
+                        'body' => $str,
+                        'headers' => $_response->headers,
+                    ];
+                } elseif (Utils::equalString($bodyType, 'json')) {
+                    $obj = Utils::readAsJSON($_response->body);
+                    $res = Utils::assertAsMap($obj);
+
+                    return [
+                        'body' => $res,
+                        'headers' => $_response->headers,
+                    ];
+                } elseif (Utils::equalString($bodyType, 'array')) {
+                    $arr = Utils::readAsJSON($_response->body);
+
+                    return [
+                        'body' => $arr,
+                        'headers' => $_response->headers,
+                    ];
+                } else {
+                    return [
+                        'headers' => $_response->headers,
+                    ];
+                }
+            } catch (Exception $e) {
+                if (!($e instanceof TeaError)) {
+                    $e = new TeaError([], $e->getMessage(), $e->getCode(), $e);
+                }
+                if (Tea::isRetryable($e)) {
+                    $_lastException = $e;
+                    continue;
+                }
+                throw $e;
+            }
+        }
+        throw new TeaUnableRetryError($_lastRequest, $_lastException);
+    }
+
+    /**
+     * Encapsulate the request and invoke the network.
+     *
+     * @param string         $action   api name
+     * @param string         $version  product version
+     * @param string         $protocol http or https
+     * @param string         $method   e.g. GET
+     * @param string         $authType authorization type e.g. AK
+     * @param string         $pathname pathname of every api
+     * @param string         $bodyType response body type e.g. String
+     * @param OpenApiRequest $request  object of OpenApiRequest
+     * @param RuntimeOptions $runtime  which controls some details of call api, such as retry times
+     *
+     * @return array the response
+     *
+     * @throws TeaError
+     * @throws Exception
+     * @throws TeaUnableRetryError
+     */
+    public function doROARequest($action, $version, $protocol, $method, $authType, $pathname, $bodyType, $request, $runtime)
+    {
+        $request->validate();
+        $runtime->validate();
+        $_runtime = [
+            'timeouted' => 'retry',
+            'readTimeout' => Utils::defaultNumber($runtime->readTimeout, $this->_readTimeout),
+            'connectTimeout' => Utils::defaultNumber($runtime->connectTimeout, $this->_connectTimeout),
+            'httpProxy' => Utils::defaultString($runtime->httpProxy, $this->_httpProxy),
+            'httpsProxy' => Utils::defaultString($runtime->httpsProxy, $this->_httpsProxy),
+            'noProxy' => Utils::defaultString($runtime->noProxy, $this->_noProxy),
+            'socks5Proxy' => Utils::defaultString($runtime->socks5Proxy, $this->_socks5Proxy),
+            'socks5NetWork' => Utils::defaultString($runtime->socks5NetWork, $this->_socks5NetWork),
+            'maxIdleConns' => Utils::defaultNumber($runtime->maxIdleConns, $this->_maxIdleConns),
+            'retry' => [
+                'retryable' => $runtime->autoretry,
+                'maxAttempts' => Utils::defaultNumber($runtime->maxAttempts, 3),
+            ],
+            'backoff' => [
+                'policy' => Utils::defaultString($runtime->backoffPolicy, 'no'),
+                'period' => Utils::defaultNumber($runtime->backoffPeriod, 1),
+            ],
+            'ignoreSSL' => $runtime->ignoreSSL,
+        ];
+        $_lastRequest = null;
+        $_lastException = null;
+        $_now = time();
+        $_retryTimes = 0;
+        while (Tea::allowRetry(@$_runtime['retry'], $_retryTimes, $_now)) {
+            if ($_retryTimes > 0) {
+                $_backoffTime = Tea::getBackoffTime(@$_runtime['backoff'], $_retryTimes);
+                if ($_backoffTime > 0) {
+                    Tea::sleep($_backoffTime);
+                }
+            }
+            $_retryTimes = $_retryTimes + 1;
+            try {
+                $_request = new Request();
+                $_request->protocol = Utils::defaultString($this->_protocol, $protocol);
+                $_request->method = $method;
+                $_request->pathname = $pathname;
+                $_request->headers = Tea::merge([
+                    'date' => Utils::getDateUTCString(),
+                    'host' => $this->_endpoint,
+                    'accept' => 'application/json',
+                    'x-acs-signature-nonce' => Utils::getNonce(),
+                    'x-acs-signature-method' => 'HMAC-SHA1',
+                    'x-acs-signature-version' => '1.0',
+                    'x-acs-version' => $version,
+                    'x-acs-action' => $action,
+                    'user-agent' => Utils::getUserAgent($this->_userAgent),
+                ], $request->headers);
+                if (!Utils::isUnset($request->body)) {
+                    $_request->body = Utils::toJSONString($request->body);
+                    $_request->headers['content-type'] = 'application/json; charset=utf-8';
+                }
+                if (!Utils::isUnset($request->query)) {
+                    $_request->query = $request->query;
+                }
+                if (!Utils::equalString($authType, 'Anonymous')) {
+                    $accessKeyId = $this->getAccessKeyId();
+                    $accessKeySecret = $this->getAccessKeySecret();
+                    $securityToken = $this->getSecurityToken();
+                    if (!Utils::empty_($securityToken)) {
+                        $_request->headers['x-acs-accesskey-id'] = $accessKeyId;
+                        $_request->headers['x-acs-security-token'] = $securityToken;
+                    }
+                    $stringToSign = OpenApiUtilClient::getStringToSign($_request);
+                    $_request->headers['authorization'] = 'acs '.$accessKeyId.':'.OpenApiUtilClient::getROASignature($stringToSign, $accessKeySecret).'';
+                }
+                $_lastRequest = $_request;
+                $_response = Tea::send($_request, $_runtime);
+                if (Utils::equalNumber($_response->statusCode, 204)) {
+                    return [
+                        'headers' => $_response->headers,
+                    ];
+                }
+                if (Utils::is4xx($_response->statusCode) || Utils::is5xx($_response->statusCode)) {
+                    $_res = Utils::readAsJSON($_response->body);
+                    $err = Utils::assertAsMap($_res);
+                    $requestId = self::defaultAny(@$err['RequestId'], @$err['requestId']);
+                    $requestId = self::defaultAny($requestId, @$err['requestid']);
+                    throw new TeaError(['code' => ''.(string) (self::defaultAny(@$err['Code'], @$err['code'])).'', 'message' => 'code: '.(string) ($_response->statusCode).', '.(string) (self::defaultAny(@$err['Message'], @$err['message'])).' request id: '.(string) ($requestId).'', 'data' => $err]);
+                }
+                if (Utils::equalString($bodyType, 'binary')) {
+                    $resp = [
+                        'body' => $_response->body,
+                        'headers' => $_response->headers,
+                    ];
+
+                    return $resp;
+                } elseif (Utils::equalString($bodyType, 'byte')) {
+                    $byt = Utils::readAsBytes($_response->body);
+
+                    return [
+                        'body' => $byt,
+                        'headers' => $_response->headers,
+                    ];
+                } elseif (Utils::equalString($bodyType, 'string')) {
+                    $str = Utils::readAsString($_response->body);
+
+                    return [
+                        'body' => $str,
+                        'headers' => $_response->headers,
+                    ];
+                } elseif (Utils::equalString($bodyType, 'json')) {
+                    $obj = Utils::readAsJSON($_response->body);
+                    $res = Utils::assertAsMap($obj);
+
+                    return [
+                        'body' => $res,
+                        'headers' => $_response->headers,
+                    ];
+                } elseif (Utils::equalString($bodyType, 'array')) {
+                    $arr = Utils::readAsJSON($_response->body);
+
+                    return [
+                        'body' => $arr,
+                        'headers' => $_response->headers,
+                    ];
+                } else {
+                    return [
+                        'headers' => $_response->headers,
+                    ];
+                }
+            } catch (Exception $e) {
+                if (!($e instanceof TeaError)) {
+                    $e = new TeaError([], $e->getMessage(), $e->getCode(), $e);
+                }
+                if (Tea::isRetryable($e)) {
+                    $_lastException = $e;
+                    continue;
+                }
+                throw $e;
+            }
+        }
+        throw new TeaUnableRetryError($_lastRequest, $_lastException);
+    }
+
+    /**
+     * Encapsulate the request and invoke the network with form body.
+     *
+     * @param string         $action   api name
+     * @param string         $version  product version
+     * @param string         $protocol http or https
+     * @param string         $method   e.g. GET
+     * @param string         $authType authorization type e.g. AK
+     * @param string         $pathname pathname of every api
+     * @param string         $bodyType response body type e.g. String
+     * @param OpenApiRequest $request  object of OpenApiRequest
+     * @param RuntimeOptions $runtime  which controls some details of call api, such as retry times
+     *
+     * @return array the response
+     *
+     * @throws TeaError
+     * @throws Exception
+     * @throws TeaUnableRetryError
+     */
+    public function doROARequestWithForm($action, $version, $protocol, $method, $authType, $pathname, $bodyType, $request, $runtime)
+    {
+        $request->validate();
+        $runtime->validate();
+        $_runtime = [
+            'timeouted' => 'retry',
+            'readTimeout' => Utils::defaultNumber($runtime->readTimeout, $this->_readTimeout),
+            'connectTimeout' => Utils::defaultNumber($runtime->connectTimeout, $this->_connectTimeout),
+            'httpProxy' => Utils::defaultString($runtime->httpProxy, $this->_httpProxy),
+            'httpsProxy' => Utils::defaultString($runtime->httpsProxy, $this->_httpsProxy),
+            'noProxy' => Utils::defaultString($runtime->noProxy, $this->_noProxy),
+            'socks5Proxy' => Utils::defaultString($runtime->socks5Proxy, $this->_socks5Proxy),
+            'socks5NetWork' => Utils::defaultString($runtime->socks5NetWork, $this->_socks5NetWork),
+            'maxIdleConns' => Utils::defaultNumber($runtime->maxIdleConns, $this->_maxIdleConns),
+            'retry' => [
+                'retryable' => $runtime->autoretry,
+                'maxAttempts' => Utils::defaultNumber($runtime->maxAttempts, 3),
+            ],
+            'backoff' => [
+                'policy' => Utils::defaultString($runtime->backoffPolicy, 'no'),
+                'period' => Utils::defaultNumber($runtime->backoffPeriod, 1),
+            ],
+            'ignoreSSL' => $runtime->ignoreSSL,
+        ];
+        $_lastRequest = null;
+        $_lastException = null;
+        $_now = time();
+        $_retryTimes = 0;
+        while (Tea::allowRetry(@$_runtime['retry'], $_retryTimes, $_now)) {
+            if ($_retryTimes > 0) {
+                $_backoffTime = Tea::getBackoffTime(@$_runtime['backoff'], $_retryTimes);
+                if ($_backoffTime > 0) {
+                    Tea::sleep($_backoffTime);
+                }
+            }
+            $_retryTimes = $_retryTimes + 1;
+            try {
+                $_request = new Request();
+                $_request->protocol = Utils::defaultString($this->_protocol, $protocol);
+                $_request->method = $method;
+                $_request->pathname = $pathname;
+                $_request->headers = Tea::merge([
+                    'date' => Utils::getDateUTCString(),
+                    'host' => $this->_endpoint,
+                    'accept' => 'application/json',
+                    'x-acs-signature-nonce' => Utils::getNonce(),
+                    'x-acs-signature-method' => 'HMAC-SHA1',
+                    'x-acs-signature-version' => '1.0',
+                    'x-acs-version' => $version,
+                    'x-acs-action' => $action,
+                    'user-agent' => Utils::getUserAgent($this->_userAgent),
+                ], $request->headers);
+                if (!Utils::isUnset($request->body)) {
+                    $m = Utils::assertAsMap($request->body);
+                    $_request->body = OpenApiUtilClient::toForm($m);
+                    $_request->headers['content-type'] = 'application/x-www-form-urlencoded';
+                }
+                if (!Utils::isUnset($request->query)) {
+                    $_request->query = $request->query;
+                }
+                if (!Utils::equalString($authType, 'Anonymous')) {
+                    $accessKeyId = $this->getAccessKeyId();
+                    $accessKeySecret = $this->getAccessKeySecret();
+                    $securityToken = $this->getSecurityToken();
+                    if (!Utils::empty_($securityToken)) {
+                        $_request->headers['x-acs-accesskey-id'] = $accessKeyId;
+                        $_request->headers['x-acs-security-token'] = $securityToken;
+                    }
+                    $stringToSign = OpenApiUtilClient::getStringToSign($_request);
+                    $_request->headers['authorization'] = 'acs '.$accessKeyId.':'.OpenApiUtilClient::getROASignature($stringToSign, $accessKeySecret).'';
+                }
+                $_lastRequest = $_request;
+                $_response = Tea::send($_request, $_runtime);
+                if (Utils::equalNumber($_response->statusCode, 204)) {
+                    return [
+                        'headers' => $_response->headers,
+                    ];
+                }
+                if (Utils::is4xx($_response->statusCode) || Utils::is5xx($_response->statusCode)) {
+                    $_res = Utils::readAsJSON($_response->body);
+                    $err = Utils::assertAsMap($_res);
+                    throw new TeaError(['code' => ''.(string) (self::defaultAny(@$err['Code'], @$err['code'])).'', 'message' => 'code: '.(string) ($_response->statusCode).', '.(string) (self::defaultAny(@$err['Message'], @$err['message'])).' request id: '.(string) (self::defaultAny(@$err['RequestId'], @$err['requestId'])).'', 'data' => $err]);
+                }
+                if (Utils::equalString($bodyType, 'binary')) {
+                    $resp = [
+                        'body' => $_response->body,
+                        'headers' => $_response->headers,
+                    ];
+
+                    return $resp;
+                } elseif (Utils::equalString($bodyType, 'byte')) {
+                    $byt = Utils::readAsBytes($_response->body);
+
+                    return [
+                        'body' => $byt,
+                        'headers' => $_response->headers,
+                    ];
+                } elseif (Utils::equalString($bodyType, 'string')) {
+                    $str = Utils::readAsString($_response->body);
+
+                    return [
+                        'body' => $str,
+                        'headers' => $_response->headers,
+                    ];
+                } elseif (Utils::equalString($bodyType, 'json')) {
+                    $obj = Utils::readAsJSON($_response->body);
+                    $res = Utils::assertAsMap($obj);
+
+                    return [
+                        'body' => $res,
+                        'headers' => $_response->headers,
+                    ];
+                } elseif (Utils::equalString($bodyType, 'array')) {
+                    $arr = Utils::readAsJSON($_response->body);
+
+                    return [
+                        'body' => $arr,
+                        'headers' => $_response->headers,
+                    ];
+                } else {
+                    return [
+                        'headers' => $_response->headers,
+                    ];
+                }
+            } catch (Exception $e) {
+                if (!($e instanceof TeaError)) {
+                    $e = new TeaError([], $e->getMessage(), $e->getCode(), $e);
+                }
+                if (Tea::isRetryable($e)) {
+                    $_lastException = $e;
+                    continue;
+                }
+                throw $e;
+            }
+        }
+        throw new TeaUnableRetryError($_lastRequest, $_lastException);
+    }
+
+    /**
+     * Encapsulate the request and invoke the network.
+     *
+     * @param Params         $params
+     * @param OpenApiRequest $request object of OpenApiRequest
+     * @param RuntimeOptions $runtime which controls some details of call api, such as retry times
+     *
+     * @return array the response
+     *
+     * @throws TeaError
+     * @throws Exception
+     * @throws TeaUnableRetryError
+     */
+    public function doRequest($params, $request, $runtime)
+    {
+        $params->validate();
+        $request->validate();
+        $runtime->validate();
+        $_runtime = [
+            'timeouted' => 'retry',
+            'readTimeout' => Utils::defaultNumber($runtime->readTimeout, $this->_readTimeout),
+            'connectTimeout' => Utils::defaultNumber($runtime->connectTimeout, $this->_connectTimeout),
+            'httpProxy' => Utils::defaultString($runtime->httpProxy, $this->_httpProxy),
+            'httpsProxy' => Utils::defaultString($runtime->httpsProxy, $this->_httpsProxy),
+            'noProxy' => Utils::defaultString($runtime->noProxy, $this->_noProxy),
+            'socks5Proxy' => Utils::defaultString($runtime->socks5Proxy, $this->_socks5Proxy),
+            'socks5NetWork' => Utils::defaultString($runtime->socks5NetWork, $this->_socks5NetWork),
+            'maxIdleConns' => Utils::defaultNumber($runtime->maxIdleConns, $this->_maxIdleConns),
+            'retry' => [
+                'retryable' => $runtime->autoretry,
+                'maxAttempts' => Utils::defaultNumber($runtime->maxAttempts, 3),
+            ],
+            'backoff' => [
+                'policy' => Utils::defaultString($runtime->backoffPolicy, 'no'),
+                'period' => Utils::defaultNumber($runtime->backoffPeriod, 1),
+            ],
+            'ignoreSSL' => $runtime->ignoreSSL,
+        ];
+        $_lastRequest = null;
+        $_lastException = null;
+        $_now = time();
+        $_retryTimes = 0;
+        while (Tea::allowRetry(@$_runtime['retry'], $_retryTimes, $_now)) {
+            if ($_retryTimes > 0) {
+                $_backoffTime = Tea::getBackoffTime(@$_runtime['backoff'], $_retryTimes);
+                if ($_backoffTime > 0) {
+                    Tea::sleep($_backoffTime);
+                }
+            }
+            $_retryTimes = $_retryTimes + 1;
+            try {
+                $_request = new Request();
+                $_request->protocol = Utils::defaultString($this->_protocol, $params->protocol);
+                $_request->method = $params->method;
+                $_request->pathname = $params->pathname;
+                $_request->query = $request->query;
+                // endpoint is setted in product client
+                $_request->headers = Tea::merge([
+                    'host' => $this->_endpoint,
+                    'x-acs-version' => $params->version,
+                    'x-acs-action' => $params->action,
+                    'user-agent' => $this->getUserAgent(),
+                    'x-acs-date' => OpenApiUtilClient::getTimestamp(),
+                    'x-acs-signature-nonce' => Utils::getNonce(),
+                    'accept' => 'application/json',
+                ], $request->headers);
+                if (Utils::equalString($params->style, 'RPC')) {
+                    $headers = $this->getRpcHeaders();
+                    if (!Utils::isUnset($headers)) {
+                        $_request->headers = Tea::merge($_request->headers, $headers);
+                    }
+                }
+                $signatureAlgorithm = Utils::defaultString($this->_signatureAlgorithm, 'ACS3-HMAC-SHA256');
+                $hashedRequestPayload = OpenApiUtilClient::hexEncode(OpenApiUtilClient::hash(Utils::toBytes(''), $signatureAlgorithm));
+                if (!Utils::isUnset($request->stream)) {
+                    $tmp = Utils::readAsBytes($request->stream);
+                    $hashedRequestPayload = OpenApiUtilClient::hexEncode(OpenApiUtilClient::hash($tmp, $signatureAlgorithm));
+                    $_request->body = $tmp;
+                    $_request->headers['content-type'] = 'application/octet-stream';
+                } else {
+                    if (!Utils::isUnset($request->body)) {
+                        if (Utils::equalString($params->reqBodyType, 'json')) {
+                            $jsonObj = Utils::toJSONString($request->body);
+                            $hashedRequestPayload = OpenApiUtilClient::hexEncode(OpenApiUtilClient::hash(Utils::toBytes($jsonObj), $signatureAlgorithm));
+                            $_request->body = $jsonObj;
+                            $_request->headers['content-type'] = 'application/json; charset=utf-8';
+                        } else {
+                            $m = Utils::assertAsMap($request->body);
+                            $formObj = OpenApiUtilClient::toForm($m);
+                            $hashedRequestPayload = OpenApiUtilClient::hexEncode(OpenApiUtilClient::hash(Utils::toBytes($formObj), $signatureAlgorithm));
+                            $_request->body = $formObj;
+                            $_request->headers['content-type'] = 'application/x-www-form-urlencoded';
+                        }
+                    }
+                }
+                $_request->headers['x-acs-content-sha256'] = $hashedRequestPayload;
+                if (!Utils::equalString($params->authType, 'Anonymous')) {
+                    $accessKeyId = $this->getAccessKeyId();
+                    $accessKeySecret = $this->getAccessKeySecret();
+                    $securityToken = $this->getSecurityToken();
+                    if (!Utils::empty_($securityToken)) {
+                        $_request->headers['x-acs-accesskey-id'] = $accessKeyId;
+                        $_request->headers['x-acs-security-token'] = $securityToken;
+                    }
+                    $_request->headers['Authorization'] = OpenApiUtilClient::getAuthorization($_request, $signatureAlgorithm, $hashedRequestPayload, $accessKeyId, $accessKeySecret);
+                }
+                $_lastRequest = $_request;
+                $_response = Tea::send($_request, $_runtime);
+                if (Utils::is4xx($_response->statusCode) || Utils::is5xx($_response->statusCode)) {
+                    $_res = Utils::readAsJSON($_response->body);
+                    $err = Utils::assertAsMap($_res);
+                    throw new TeaError(['code' => ''.(string) (self::defaultAny(@$err['Code'], @$err['code'])).'', 'message' => 'code: '.(string) ($_response->statusCode).', '.(string) (self::defaultAny(@$err['Message'], @$err['message'])).' request id: '.(string) (self::defaultAny(@$err['RequestId'], @$err['requestId'])).'', 'data' => $err]);
+                }
+                if (Utils::equalString($params->bodyType, 'binary')) {
+                    $resp = [
+                        'body' => $_response->body,
+                        'headers' => $_response->headers,
+                    ];
+
+                    return $resp;
+                } elseif (Utils::equalString($params->bodyType, 'byte')) {
+                    $byt = Utils::readAsBytes($_response->body);
+
+                    return [
+                        'body' => $byt,
+                        'headers' => $_response->headers,
+                    ];
+                } elseif (Utils::equalString($params->bodyType, 'string')) {
+                    $str = Utils::readAsString($_response->body);
+
+                    return [
+                        'body' => $str,
+                        'headers' => $_response->headers,
+                    ];
+                } elseif (Utils::equalString($params->bodyType, 'json')) {
+                    $obj = Utils::readAsJSON($_response->body);
+                    $res = Utils::assertAsMap($obj);
+
+                    return [
+                        'body' => $res,
+                        'headers' => $_response->headers,
+                    ];
+                } elseif (Utils::equalString($params->bodyType, 'array')) {
+                    $arr = Utils::readAsJSON($_response->body);
+
+                    return [
+                        'body' => $arr,
+                        'headers' => $_response->headers,
+                    ];
+                } else {
+                    return [
+                        'headers' => $_response->headers,
+                    ];
+                }
+            } catch (Exception $e) {
+                if (!($e instanceof TeaError)) {
+                    $e = new TeaError([], $e->getMessage(), $e->getCode(), $e);
+                }
+                if (Tea::isRetryable($e)) {
+                    $_lastException = $e;
+                    continue;
+                }
+                throw $e;
+            }
+        }
+        throw new TeaUnableRetryError($_lastRequest, $_lastException);
+    }
+
+    /**
+     * Encapsulate the request and invoke the network.
+     *
+     * @param Params         $params
+     * @param OpenApiRequest $request object of OpenApiRequest
+     * @param RuntimeOptions $runtime which controls some details of call api, such as retry times
+     *
+     * @return array the response
+     *
+     * @throws TeaError
+     * @throws Exception
+     * @throws TeaUnableRetryError
+     */
+    public function execute($params, $request, $runtime)
+    {
+        $params->validate();
+        $request->validate();
+        $runtime->validate();
+        $_runtime = [
+            'timeouted' => 'retry',
+            'readTimeout' => Utils::defaultNumber($runtime->readTimeout, $this->_readTimeout),
+            'connectTimeout' => Utils::defaultNumber($runtime->connectTimeout, $this->_connectTimeout),
+            'httpProxy' => Utils::defaultString($runtime->httpProxy, $this->_httpProxy),
+            'httpsProxy' => Utils::defaultString($runtime->httpsProxy, $this->_httpsProxy),
+            'noProxy' => Utils::defaultString($runtime->noProxy, $this->_noProxy),
+            'socks5Proxy' => Utils::defaultString($runtime->socks5Proxy, $this->_socks5Proxy),
+            'socks5NetWork' => Utils::defaultString($runtime->socks5NetWork, $this->_socks5NetWork),
+            'maxIdleConns' => Utils::defaultNumber($runtime->maxIdleConns, $this->_maxIdleConns),
+            'retry' => [
+                'retryable' => $runtime->autoretry,
+                'maxAttempts' => Utils::defaultNumber($runtime->maxAttempts, 3),
+            ],
+            'backoff' => [
+                'policy' => Utils::defaultString($runtime->backoffPolicy, 'no'),
+                'period' => Utils::defaultNumber($runtime->backoffPeriod, 1),
+            ],
+            'ignoreSSL' => $runtime->ignoreSSL,
+        ];
+        $_lastRequest = null;
+        $_lastException = null;
+        $_now = time();
+        $_retryTimes = 0;
+        while (Tea::allowRetry(@$_runtime['retry'], $_retryTimes, $_now)) {
+            if ($_retryTimes > 0) {
+                $_backoffTime = Tea::getBackoffTime(@$_runtime['backoff'], $_retryTimes);
+                if ($_backoffTime > 0) {
+                    Tea::sleep($_backoffTime);
+                }
+            }
+            $_retryTimes = $_retryTimes + 1;
+            try {
+                $_request = new Request();
+                // spi = new Gateway();//Gateway implements SPI,这一步在产品 SDK 中实例化
+                $headers = $this->getRpcHeaders();
+                $requestContext = new \Darabonba\GatewaySpi\Models\InterceptorContext\request([
+                    'headers' => Tea::merge($request->headers, $headers),
+                    'query' => $request->query,
+                    'body' => $request->body,
+                    'stream' => $request->stream,
+                    'hostMap' => $request->hostMap,
+                    'pathname' => $params->pathname,
+                    'productId' => $this->_productId,
+                    'action' => $params->action,
+                    'version' => $params->version,
+                    'protocol' => Utils::defaultString($this->_protocol, $params->protocol),
+                    'method' => Utils::defaultString($this->_method, $params->method),
+                    'authType' => $params->authType,
+                    'bodyType' => $params->bodyType,
+                    'reqBodyType' => $params->reqBodyType,
+                    'style' => $params->style,
+                    'credential' => $this->_credential,
+                    'signatureVersion' => $this->_signatureVersion,
+                    'signatureAlgorithm' => $this->_signatureAlgorithm,
+                    'userAgent' => $this->getUserAgent(),
+                ]);
+                $configurationContext = new configuration([
+                    'regionId' => $this->_regionId,
+                    'endpoint' => $this->_endpoint,
+                    'endpointRule' => $this->_endpointRule,
+                    'endpointMap' => $this->_endpointMap,
+                    'endpointType' => $this->_endpointType,
+                    'network' => $this->_network,
+                    'suffix' => $this->_suffix,
+                ]);
+                $interceptorContext = new InterceptorContext([
+                    'request' => $requestContext,
+                    'configuration' => $configurationContext,
+                ]);
+                $attributeMap = new AttributeMap([]);
+                // 1. spi.modifyConfiguration(context: SPI.InterceptorContext, attributeMap: SPI.AttributeMap);
+                $this->_spi->modifyConfiguration($interceptorContext, $attributeMap);
+                // 2. spi.modifyRequest(context: SPI.InterceptorContext, attributeMap: SPI.AttributeMap);
+                $this->_spi->modifyRequest($interceptorContext, $attributeMap);
+                $_request->protocol = $interceptorContext->request->protocol;
+                $_request->method = $interceptorContext->request->method;
+                $_request->pathname = $interceptorContext->request->pathname;
+                $_request->query = $interceptorContext->request->query;
+                $_request->body = $interceptorContext->request->stream;
+                $_request->headers = $interceptorContext->request->headers;
+                $_lastRequest = $_request;
+                $_response = Tea::send($_request, $_runtime);
+                $responseContext = new response([
+                    'statusCode' => $_response->statusCode,
+                    'headers' => $_response->headers,
+                    'body' => $_response->body,
+                ]);
+                $interceptorContext->response = $responseContext;
+                // 3. spi.modifyResponse(context: SPI.InterceptorContext, attributeMap: SPI.AttributeMap);
+                $this->_spi->modifyResponse($interceptorContext, $attributeMap);
+
+                return [
+                    'headers' => $interceptorContext->response->headers,
+                    'body' => $interceptorContext->response->deserializedBody,
+                ];
+            } catch (Exception $e) {
+                if (!($e instanceof TeaError)) {
+                    $e = new TeaError([], $e->getMessage(), $e->getCode(), $e);
+                }
+                if (Tea::isRetryable($e)) {
+                    $_lastException = $e;
+                    continue;
+                }
+                throw $e;
+            }
+        }
+        throw new TeaUnableRetryError($_lastRequest, $_lastException);
+    }
+
+    /**
+     * @param Params         $params
+     * @param OpenApiRequest $request
+     * @param RuntimeOptions $runtime
+     *
+     * @return array
+     *
+     * @throws TeaError
+     */
+    public function callApi($params, $request, $runtime)
+    {
+        if (Utils::isUnset($params)) {
+            throw new TeaError(['code' => 'ParameterMissing', 'message' => "'params' can not be unset"]);
+        }
+        if (Utils::isUnset($this->_signatureAlgorithm) || !Utils::equalString($this->_signatureAlgorithm, 'v2')) {
+            return $this->doRequest($params, $request, $runtime);
+        } elseif (Utils::equalString($params->style, 'ROA') && Utils::equalString($params->reqBodyType, 'json')) {
+            return $this->doROARequest($params->action, $params->version, $params->protocol, $params->method, $params->authType, $params->pathname, $params->bodyType, $request, $runtime);
+        } elseif (Utils::equalString($params->style, 'ROA')) {
+            return $this->doROARequestWithForm($params->action, $params->version, $params->protocol, $params->method, $params->authType, $params->pathname, $params->bodyType, $request, $runtime);
+        } else {
+            return $this->doRPCRequest($params->action, $params->version, $params->protocol, $params->method, $params->authType, $params->bodyType, $request, $runtime);
+        }
+    }
+
+    /**
+     * Get user agent.
+     *
+     * @return string user agent
+     */
+    public function getUserAgent()
+    {
+        $userAgent = Utils::getUserAgent($this->_userAgent);
+
+        return $userAgent;
+    }
+
+    /**
+     * Get accesskey id by using credential.
+     *
+     * @return string accesskey id
+     */
+    public function getAccessKeyId()
+    {
+        if (Utils::isUnset($this->_credential)) {
+            return '';
+        }
+        $accessKeyId = $this->_credential->getAccessKeyId();
+
+        return $accessKeyId;
+    }
+
+    /**
+     * Get accesskey secret by using credential.
+     *
+     * @return string accesskey secret
+     */
+    public function getAccessKeySecret()
+    {
+        if (Utils::isUnset($this->_credential)) {
+            return '';
+        }
+        $secret = $this->_credential->getAccessKeySecret();
+
+        return $secret;
+    }
+
+    /**
+     * Get security token by using credential.
+     *
+     * @return string security token
+     */
+    public function getSecurityToken()
+    {
+        if (Utils::isUnset($this->_credential)) {
+            return '';
+        }
+        $token = $this->_credential->getSecurityToken();
+
+        return $token;
+    }
+
+    /**
+     * If inputValue is not null, return it or return defaultValue.
+     *
+     * @param mixed $inputValue   users input value
+     * @param mixed $defaultValue default value
+     *
+     * @return any the final result
+     */
+    public static function defaultAny($inputValue, $defaultValue)
+    {
+        if (Utils::isUnset($inputValue)) {
+            return $defaultValue;
+        }
+
+        return $inputValue;
+    }
+
+    /**
+     * If the endpointRule and config.endpoint are empty, throw error.
+     *
+     * @param \Darabonba\OpenApi\Models\Config $config config contains the necessary information to create a client
+     *
+     * @return void
+     *
+     * @throws TeaError
+     */
+    public function checkConfig($config)
+    {
+        if (Utils::empty_($this->_endpointRule) && Utils::empty_($config->endpoint)) {
+            throw new TeaError(['code' => 'ParameterMissing', 'message' => "'config.endpoint' can not be empty"]);
+        }
+    }
+
+    /**
+     * set RPC header for debug.
+     *
+     * @param string[] $headers headers for debug, this header can be used only once
+     *
+     * @return void
+     */
+    public function setRpcHeaders($headers)
+    {
+        $this->_headers = $headers;
+    }
+
+    /**
+     * get RPC header for debug.
+     *
+     * @return array
+     */
+    public function getRpcHeaders()
+    {
+        $headers = $this->_headers;
+        $this->_headers = null;
+
+        return $headers;
+    }
+}

+ 14 - 0
vendor/tea-console/.gitignore

@@ -0,0 +1,14 @@
+composer.phar
+/vendor/
+
+# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
+# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
+composer.lock
+
+.vscode/
+.idea
+.DS_Store
+
+cache/
+*.cache
+runtime/

+ 65 - 0
vendor/tea-console/.php_cs.dist

@@ -0,0 +1,65 @@
+<?php
+/*
+ * This document has been generated with
+ * https://mlocati.github.io/php-cs-fixer-configurator/#version:2.15|configurator
+ * you can change this configuration by importing this file.
+ */
+
+return PhpCsFixer\Config::create()
+    ->setRiskyAllowed(true)
+    ->setIndent('    ')
+    ->setRules([
+        '@PSR2'                                       => true,
+        '@PhpCsFixer'                                 => true,
+        '@Symfony:risky'                              => true,
+        'concat_space'                                => ['spacing' => 'one'],
+        'array_syntax'                                => ['syntax' => 'short'],
+        'array_indentation'                           => true,
+        'combine_consecutive_unsets'                  => true,
+        'method_separation'                           => true,
+        'single_quote'                                => true,
+        'declare_equal_normalize'                     => true,
+        'function_typehint_space'                     => true,
+        'hash_to_slash_comment'                       => true,
+        'include'                                     => true,
+        'lowercase_cast'                              => true,
+        'no_multiline_whitespace_before_semicolons'   => true,
+        'no_leading_import_slash'                     => true,
+        'no_multiline_whitespace_around_double_arrow' => true,
+        'no_spaces_around_offset'                     => true,
+        'no_unneeded_control_parentheses'             => true,
+        'no_unused_imports'                           => true,
+        'no_whitespace_before_comma_in_array'         => true,
+        'no_whitespace_in_blank_line'                 => true,
+        'object_operator_without_whitespace'          => true,
+        'single_blank_line_before_namespace'          => true,
+        'single_class_element_per_statement'          => true,
+        'space_after_semicolon'                       => true,
+        'standardize_not_equals'                      => true,
+        'ternary_operator_spaces'                     => true,
+        'trailing_comma_in_multiline_array'           => true,
+        'trim_array_spaces'                           => true,
+        'unary_operator_spaces'                       => true,
+        'whitespace_after_comma_in_array'             => true,
+        'no_extra_consecutive_blank_lines'            => [
+            'curly_brace_block',
+            'extra',
+            'parenthesis_brace_block',
+            'square_brace_block',
+            'throw',
+            'use',
+        ],
+        'binary_operator_spaces'       => [
+            'align_double_arrow' => true,
+            'align_equals'       => true,
+        ],
+        'braces'                                    => [
+            'allow_single_line_closure' => true,
+        ],
+    ])
+    ->setFinder(
+        PhpCsFixer\Finder::create()
+            ->exclude('vendor')
+            ->exclude('tests')
+            ->in(__DIR__)
+  );

+ 13 - 0
vendor/tea-console/LICENSE

@@ -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.

+ 31 - 0
vendor/tea-console/README-CN.md

@@ -0,0 +1,31 @@
+English | [简体中文](README-CN.md)
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+## Alibaba Cloud Tea Console Output Library for PHP
+
+## Installation
+
+### Composer
+
+```bash
+composer require alibabacloud/tea-console
+```
+
+## Issues
+
+[Opening an Issue](https://github.com/aliyun/tea-console/issues/new), Issues not conforming to the guidelines may be closed immediately.
+
+## Changelog
+
+Detailed changes for each release are documented in the [release notes](./ChangeLog.txt).
+
+## References
+
+* [Latest Release](https://github.com/aliyun/tea-console)
+
+## License
+
+[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.

+ 31 - 0
vendor/tea-console/README.md

@@ -0,0 +1,31 @@
+[English](README.md) | 简体中文
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+## Alibaba Cloud Tea Console Output Library for PHP
+
+## 安装
+
+### Composer
+
+```bash
+composer require alibabacloud/tea-console
+```
+
+## 问题
+
+[提交 Issue](https://github.com/aliyun/tea-console/issues/new),不符合指南的问题可能会立即关闭。
+
+## 发行说明
+
+每个版本的详细更改记录在[发行说明](./ChangeLog.txt)中。
+
+## 相关
+
+* [最新源码](https://github.com/aliyun/tea-console)
+
+## 许可证
+
+[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.

+ 25 - 0
vendor/tea-console/composer.json

@@ -0,0 +1,25 @@
+{
+  "name": "alibabacloud/tea-console",
+  "description": "Alibaba Cloud Tea Console Output Library for PHP",
+  "type": "library",
+  "license": "Apache-2.0",
+  "authors": [],
+  "require": {
+    "php": ">5.5",
+    "monolog/monolog": "^1.0|^2.1"
+  },
+  "autoload": {
+    "psr-4": {
+      "AlibabaCloud\\Tea\\Console\\": "src"
+    }
+  },
+  "scripts": {
+    "fixer": "php-cs-fixer fix ./"
+  },
+  "config": {
+    "sort-packages": true,
+    "preferred-install": "dist",
+    "optimize-autoloader": true
+  },
+  "prefer-stable": true
+}

+ 109 - 0
vendor/tea-console/src/Console.php

@@ -0,0 +1,109 @@
+<?php
+
+namespace AlibabaCloud\Tea\Console;
+
+use Monolog\Handler\AbstractProcessingHandler;
+use Monolog\Handler\StreamHandler;
+use Monolog\Logger;
+
+/**
+ * This is a console module.
+ */
+class Console
+{
+    /**
+     * @var Logger
+     */
+    private static $loggerDriver;
+
+    /**
+     * Console val with log level into stdout.
+     *
+     * @param string $val the printing string
+     *
+     * @throws \Exception
+     *
+     * @example \[LOG\] tea console example
+     */
+    public static function log($val)
+    {
+        self::logger()->log(200, $val);
+    }
+
+    /**
+     * Console val with info level into stdout.
+     *
+     * @param string $val the printing string
+     *
+     * @throws \Exception
+     *
+     * @example \[INFO\] tea console example
+     */
+    public static function info($val)
+    {
+        self::logger()->info($val);
+    }
+
+    /**
+     * Console val with warning level into stdout.
+     *
+     * @param string $val the printing string
+     *
+     * @throws \Exception
+     *
+     * @example \[WARNING\] tea console example
+     */
+    public static function warning($val)
+    {
+        self::logger()->warning($val);
+    }
+
+    /**
+     * Console val with debug level into stdout.
+     *
+     * @param string $val the printing string
+     *
+     * @throws \Exception
+     *
+     * @example \[DEBUG\] tea console example
+     */
+    public static function debug($val)
+    {
+        self::logger()->debug($val);
+    }
+
+    /**
+     * Console val with error level into stderr.
+     *
+     * @param string $val the printing string
+     *
+     * @throws \Exception
+     *
+     * @example \[ERROR\] tea console example
+     */
+    public static function error($val)
+    {
+        self::logger()->error($val);
+    }
+
+    /**
+     * @param AbstractProcessingHandler $handler
+     */
+    public static function pushHandler($handler)
+    {
+        self::$loggerDriver->pushHandler($handler);
+    }
+
+    /**
+     * @return Logger
+     */
+    public static function logger()
+    {
+        if (null === self::$loggerDriver) {
+            self::$loggerDriver = new Logger('tea-console-log');
+            self::$loggerDriver->pushHandler(new StreamHandler('php://stderr', 0));
+        }
+
+        return self::$loggerDriver;
+    }
+}

+ 12 - 0
vendor/tea-fileform/.gitignore

@@ -0,0 +1,12 @@
+composer.phar
+/vendor/
+
+# Commit your application's lock file https://getcomposer.org/doc/01-basic-usage.md#commit-your-composer-lock-file-to-version-control
+# You may choose to ignore a library lock file http://getcomposer.org/doc/02-libraries.md#lock-file
+composer.lock
+
+.idea
+.DS_Store
+
+cache/
+*.cache

+ 65 - 0
vendor/tea-fileform/.php_cs.dist

@@ -0,0 +1,65 @@
+<?php
+/*
+ * This document has been generated with
+ * https://mlocati.github.io/php-cs-fixer-configurator/#version:2.15|configurator
+ * you can change this configuration by importing this file.
+ */
+
+return PhpCsFixer\Config::create()
+    ->setRiskyAllowed(true)
+    ->setIndent('    ')
+    ->setRules([
+        '@PSR2'                                       => true,
+        '@PhpCsFixer'                                 => true,
+        '@Symfony:risky'                              => true,
+        'concat_space'                                => ['spacing' => 'one'],
+        'array_syntax'                                => ['syntax' => 'short'],
+        'array_indentation'                           => true,
+        'combine_consecutive_unsets'                  => true,
+        'method_separation'                           => true,
+        'single_quote'                                => true,
+        'declare_equal_normalize'                     => true,
+        'function_typehint_space'                     => true,
+        'hash_to_slash_comment'                       => true,
+        'include'                                     => true,
+        'lowercase_cast'                              => true,
+        'no_multiline_whitespace_before_semicolons'   => true,
+        'no_leading_import_slash'                     => true,
+        'no_multiline_whitespace_around_double_arrow' => true,
+        'no_spaces_around_offset'                     => true,
+        'no_unneeded_control_parentheses'             => true,
+        'no_unused_imports'                           => true,
+        'no_whitespace_before_comma_in_array'         => true,
+        'no_whitespace_in_blank_line'                 => true,
+        'object_operator_without_whitespace'          => true,
+        'single_blank_line_before_namespace'          => true,
+        'single_class_element_per_statement'          => true,
+        'space_after_semicolon'                       => true,
+        'standardize_not_equals'                      => true,
+        'ternary_operator_spaces'                     => true,
+        'trailing_comma_in_multiline_array'           => true,
+        'trim_array_spaces'                           => true,
+        'unary_operator_spaces'                       => true,
+        'whitespace_after_comma_in_array'             => true,
+        'no_extra_consecutive_blank_lines'            => [
+            'curly_brace_block',
+            'extra',
+            'parenthesis_brace_block',
+            'square_brace_block',
+            'throw',
+            'use',
+        ],
+        'binary_operator_spaces'       => [
+            'align_double_arrow' => true,
+            'align_equals'       => true,
+        ],
+        'braces'                                    => [
+            'allow_single_line_closure' => true,
+        ],
+    ])
+    ->setFinder(
+        PhpCsFixer\Finder::create()
+            ->exclude('vendor')
+            ->exclude('tests')
+            ->in(__DIR__)
+  );

+ 31 - 0
vendor/tea-fileform/README-CN.md

@@ -0,0 +1,31 @@
+English | [简体中文](README-CN.md)
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+## Alibaba Cloud Tea File Library for PHP
+
+## Installation
+
+### Composer
+
+```bash
+composer require alibabacloud/tea-fileform
+```
+
+## Issues
+
+[Opening an Issue](https://github.com/aliyun/tea-fileform/issues/new), Issues not conforming to the guidelines may be closed immediately.
+
+## Changelog
+
+Detailed changes for each release are documented in the [release notes](./ChangeLog.txt).
+
+## References
+
+* [Latest Release](https://github.com/aliyun/tea-fileform)
+
+## License
+
+[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.

+ 31 - 0
vendor/tea-fileform/README.md

@@ -0,0 +1,31 @@
+[English](README.md) | 简体中文
+
+![](https://aliyunsdk-pages.alicdn.com/icons/AlibabaCloud.svg)
+
+## Alibaba Cloud Tea File Library for PHP
+
+## 安装
+
+### Composer
+
+```bash
+composer require alibabacloud/tea-fileform
+```
+
+## 问题
+
+[提交 Issue](https://github.com/aliyun/tea-fileform/issues/new),不符合指南的问题可能会立即关闭。
+
+## 发行说明
+
+每个版本的详细更改记录在[发行说明](./ChangeLog.txt)中。
+
+## 相关
+
+* [最新源码](https://github.com/aliyun/tea-fileform)
+
+## 许可证
+
+[Apache-2.0](http://www.apache.org/licenses/LICENSE-2.0)
+
+Copyright (c) 2009-present, Alibaba Cloud All rights reserved.

+ 44 - 0
vendor/tea-fileform/composer.json

@@ -0,0 +1,44 @@
+{
+  "name": "alibabacloud/tea-fileform",
+  "description": "Alibaba Cloud Tea File Library for PHP",
+  "type": "library",
+  "license": "Apache-2.0",
+  "authors": [
+    {
+      "name": "Alibaba Cloud SDK",
+      "email": "sdk-team@alibabacloud.com"
+    }
+  ],
+  "require": {
+    "php": ">5.5",
+    "alibabacloud/tea": "^3.0"
+  },
+  "require-dev": {
+    "phpunit/phpunit": "^4.8.35|^5.4.3"
+  },
+  "autoload": {
+    "psr-4": {
+      "AlibabaCloud\\Tea\\FileForm\\": "src"
+    }
+  },
+  "autoload-dev": {
+    "psr-4": {
+      "AlibabaCloud\\Tea\\FileForm\\Tests\\": "tests"
+    }
+  },
+  "scripts": {
+    "fixer": "php-cs-fixer fix ./",
+    "test": [
+      "@clearCache",
+      "phpunit --colors=always"
+    ],
+    "clearCache": "rm -rf cache/*"
+  },
+  "config": {
+    "sort-packages": true,
+    "preferred-install": "dist",
+    "optimize-autoloader": true
+  },
+  "prefer-stable": true,
+  "minimum-stability": "dev"
+}

+ 32 - 0
vendor/tea-fileform/phpunit.xml

@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<phpunit bootstrap="./tests/bootstrap.php" colors="true" processIsolation="false" stopOnFailure="false"
+         convertErrorsToExceptions="true" convertNoticesToExceptions="true" convertWarningsToExceptions="true"
+         testSuiteLoaderFile="phpunit/src/Runner/StandardTestSuiteLoader.php">
+
+    <testsuites>
+        <testsuite name="All">
+            <directory>tests</directory>
+        </testsuite>
+        <testsuite name="Unit">
+            <directory suffix="Test.php">./tests/Unit</directory>
+        </testsuite>
+    </testsuites>
+
+    <groups>
+        <exclude>
+            <group>integration</group>
+        </exclude>
+    </groups>
+
+    <logging>
+        <log type="coverage-html" target="cache/coverage" lowUpperBound="35" highLowerBound="70"/>
+        <log type="coverage-clover" target="cache/coverage.clover"/>
+    </logging>
+
+
+    <filter>
+        <whitelist processUncoveredFilesFromWhitelist="true">
+            <directory suffix=".php">./src</directory>
+        </whitelist>
+    </filter>
+</phpunit>

+ 16 - 0
vendor/tea-fileform/src/FileForm.php

@@ -0,0 +1,16 @@
+<?php
+
+namespace AlibabaCloud\Tea\FileForm;
+
+class FileForm
+{
+    public static function getBoundary()
+    {
+        return (string) (mt_rand(10000000000000, 99999999999999));
+    }
+
+    public static function toFileForm($map, $boundary)
+    {
+        return new FileFormStream($map, $boundary);
+    }
+}

+ 22 - 0
vendor/tea-fileform/src/FileForm/FileField.php

@@ -0,0 +1,22 @@
+<?php
+
+namespace AlibabaCloud\Tea\FileForm\FileForm;
+
+use AlibabaCloud\Tea\Model;
+
+class FileField extends Model
+{
+    public $filename;
+    public $contentType;
+    public $content;
+
+    public function __construct($config = [])
+    {
+        $this->_required = [
+            'filename'    => true,
+            'contentType' => true,
+            'content'     => true,
+        ];
+        parent::__construct($config);
+    }
+}

+ 321 - 0
vendor/tea-fileform/src/FileFormStream.php

@@ -0,0 +1,321 @@
+<?php
+
+namespace AlibabaCloud\Tea\FileForm;
+
+use AlibabaCloud\Tea\FileForm\FileForm\FileField;
+use GuzzleHttp\Psr7\Stream;
+use Psr\Http\Message\StreamInterface;
+
+/**
+ * @internal
+ * @coversNothing
+ */
+class FileFormStream implements StreamInterface
+{
+    /**
+     * @var resource
+     */
+    private $stream;
+    private $index     = 0;
+    private $form      = [];
+    private $boundary  = '';
+    private $streaming = false;
+    private $keys      = [];
+
+    /**
+     * @var Stream
+     */
+    private $currStream;
+
+    private $size;
+    private $uri;
+    private $seekable;
+    private $readable = true;
+    private $writable = true;
+
+    public function __construct($map, $boundary)
+    {
+        $this->stream   = fopen('php://memory', 'a+');
+        $this->form     = $map;
+        $this->boundary = $boundary;
+        $this->keys     = array_keys($map);
+        do {
+            $read = $this->readForm(1024);
+        } while (null !== $read);
+        $meta           = stream_get_meta_data($this->stream);
+        $this->seekable = $meta['seekable'];
+        $this->uri      = $this->getMetadata('uri');
+        $this->seek(0);
+        $this->seek(0);
+    }
+
+    /**
+     * Closes the stream when the destructed.
+     */
+    public function __destruct()
+    {
+        $this->close();
+    }
+
+    public function __toString()
+    {
+        try {
+            $this->seek(0);
+
+            return (string) stream_get_contents($this->stream);
+        } catch (\Exception $e) {
+            return '';
+        }
+    }
+
+    /**
+     * @param int $length
+     *
+     * @return false|int|string
+     */
+    public function readForm($length)
+    {
+        if ($this->streaming) {
+            if (null !== $this->currStream) {
+                // @var string $content
+                $content = $this->currStream->read($length);
+                if (false !== $content && '' !== $content) {
+                    fwrite($this->stream, $content);
+
+                    return $content;
+                }
+
+                return $this->next("\r\n");
+            }
+
+            return $this->next();
+        }
+        $keysCount = \count($this->keys);
+        if ($this->index > $keysCount) {
+            return null;
+        }
+        if ($keysCount > 0) {
+            if ($this->index < $keysCount) {
+                $this->streaming = true;
+
+                $name  = $this->keys[$this->index];
+                $field = $this->form[$name];
+                if (!empty($field) && $field instanceof FileField) {
+                    if (!empty($field->content)) {
+                        $this->currStream = $field->content;
+
+                        $str = '--' . $this->boundary . "\r\n" .
+                            'Content-Disposition: form-data; name="' . $name . '"; filename="' . $field->filename . "\"\r\n" .
+                            'Content-Type: ' . $field->contentType . "\r\n\r\n";
+                        $this->write($str);
+
+                        return $str;
+                    }
+
+                    return $this->next();
+                }
+                $val = $field;
+                $str = '--' . $this->boundary . "\r\n" .
+                    'Content-Disposition: form-data; name="' . $name . "\"\r\n\r\n" .
+                    $val . "\r\n";
+                fwrite($this->stream, $str);
+
+                return $str;
+            }
+            if ($this->index == $keysCount) {
+                return $this->next('--' . $this->boundary . "--\r\n");
+            }
+
+            return null;
+        }
+
+        return null;
+    }
+
+    public function getContents()
+    {
+        if (!isset($this->stream)) {
+            throw new \RuntimeException('Stream is detached');
+        }
+
+        $contents = stream_get_contents($this->stream);
+
+        if (false === $contents) {
+            throw new \RuntimeException('Unable to read stream contents');
+        }
+
+        return $contents;
+    }
+
+    public function close()
+    {
+        if (isset($this->stream)) {
+            if (\is_resource($this->stream)) {
+                fclose($this->stream);
+            }
+            $this->detach();
+        }
+    }
+
+    public function detach()
+    {
+        if (!isset($this->stream)) {
+            return null;
+        }
+
+        $result = $this->stream;
+        unset($this->stream);
+        $this->size = $this->uri = null;
+
+        return $result;
+    }
+
+    public function getSize()
+    {
+        if (null !== $this->size) {
+            return $this->size;
+        }
+
+        if (!isset($this->stream)) {
+            return null;
+        }
+
+        // Clear the stat cache if the stream has a URI
+        if ($this->uri) {
+            clearstatcache(true, $this->uri);
+        }
+
+        $stats = fstat($this->stream);
+        if (isset($stats['size'])) {
+            $this->size = $stats['size'];
+
+            return $this->size;
+        }
+
+        return null;
+    }
+
+    public function isReadable()
+    {
+        return $this->readable;
+    }
+
+    public function isWritable()
+    {
+        return $this->writable;
+    }
+
+    public function isSeekable()
+    {
+        return $this->seekable;
+    }
+
+    public function eof()
+    {
+        if (!isset($this->stream)) {
+            throw new \RuntimeException('Stream is detached');
+        }
+
+        return feof($this->stream);
+    }
+
+    public function tell()
+    {
+        if (!isset($this->stream)) {
+            throw new \RuntimeException('Stream is detached');
+        }
+
+        $result = ftell($this->stream);
+
+        if (false === $result) {
+            throw new \RuntimeException('Unable to determine stream position');
+        }
+
+        return $result;
+    }
+
+    public function rewind()
+    {
+        $this->seek(0);
+    }
+
+    public function seek($offset, $whence = SEEK_SET)
+    {
+        $whence = (int) $whence;
+
+        if (!isset($this->stream)) {
+            throw new \RuntimeException('Stream is detached');
+        }
+        if (!$this->seekable) {
+            throw new \RuntimeException('Stream is not seekable');
+        }
+        if (-1 === fseek($this->stream, $offset, $whence)) {
+            throw new \RuntimeException('Unable to seek to stream position ' . $offset . ' with whence ' . var_export($whence, true));
+        }
+    }
+
+    public function read($length)
+    {
+        if (!isset($this->stream)) {
+            throw new \RuntimeException('Stream is detached');
+        }
+        if (!$this->readable) {
+            throw new \RuntimeException('Cannot read from non-readable stream');
+        }
+        if ($length < 0) {
+            throw new \RuntimeException('Length parameter cannot be negative');
+        }
+
+        if (0 === $length) {
+            return '';
+        }
+
+        $string = fread($this->stream, $length);
+        if (false === $string) {
+            throw new \RuntimeException('Unable to read from stream');
+        }
+
+        return $string;
+    }
+
+    public function write($string)
+    {
+        if (!isset($this->stream)) {
+            throw new \RuntimeException('Stream is detached');
+        }
+        if (!$this->writable) {
+            throw new \RuntimeException('Cannot write to a non-writable stream');
+        }
+
+        // We can't know the size after writing anything
+        $this->size = null;
+        $result     = fwrite($this->stream, $string);
+
+        if (false === $result) {
+            throw new \RuntimeException('Unable to write to stream');
+        }
+
+        return $result;
+    }
+
+    public function getMetadata($key = null)
+    {
+        if (!isset($this->stream)) {
+            return $key ? null : [];
+        }
+
+        $meta = stream_get_meta_data($this->stream);
+
+        return isset($meta[$key]) ? $meta[$key] : null;
+    }
+
+    private function next($endStr = '')
+    {
+        $this->streaming = false;
+        ++$this->index;
+        $this->write($endStr);
+        $this->currStream = null;
+
+        return $endStr;
+    }
+}

+ 81 - 0
vendor/tea-fileform/tests/FileFormTest.php

@@ -0,0 +1,81 @@
+<?php
+
+namespace AlibabaCloud\Tea\FileForm\Tests;
+
+use AlibabaCloud\Tea\FileForm\FileForm;
+use AlibabaCloud\Tea\FileForm\FileForm\FileField;
+use AlibabaCloud\Tea\FileForm\FileFormStream;
+use GuzzleHttp\Psr7\Stream;
+use PHPUnit\Framework\TestCase;
+
+/**
+ * @internal
+ * @coversNothing
+ */
+class FileFormTest extends TestCase
+{
+    public function testFileFromStream()
+    {
+        $boundary = FileForm::getBoundary();
+        $stream   = FileForm::toFileForm([], $boundary);
+        $this->assertTrue($stream instanceof FileFormStream);
+        $stream->write($boundary);
+        $this->assertTrue(\strlen($boundary) === $stream->getSize());
+    }
+
+    public function testSet()
+    {
+        $fileField = new FileField([
+            'filename'    => 'fake filename',
+            'contentType' => 'content type',
+            'content'     => null,
+        ]);
+
+        $this->assertEquals('fake filename', $fileField->filename);
+        $this->assertEquals('content type', $fileField->contentType);
+    }
+
+    public function testRead()
+    {
+        $fileField              = new FileField();
+        $fileField->filename    = 'haveContent';
+        $fileField->contentType = 'contentType';
+        $fileField->content     = new Stream(fopen('data://text/plain;base64,' . base64_encode('This is file test. This sentence must be long'), 'r'));
+
+        $fileFieldNoContent              = new FileField();
+        $fileFieldNoContent->filename    = 'noContent';
+        $fileFieldNoContent->contentType = 'contentType';
+        $fileFieldNoContent->content     = null;
+
+        $map = [
+            'key'      => 'value',
+            'testKey'  => 'testValue',
+            'haveFile' => $fileField,
+            'noFile'   => $fileFieldNoContent,
+        ];
+
+        $stream = FileForm::toFileForm($map, 'testBoundary');
+
+        $result = $stream->getContents();
+        $target = "--testBoundary\r\nContent-Disposition: form-data; name=\"key\"\r\n\r\nvalue\r\n--testBoundary\r\nContent-Disposition: form-data; name=\"testKey\"\r\n\r\ntestValue\r\n--testBoundary\r\nContent-Disposition: form-data; name=\"haveFile\"; filename=\"haveContent\"\r\nContent-Type: contentType\r\n\r\nThis is file test. This sentence must be long\r\n--testBoundary--\r\n";
+
+        $this->assertEquals($target, $result);
+    }
+
+    public function testReadFile()
+    {
+        $fileField              = new FileField();
+        $fileField->filename    = 'composer.json';
+        $fileField->contentType = 'application/json';
+        $fileField->content     = new Stream(fopen(__DIR__ . '/../composer.json', 'r'));
+        $map                    = [
+            'name'      => 'json_file',
+            'type'      => 'application/json',
+            'json_file' => $fileField,
+        ];
+
+        $boundary   = FileForm::getBoundary();
+        $fileStream = FileForm::toFileForm($map, $boundary);
+        $this->assertTrue(false !== strpos($fileStream->getContents(), 'json_file'));
+    }
+}

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