浏览代码

Supported SortBy for ListUserDevices.

sdk-team 2 年之前
父节点
当前提交
e922990dbc
共有 62 个文件被更改,包括 5062 次插入1 次删除
  1. 1 1
      VERSION
  2. 56 0
      csas/CMakeLists.txt
  3. 112 0
      csas/include/alibabacloud/csas/CsasClient.h
  4. 85 0
      csas/include/alibabacloud/csas/model/CreateRegistrationPolicyRequest.h
  5. 76 0
      csas/include/alibabacloud/csas/model/CreateRegistrationPolicyResult.h
  6. 45 0
      csas/include/alibabacloud/csas/model/DeleteRegistrationPoliciesRequest.h
  7. 49 0
      csas/include/alibabacloud/csas/model/DeleteRegistrationPoliciesResult.h
  8. 45 0
      csas/include/alibabacloud/csas/model/GetRegistrationPolicyRequest.h
  9. 81 0
      csas/include/alibabacloud/csas/model/GetRegistrationPolicyResult.h
  10. 45 0
      csas/include/alibabacloud/csas/model/GetUserDeviceRequest.h
  11. 85 0
      csas/include/alibabacloud/csas/model/GetUserDeviceResult.h
  12. 72 0
      csas/include/alibabacloud/csas/model/ListExcessiveDeviceRegistrationApplicationsRequest.h
  13. 68 0
      csas/include/alibabacloud/csas/model/ListExcessiveDeviceRegistrationApplicationsResult.h
  14. 3 0
      csas/include/alibabacloud/csas/model/ListPrivateAccessTagsRequest.h
  15. 45 0
      csas/include/alibabacloud/csas/model/ListRegistrationPoliciesForUserGroupRequest.h
  16. 80 0
      csas/include/alibabacloud/csas/model/ListRegistrationPoliciesForUserGroupResult.h
  17. 69 0
      csas/include/alibabacloud/csas/model/ListRegistrationPoliciesRequest.h
  18. 78 0
      csas/include/alibabacloud/csas/model/ListRegistrationPoliciesResult.h
  19. 51 0
      csas/include/alibabacloud/csas/model/ListSoftwareForUserDeviceRequest.h
  20. 60 0
      csas/include/alibabacloud/csas/model/ListSoftwareForUserDeviceResult.h
  21. 96 0
      csas/include/alibabacloud/csas/model/ListUserDevicesRequest.h
  22. 81 0
      csas/include/alibabacloud/csas/model/ListUserDevicesResult.h
  23. 45 0
      csas/include/alibabacloud/csas/model/ListUserGroupsForRegistrationPolicyRequest.h
  24. 71 0
      csas/include/alibabacloud/csas/model/ListUserGroupsForRegistrationPolicyResult.h
  25. 48 0
      csas/include/alibabacloud/csas/model/UpdateExcessiveDeviceRegistrationApplicationsStatusRequest.h
  26. 66 0
      csas/include/alibabacloud/csas/model/UpdateExcessiveDeviceRegistrationApplicationsStatusResult.h
  27. 88 0
      csas/include/alibabacloud/csas/model/UpdateRegistrationPolicyRequest.h
  28. 76 0
      csas/include/alibabacloud/csas/model/UpdateRegistrationPolicyResult.h
  29. 48 0
      csas/include/alibabacloud/csas/model/UpdateUserDevicesSharingStatusRequest.h
  30. 79 0
      csas/include/alibabacloud/csas/model/UpdateUserDevicesSharingStatusResult.h
  31. 48 0
      csas/include/alibabacloud/csas/model/UpdateUserDevicesStatusRequest.h
  32. 79 0
      csas/include/alibabacloud/csas/model/UpdateUserDevicesStatusResult.h
  33. 504 0
      csas/src/CsasClient.cc
  34. 143 0
      csas/src/model/CreateRegistrationPolicyRequest.cc
  35. 87 0
      csas/src/model/CreateRegistrationPolicyResult.cc
  36. 47 0
      csas/src/model/DeleteRegistrationPoliciesRequest.cc
  37. 44 0
      csas/src/model/DeleteRegistrationPoliciesResult.cc
  38. 45 0
      csas/src/model/GetRegistrationPolicyRequest.cc
  39. 131 0
      csas/src/model/GetRegistrationPolicyResult.cc
  40. 45 0
      csas/src/model/GetUserDeviceRequest.cc
  41. 110 0
      csas/src/model/GetUserDeviceResult.cc
  42. 130 0
      csas/src/model/ListExcessiveDeviceRegistrationApplicationsRequest.cc
  43. 86 0
      csas/src/model/ListExcessiveDeviceRegistrationApplicationsResult.cc
  44. 9 0
      csas/src/model/ListPrivateAccessTagsRequest.cc
  45. 47 0
      csas/src/model/ListRegistrationPoliciesForUserGroupRequest.cc
  46. 97 0
      csas/src/model/ListRegistrationPoliciesForUserGroupResult.cc
  47. 119 0
      csas/src/model/ListRegistrationPoliciesRequest.cc
  48. 99 0
      csas/src/model/ListRegistrationPoliciesResult.cc
  49. 63 0
      csas/src/model/ListSoftwareForUserDeviceRequest.cc
  50. 71 0
      csas/src/model/ListSoftwareForUserDeviceResult.cc
  51. 214 0
      csas/src/model/ListUserDevicesRequest.cc
  52. 112 0
      csas/src/model/ListUserDevicesResult.cc
  53. 47 0
      csas/src/model/ListUserGroupsForRegistrationPolicyRequest.cc
  54. 85 0
      csas/src/model/ListUserGroupsForRegistrationPolicyResult.cc
  55. 56 0
      csas/src/model/UpdateExcessiveDeviceRegistrationApplicationsStatusRequest.cc
  56. 79 0
      csas/src/model/UpdateExcessiveDeviceRegistrationApplicationsStatusResult.cc
  57. 152 0
      csas/src/model/UpdateRegistrationPolicyRequest.cc
  58. 87 0
      csas/src/model/UpdateRegistrationPolicyResult.cc
  59. 56 0
      csas/src/model/UpdateUserDevicesSharingStatusRequest.cc
  60. 105 0
      csas/src/model/UpdateUserDevicesSharingStatusResult.cc
  61. 56 0
      csas/src/model/UpdateUserDevicesStatusRequest.cc
  62. 105 0
      csas/src/model/UpdateUserDevicesStatusResult.cc

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1805
+1.36.1806

+ 56 - 0
csas/CMakeLists.txt

@@ -31,6 +31,8 @@ set(csas_public_header_model
 	include/alibabacloud/csas/model/CreatePrivateAccessPolicyResult.h
 	include/alibabacloud/csas/model/CreatePrivateAccessTagRequest.h
 	include/alibabacloud/csas/model/CreatePrivateAccessTagResult.h
+	include/alibabacloud/csas/model/CreateRegistrationPolicyRequest.h
+	include/alibabacloud/csas/model/CreateRegistrationPolicyResult.h
 	include/alibabacloud/csas/model/CreateUserGroupRequest.h
 	include/alibabacloud/csas/model/CreateUserGroupResult.h
 	include/alibabacloud/csas/model/DeleteDynamicRouteRequest.h
@@ -41,6 +43,8 @@ set(csas_public_header_model
 	include/alibabacloud/csas/model/DeletePrivateAccessPolicyResult.h
 	include/alibabacloud/csas/model/DeletePrivateAccessTagRequest.h
 	include/alibabacloud/csas/model/DeletePrivateAccessTagResult.h
+	include/alibabacloud/csas/model/DeleteRegistrationPoliciesRequest.h
+	include/alibabacloud/csas/model/DeleteRegistrationPoliciesResult.h
 	include/alibabacloud/csas/model/DeleteUserGroupRequest.h
 	include/alibabacloud/csas/model/DeleteUserGroupResult.h
 	include/alibabacloud/csas/model/DetachApplication2ConnectorRequest.h
@@ -51,6 +55,10 @@ set(csas_public_header_model
 	include/alibabacloud/csas/model/GetPrivateAccessApplicationResult.h
 	include/alibabacloud/csas/model/GetPrivateAccessPolicyRequest.h
 	include/alibabacloud/csas/model/GetPrivateAccessPolicyResult.h
+	include/alibabacloud/csas/model/GetRegistrationPolicyRequest.h
+	include/alibabacloud/csas/model/GetRegistrationPolicyResult.h
+	include/alibabacloud/csas/model/GetUserDeviceRequest.h
+	include/alibabacloud/csas/model/GetUserDeviceResult.h
 	include/alibabacloud/csas/model/GetUserGroupRequest.h
 	include/alibabacloud/csas/model/GetUserGroupResult.h
 	include/alibabacloud/csas/model/ListApplicationsForPrivateAccessPolicyRequest.h
@@ -63,6 +71,8 @@ set(csas_public_header_model
 	include/alibabacloud/csas/model/ListDynamicRouteRegionsResult.h
 	include/alibabacloud/csas/model/ListDynamicRoutesRequest.h
 	include/alibabacloud/csas/model/ListDynamicRoutesResult.h
+	include/alibabacloud/csas/model/ListExcessiveDeviceRegistrationApplicationsRequest.h
+	include/alibabacloud/csas/model/ListExcessiveDeviceRegistrationApplicationsResult.h
 	include/alibabacloud/csas/model/ListPolicesForPrivateAccessApplicationRequest.h
 	include/alibabacloud/csas/model/ListPolicesForPrivateAccessApplicationResult.h
 	include/alibabacloud/csas/model/ListPolicesForPrivateAccessTagRequest.h
@@ -79,20 +89,38 @@ set(csas_public_header_model
 	include/alibabacloud/csas/model/ListPrivateAccessTagsResult.h
 	include/alibabacloud/csas/model/ListPrivateAccessTagsForDynamicRouteRequest.h
 	include/alibabacloud/csas/model/ListPrivateAccessTagsForDynamicRouteResult.h
+	include/alibabacloud/csas/model/ListRegistrationPoliciesRequest.h
+	include/alibabacloud/csas/model/ListRegistrationPoliciesResult.h
+	include/alibabacloud/csas/model/ListRegistrationPoliciesForUserGroupRequest.h
+	include/alibabacloud/csas/model/ListRegistrationPoliciesForUserGroupResult.h
+	include/alibabacloud/csas/model/ListSoftwareForUserDeviceRequest.h
+	include/alibabacloud/csas/model/ListSoftwareForUserDeviceResult.h
 	include/alibabacloud/csas/model/ListTagsForPrivateAccessApplicationRequest.h
 	include/alibabacloud/csas/model/ListTagsForPrivateAccessApplicationResult.h
 	include/alibabacloud/csas/model/ListTagsForPrivateAccessPolicyRequest.h
 	include/alibabacloud/csas/model/ListTagsForPrivateAccessPolicyResult.h
+	include/alibabacloud/csas/model/ListUserDevicesRequest.h
+	include/alibabacloud/csas/model/ListUserDevicesResult.h
 	include/alibabacloud/csas/model/ListUserGroupsRequest.h
 	include/alibabacloud/csas/model/ListUserGroupsResult.h
 	include/alibabacloud/csas/model/ListUserGroupsForPrivateAccessPolicyRequest.h
 	include/alibabacloud/csas/model/ListUserGroupsForPrivateAccessPolicyResult.h
+	include/alibabacloud/csas/model/ListUserGroupsForRegistrationPolicyRequest.h
+	include/alibabacloud/csas/model/ListUserGroupsForRegistrationPolicyResult.h
 	include/alibabacloud/csas/model/UpdateDynamicRouteRequest.h
 	include/alibabacloud/csas/model/UpdateDynamicRouteResult.h
+	include/alibabacloud/csas/model/UpdateExcessiveDeviceRegistrationApplicationsStatusRequest.h
+	include/alibabacloud/csas/model/UpdateExcessiveDeviceRegistrationApplicationsStatusResult.h
 	include/alibabacloud/csas/model/UpdatePrivateAccessApplicationRequest.h
 	include/alibabacloud/csas/model/UpdatePrivateAccessApplicationResult.h
 	include/alibabacloud/csas/model/UpdatePrivateAccessPolicyRequest.h
 	include/alibabacloud/csas/model/UpdatePrivateAccessPolicyResult.h
+	include/alibabacloud/csas/model/UpdateRegistrationPolicyRequest.h
+	include/alibabacloud/csas/model/UpdateRegistrationPolicyResult.h
+	include/alibabacloud/csas/model/UpdateUserDevicesSharingStatusRequest.h
+	include/alibabacloud/csas/model/UpdateUserDevicesSharingStatusResult.h
+	include/alibabacloud/csas/model/UpdateUserDevicesStatusRequest.h
+	include/alibabacloud/csas/model/UpdateUserDevicesStatusResult.h
 	include/alibabacloud/csas/model/UpdateUserGroupRequest.h
 	include/alibabacloud/csas/model/UpdateUserGroupResult.h )
 
@@ -108,6 +136,8 @@ set(csas_src
 	src/model/CreatePrivateAccessPolicyResult.cc
 	src/model/CreatePrivateAccessTagRequest.cc
 	src/model/CreatePrivateAccessTagResult.cc
+	src/model/CreateRegistrationPolicyRequest.cc
+	src/model/CreateRegistrationPolicyResult.cc
 	src/model/CreateUserGroupRequest.cc
 	src/model/CreateUserGroupResult.cc
 	src/model/DeleteDynamicRouteRequest.cc
@@ -118,6 +148,8 @@ set(csas_src
 	src/model/DeletePrivateAccessPolicyResult.cc
 	src/model/DeletePrivateAccessTagRequest.cc
 	src/model/DeletePrivateAccessTagResult.cc
+	src/model/DeleteRegistrationPoliciesRequest.cc
+	src/model/DeleteRegistrationPoliciesResult.cc
 	src/model/DeleteUserGroupRequest.cc
 	src/model/DeleteUserGroupResult.cc
 	src/model/DetachApplication2ConnectorRequest.cc
@@ -128,6 +160,10 @@ set(csas_src
 	src/model/GetPrivateAccessApplicationResult.cc
 	src/model/GetPrivateAccessPolicyRequest.cc
 	src/model/GetPrivateAccessPolicyResult.cc
+	src/model/GetRegistrationPolicyRequest.cc
+	src/model/GetRegistrationPolicyResult.cc
+	src/model/GetUserDeviceRequest.cc
+	src/model/GetUserDeviceResult.cc
 	src/model/GetUserGroupRequest.cc
 	src/model/GetUserGroupResult.cc
 	src/model/ListApplicationsForPrivateAccessPolicyRequest.cc
@@ -140,6 +176,8 @@ set(csas_src
 	src/model/ListDynamicRouteRegionsResult.cc
 	src/model/ListDynamicRoutesRequest.cc
 	src/model/ListDynamicRoutesResult.cc
+	src/model/ListExcessiveDeviceRegistrationApplicationsRequest.cc
+	src/model/ListExcessiveDeviceRegistrationApplicationsResult.cc
 	src/model/ListPolicesForPrivateAccessApplicationRequest.cc
 	src/model/ListPolicesForPrivateAccessApplicationResult.cc
 	src/model/ListPolicesForPrivateAccessTagRequest.cc
@@ -156,20 +194,38 @@ set(csas_src
 	src/model/ListPrivateAccessTagsResult.cc
 	src/model/ListPrivateAccessTagsForDynamicRouteRequest.cc
 	src/model/ListPrivateAccessTagsForDynamicRouteResult.cc
+	src/model/ListRegistrationPoliciesRequest.cc
+	src/model/ListRegistrationPoliciesResult.cc
+	src/model/ListRegistrationPoliciesForUserGroupRequest.cc
+	src/model/ListRegistrationPoliciesForUserGroupResult.cc
+	src/model/ListSoftwareForUserDeviceRequest.cc
+	src/model/ListSoftwareForUserDeviceResult.cc
 	src/model/ListTagsForPrivateAccessApplicationRequest.cc
 	src/model/ListTagsForPrivateAccessApplicationResult.cc
 	src/model/ListTagsForPrivateAccessPolicyRequest.cc
 	src/model/ListTagsForPrivateAccessPolicyResult.cc
+	src/model/ListUserDevicesRequest.cc
+	src/model/ListUserDevicesResult.cc
 	src/model/ListUserGroupsRequest.cc
 	src/model/ListUserGroupsResult.cc
 	src/model/ListUserGroupsForPrivateAccessPolicyRequest.cc
 	src/model/ListUserGroupsForPrivateAccessPolicyResult.cc
+	src/model/ListUserGroupsForRegistrationPolicyRequest.cc
+	src/model/ListUserGroupsForRegistrationPolicyResult.cc
 	src/model/UpdateDynamicRouteRequest.cc
 	src/model/UpdateDynamicRouteResult.cc
+	src/model/UpdateExcessiveDeviceRegistrationApplicationsStatusRequest.cc
+	src/model/UpdateExcessiveDeviceRegistrationApplicationsStatusResult.cc
 	src/model/UpdatePrivateAccessApplicationRequest.cc
 	src/model/UpdatePrivateAccessApplicationResult.cc
 	src/model/UpdatePrivateAccessPolicyRequest.cc
 	src/model/UpdatePrivateAccessPolicyResult.cc
+	src/model/UpdateRegistrationPolicyRequest.cc
+	src/model/UpdateRegistrationPolicyResult.cc
+	src/model/UpdateUserDevicesSharingStatusRequest.cc
+	src/model/UpdateUserDevicesSharingStatusResult.cc
+	src/model/UpdateUserDevicesStatusRequest.cc
+	src/model/UpdateUserDevicesStatusResult.cc
 	src/model/UpdateUserGroupRequest.cc
 	src/model/UpdateUserGroupResult.cc )
 

+ 112 - 0
csas/include/alibabacloud/csas/CsasClient.h

@@ -32,6 +32,8 @@
 #include "model/CreatePrivateAccessPolicyResult.h"
 #include "model/CreatePrivateAccessTagRequest.h"
 #include "model/CreatePrivateAccessTagResult.h"
+#include "model/CreateRegistrationPolicyRequest.h"
+#include "model/CreateRegistrationPolicyResult.h"
 #include "model/CreateUserGroupRequest.h"
 #include "model/CreateUserGroupResult.h"
 #include "model/DeleteDynamicRouteRequest.h"
@@ -42,6 +44,8 @@
 #include "model/DeletePrivateAccessPolicyResult.h"
 #include "model/DeletePrivateAccessTagRequest.h"
 #include "model/DeletePrivateAccessTagResult.h"
+#include "model/DeleteRegistrationPoliciesRequest.h"
+#include "model/DeleteRegistrationPoliciesResult.h"
 #include "model/DeleteUserGroupRequest.h"
 #include "model/DeleteUserGroupResult.h"
 #include "model/DetachApplication2ConnectorRequest.h"
@@ -52,6 +56,10 @@
 #include "model/GetPrivateAccessApplicationResult.h"
 #include "model/GetPrivateAccessPolicyRequest.h"
 #include "model/GetPrivateAccessPolicyResult.h"
+#include "model/GetRegistrationPolicyRequest.h"
+#include "model/GetRegistrationPolicyResult.h"
+#include "model/GetUserDeviceRequest.h"
+#include "model/GetUserDeviceResult.h"
 #include "model/GetUserGroupRequest.h"
 #include "model/GetUserGroupResult.h"
 #include "model/ListApplicationsForPrivateAccessPolicyRequest.h"
@@ -64,6 +72,8 @@
 #include "model/ListDynamicRouteRegionsResult.h"
 #include "model/ListDynamicRoutesRequest.h"
 #include "model/ListDynamicRoutesResult.h"
+#include "model/ListExcessiveDeviceRegistrationApplicationsRequest.h"
+#include "model/ListExcessiveDeviceRegistrationApplicationsResult.h"
 #include "model/ListPolicesForPrivateAccessApplicationRequest.h"
 #include "model/ListPolicesForPrivateAccessApplicationResult.h"
 #include "model/ListPolicesForPrivateAccessTagRequest.h"
@@ -80,20 +90,38 @@
 #include "model/ListPrivateAccessTagsResult.h"
 #include "model/ListPrivateAccessTagsForDynamicRouteRequest.h"
 #include "model/ListPrivateAccessTagsForDynamicRouteResult.h"
+#include "model/ListRegistrationPoliciesRequest.h"
+#include "model/ListRegistrationPoliciesResult.h"
+#include "model/ListRegistrationPoliciesForUserGroupRequest.h"
+#include "model/ListRegistrationPoliciesForUserGroupResult.h"
+#include "model/ListSoftwareForUserDeviceRequest.h"
+#include "model/ListSoftwareForUserDeviceResult.h"
 #include "model/ListTagsForPrivateAccessApplicationRequest.h"
 #include "model/ListTagsForPrivateAccessApplicationResult.h"
 #include "model/ListTagsForPrivateAccessPolicyRequest.h"
 #include "model/ListTagsForPrivateAccessPolicyResult.h"
+#include "model/ListUserDevicesRequest.h"
+#include "model/ListUserDevicesResult.h"
 #include "model/ListUserGroupsRequest.h"
 #include "model/ListUserGroupsResult.h"
 #include "model/ListUserGroupsForPrivateAccessPolicyRequest.h"
 #include "model/ListUserGroupsForPrivateAccessPolicyResult.h"
+#include "model/ListUserGroupsForRegistrationPolicyRequest.h"
+#include "model/ListUserGroupsForRegistrationPolicyResult.h"
 #include "model/UpdateDynamicRouteRequest.h"
 #include "model/UpdateDynamicRouteResult.h"
+#include "model/UpdateExcessiveDeviceRegistrationApplicationsStatusRequest.h"
+#include "model/UpdateExcessiveDeviceRegistrationApplicationsStatusResult.h"
 #include "model/UpdatePrivateAccessApplicationRequest.h"
 #include "model/UpdatePrivateAccessApplicationResult.h"
 #include "model/UpdatePrivateAccessPolicyRequest.h"
 #include "model/UpdatePrivateAccessPolicyResult.h"
+#include "model/UpdateRegistrationPolicyRequest.h"
+#include "model/UpdateRegistrationPolicyResult.h"
+#include "model/UpdateUserDevicesSharingStatusRequest.h"
+#include "model/UpdateUserDevicesSharingStatusResult.h"
+#include "model/UpdateUserDevicesStatusRequest.h"
+#include "model/UpdateUserDevicesStatusResult.h"
 #include "model/UpdateUserGroupRequest.h"
 #include "model/UpdateUserGroupResult.h"
 
@@ -120,6 +148,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreatePrivateAccessTagResult> CreatePrivateAccessTagOutcome;
 			typedef std::future<CreatePrivateAccessTagOutcome> CreatePrivateAccessTagOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::CreatePrivateAccessTagRequest&, const CreatePrivateAccessTagOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreatePrivateAccessTagAsyncHandler;
+			typedef Outcome<Error, Model::CreateRegistrationPolicyResult> CreateRegistrationPolicyOutcome;
+			typedef std::future<CreateRegistrationPolicyOutcome> CreateRegistrationPolicyOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::CreateRegistrationPolicyRequest&, const CreateRegistrationPolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateRegistrationPolicyAsyncHandler;
 			typedef Outcome<Error, Model::CreateUserGroupResult> CreateUserGroupOutcome;
 			typedef std::future<CreateUserGroupOutcome> CreateUserGroupOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::CreateUserGroupRequest&, const CreateUserGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateUserGroupAsyncHandler;
@@ -135,6 +166,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeletePrivateAccessTagResult> DeletePrivateAccessTagOutcome;
 			typedef std::future<DeletePrivateAccessTagOutcome> DeletePrivateAccessTagOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::DeletePrivateAccessTagRequest&, const DeletePrivateAccessTagOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeletePrivateAccessTagAsyncHandler;
+			typedef Outcome<Error, Model::DeleteRegistrationPoliciesResult> DeleteRegistrationPoliciesOutcome;
+			typedef std::future<DeleteRegistrationPoliciesOutcome> DeleteRegistrationPoliciesOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::DeleteRegistrationPoliciesRequest&, const DeleteRegistrationPoliciesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteRegistrationPoliciesAsyncHandler;
 			typedef Outcome<Error, Model::DeleteUserGroupResult> DeleteUserGroupOutcome;
 			typedef std::future<DeleteUserGroupOutcome> DeleteUserGroupOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::DeleteUserGroupRequest&, const DeleteUserGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteUserGroupAsyncHandler;
@@ -150,6 +184,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetPrivateAccessPolicyResult> GetPrivateAccessPolicyOutcome;
 			typedef std::future<GetPrivateAccessPolicyOutcome> GetPrivateAccessPolicyOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::GetPrivateAccessPolicyRequest&, const GetPrivateAccessPolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetPrivateAccessPolicyAsyncHandler;
+			typedef Outcome<Error, Model::GetRegistrationPolicyResult> GetRegistrationPolicyOutcome;
+			typedef std::future<GetRegistrationPolicyOutcome> GetRegistrationPolicyOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::GetRegistrationPolicyRequest&, const GetRegistrationPolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetRegistrationPolicyAsyncHandler;
+			typedef Outcome<Error, Model::GetUserDeviceResult> GetUserDeviceOutcome;
+			typedef std::future<GetUserDeviceOutcome> GetUserDeviceOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::GetUserDeviceRequest&, const GetUserDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetUserDeviceAsyncHandler;
 			typedef Outcome<Error, Model::GetUserGroupResult> GetUserGroupOutcome;
 			typedef std::future<GetUserGroupOutcome> GetUserGroupOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::GetUserGroupRequest&, const GetUserGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetUserGroupAsyncHandler;
@@ -168,6 +208,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ListDynamicRoutesResult> ListDynamicRoutesOutcome;
 			typedef std::future<ListDynamicRoutesOutcome> ListDynamicRoutesOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::ListDynamicRoutesRequest&, const ListDynamicRoutesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListDynamicRoutesAsyncHandler;
+			typedef Outcome<Error, Model::ListExcessiveDeviceRegistrationApplicationsResult> ListExcessiveDeviceRegistrationApplicationsOutcome;
+			typedef std::future<ListExcessiveDeviceRegistrationApplicationsOutcome> ListExcessiveDeviceRegistrationApplicationsOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListExcessiveDeviceRegistrationApplicationsRequest&, const ListExcessiveDeviceRegistrationApplicationsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListExcessiveDeviceRegistrationApplicationsAsyncHandler;
 			typedef Outcome<Error, Model::ListPolicesForPrivateAccessApplicationResult> ListPolicesForPrivateAccessApplicationOutcome;
 			typedef std::future<ListPolicesForPrivateAccessApplicationOutcome> ListPolicesForPrivateAccessApplicationOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::ListPolicesForPrivateAccessApplicationRequest&, const ListPolicesForPrivateAccessApplicationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListPolicesForPrivateAccessApplicationAsyncHandler;
@@ -192,27 +235,54 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ListPrivateAccessTagsForDynamicRouteResult> ListPrivateAccessTagsForDynamicRouteOutcome;
 			typedef std::future<ListPrivateAccessTagsForDynamicRouteOutcome> ListPrivateAccessTagsForDynamicRouteOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::ListPrivateAccessTagsForDynamicRouteRequest&, const ListPrivateAccessTagsForDynamicRouteOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListPrivateAccessTagsForDynamicRouteAsyncHandler;
+			typedef Outcome<Error, Model::ListRegistrationPoliciesResult> ListRegistrationPoliciesOutcome;
+			typedef std::future<ListRegistrationPoliciesOutcome> ListRegistrationPoliciesOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListRegistrationPoliciesRequest&, const ListRegistrationPoliciesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListRegistrationPoliciesAsyncHandler;
+			typedef Outcome<Error, Model::ListRegistrationPoliciesForUserGroupResult> ListRegistrationPoliciesForUserGroupOutcome;
+			typedef std::future<ListRegistrationPoliciesForUserGroupOutcome> ListRegistrationPoliciesForUserGroupOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListRegistrationPoliciesForUserGroupRequest&, const ListRegistrationPoliciesForUserGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListRegistrationPoliciesForUserGroupAsyncHandler;
+			typedef Outcome<Error, Model::ListSoftwareForUserDeviceResult> ListSoftwareForUserDeviceOutcome;
+			typedef std::future<ListSoftwareForUserDeviceOutcome> ListSoftwareForUserDeviceOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListSoftwareForUserDeviceRequest&, const ListSoftwareForUserDeviceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListSoftwareForUserDeviceAsyncHandler;
 			typedef Outcome<Error, Model::ListTagsForPrivateAccessApplicationResult> ListTagsForPrivateAccessApplicationOutcome;
 			typedef std::future<ListTagsForPrivateAccessApplicationOutcome> ListTagsForPrivateAccessApplicationOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::ListTagsForPrivateAccessApplicationRequest&, const ListTagsForPrivateAccessApplicationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListTagsForPrivateAccessApplicationAsyncHandler;
 			typedef Outcome<Error, Model::ListTagsForPrivateAccessPolicyResult> ListTagsForPrivateAccessPolicyOutcome;
 			typedef std::future<ListTagsForPrivateAccessPolicyOutcome> ListTagsForPrivateAccessPolicyOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::ListTagsForPrivateAccessPolicyRequest&, const ListTagsForPrivateAccessPolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListTagsForPrivateAccessPolicyAsyncHandler;
+			typedef Outcome<Error, Model::ListUserDevicesResult> ListUserDevicesOutcome;
+			typedef std::future<ListUserDevicesOutcome> ListUserDevicesOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListUserDevicesRequest&, const ListUserDevicesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListUserDevicesAsyncHandler;
 			typedef Outcome<Error, Model::ListUserGroupsResult> ListUserGroupsOutcome;
 			typedef std::future<ListUserGroupsOutcome> ListUserGroupsOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::ListUserGroupsRequest&, const ListUserGroupsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListUserGroupsAsyncHandler;
 			typedef Outcome<Error, Model::ListUserGroupsForPrivateAccessPolicyResult> ListUserGroupsForPrivateAccessPolicyOutcome;
 			typedef std::future<ListUserGroupsForPrivateAccessPolicyOutcome> ListUserGroupsForPrivateAccessPolicyOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::ListUserGroupsForPrivateAccessPolicyRequest&, const ListUserGroupsForPrivateAccessPolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListUserGroupsForPrivateAccessPolicyAsyncHandler;
+			typedef Outcome<Error, Model::ListUserGroupsForRegistrationPolicyResult> ListUserGroupsForRegistrationPolicyOutcome;
+			typedef std::future<ListUserGroupsForRegistrationPolicyOutcome> ListUserGroupsForRegistrationPolicyOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListUserGroupsForRegistrationPolicyRequest&, const ListUserGroupsForRegistrationPolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListUserGroupsForRegistrationPolicyAsyncHandler;
 			typedef Outcome<Error, Model::UpdateDynamicRouteResult> UpdateDynamicRouteOutcome;
 			typedef std::future<UpdateDynamicRouteOutcome> UpdateDynamicRouteOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::UpdateDynamicRouteRequest&, const UpdateDynamicRouteOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateDynamicRouteAsyncHandler;
+			typedef Outcome<Error, Model::UpdateExcessiveDeviceRegistrationApplicationsStatusResult> UpdateExcessiveDeviceRegistrationApplicationsStatusOutcome;
+			typedef std::future<UpdateExcessiveDeviceRegistrationApplicationsStatusOutcome> UpdateExcessiveDeviceRegistrationApplicationsStatusOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::UpdateExcessiveDeviceRegistrationApplicationsStatusRequest&, const UpdateExcessiveDeviceRegistrationApplicationsStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateExcessiveDeviceRegistrationApplicationsStatusAsyncHandler;
 			typedef Outcome<Error, Model::UpdatePrivateAccessApplicationResult> UpdatePrivateAccessApplicationOutcome;
 			typedef std::future<UpdatePrivateAccessApplicationOutcome> UpdatePrivateAccessApplicationOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::UpdatePrivateAccessApplicationRequest&, const UpdatePrivateAccessApplicationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdatePrivateAccessApplicationAsyncHandler;
 			typedef Outcome<Error, Model::UpdatePrivateAccessPolicyResult> UpdatePrivateAccessPolicyOutcome;
 			typedef std::future<UpdatePrivateAccessPolicyOutcome> UpdatePrivateAccessPolicyOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::UpdatePrivateAccessPolicyRequest&, const UpdatePrivateAccessPolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdatePrivateAccessPolicyAsyncHandler;
+			typedef Outcome<Error, Model::UpdateRegistrationPolicyResult> UpdateRegistrationPolicyOutcome;
+			typedef std::future<UpdateRegistrationPolicyOutcome> UpdateRegistrationPolicyOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::UpdateRegistrationPolicyRequest&, const UpdateRegistrationPolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateRegistrationPolicyAsyncHandler;
+			typedef Outcome<Error, Model::UpdateUserDevicesSharingStatusResult> UpdateUserDevicesSharingStatusOutcome;
+			typedef std::future<UpdateUserDevicesSharingStatusOutcome> UpdateUserDevicesSharingStatusOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::UpdateUserDevicesSharingStatusRequest&, const UpdateUserDevicesSharingStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateUserDevicesSharingStatusAsyncHandler;
+			typedef Outcome<Error, Model::UpdateUserDevicesStatusResult> UpdateUserDevicesStatusOutcome;
+			typedef std::future<UpdateUserDevicesStatusOutcome> UpdateUserDevicesStatusOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::UpdateUserDevicesStatusRequest&, const UpdateUserDevicesStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateUserDevicesStatusAsyncHandler;
 			typedef Outcome<Error, Model::UpdateUserGroupResult> UpdateUserGroupOutcome;
 			typedef std::future<UpdateUserGroupOutcome> UpdateUserGroupOutcomeCallable;
 			typedef std::function<void(const CsasClient*, const Model::UpdateUserGroupRequest&, const UpdateUserGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateUserGroupAsyncHandler;
@@ -236,6 +306,9 @@ namespace AlibabaCloud
 			CreatePrivateAccessTagOutcome createPrivateAccessTag(const Model::CreatePrivateAccessTagRequest &request)const;
 			void createPrivateAccessTagAsync(const Model::CreatePrivateAccessTagRequest& request, const CreatePrivateAccessTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreatePrivateAccessTagOutcomeCallable createPrivateAccessTagCallable(const Model::CreatePrivateAccessTagRequest& request) const;
+			CreateRegistrationPolicyOutcome createRegistrationPolicy(const Model::CreateRegistrationPolicyRequest &request)const;
+			void createRegistrationPolicyAsync(const Model::CreateRegistrationPolicyRequest& request, const CreateRegistrationPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateRegistrationPolicyOutcomeCallable createRegistrationPolicyCallable(const Model::CreateRegistrationPolicyRequest& request) const;
 			CreateUserGroupOutcome createUserGroup(const Model::CreateUserGroupRequest &request)const;
 			void createUserGroupAsync(const Model::CreateUserGroupRequest& request, const CreateUserGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateUserGroupOutcomeCallable createUserGroupCallable(const Model::CreateUserGroupRequest& request) const;
@@ -251,6 +324,9 @@ namespace AlibabaCloud
 			DeletePrivateAccessTagOutcome deletePrivateAccessTag(const Model::DeletePrivateAccessTagRequest &request)const;
 			void deletePrivateAccessTagAsync(const Model::DeletePrivateAccessTagRequest& request, const DeletePrivateAccessTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeletePrivateAccessTagOutcomeCallable deletePrivateAccessTagCallable(const Model::DeletePrivateAccessTagRequest& request) const;
+			DeleteRegistrationPoliciesOutcome deleteRegistrationPolicies(const Model::DeleteRegistrationPoliciesRequest &request)const;
+			void deleteRegistrationPoliciesAsync(const Model::DeleteRegistrationPoliciesRequest& request, const DeleteRegistrationPoliciesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteRegistrationPoliciesOutcomeCallable deleteRegistrationPoliciesCallable(const Model::DeleteRegistrationPoliciesRequest& request) const;
 			DeleteUserGroupOutcome deleteUserGroup(const Model::DeleteUserGroupRequest &request)const;
 			void deleteUserGroupAsync(const Model::DeleteUserGroupRequest& request, const DeleteUserGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteUserGroupOutcomeCallable deleteUserGroupCallable(const Model::DeleteUserGroupRequest& request) const;
@@ -266,6 +342,12 @@ namespace AlibabaCloud
 			GetPrivateAccessPolicyOutcome getPrivateAccessPolicy(const Model::GetPrivateAccessPolicyRequest &request)const;
 			void getPrivateAccessPolicyAsync(const Model::GetPrivateAccessPolicyRequest& request, const GetPrivateAccessPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetPrivateAccessPolicyOutcomeCallable getPrivateAccessPolicyCallable(const Model::GetPrivateAccessPolicyRequest& request) const;
+			GetRegistrationPolicyOutcome getRegistrationPolicy(const Model::GetRegistrationPolicyRequest &request)const;
+			void getRegistrationPolicyAsync(const Model::GetRegistrationPolicyRequest& request, const GetRegistrationPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetRegistrationPolicyOutcomeCallable getRegistrationPolicyCallable(const Model::GetRegistrationPolicyRequest& request) const;
+			GetUserDeviceOutcome getUserDevice(const Model::GetUserDeviceRequest &request)const;
+			void getUserDeviceAsync(const Model::GetUserDeviceRequest& request, const GetUserDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetUserDeviceOutcomeCallable getUserDeviceCallable(const Model::GetUserDeviceRequest& request) const;
 			GetUserGroupOutcome getUserGroup(const Model::GetUserGroupRequest &request)const;
 			void getUserGroupAsync(const Model::GetUserGroupRequest& request, const GetUserGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetUserGroupOutcomeCallable getUserGroupCallable(const Model::GetUserGroupRequest& request) const;
@@ -284,6 +366,9 @@ namespace AlibabaCloud
 			ListDynamicRoutesOutcome listDynamicRoutes(const Model::ListDynamicRoutesRequest &request)const;
 			void listDynamicRoutesAsync(const Model::ListDynamicRoutesRequest& request, const ListDynamicRoutesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListDynamicRoutesOutcomeCallable listDynamicRoutesCallable(const Model::ListDynamicRoutesRequest& request) const;
+			ListExcessiveDeviceRegistrationApplicationsOutcome listExcessiveDeviceRegistrationApplications(const Model::ListExcessiveDeviceRegistrationApplicationsRequest &request)const;
+			void listExcessiveDeviceRegistrationApplicationsAsync(const Model::ListExcessiveDeviceRegistrationApplicationsRequest& request, const ListExcessiveDeviceRegistrationApplicationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListExcessiveDeviceRegistrationApplicationsOutcomeCallable listExcessiveDeviceRegistrationApplicationsCallable(const Model::ListExcessiveDeviceRegistrationApplicationsRequest& request) const;
 			ListPolicesForPrivateAccessApplicationOutcome listPolicesForPrivateAccessApplication(const Model::ListPolicesForPrivateAccessApplicationRequest &request)const;
 			void listPolicesForPrivateAccessApplicationAsync(const Model::ListPolicesForPrivateAccessApplicationRequest& request, const ListPolicesForPrivateAccessApplicationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListPolicesForPrivateAccessApplicationOutcomeCallable listPolicesForPrivateAccessApplicationCallable(const Model::ListPolicesForPrivateAccessApplicationRequest& request) const;
@@ -308,27 +393,54 @@ namespace AlibabaCloud
 			ListPrivateAccessTagsForDynamicRouteOutcome listPrivateAccessTagsForDynamicRoute(const Model::ListPrivateAccessTagsForDynamicRouteRequest &request)const;
 			void listPrivateAccessTagsForDynamicRouteAsync(const Model::ListPrivateAccessTagsForDynamicRouteRequest& request, const ListPrivateAccessTagsForDynamicRouteAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListPrivateAccessTagsForDynamicRouteOutcomeCallable listPrivateAccessTagsForDynamicRouteCallable(const Model::ListPrivateAccessTagsForDynamicRouteRequest& request) const;
+			ListRegistrationPoliciesOutcome listRegistrationPolicies(const Model::ListRegistrationPoliciesRequest &request)const;
+			void listRegistrationPoliciesAsync(const Model::ListRegistrationPoliciesRequest& request, const ListRegistrationPoliciesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListRegistrationPoliciesOutcomeCallable listRegistrationPoliciesCallable(const Model::ListRegistrationPoliciesRequest& request) const;
+			ListRegistrationPoliciesForUserGroupOutcome listRegistrationPoliciesForUserGroup(const Model::ListRegistrationPoliciesForUserGroupRequest &request)const;
+			void listRegistrationPoliciesForUserGroupAsync(const Model::ListRegistrationPoliciesForUserGroupRequest& request, const ListRegistrationPoliciesForUserGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListRegistrationPoliciesForUserGroupOutcomeCallable listRegistrationPoliciesForUserGroupCallable(const Model::ListRegistrationPoliciesForUserGroupRequest& request) const;
+			ListSoftwareForUserDeviceOutcome listSoftwareForUserDevice(const Model::ListSoftwareForUserDeviceRequest &request)const;
+			void listSoftwareForUserDeviceAsync(const Model::ListSoftwareForUserDeviceRequest& request, const ListSoftwareForUserDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListSoftwareForUserDeviceOutcomeCallable listSoftwareForUserDeviceCallable(const Model::ListSoftwareForUserDeviceRequest& request) const;
 			ListTagsForPrivateAccessApplicationOutcome listTagsForPrivateAccessApplication(const Model::ListTagsForPrivateAccessApplicationRequest &request)const;
 			void listTagsForPrivateAccessApplicationAsync(const Model::ListTagsForPrivateAccessApplicationRequest& request, const ListTagsForPrivateAccessApplicationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListTagsForPrivateAccessApplicationOutcomeCallable listTagsForPrivateAccessApplicationCallable(const Model::ListTagsForPrivateAccessApplicationRequest& request) const;
 			ListTagsForPrivateAccessPolicyOutcome listTagsForPrivateAccessPolicy(const Model::ListTagsForPrivateAccessPolicyRequest &request)const;
 			void listTagsForPrivateAccessPolicyAsync(const Model::ListTagsForPrivateAccessPolicyRequest& request, const ListTagsForPrivateAccessPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListTagsForPrivateAccessPolicyOutcomeCallable listTagsForPrivateAccessPolicyCallable(const Model::ListTagsForPrivateAccessPolicyRequest& request) const;
+			ListUserDevicesOutcome listUserDevices(const Model::ListUserDevicesRequest &request)const;
+			void listUserDevicesAsync(const Model::ListUserDevicesRequest& request, const ListUserDevicesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListUserDevicesOutcomeCallable listUserDevicesCallable(const Model::ListUserDevicesRequest& request) const;
 			ListUserGroupsOutcome listUserGroups(const Model::ListUserGroupsRequest &request)const;
 			void listUserGroupsAsync(const Model::ListUserGroupsRequest& request, const ListUserGroupsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListUserGroupsOutcomeCallable listUserGroupsCallable(const Model::ListUserGroupsRequest& request) const;
 			ListUserGroupsForPrivateAccessPolicyOutcome listUserGroupsForPrivateAccessPolicy(const Model::ListUserGroupsForPrivateAccessPolicyRequest &request)const;
 			void listUserGroupsForPrivateAccessPolicyAsync(const Model::ListUserGroupsForPrivateAccessPolicyRequest& request, const ListUserGroupsForPrivateAccessPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListUserGroupsForPrivateAccessPolicyOutcomeCallable listUserGroupsForPrivateAccessPolicyCallable(const Model::ListUserGroupsForPrivateAccessPolicyRequest& request) const;
+			ListUserGroupsForRegistrationPolicyOutcome listUserGroupsForRegistrationPolicy(const Model::ListUserGroupsForRegistrationPolicyRequest &request)const;
+			void listUserGroupsForRegistrationPolicyAsync(const Model::ListUserGroupsForRegistrationPolicyRequest& request, const ListUserGroupsForRegistrationPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListUserGroupsForRegistrationPolicyOutcomeCallable listUserGroupsForRegistrationPolicyCallable(const Model::ListUserGroupsForRegistrationPolicyRequest& request) const;
 			UpdateDynamicRouteOutcome updateDynamicRoute(const Model::UpdateDynamicRouteRequest &request)const;
 			void updateDynamicRouteAsync(const Model::UpdateDynamicRouteRequest& request, const UpdateDynamicRouteAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateDynamicRouteOutcomeCallable updateDynamicRouteCallable(const Model::UpdateDynamicRouteRequest& request) const;
+			UpdateExcessiveDeviceRegistrationApplicationsStatusOutcome updateExcessiveDeviceRegistrationApplicationsStatus(const Model::UpdateExcessiveDeviceRegistrationApplicationsStatusRequest &request)const;
+			void updateExcessiveDeviceRegistrationApplicationsStatusAsync(const Model::UpdateExcessiveDeviceRegistrationApplicationsStatusRequest& request, const UpdateExcessiveDeviceRegistrationApplicationsStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateExcessiveDeviceRegistrationApplicationsStatusOutcomeCallable updateExcessiveDeviceRegistrationApplicationsStatusCallable(const Model::UpdateExcessiveDeviceRegistrationApplicationsStatusRequest& request) const;
 			UpdatePrivateAccessApplicationOutcome updatePrivateAccessApplication(const Model::UpdatePrivateAccessApplicationRequest &request)const;
 			void updatePrivateAccessApplicationAsync(const Model::UpdatePrivateAccessApplicationRequest& request, const UpdatePrivateAccessApplicationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdatePrivateAccessApplicationOutcomeCallable updatePrivateAccessApplicationCallable(const Model::UpdatePrivateAccessApplicationRequest& request) const;
 			UpdatePrivateAccessPolicyOutcome updatePrivateAccessPolicy(const Model::UpdatePrivateAccessPolicyRequest &request)const;
 			void updatePrivateAccessPolicyAsync(const Model::UpdatePrivateAccessPolicyRequest& request, const UpdatePrivateAccessPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdatePrivateAccessPolicyOutcomeCallable updatePrivateAccessPolicyCallable(const Model::UpdatePrivateAccessPolicyRequest& request) const;
+			UpdateRegistrationPolicyOutcome updateRegistrationPolicy(const Model::UpdateRegistrationPolicyRequest &request)const;
+			void updateRegistrationPolicyAsync(const Model::UpdateRegistrationPolicyRequest& request, const UpdateRegistrationPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateRegistrationPolicyOutcomeCallable updateRegistrationPolicyCallable(const Model::UpdateRegistrationPolicyRequest& request) const;
+			UpdateUserDevicesSharingStatusOutcome updateUserDevicesSharingStatus(const Model::UpdateUserDevicesSharingStatusRequest &request)const;
+			void updateUserDevicesSharingStatusAsync(const Model::UpdateUserDevicesSharingStatusRequest& request, const UpdateUserDevicesSharingStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateUserDevicesSharingStatusOutcomeCallable updateUserDevicesSharingStatusCallable(const Model::UpdateUserDevicesSharingStatusRequest& request) const;
+			UpdateUserDevicesStatusOutcome updateUserDevicesStatus(const Model::UpdateUserDevicesStatusRequest &request)const;
+			void updateUserDevicesStatusAsync(const Model::UpdateUserDevicesStatusRequest& request, const UpdateUserDevicesStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateUserDevicesStatusOutcomeCallable updateUserDevicesStatusCallable(const Model::UpdateUserDevicesStatusRequest& request) const;
 			UpdateUserGroupOutcome updateUserGroup(const Model::UpdateUserGroupRequest &request)const;
 			void updateUserGroupAsync(const Model::UpdateUserGroupRequest& request, const UpdateUserGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateUserGroupOutcomeCallable updateUserGroupCallable(const Model::UpdateUserGroupRequest& request) const;

+ 85 - 0
csas/include/alibabacloud/csas/model/CreateRegistrationPolicyRequest.h

@@ -0,0 +1,85 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_CREATEREGISTRATIONPOLICYREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_CREATEREGISTRATIONPOLICYREQUEST_H_
+
+#include <alibabacloud/csas/CsasExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Csas {
+namespace Model {
+class ALIBABACLOUD_CSAS_EXPORT CreateRegistrationPolicyRequest : public RpcServiceRequest {
+public:
+	struct CompanyLimitCount {
+		int all;
+		int pC;
+		int mobile;
+	};
+	struct PersonalLimitCount {
+		int all;
+		int pC;
+		int mobile;
+	};
+	CreateRegistrationPolicyRequest();
+	~CreateRegistrationPolicyRequest();
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getMatchMode() const;
+	void setMatchMode(const std::string &matchMode);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	CompanyLimitCount getCompanyLimitCount() const;
+	void setCompanyLimitCount(const CompanyLimitCount &companyLimitCount);
+	PersonalLimitCount getPersonalLimitCount() const;
+	void setPersonalLimitCount(const PersonalLimitCount &personalLimitCount);
+	std::vector<std::string> getUserGroupIds() const;
+	void setUserGroupIds(const std::vector<std::string> &userGroupIds);
+	std::vector<std::string> getWhitelist() const;
+	void setWhitelist(const std::vector<std::string> &whitelist);
+	long getPriority() const;
+	void setPriority(long priority);
+	std::string getPersonalLimitType() const;
+	void setPersonalLimitType(const std::string &personalLimitType);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::string getCompanyLimitType() const;
+	void setCompanyLimitType(const std::string &companyLimitType);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
+
+private:
+	std::string description_;
+	std::string matchMode_;
+	std::string sourceIp_;
+	CompanyLimitCount companyLimitCount_;
+	PersonalLimitCount personalLimitCount_;
+	std::vector<std::string> userGroupIds_;
+	std::vector<std::string> whitelist_;
+	long priority_;
+	std::string personalLimitType_;
+	std::string name_;
+	std::string companyLimitType_;
+	std::string status_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_CREATEREGISTRATIONPOLICYREQUEST_H_

+ 76 - 0
csas/include/alibabacloud/csas/model/CreateRegistrationPolicyResult.h

@@ -0,0 +1,76 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_CREATEREGISTRATIONPOLICYRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_CREATEREGISTRATIONPOLICYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/csas/CsasExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Csas
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CSAS_EXPORT CreateRegistrationPolicyResult : public ServiceResult
+			{
+			public:
+				struct Policy
+				{
+					struct LimitDetailItem
+					{
+						struct LimitCount
+						{
+							int all;
+							int pC;
+							int mobile;
+						};
+						LimitCount limitCount;
+						std::string deviceBelong;
+						std::string limitType;
+					};
+					std::string status;
+					std::string matchMode;
+					std::string description;
+					std::string priority;
+					std::string createTime;
+					std::vector<std::string> userGroupIds;
+					std::vector<LimitDetailItem> limitDetail;
+					std::vector<std::string> whitelist;
+					std::string policyId;
+					std::string name;
+				};
+
+
+				CreateRegistrationPolicyResult();
+				explicit CreateRegistrationPolicyResult(const std::string &payload);
+				~CreateRegistrationPolicyResult();
+				Policy getPolicy()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Policy policy_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_CREATEREGISTRATIONPOLICYRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/DeleteRegistrationPoliciesRequest.h

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_DELETEREGISTRATIONPOLICIESREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_DELETEREGISTRATIONPOLICIESREQUEST_H_
+
+#include <alibabacloud/csas/CsasExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Csas {
+namespace Model {
+class ALIBABACLOUD_CSAS_EXPORT DeleteRegistrationPoliciesRequest : public RpcServiceRequest {
+public:
+	DeleteRegistrationPoliciesRequest();
+	~DeleteRegistrationPoliciesRequest();
+	std::vector<std::string> getPolicyIds() const;
+	void setPolicyIds(const std::vector<std::string> &policyIds);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::vector<std::string> policyIds_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_DELETEREGISTRATIONPOLICIESREQUEST_H_

+ 49 - 0
csas/include/alibabacloud/csas/model/DeleteRegistrationPoliciesResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_DELETEREGISTRATIONPOLICIESRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_DELETEREGISTRATIONPOLICIESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/csas/CsasExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Csas
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CSAS_EXPORT DeleteRegistrationPoliciesResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteRegistrationPoliciesResult();
+				explicit DeleteRegistrationPoliciesResult(const std::string &payload);
+				~DeleteRegistrationPoliciesResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_DELETEREGISTRATIONPOLICIESRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/GetRegistrationPolicyRequest.h

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_GETREGISTRATIONPOLICYREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_GETREGISTRATIONPOLICYREQUEST_H_
+
+#include <alibabacloud/csas/CsasExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Csas {
+namespace Model {
+class ALIBABACLOUD_CSAS_EXPORT GetRegistrationPolicyRequest : public RpcServiceRequest {
+public:
+	GetRegistrationPolicyRequest();
+	~GetRegistrationPolicyRequest();
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getPolicyId() const;
+	void setPolicyId(const std::string &policyId);
+
+private:
+	std::string sourceIp_;
+	std::string policyId_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_GETREGISTRATIONPOLICYREQUEST_H_

+ 81 - 0
csas/include/alibabacloud/csas/model/GetRegistrationPolicyResult.h

@@ -0,0 +1,81 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_GETREGISTRATIONPOLICYRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_GETREGISTRATIONPOLICYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/csas/CsasExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Csas
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CSAS_EXPORT GetRegistrationPolicyResult : public ServiceResult
+			{
+			public:
+				struct LimitDetailItem
+				{
+					struct LimitCount
+					{
+						int all;
+						int pC;
+						int mobile;
+					};
+					LimitCount limitCount;
+					std::string deviceBelong;
+					std::string limitType;
+				};
+
+
+				GetRegistrationPolicyResult();
+				explicit GetRegistrationPolicyResult(const std::string &payload);
+				~GetRegistrationPolicyResult();
+				std::string getStatus()const;
+				std::string getMatchMode()const;
+				std::string getDescription()const;
+				long getPriority()const;
+				std::vector<std::string> getUserGroupIds()const;
+				std::string getCreateTime()const;
+				std::vector<LimitDetailItem> getLimitDetail()const;
+				std::vector<std::string> getWhitelist()const;
+				std::string getPolicyId()const;
+				std::string getName()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string matchMode_;
+				std::string description_;
+				long priority_;
+				std::vector<std::string> userGroupIds_;
+				std::string createTime_;
+				std::vector<LimitDetailItem> limitDetail_;
+				std::vector<std::string> whitelist_;
+				std::string policyId_;
+				std::string name_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_GETREGISTRATIONPOLICYRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/GetUserDeviceRequest.h

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_GETUSERDEVICEREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_GETUSERDEVICEREQUEST_H_
+
+#include <alibabacloud/csas/CsasExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Csas {
+namespace Model {
+class ALIBABACLOUD_CSAS_EXPORT GetUserDeviceRequest : public RpcServiceRequest {
+public:
+	GetUserDeviceRequest();
+	~GetUserDeviceRequest();
+	std::string getDeviceTag() const;
+	void setDeviceTag(const std::string &deviceTag);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::string deviceTag_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_GETUSERDEVICEREQUEST_H_

+ 85 - 0
csas/include/alibabacloud/csas/model/GetUserDeviceResult.h

@@ -0,0 +1,85 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_GETUSERDEVICERESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_GETUSERDEVICERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/csas/CsasExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Csas
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CSAS_EXPORT GetUserDeviceResult : public ServiceResult
+			{
+			public:
+				struct Device
+				{
+					struct HistoryUsersItem
+					{
+						std::string username;
+						std::string saseUserId;
+					};
+					std::string appStatus;
+					std::string dlpStatus;
+					std::string innerIP;
+					std::string memory;
+					std::string cPU;
+					std::string appVersion;
+					std::string department;
+					std::string disk;
+					std::string deviceModel;
+					std::string nacStatus;
+					bool sharingStatus;
+					std::string createTime;
+					std::string hostname;
+					std::string deviceVersion;
+					std::string saseUserId;
+					std::string srcIP;
+					std::string mac;
+					std::string paStatus;
+					std::string iaStatus;
+					std::string deviceType;
+					std::string deviceBelong;
+					std::string username;
+					std::string deviceTag;
+					std::string updateTime;
+					std::string deviceStatus;
+					std::vector<HistoryUsersItem> historyUsers;
+				};
+
+
+				GetUserDeviceResult();
+				explicit GetUserDeviceResult(const std::string &payload);
+				~GetUserDeviceResult();
+				Device getDevice()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Device device_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_GETUSERDEVICERESULT_H_

+ 72 - 0
csas/include/alibabacloud/csas/model/ListExcessiveDeviceRegistrationApplicationsRequest.h

@@ -0,0 +1,72 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_LISTEXCESSIVEDEVICEREGISTRATIONAPPLICATIONSREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTEXCESSIVEDEVICEREGISTRATIONAPPLICATIONSREQUEST_H_
+
+#include <alibabacloud/csas/CsasExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Csas {
+namespace Model {
+class ALIBABACLOUD_CSAS_EXPORT ListExcessiveDeviceRegistrationApplicationsRequest : public RpcServiceRequest {
+public:
+	ListExcessiveDeviceRegistrationApplicationsRequest();
+	~ListExcessiveDeviceRegistrationApplicationsRequest();
+	std::string getDeviceTag() const;
+	void setDeviceTag(const std::string &deviceTag);
+	std::string getMac() const;
+	void setMac(const std::string &mac);
+	std::string getHostname() const;
+	void setHostname(const std::string &hostname);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getSaseUserId() const;
+	void setSaseUserId(const std::string &saseUserId);
+	long getPageSize() const;
+	void setPageSize(long pageSize);
+	std::string getDepartment() const;
+	void setDepartment(const std::string &department);
+	long getCurrentPage() const;
+	void setCurrentPage(long currentPage);
+	std::vector<std::string> getApplicationIds() const;
+	void setApplicationIds(const std::vector<std::string> &applicationIds);
+	std::vector<std::string> getStatuses() const;
+	void setStatuses(const std::vector<std::string> &statuses);
+	std::string getUsername() const;
+	void setUsername(const std::string &username);
+
+private:
+	std::string deviceTag_;
+	std::string mac_;
+	std::string hostname_;
+	std::string sourceIp_;
+	std::string saseUserId_;
+	long pageSize_;
+	std::string department_;
+	long currentPage_;
+	std::vector<std::string> applicationIds_;
+	std::vector<std::string> statuses_;
+	std::string username_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTEXCESSIVEDEVICEREGISTRATIONAPPLICATIONSREQUEST_H_

+ 68 - 0
csas/include/alibabacloud/csas/model/ListExcessiveDeviceRegistrationApplicationsResult.h

@@ -0,0 +1,68 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_LISTEXCESSIVEDEVICEREGISTRATIONAPPLICATIONSRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTEXCESSIVEDEVICEREGISTRATIONAPPLICATIONSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/csas/CsasExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Csas
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CSAS_EXPORT ListExcessiveDeviceRegistrationApplicationsResult : public ServiceResult
+			{
+			public:
+				struct DataList
+				{
+					std::string status;
+					std::string deviceType;
+					std::string department;
+					std::string description;
+					std::string username;
+					std::string deviceTag;
+					std::string createTime;
+					std::string hostname;
+					bool isUsed;
+					std::string saseUserId;
+					std::string applicationId;
+					std::string mac;
+				};
+
+
+				ListExcessiveDeviceRegistrationApplicationsResult();
+				explicit ListExcessiveDeviceRegistrationApplicationsResult(const std::string &payload);
+				~ListExcessiveDeviceRegistrationApplicationsResult();
+				long getTotalNum()const;
+				std::vector<DataList> getApplications()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				long totalNum_;
+				std::vector<DataList> applications_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTEXCESSIVEDEVICEREGISTRATIONAPPLICATIONSRESULT_H_

+ 3 - 0
csas/include/alibabacloud/csas/model/ListPrivateAccessTagsRequest.h

@@ -38,6 +38,8 @@ public:
 	void setPageSize(int pageSize);
 	std::string getApplicationId() const;
 	void setApplicationId(const std::string &applicationId);
+	bool getSimpleMode() const;
+	void setSimpleMode(bool simpleMode);
 	std::vector<std::string> getTagIds() const;
 	void setTagIds(const std::vector<std::string> &tagIds);
 	int getCurrentPage() const;
@@ -50,6 +52,7 @@ private:
 	std::string policyId_;
 	int pageSize_;
 	std::string applicationId_;
+	bool simpleMode_;
 	std::vector<std::string> tagIds_;
 	int currentPage_;
 	std::string name_;

+ 45 - 0
csas/include/alibabacloud/csas/model/ListRegistrationPoliciesForUserGroupRequest.h

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_LISTREGISTRATIONPOLICIESFORUSERGROUPREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTREGISTRATIONPOLICIESFORUSERGROUPREQUEST_H_
+
+#include <alibabacloud/csas/CsasExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Csas {
+namespace Model {
+class ALIBABACLOUD_CSAS_EXPORT ListRegistrationPoliciesForUserGroupRequest : public RpcServiceRequest {
+public:
+	ListRegistrationPoliciesForUserGroupRequest();
+	~ListRegistrationPoliciesForUserGroupRequest();
+	std::vector<std::string> getUserGroupIds() const;
+	void setUserGroupIds(const std::vector<std::string> &userGroupIds);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::vector<std::string> userGroupIds_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTREGISTRATIONPOLICIESFORUSERGROUPREQUEST_H_

+ 80 - 0
csas/include/alibabacloud/csas/model/ListRegistrationPoliciesForUserGroupResult.h

@@ -0,0 +1,80 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_LISTREGISTRATIONPOLICIESFORUSERGROUPRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTREGISTRATIONPOLICIESFORUSERGROUPRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/csas/CsasExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Csas
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CSAS_EXPORT ListRegistrationPoliciesForUserGroupResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct PoliciesItem
+					{
+						struct LimitDetailItem
+						{
+							struct LimitCount
+							{
+								std::string all;
+								std::string pC;
+								std::string mobile;
+							};
+							LimitCount limitCount;
+							std::string deviceBelong;
+							std::string limitType;
+						};
+						std::string status;
+						std::string matchMode;
+						std::string description;
+						long priority;
+						std::string createTime;
+						std::vector<PoliciesItem::LimitDetailItem> limitDetail;
+						std::vector<std::string> whitelist;
+						std::string policyId;
+						std::string name;
+					};
+					std::vector<Data::PoliciesItem> policies;
+					std::string userGroupId;
+				};
+
+
+				ListRegistrationPoliciesForUserGroupResult();
+				explicit ListRegistrationPoliciesForUserGroupResult(const std::string &payload);
+				~ListRegistrationPoliciesForUserGroupResult();
+				std::vector<Data> getUserGroups()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Data> userGroups_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTREGISTRATIONPOLICIESFORUSERGROUPRESULT_H_

+ 69 - 0
csas/include/alibabacloud/csas/model/ListRegistrationPoliciesRequest.h

@@ -0,0 +1,69 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_LISTREGISTRATIONPOLICIESREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTREGISTRATIONPOLICIESREQUEST_H_
+
+#include <alibabacloud/csas/CsasExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Csas {
+namespace Model {
+class ALIBABACLOUD_CSAS_EXPORT ListRegistrationPoliciesRequest : public RpcServiceRequest {
+public:
+	ListRegistrationPoliciesRequest();
+	~ListRegistrationPoliciesRequest();
+	std::vector<std::string> getPolicyIds() const;
+	void setPolicyIds(const std::vector<std::string> &policyIds);
+	std::string getMatchMode() const;
+	void setMatchMode(const std::string &matchMode);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	long getPageSize() const;
+	void setPageSize(long pageSize);
+	std::string getUserGroupId() const;
+	void setUserGroupId(const std::string &userGroupId);
+	long getCurrentPage() const;
+	void setCurrentPage(long currentPage);
+	std::string getPersonalLimitType() const;
+	void setPersonalLimitType(const std::string &personalLimitType);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::string getCompanyLimitType() const;
+	void setCompanyLimitType(const std::string &companyLimitType);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
+
+private:
+	std::vector<std::string> policyIds_;
+	std::string matchMode_;
+	std::string sourceIp_;
+	long pageSize_;
+	std::string userGroupId_;
+	long currentPage_;
+	std::string personalLimitType_;
+	std::string name_;
+	std::string companyLimitType_;
+	std::string status_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTREGISTRATIONPOLICIESREQUEST_H_

+ 78 - 0
csas/include/alibabacloud/csas/model/ListRegistrationPoliciesResult.h

@@ -0,0 +1,78 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_LISTREGISTRATIONPOLICIESRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTREGISTRATIONPOLICIESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/csas/CsasExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Csas
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CSAS_EXPORT ListRegistrationPoliciesResult : public ServiceResult
+			{
+			public:
+				struct DataList
+				{
+					struct LimitDetailItem
+					{
+						struct LimitCount
+						{
+							int all;
+							int pC;
+							int mobile;
+						};
+						LimitCount limitCount;
+						std::string deviceBelong;
+						std::string limitType;
+					};
+					std::string status;
+					std::string matchMode;
+					std::string description;
+					long priority;
+					std::string createTime;
+					std::vector<std::string> userGroupIds;
+					std::vector<DataList::LimitDetailItem> limitDetail;
+					std::vector<std::string> whitelist;
+					std::string policyId;
+					std::string name;
+				};
+
+
+				ListRegistrationPoliciesResult();
+				explicit ListRegistrationPoliciesResult(const std::string &payload);
+				~ListRegistrationPoliciesResult();
+				std::vector<DataList> getPolicies()const;
+				std::string getTotalNum()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<DataList> policies_;
+				std::string totalNum_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTREGISTRATIONPOLICIESRESULT_H_

+ 51 - 0
csas/include/alibabacloud/csas/model/ListSoftwareForUserDeviceRequest.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_LISTSOFTWAREFORUSERDEVICEREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTSOFTWAREFORUSERDEVICEREQUEST_H_
+
+#include <alibabacloud/csas/CsasExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Csas {
+namespace Model {
+class ALIBABACLOUD_CSAS_EXPORT ListSoftwareForUserDeviceRequest : public RpcServiceRequest {
+public:
+	ListSoftwareForUserDeviceRequest();
+	~ListSoftwareForUserDeviceRequest();
+	std::string getDeviceTag() const;
+	void setDeviceTag(const std::string &deviceTag);
+	long getCurrentPage() const;
+	void setCurrentPage(long currentPage);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	long getPageSize() const;
+	void setPageSize(long pageSize);
+
+private:
+	std::string deviceTag_;
+	long currentPage_;
+	std::string sourceIp_;
+	long pageSize_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTSOFTWAREFORUSERDEVICEREQUEST_H_

+ 60 - 0
csas/include/alibabacloud/csas/model/ListSoftwareForUserDeviceResult.h

@@ -0,0 +1,60 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_LISTSOFTWAREFORUSERDEVICERESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTSOFTWAREFORUSERDEVICERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/csas/CsasExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Csas
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CSAS_EXPORT ListSoftwareForUserDeviceResult : public ServiceResult
+			{
+			public:
+				struct DataList
+				{
+					std::vector<std::string> versions;
+					std::string installTime;
+					std::string name;
+					std::string inc;
+				};
+
+
+				ListSoftwareForUserDeviceResult();
+				explicit ListSoftwareForUserDeviceResult(const std::string &payload);
+				~ListSoftwareForUserDeviceResult();
+				long getTotalNum()const;
+				std::vector<DataList> getSoftware()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				long totalNum_;
+				std::vector<DataList> software_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTSOFTWAREFORUSERDEVICERESULT_H_

+ 96 - 0
csas/include/alibabacloud/csas/model/ListUserDevicesRequest.h

@@ -0,0 +1,96 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_LISTUSERDEVICESREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTUSERDEVICESREQUEST_H_
+
+#include <alibabacloud/csas/CsasExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Csas {
+namespace Model {
+class ALIBABACLOUD_CSAS_EXPORT ListUserDevicesRequest : public RpcServiceRequest {
+public:
+	ListUserDevicesRequest();
+	~ListUserDevicesRequest();
+	std::string getMac() const;
+	void setMac(const std::string &mac);
+	std::vector<std::string> getDeviceTypes() const;
+	void setDeviceTypes(const std::vector<std::string> &deviceTypes);
+	std::string getHostname() const;
+	void setHostname(const std::string &hostname);
+	std::vector<std::string> getAppStatuses() const;
+	void setAppStatuses(const std::vector<std::string> &appStatuses);
+	std::vector<std::string> getDlpStatuses() const;
+	void setDlpStatuses(const std::vector<std::string> &dlpStatuses);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getSaseUserId() const;
+	void setSaseUserId(const std::string &saseUserId);
+	long getPageSize() const;
+	void setPageSize(long pageSize);
+	std::vector<std::string> getNacStatuses() const;
+	void setNacStatuses(const std::vector<std::string> &nacStatuses);
+	std::string getDepartment() const;
+	void setDepartment(const std::string &department);
+	std::vector<std::string> getIaStatuses() const;
+	void setIaStatuses(const std::vector<std::string> &iaStatuses);
+	std::string getDeviceBelong() const;
+	void setDeviceBelong(const std::string &deviceBelong);
+	long getCurrentPage() const;
+	void setCurrentPage(long currentPage);
+	bool getSharingStatus() const;
+	void setSharingStatus(bool sharingStatus);
+	std::vector<std::string> getDeviceTags() const;
+	void setDeviceTags(const std::vector<std::string> &deviceTags);
+	std::vector<std::string> getDeviceStatuses() const;
+	void setDeviceStatuses(const std::vector<std::string> &deviceStatuses);
+	std::vector<std::string> getPaStatuses() const;
+	void setPaStatuses(const std::vector<std::string> &paStatuses);
+	std::string getSortBy() const;
+	void setSortBy(const std::string &sortBy);
+	std::string getUsername() const;
+	void setUsername(const std::string &username);
+
+private:
+	std::string mac_;
+	std::vector<std::string> deviceTypes_;
+	std::string hostname_;
+	std::vector<std::string> appStatuses_;
+	std::vector<std::string> dlpStatuses_;
+	std::string sourceIp_;
+	std::string saseUserId_;
+	long pageSize_;
+	std::vector<std::string> nacStatuses_;
+	std::string department_;
+	std::vector<std::string> iaStatuses_;
+	std::string deviceBelong_;
+	long currentPage_;
+	bool sharingStatus_;
+	std::vector<std::string> deviceTags_;
+	std::vector<std::string> deviceStatuses_;
+	std::vector<std::string> paStatuses_;
+	std::string sortBy_;
+	std::string username_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTUSERDEVICESREQUEST_H_

+ 81 - 0
csas/include/alibabacloud/csas/model/ListUserDevicesResult.h

@@ -0,0 +1,81 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_LISTUSERDEVICESRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTUSERDEVICESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/csas/CsasExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Csas
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CSAS_EXPORT ListUserDevicesResult : public ServiceResult
+			{
+			public:
+				struct DataList
+				{
+					std::string appStatus;
+					std::string dlpStatus;
+					std::string innerIP;
+					std::string memory;
+					std::string cPU;
+					std::string appVersion;
+					std::string department;
+					std::string disk;
+					std::string deviceModel;
+					std::string nacStatus;
+					bool sharingStatus;
+					std::string createTime;
+					std::string hostname;
+					std::string deviceVersion;
+					std::string saseUserId;
+					std::string srcIP;
+					std::string mac;
+					std::string paStatus;
+					std::string iaStatus;
+					std::string deviceType;
+					std::string deviceBelong;
+					std::string username;
+					std::string deviceTag;
+					std::string updateTime;
+					std::string deviceStatus;
+				};
+
+
+				ListUserDevicesResult();
+				explicit ListUserDevicesResult(const std::string &payload);
+				~ListUserDevicesResult();
+				long getTotalNum()const;
+				std::vector<DataList> getDevices()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				long totalNum_;
+				std::vector<DataList> devices_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTUSERDEVICESRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/ListUserGroupsForRegistrationPolicyRequest.h

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_LISTUSERGROUPSFORREGISTRATIONPOLICYREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTUSERGROUPSFORREGISTRATIONPOLICYREQUEST_H_
+
+#include <alibabacloud/csas/CsasExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Csas {
+namespace Model {
+class ALIBABACLOUD_CSAS_EXPORT ListUserGroupsForRegistrationPolicyRequest : public RpcServiceRequest {
+public:
+	ListUserGroupsForRegistrationPolicyRequest();
+	~ListUserGroupsForRegistrationPolicyRequest();
+	std::vector<std::string> getPolicyIds() const;
+	void setPolicyIds(const std::vector<std::string> &policyIds);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::vector<std::string> policyIds_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTUSERGROUPSFORREGISTRATIONPOLICYREQUEST_H_

+ 71 - 0
csas/include/alibabacloud/csas/model/ListUserGroupsForRegistrationPolicyResult.h

@@ -0,0 +1,71 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_LISTUSERGROUPSFORREGISTRATIONPOLICYRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTUSERGROUPSFORREGISTRATIONPOLICYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/csas/CsasExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Csas
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CSAS_EXPORT ListUserGroupsForRegistrationPolicyResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct UserGroupsItem
+					{
+						struct AttributesItem
+						{
+							std::string relation;
+							int idpId;
+							std::string userGroupType;
+							std::string value;
+						};
+						std::string description;
+						std::string userGroupId;
+						std::string createTime;
+						std::vector<UserGroupsItem::AttributesItem> attributes;
+						std::string name;
+					};
+					std::string policyId;
+					std::vector<Data::UserGroupsItem> userGroups;
+				};
+
+
+				ListUserGroupsForRegistrationPolicyResult();
+				explicit ListUserGroupsForRegistrationPolicyResult(const std::string &payload);
+				~ListUserGroupsForRegistrationPolicyResult();
+				std::vector<Data> getPolicies()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Data> policies_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTUSERGROUPSFORREGISTRATIONPOLICYRESULT_H_

+ 48 - 0
csas/include/alibabacloud/csas/model/UpdateExcessiveDeviceRegistrationApplicationsStatusRequest.h

@@ -0,0 +1,48 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_UPDATEEXCESSIVEDEVICEREGISTRATIONAPPLICATIONSSTATUSREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEEXCESSIVEDEVICEREGISTRATIONAPPLICATIONSSTATUSREQUEST_H_
+
+#include <alibabacloud/csas/CsasExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Csas {
+namespace Model {
+class ALIBABACLOUD_CSAS_EXPORT UpdateExcessiveDeviceRegistrationApplicationsStatusRequest : public RpcServiceRequest {
+public:
+	UpdateExcessiveDeviceRegistrationApplicationsStatusRequest();
+	~UpdateExcessiveDeviceRegistrationApplicationsStatusRequest();
+	std::vector<std::string> getApplicationIds() const;
+	void setApplicationIds(const std::vector<std::string> &applicationIds);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
+
+private:
+	std::vector<std::string> applicationIds_;
+	std::string sourceIp_;
+	std::string status_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEEXCESSIVEDEVICEREGISTRATIONAPPLICATIONSSTATUSREQUEST_H_

+ 66 - 0
csas/include/alibabacloud/csas/model/UpdateExcessiveDeviceRegistrationApplicationsStatusResult.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_UPDATEEXCESSIVEDEVICEREGISTRATIONAPPLICATIONSSTATUSRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEEXCESSIVEDEVICEREGISTRATIONAPPLICATIONSSTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/csas/CsasExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Csas
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CSAS_EXPORT UpdateExcessiveDeviceRegistrationApplicationsStatusResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string status;
+					std::string deviceType;
+					std::string department;
+					std::string description;
+					std::string username;
+					std::string deviceTag;
+					std::string createTime;
+					std::string hostname;
+					bool isUsed;
+					std::string saseUserId;
+					std::string applicationId;
+					std::string mac;
+				};
+
+
+				UpdateExcessiveDeviceRegistrationApplicationsStatusResult();
+				explicit UpdateExcessiveDeviceRegistrationApplicationsStatusResult(const std::string &payload);
+				~UpdateExcessiveDeviceRegistrationApplicationsStatusResult();
+				std::vector<Data> getApplications()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Data> applications_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEEXCESSIVEDEVICEREGISTRATIONAPPLICATIONSSTATUSRESULT_H_

+ 88 - 0
csas/include/alibabacloud/csas/model/UpdateRegistrationPolicyRequest.h

@@ -0,0 +1,88 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_UPDATEREGISTRATIONPOLICYREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEREGISTRATIONPOLICYREQUEST_H_
+
+#include <alibabacloud/csas/CsasExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Csas {
+namespace Model {
+class ALIBABACLOUD_CSAS_EXPORT UpdateRegistrationPolicyRequest : public RpcServiceRequest {
+public:
+	struct CompanyLimitCount {
+		int all;
+		int pC;
+		int mobile;
+	};
+	struct PersonalLimitCount {
+		int all;
+		int pC;
+		int mobile;
+	};
+	UpdateRegistrationPolicyRequest();
+	~UpdateRegistrationPolicyRequest();
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getMatchMode() const;
+	void setMatchMode(const std::string &matchMode);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getPolicyId() const;
+	void setPolicyId(const std::string &policyId);
+	CompanyLimitCount getCompanyLimitCount() const;
+	void setCompanyLimitCount(const CompanyLimitCount &companyLimitCount);
+	PersonalLimitCount getPersonalLimitCount() const;
+	void setPersonalLimitCount(const PersonalLimitCount &personalLimitCount);
+	std::vector<std::string> getUserGroupIds() const;
+	void setUserGroupIds(const std::vector<std::string> &userGroupIds);
+	std::vector<std::string> getWhitelist() const;
+	void setWhitelist(const std::vector<std::string> &whitelist);
+	long getPriority() const;
+	void setPriority(long priority);
+	std::string getPersonalLimitType() const;
+	void setPersonalLimitType(const std::string &personalLimitType);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::string getCompanyLimitType() const;
+	void setCompanyLimitType(const std::string &companyLimitType);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
+
+private:
+	std::string description_;
+	std::string matchMode_;
+	std::string sourceIp_;
+	std::string policyId_;
+	CompanyLimitCount companyLimitCount_;
+	PersonalLimitCount personalLimitCount_;
+	std::vector<std::string> userGroupIds_;
+	std::vector<std::string> whitelist_;
+	long priority_;
+	std::string personalLimitType_;
+	std::string name_;
+	std::string companyLimitType_;
+	std::string status_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEREGISTRATIONPOLICYREQUEST_H_

+ 76 - 0
csas/include/alibabacloud/csas/model/UpdateRegistrationPolicyResult.h

@@ -0,0 +1,76 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_UPDATEREGISTRATIONPOLICYRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEREGISTRATIONPOLICYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/csas/CsasExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Csas
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CSAS_EXPORT UpdateRegistrationPolicyResult : public ServiceResult
+			{
+			public:
+				struct Policy
+				{
+					struct LimitDetailItem
+					{
+						struct LimitCount
+						{
+							int all;
+							int pC;
+							int mobile;
+						};
+						LimitCount limitCount;
+						std::string deviceBelong;
+						std::string limitType;
+					};
+					std::string status;
+					std::string matchMode;
+					std::string description;
+					std::string priority;
+					std::string createTime;
+					std::vector<std::string> userGroupIds;
+					std::vector<LimitDetailItem> limitDetail;
+					std::vector<std::string> whitelist;
+					std::string policyId;
+					std::string name;
+				};
+
+
+				UpdateRegistrationPolicyResult();
+				explicit UpdateRegistrationPolicyResult(const std::string &payload);
+				~UpdateRegistrationPolicyResult();
+				Policy getPolicy()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Policy policy_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEREGISTRATIONPOLICYRESULT_H_

+ 48 - 0
csas/include/alibabacloud/csas/model/UpdateUserDevicesSharingStatusRequest.h

@@ -0,0 +1,48 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_UPDATEUSERDEVICESSHARINGSTATUSREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEUSERDEVICESSHARINGSTATUSREQUEST_H_
+
+#include <alibabacloud/csas/CsasExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Csas {
+namespace Model {
+class ALIBABACLOUD_CSAS_EXPORT UpdateUserDevicesSharingStatusRequest : public RpcServiceRequest {
+public:
+	UpdateUserDevicesSharingStatusRequest();
+	~UpdateUserDevicesSharingStatusRequest();
+	bool getSharingStatus() const;
+	void setSharingStatus(bool sharingStatus);
+	std::vector<std::string> getDeviceTags() const;
+	void setDeviceTags(const std::vector<std::string> &deviceTags);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	bool sharingStatus_;
+	std::vector<std::string> deviceTags_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEUSERDEVICESSHARINGSTATUSREQUEST_H_

+ 79 - 0
csas/include/alibabacloud/csas/model/UpdateUserDevicesSharingStatusResult.h

@@ -0,0 +1,79 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_UPDATEUSERDEVICESSHARINGSTATUSRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEUSERDEVICESSHARINGSTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/csas/CsasExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Csas
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CSAS_EXPORT UpdateUserDevicesSharingStatusResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string appStatus;
+					std::string dlpStatus;
+					std::string innerIP;
+					std::string memory;
+					std::string cPU;
+					std::string appVersion;
+					std::string department;
+					std::string disk;
+					std::string deviceModel;
+					std::string nacStatus;
+					bool sharingStatus;
+					std::string createTime;
+					std::string hostname;
+					std::string deviceVersion;
+					std::string saseUserId;
+					std::string srcIP;
+					std::string mac;
+					std::string paStatus;
+					std::string iaStatus;
+					std::string deviceType;
+					std::string deviceBelong;
+					std::string username;
+					std::string deviceTag;
+					std::string updateTime;
+					std::string deviceStatus;
+				};
+
+
+				UpdateUserDevicesSharingStatusResult();
+				explicit UpdateUserDevicesSharingStatusResult(const std::string &payload);
+				~UpdateUserDevicesSharingStatusResult();
+				std::vector<Data> getDevices()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Data> devices_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEUSERDEVICESSHARINGSTATUSRESULT_H_

+ 48 - 0
csas/include/alibabacloud/csas/model/UpdateUserDevicesStatusRequest.h

@@ -0,0 +1,48 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_UPDATEUSERDEVICESSTATUSREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEUSERDEVICESSTATUSREQUEST_H_
+
+#include <alibabacloud/csas/CsasExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Csas {
+namespace Model {
+class ALIBABACLOUD_CSAS_EXPORT UpdateUserDevicesStatusRequest : public RpcServiceRequest {
+public:
+	UpdateUserDevicesStatusRequest();
+	~UpdateUserDevicesStatusRequest();
+	std::string getDeviceAction() const;
+	void setDeviceAction(const std::string &deviceAction);
+	std::vector<std::string> getDeviceTags() const;
+	void setDeviceTags(const std::vector<std::string> &deviceTags);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::string deviceAction_;
+	std::vector<std::string> deviceTags_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEUSERDEVICESSTATUSREQUEST_H_

+ 79 - 0
csas/include/alibabacloud/csas/model/UpdateUserDevicesStatusResult.h

@@ -0,0 +1,79 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_UPDATEUSERDEVICESSTATUSRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEUSERDEVICESSTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/csas/CsasExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Csas
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CSAS_EXPORT UpdateUserDevicesStatusResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					std::string appStatus;
+					std::string dlpStatus;
+					std::string innerIP;
+					std::string memory;
+					std::string cPU;
+					std::string appVersion;
+					std::string department;
+					std::string disk;
+					std::string deviceModel;
+					std::string nacStatus;
+					bool sharingStatus;
+					std::string createTime;
+					std::string hostname;
+					std::string deviceVersion;
+					std::string saseUserId;
+					std::string srcIP;
+					std::string mac;
+					std::string paStatus;
+					std::string iaStatus;
+					std::string deviceType;
+					std::string deviceBelong;
+					std::string username;
+					std::string deviceTag;
+					std::string updateTime;
+					std::string deviceStatus;
+				};
+
+
+				UpdateUserDevicesStatusResult();
+				explicit UpdateUserDevicesStatusResult(const std::string &payload);
+				~UpdateUserDevicesStatusResult();
+				std::vector<Data> getDevices()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Data> devices_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEUSERDEVICESSTATUSRESULT_H_

+ 504 - 0
csas/src/CsasClient.cc

@@ -231,6 +231,42 @@ CsasClient::CreatePrivateAccessTagOutcomeCallable CsasClient::createPrivateAcces
 	return task->get_future();
 }
 
+CsasClient::CreateRegistrationPolicyOutcome CsasClient::createRegistrationPolicy(const CreateRegistrationPolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateRegistrationPolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateRegistrationPolicyOutcome(CreateRegistrationPolicyResult(outcome.result()));
+	else
+		return CreateRegistrationPolicyOutcome(outcome.error());
+}
+
+void CsasClient::createRegistrationPolicyAsync(const CreateRegistrationPolicyRequest& request, const CreateRegistrationPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createRegistrationPolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::CreateRegistrationPolicyOutcomeCallable CsasClient::createRegistrationPolicyCallable(const CreateRegistrationPolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateRegistrationPolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->createRegistrationPolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CsasClient::CreateUserGroupOutcome CsasClient::createUserGroup(const CreateUserGroupRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -411,6 +447,42 @@ CsasClient::DeletePrivateAccessTagOutcomeCallable CsasClient::deletePrivateAcces
 	return task->get_future();
 }
 
+CsasClient::DeleteRegistrationPoliciesOutcome CsasClient::deleteRegistrationPolicies(const DeleteRegistrationPoliciesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteRegistrationPoliciesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteRegistrationPoliciesOutcome(DeleteRegistrationPoliciesResult(outcome.result()));
+	else
+		return DeleteRegistrationPoliciesOutcome(outcome.error());
+}
+
+void CsasClient::deleteRegistrationPoliciesAsync(const DeleteRegistrationPoliciesRequest& request, const DeleteRegistrationPoliciesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteRegistrationPolicies(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::DeleteRegistrationPoliciesOutcomeCallable CsasClient::deleteRegistrationPoliciesCallable(const DeleteRegistrationPoliciesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteRegistrationPoliciesOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteRegistrationPolicies(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CsasClient::DeleteUserGroupOutcome CsasClient::deleteUserGroup(const DeleteUserGroupRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -591,6 +663,78 @@ CsasClient::GetPrivateAccessPolicyOutcomeCallable CsasClient::getPrivateAccessPo
 	return task->get_future();
 }
 
+CsasClient::GetRegistrationPolicyOutcome CsasClient::getRegistrationPolicy(const GetRegistrationPolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetRegistrationPolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetRegistrationPolicyOutcome(GetRegistrationPolicyResult(outcome.result()));
+	else
+		return GetRegistrationPolicyOutcome(outcome.error());
+}
+
+void CsasClient::getRegistrationPolicyAsync(const GetRegistrationPolicyRequest& request, const GetRegistrationPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getRegistrationPolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::GetRegistrationPolicyOutcomeCallable CsasClient::getRegistrationPolicyCallable(const GetRegistrationPolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetRegistrationPolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->getRegistrationPolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::GetUserDeviceOutcome CsasClient::getUserDevice(const GetUserDeviceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetUserDeviceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetUserDeviceOutcome(GetUserDeviceResult(outcome.result()));
+	else
+		return GetUserDeviceOutcome(outcome.error());
+}
+
+void CsasClient::getUserDeviceAsync(const GetUserDeviceRequest& request, const GetUserDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getUserDevice(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::GetUserDeviceOutcomeCallable CsasClient::getUserDeviceCallable(const GetUserDeviceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetUserDeviceOutcome()>>(
+			[this, request]()
+			{
+			return this->getUserDevice(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CsasClient::GetUserGroupOutcome CsasClient::getUserGroup(const GetUserGroupRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -807,6 +951,42 @@ CsasClient::ListDynamicRoutesOutcomeCallable CsasClient::listDynamicRoutesCallab
 	return task->get_future();
 }
 
+CsasClient::ListExcessiveDeviceRegistrationApplicationsOutcome CsasClient::listExcessiveDeviceRegistrationApplications(const ListExcessiveDeviceRegistrationApplicationsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListExcessiveDeviceRegistrationApplicationsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListExcessiveDeviceRegistrationApplicationsOutcome(ListExcessiveDeviceRegistrationApplicationsResult(outcome.result()));
+	else
+		return ListExcessiveDeviceRegistrationApplicationsOutcome(outcome.error());
+}
+
+void CsasClient::listExcessiveDeviceRegistrationApplicationsAsync(const ListExcessiveDeviceRegistrationApplicationsRequest& request, const ListExcessiveDeviceRegistrationApplicationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listExcessiveDeviceRegistrationApplications(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListExcessiveDeviceRegistrationApplicationsOutcomeCallable CsasClient::listExcessiveDeviceRegistrationApplicationsCallable(const ListExcessiveDeviceRegistrationApplicationsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListExcessiveDeviceRegistrationApplicationsOutcome()>>(
+			[this, request]()
+			{
+			return this->listExcessiveDeviceRegistrationApplications(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CsasClient::ListPolicesForPrivateAccessApplicationOutcome CsasClient::listPolicesForPrivateAccessApplication(const ListPolicesForPrivateAccessApplicationRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1095,6 +1275,114 @@ CsasClient::ListPrivateAccessTagsForDynamicRouteOutcomeCallable CsasClient::list
 	return task->get_future();
 }
 
+CsasClient::ListRegistrationPoliciesOutcome CsasClient::listRegistrationPolicies(const ListRegistrationPoliciesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListRegistrationPoliciesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListRegistrationPoliciesOutcome(ListRegistrationPoliciesResult(outcome.result()));
+	else
+		return ListRegistrationPoliciesOutcome(outcome.error());
+}
+
+void CsasClient::listRegistrationPoliciesAsync(const ListRegistrationPoliciesRequest& request, const ListRegistrationPoliciesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listRegistrationPolicies(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListRegistrationPoliciesOutcomeCallable CsasClient::listRegistrationPoliciesCallable(const ListRegistrationPoliciesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListRegistrationPoliciesOutcome()>>(
+			[this, request]()
+			{
+			return this->listRegistrationPolicies(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListRegistrationPoliciesForUserGroupOutcome CsasClient::listRegistrationPoliciesForUserGroup(const ListRegistrationPoliciesForUserGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListRegistrationPoliciesForUserGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListRegistrationPoliciesForUserGroupOutcome(ListRegistrationPoliciesForUserGroupResult(outcome.result()));
+	else
+		return ListRegistrationPoliciesForUserGroupOutcome(outcome.error());
+}
+
+void CsasClient::listRegistrationPoliciesForUserGroupAsync(const ListRegistrationPoliciesForUserGroupRequest& request, const ListRegistrationPoliciesForUserGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listRegistrationPoliciesForUserGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListRegistrationPoliciesForUserGroupOutcomeCallable CsasClient::listRegistrationPoliciesForUserGroupCallable(const ListRegistrationPoliciesForUserGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListRegistrationPoliciesForUserGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->listRegistrationPoliciesForUserGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListSoftwareForUserDeviceOutcome CsasClient::listSoftwareForUserDevice(const ListSoftwareForUserDeviceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListSoftwareForUserDeviceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListSoftwareForUserDeviceOutcome(ListSoftwareForUserDeviceResult(outcome.result()));
+	else
+		return ListSoftwareForUserDeviceOutcome(outcome.error());
+}
+
+void CsasClient::listSoftwareForUserDeviceAsync(const ListSoftwareForUserDeviceRequest& request, const ListSoftwareForUserDeviceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listSoftwareForUserDevice(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListSoftwareForUserDeviceOutcomeCallable CsasClient::listSoftwareForUserDeviceCallable(const ListSoftwareForUserDeviceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListSoftwareForUserDeviceOutcome()>>(
+			[this, request]()
+			{
+			return this->listSoftwareForUserDevice(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CsasClient::ListTagsForPrivateAccessApplicationOutcome CsasClient::listTagsForPrivateAccessApplication(const ListTagsForPrivateAccessApplicationRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1167,6 +1455,42 @@ CsasClient::ListTagsForPrivateAccessPolicyOutcomeCallable CsasClient::listTagsFo
 	return task->get_future();
 }
 
+CsasClient::ListUserDevicesOutcome CsasClient::listUserDevices(const ListUserDevicesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListUserDevicesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListUserDevicesOutcome(ListUserDevicesResult(outcome.result()));
+	else
+		return ListUserDevicesOutcome(outcome.error());
+}
+
+void CsasClient::listUserDevicesAsync(const ListUserDevicesRequest& request, const ListUserDevicesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listUserDevices(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListUserDevicesOutcomeCallable CsasClient::listUserDevicesCallable(const ListUserDevicesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListUserDevicesOutcome()>>(
+			[this, request]()
+			{
+			return this->listUserDevices(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CsasClient::ListUserGroupsOutcome CsasClient::listUserGroups(const ListUserGroupsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1239,6 +1563,42 @@ CsasClient::ListUserGroupsForPrivateAccessPolicyOutcomeCallable CsasClient::list
 	return task->get_future();
 }
 
+CsasClient::ListUserGroupsForRegistrationPolicyOutcome CsasClient::listUserGroupsForRegistrationPolicy(const ListUserGroupsForRegistrationPolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListUserGroupsForRegistrationPolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListUserGroupsForRegistrationPolicyOutcome(ListUserGroupsForRegistrationPolicyResult(outcome.result()));
+	else
+		return ListUserGroupsForRegistrationPolicyOutcome(outcome.error());
+}
+
+void CsasClient::listUserGroupsForRegistrationPolicyAsync(const ListUserGroupsForRegistrationPolicyRequest& request, const ListUserGroupsForRegistrationPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listUserGroupsForRegistrationPolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListUserGroupsForRegistrationPolicyOutcomeCallable CsasClient::listUserGroupsForRegistrationPolicyCallable(const ListUserGroupsForRegistrationPolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListUserGroupsForRegistrationPolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->listUserGroupsForRegistrationPolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CsasClient::UpdateDynamicRouteOutcome CsasClient::updateDynamicRoute(const UpdateDynamicRouteRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1275,6 +1635,42 @@ CsasClient::UpdateDynamicRouteOutcomeCallable CsasClient::updateDynamicRouteCall
 	return task->get_future();
 }
 
+CsasClient::UpdateExcessiveDeviceRegistrationApplicationsStatusOutcome CsasClient::updateExcessiveDeviceRegistrationApplicationsStatus(const UpdateExcessiveDeviceRegistrationApplicationsStatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateExcessiveDeviceRegistrationApplicationsStatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateExcessiveDeviceRegistrationApplicationsStatusOutcome(UpdateExcessiveDeviceRegistrationApplicationsStatusResult(outcome.result()));
+	else
+		return UpdateExcessiveDeviceRegistrationApplicationsStatusOutcome(outcome.error());
+}
+
+void CsasClient::updateExcessiveDeviceRegistrationApplicationsStatusAsync(const UpdateExcessiveDeviceRegistrationApplicationsStatusRequest& request, const UpdateExcessiveDeviceRegistrationApplicationsStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateExcessiveDeviceRegistrationApplicationsStatus(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::UpdateExcessiveDeviceRegistrationApplicationsStatusOutcomeCallable CsasClient::updateExcessiveDeviceRegistrationApplicationsStatusCallable(const UpdateExcessiveDeviceRegistrationApplicationsStatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateExcessiveDeviceRegistrationApplicationsStatusOutcome()>>(
+			[this, request]()
+			{
+			return this->updateExcessiveDeviceRegistrationApplicationsStatus(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CsasClient::UpdatePrivateAccessApplicationOutcome CsasClient::updatePrivateAccessApplication(const UpdatePrivateAccessApplicationRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1347,6 +1743,114 @@ CsasClient::UpdatePrivateAccessPolicyOutcomeCallable CsasClient::updatePrivateAc
 	return task->get_future();
 }
 
+CsasClient::UpdateRegistrationPolicyOutcome CsasClient::updateRegistrationPolicy(const UpdateRegistrationPolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateRegistrationPolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateRegistrationPolicyOutcome(UpdateRegistrationPolicyResult(outcome.result()));
+	else
+		return UpdateRegistrationPolicyOutcome(outcome.error());
+}
+
+void CsasClient::updateRegistrationPolicyAsync(const UpdateRegistrationPolicyRequest& request, const UpdateRegistrationPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateRegistrationPolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::UpdateRegistrationPolicyOutcomeCallable CsasClient::updateRegistrationPolicyCallable(const UpdateRegistrationPolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateRegistrationPolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->updateRegistrationPolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::UpdateUserDevicesSharingStatusOutcome CsasClient::updateUserDevicesSharingStatus(const UpdateUserDevicesSharingStatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateUserDevicesSharingStatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateUserDevicesSharingStatusOutcome(UpdateUserDevicesSharingStatusResult(outcome.result()));
+	else
+		return UpdateUserDevicesSharingStatusOutcome(outcome.error());
+}
+
+void CsasClient::updateUserDevicesSharingStatusAsync(const UpdateUserDevicesSharingStatusRequest& request, const UpdateUserDevicesSharingStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateUserDevicesSharingStatus(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::UpdateUserDevicesSharingStatusOutcomeCallable CsasClient::updateUserDevicesSharingStatusCallable(const UpdateUserDevicesSharingStatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateUserDevicesSharingStatusOutcome()>>(
+			[this, request]()
+			{
+			return this->updateUserDevicesSharingStatus(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::UpdateUserDevicesStatusOutcome CsasClient::updateUserDevicesStatus(const UpdateUserDevicesStatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateUserDevicesStatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateUserDevicesStatusOutcome(UpdateUserDevicesStatusResult(outcome.result()));
+	else
+		return UpdateUserDevicesStatusOutcome(outcome.error());
+}
+
+void CsasClient::updateUserDevicesStatusAsync(const UpdateUserDevicesStatusRequest& request, const UpdateUserDevicesStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateUserDevicesStatus(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::UpdateUserDevicesStatusOutcomeCallable CsasClient::updateUserDevicesStatusCallable(const UpdateUserDevicesStatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateUserDevicesStatusOutcome()>>(
+			[this, request]()
+			{
+			return this->updateUserDevicesStatus(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 CsasClient::UpdateUserGroupOutcome CsasClient::updateUserGroup(const UpdateUserGroupRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 143 - 0
csas/src/model/CreateRegistrationPolicyRequest.cc

@@ -0,0 +1,143 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/CreateRegistrationPolicyRequest.h>
+
+using AlibabaCloud::Csas::Model::CreateRegistrationPolicyRequest;
+
+CreateRegistrationPolicyRequest::CreateRegistrationPolicyRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "CreateRegistrationPolicy") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateRegistrationPolicyRequest::~CreateRegistrationPolicyRequest() {}
+
+std::string CreateRegistrationPolicyRequest::getDescription() const {
+  return description_;
+}
+
+void CreateRegistrationPolicyRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setBodyParameter(std::string("Description"), description);
+}
+
+std::string CreateRegistrationPolicyRequest::getMatchMode() const {
+  return matchMode_;
+}
+
+void CreateRegistrationPolicyRequest::setMatchMode(const std::string &matchMode) {
+  matchMode_ = matchMode;
+  setBodyParameter(std::string("MatchMode"), matchMode);
+}
+
+std::string CreateRegistrationPolicyRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void CreateRegistrationPolicyRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+
+CreateRegistrationPolicyRequest::CompanyLimitCount CreateRegistrationPolicyRequest::getCompanyLimitCount() const {
+  return companyLimitCount_;
+}
+
+void CreateRegistrationPolicyRequest::setCompanyLimitCount(const CreateRegistrationPolicyRequest::CompanyLimitCount &companyLimitCount) {
+  companyLimitCount_ = companyLimitCount;
+  setBodyParameter(std::string("CompanyLimitCount") + ".All", std::to_string(companyLimitCount.all));
+  setBodyParameter(std::string("CompanyLimitCount") + ".PC", std::to_string(companyLimitCount.pC));
+  setBodyParameter(std::string("CompanyLimitCount") + ".Mobile", std::to_string(companyLimitCount.mobile));
+}
+
+CreateRegistrationPolicyRequest::PersonalLimitCount CreateRegistrationPolicyRequest::getPersonalLimitCount() const {
+  return personalLimitCount_;
+}
+
+void CreateRegistrationPolicyRequest::setPersonalLimitCount(const CreateRegistrationPolicyRequest::PersonalLimitCount &personalLimitCount) {
+  personalLimitCount_ = personalLimitCount;
+  setBodyParameter(std::string("PersonalLimitCount") + ".All", std::to_string(personalLimitCount.all));
+  setBodyParameter(std::string("PersonalLimitCount") + ".PC", std::to_string(personalLimitCount.pC));
+  setBodyParameter(std::string("PersonalLimitCount") + ".Mobile", std::to_string(personalLimitCount.mobile));
+}
+
+std::vector<CreateRegistrationPolicyRequest::std::string> CreateRegistrationPolicyRequest::getUserGroupIds() const {
+  return userGroupIds_;
+}
+
+void CreateRegistrationPolicyRequest::setUserGroupIds(const std::vector<CreateRegistrationPolicyRequest::std::string> &userGroupIds) {
+  userGroupIds_ = userGroupIds;
+  for(int dep1 = 0; dep1 != userGroupIds.size(); dep1++) {
+    setBodyParameter(std::string("UserGroupIds") + "." + std::to_string(dep1 + 1), userGroupIds[dep1]);
+  }
+}
+
+std::vector<CreateRegistrationPolicyRequest::std::string> CreateRegistrationPolicyRequest::getWhitelist() const {
+  return whitelist_;
+}
+
+void CreateRegistrationPolicyRequest::setWhitelist(const std::vector<CreateRegistrationPolicyRequest::std::string> &whitelist) {
+  whitelist_ = whitelist;
+  for(int dep1 = 0; dep1 != whitelist.size(); dep1++) {
+    setBodyParameter(std::string("Whitelist") + "." + std::to_string(dep1 + 1), whitelist[dep1]);
+  }
+}
+
+long CreateRegistrationPolicyRequest::getPriority() const {
+  return priority_;
+}
+
+void CreateRegistrationPolicyRequest::setPriority(long priority) {
+  priority_ = priority;
+  setBodyParameter(std::string("Priority"), std::to_string(priority));
+}
+
+std::string CreateRegistrationPolicyRequest::getPersonalLimitType() const {
+  return personalLimitType_;
+}
+
+void CreateRegistrationPolicyRequest::setPersonalLimitType(const std::string &personalLimitType) {
+  personalLimitType_ = personalLimitType;
+  setBodyParameter(std::string("PersonalLimitType"), personalLimitType);
+}
+
+std::string CreateRegistrationPolicyRequest::getName() const {
+  return name_;
+}
+
+void CreateRegistrationPolicyRequest::setName(const std::string &name) {
+  name_ = name;
+  setBodyParameter(std::string("Name"), name);
+}
+
+std::string CreateRegistrationPolicyRequest::getCompanyLimitType() const {
+  return companyLimitType_;
+}
+
+void CreateRegistrationPolicyRequest::setCompanyLimitType(const std::string &companyLimitType) {
+  companyLimitType_ = companyLimitType;
+  setBodyParameter(std::string("CompanyLimitType"), companyLimitType);
+}
+
+std::string CreateRegistrationPolicyRequest::getStatus() const {
+  return status_;
+}
+
+void CreateRegistrationPolicyRequest::setStatus(const std::string &status) {
+  status_ = status;
+  setBodyParameter(std::string("Status"), status);
+}
+

+ 87 - 0
csas/src/model/CreateRegistrationPolicyResult.cc

@@ -0,0 +1,87 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/CreateRegistrationPolicyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+CreateRegistrationPolicyResult::CreateRegistrationPolicyResult() :
+	ServiceResult()
+{}
+
+CreateRegistrationPolicyResult::CreateRegistrationPolicyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateRegistrationPolicyResult::~CreateRegistrationPolicyResult()
+{}
+
+void CreateRegistrationPolicyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto policyNode = value["Policy"];
+	if(!policyNode["Name"].isNull())
+		policy_.name = policyNode["Name"].asString();
+	if(!policyNode["PolicyId"].isNull())
+		policy_.policyId = policyNode["PolicyId"].asString();
+	if(!policyNode["Priority"].isNull())
+		policy_.priority = policyNode["Priority"].asString();
+	if(!policyNode["Description"].isNull())
+		policy_.description = policyNode["Description"].asString();
+	if(!policyNode["Status"].isNull())
+		policy_.status = policyNode["Status"].asString();
+	if(!policyNode["MatchMode"].isNull())
+		policy_.matchMode = policyNode["MatchMode"].asString();
+	if(!policyNode["CreateTime"].isNull())
+		policy_.createTime = policyNode["CreateTime"].asString();
+	auto allLimitDetailNode = policyNode["LimitDetail"]["limitDetailItem"];
+	for (auto policyNodeLimitDetaillimitDetailItem : allLimitDetailNode)
+	{
+		Policy::LimitDetailItem limitDetailItemObject;
+		if(!policyNodeLimitDetaillimitDetailItem["DeviceBelong"].isNull())
+			limitDetailItemObject.deviceBelong = policyNodeLimitDetaillimitDetailItem["DeviceBelong"].asString();
+		if(!policyNodeLimitDetaillimitDetailItem["LimitType"].isNull())
+			limitDetailItemObject.limitType = policyNodeLimitDetaillimitDetailItem["LimitType"].asString();
+		auto limitCountNode = value["LimitCount"];
+		if(!limitCountNode["All"].isNull())
+			limitDetailItemObject.limitCount.all = std::stoi(limitCountNode["All"].asString());
+		if(!limitCountNode["PC"].isNull())
+			limitDetailItemObject.limitCount.pC = std::stoi(limitCountNode["PC"].asString());
+		if(!limitCountNode["Mobile"].isNull())
+			limitDetailItemObject.limitCount.mobile = std::stoi(limitCountNode["Mobile"].asString());
+		policy_.limitDetail.push_back(limitDetailItemObject);
+	}
+		auto allWhitelist = policyNode["Whitelist"]["whitelist"];
+		for (auto value : allWhitelist)
+			policy_.whitelist.push_back(value.asString());
+		auto allUserGroupIds = policyNode["UserGroupIds"]["userGroupIds"];
+		for (auto value : allUserGroupIds)
+			policy_.userGroupIds.push_back(value.asString());
+
+}
+
+CreateRegistrationPolicyResult::Policy CreateRegistrationPolicyResult::getPolicy()const
+{
+	return policy_;
+}
+

+ 47 - 0
csas/src/model/DeleteRegistrationPoliciesRequest.cc

@@ -0,0 +1,47 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/DeleteRegistrationPoliciesRequest.h>
+
+using AlibabaCloud::Csas::Model::DeleteRegistrationPoliciesRequest;
+
+DeleteRegistrationPoliciesRequest::DeleteRegistrationPoliciesRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "DeleteRegistrationPolicies") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteRegistrationPoliciesRequest::~DeleteRegistrationPoliciesRequest() {}
+
+std::vector<DeleteRegistrationPoliciesRequest::std::string> DeleteRegistrationPoliciesRequest::getPolicyIds() const {
+  return policyIds_;
+}
+
+void DeleteRegistrationPoliciesRequest::setPolicyIds(const std::vector<DeleteRegistrationPoliciesRequest::std::string> &policyIds) {
+  policyIds_ = policyIds;
+  for(int dep1 = 0; dep1 != policyIds.size(); dep1++) {
+    setBodyParameter(std::string("PolicyIds") + "." + std::to_string(dep1 + 1), policyIds[dep1]);
+  }
+}
+
+std::string DeleteRegistrationPoliciesRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void DeleteRegistrationPoliciesRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+

+ 44 - 0
csas/src/model/DeleteRegistrationPoliciesResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/DeleteRegistrationPoliciesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+DeleteRegistrationPoliciesResult::DeleteRegistrationPoliciesResult() :
+	ServiceResult()
+{}
+
+DeleteRegistrationPoliciesResult::DeleteRegistrationPoliciesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteRegistrationPoliciesResult::~DeleteRegistrationPoliciesResult()
+{}
+
+void DeleteRegistrationPoliciesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 45 - 0
csas/src/model/GetRegistrationPolicyRequest.cc

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/GetRegistrationPolicyRequest.h>
+
+using AlibabaCloud::Csas::Model::GetRegistrationPolicyRequest;
+
+GetRegistrationPolicyRequest::GetRegistrationPolicyRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "GetRegistrationPolicy") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+GetRegistrationPolicyRequest::~GetRegistrationPolicyRequest() {}
+
+std::string GetRegistrationPolicyRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void GetRegistrationPolicyRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+
+std::string GetRegistrationPolicyRequest::getPolicyId() const {
+  return policyId_;
+}
+
+void GetRegistrationPolicyRequest::setPolicyId(const std::string &policyId) {
+  policyId_ = policyId;
+  setParameter(std::string("PolicyId"), policyId);
+}
+

+ 131 - 0
csas/src/model/GetRegistrationPolicyResult.cc

@@ -0,0 +1,131 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/GetRegistrationPolicyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+GetRegistrationPolicyResult::GetRegistrationPolicyResult() :
+	ServiceResult()
+{}
+
+GetRegistrationPolicyResult::GetRegistrationPolicyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetRegistrationPolicyResult::~GetRegistrationPolicyResult()
+{}
+
+void GetRegistrationPolicyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allLimitDetailNode = value["LimitDetail"]["limitDetailItem"];
+	for (auto valueLimitDetaillimitDetailItem : allLimitDetailNode)
+	{
+		LimitDetailItem limitDetailObject;
+		if(!valueLimitDetaillimitDetailItem["DeviceBelong"].isNull())
+			limitDetailObject.deviceBelong = valueLimitDetaillimitDetailItem["DeviceBelong"].asString();
+		if(!valueLimitDetaillimitDetailItem["LimitType"].isNull())
+			limitDetailObject.limitType = valueLimitDetaillimitDetailItem["LimitType"].asString();
+		auto limitCountNode = value["LimitCount"];
+		if(!limitCountNode["All"].isNull())
+			limitDetailObject.limitCount.all = std::stoi(limitCountNode["All"].asString());
+		if(!limitCountNode["PC"].isNull())
+			limitDetailObject.limitCount.pC = std::stoi(limitCountNode["PC"].asString());
+		if(!limitCountNode["Mobile"].isNull())
+			limitDetailObject.limitCount.mobile = std::stoi(limitCountNode["Mobile"].asString());
+		limitDetail_.push_back(limitDetailObject);
+	}
+	auto allWhitelist = value["Whitelist"]["whitelist"];
+	for (const auto &item : allWhitelist)
+		whitelist_.push_back(item.asString());
+	auto allUserGroupIds = value["UserGroupIds"]["userGroupIds"];
+	for (const auto &item : allUserGroupIds)
+		userGroupIds_.push_back(item.asString());
+	if(!value["Name"].isNull())
+		name_ = value["Name"].asString();
+	if(!value["PolicyId"].isNull())
+		policyId_ = value["PolicyId"].asString();
+	if(!value["Description"].isNull())
+		description_ = value["Description"].asString();
+	if(!value["Priority"].isNull())
+		priority_ = std::stol(value["Priority"].asString());
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["MatchMode"].isNull())
+		matchMode_ = value["MatchMode"].asString();
+	if(!value["CreateTime"].isNull())
+		createTime_ = value["CreateTime"].asString();
+
+}
+
+std::string GetRegistrationPolicyResult::getStatus()const
+{
+	return status_;
+}
+
+std::string GetRegistrationPolicyResult::getMatchMode()const
+{
+	return matchMode_;
+}
+
+std::string GetRegistrationPolicyResult::getDescription()const
+{
+	return description_;
+}
+
+long GetRegistrationPolicyResult::getPriority()const
+{
+	return priority_;
+}
+
+std::vector<std::string> GetRegistrationPolicyResult::getUserGroupIds()const
+{
+	return userGroupIds_;
+}
+
+std::string GetRegistrationPolicyResult::getCreateTime()const
+{
+	return createTime_;
+}
+
+std::vector<GetRegistrationPolicyResult::LimitDetailItem> GetRegistrationPolicyResult::getLimitDetail()const
+{
+	return limitDetail_;
+}
+
+std::vector<std::string> GetRegistrationPolicyResult::getWhitelist()const
+{
+	return whitelist_;
+}
+
+std::string GetRegistrationPolicyResult::getPolicyId()const
+{
+	return policyId_;
+}
+
+std::string GetRegistrationPolicyResult::getName()const
+{
+	return name_;
+}
+

+ 45 - 0
csas/src/model/GetUserDeviceRequest.cc

@@ -0,0 +1,45 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/GetUserDeviceRequest.h>
+
+using AlibabaCloud::Csas::Model::GetUserDeviceRequest;
+
+GetUserDeviceRequest::GetUserDeviceRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "GetUserDevice") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+GetUserDeviceRequest::~GetUserDeviceRequest() {}
+
+std::string GetUserDeviceRequest::getDeviceTag() const {
+  return deviceTag_;
+}
+
+void GetUserDeviceRequest::setDeviceTag(const std::string &deviceTag) {
+  deviceTag_ = deviceTag;
+  setParameter(std::string("DeviceTag"), deviceTag);
+}
+
+std::string GetUserDeviceRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void GetUserDeviceRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+

+ 110 - 0
csas/src/model/GetUserDeviceResult.cc

@@ -0,0 +1,110 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/GetUserDeviceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+GetUserDeviceResult::GetUserDeviceResult() :
+	ServiceResult()
+{}
+
+GetUserDeviceResult::GetUserDeviceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetUserDeviceResult::~GetUserDeviceResult()
+{}
+
+void GetUserDeviceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto deviceNode = value["Device"];
+	if(!deviceNode["DeviceTag"].isNull())
+		device_.deviceTag = deviceNode["DeviceTag"].asString();
+	if(!deviceNode["DeviceType"].isNull())
+		device_.deviceType = deviceNode["DeviceType"].asString();
+	if(!deviceNode["DeviceModel"].isNull())
+		device_.deviceModel = deviceNode["DeviceModel"].asString();
+	if(!deviceNode["DeviceVersion"].isNull())
+		device_.deviceVersion = deviceNode["DeviceVersion"].asString();
+	if(!deviceNode["Hostname"].isNull())
+		device_.hostname = deviceNode["Hostname"].asString();
+	if(!deviceNode["Username"].isNull())
+		device_.username = deviceNode["Username"].asString();
+	if(!deviceNode["SaseUserId"].isNull())
+		device_.saseUserId = deviceNode["SaseUserId"].asString();
+	if(!deviceNode["Department"].isNull())
+		device_.department = deviceNode["Department"].asString();
+	if(!deviceNode["InnerIP"].isNull())
+		device_.innerIP = deviceNode["InnerIP"].asString();
+	if(!deviceNode["SrcIP"].isNull())
+		device_.srcIP = deviceNode["SrcIP"].asString();
+	if(!deviceNode["Memory"].isNull())
+		device_.memory = deviceNode["Memory"].asString();
+	if(!deviceNode["CPU"].isNull())
+		device_.cPU = deviceNode["CPU"].asString();
+	if(!deviceNode["Disk"].isNull())
+		device_.disk = deviceNode["Disk"].asString();
+	if(!deviceNode["Mac"].isNull())
+		device_.mac = deviceNode["Mac"].asString();
+	if(!deviceNode["AppVersion"].isNull())
+		device_.appVersion = deviceNode["AppVersion"].asString();
+	if(!deviceNode["DeviceBelong"].isNull())
+		device_.deviceBelong = deviceNode["DeviceBelong"].asString();
+	if(!deviceNode["SharingStatus"].isNull())
+		device_.sharingStatus = deviceNode["SharingStatus"].asString() == "true";
+	if(!deviceNode["DeviceStatus"].isNull())
+		device_.deviceStatus = deviceNode["DeviceStatus"].asString();
+	if(!deviceNode["AppStatus"].isNull())
+		device_.appStatus = deviceNode["AppStatus"].asString();
+	if(!deviceNode["PaStatus"].isNull())
+		device_.paStatus = deviceNode["PaStatus"].asString();
+	if(!deviceNode["IaStatus"].isNull())
+		device_.iaStatus = deviceNode["IaStatus"].asString();
+	if(!deviceNode["DlpStatus"].isNull())
+		device_.dlpStatus = deviceNode["DlpStatus"].asString();
+	if(!deviceNode["NacStatus"].isNull())
+		device_.nacStatus = deviceNode["NacStatus"].asString();
+	if(!deviceNode["CreateTime"].isNull())
+		device_.createTime = deviceNode["CreateTime"].asString();
+	if(!deviceNode["UpdateTime"].isNull())
+		device_.updateTime = deviceNode["UpdateTime"].asString();
+	auto allHistoryUsersNode = deviceNode["HistoryUsers"]["historyUsersItem"];
+	for (auto deviceNodeHistoryUsershistoryUsersItem : allHistoryUsersNode)
+	{
+		Device::HistoryUsersItem historyUsersItemObject;
+		if(!deviceNodeHistoryUsershistoryUsersItem["Username"].isNull())
+			historyUsersItemObject.username = deviceNodeHistoryUsershistoryUsersItem["Username"].asString();
+		if(!deviceNodeHistoryUsershistoryUsersItem["SaseUserId"].isNull())
+			historyUsersItemObject.saseUserId = deviceNodeHistoryUsershistoryUsersItem["SaseUserId"].asString();
+		device_.historyUsers.push_back(historyUsersItemObject);
+	}
+
+}
+
+GetUserDeviceResult::Device GetUserDeviceResult::getDevice()const
+{
+	return device_;
+}
+

+ 130 - 0
csas/src/model/ListExcessiveDeviceRegistrationApplicationsRequest.cc

@@ -0,0 +1,130 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/ListExcessiveDeviceRegistrationApplicationsRequest.h>
+
+using AlibabaCloud::Csas::Model::ListExcessiveDeviceRegistrationApplicationsRequest;
+
+ListExcessiveDeviceRegistrationApplicationsRequest::ListExcessiveDeviceRegistrationApplicationsRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "ListExcessiveDeviceRegistrationApplications") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+ListExcessiveDeviceRegistrationApplicationsRequest::~ListExcessiveDeviceRegistrationApplicationsRequest() {}
+
+std::string ListExcessiveDeviceRegistrationApplicationsRequest::getDeviceTag() const {
+  return deviceTag_;
+}
+
+void ListExcessiveDeviceRegistrationApplicationsRequest::setDeviceTag(const std::string &deviceTag) {
+  deviceTag_ = deviceTag;
+  setParameter(std::string("DeviceTag"), deviceTag);
+}
+
+std::string ListExcessiveDeviceRegistrationApplicationsRequest::getMac() const {
+  return mac_;
+}
+
+void ListExcessiveDeviceRegistrationApplicationsRequest::setMac(const std::string &mac) {
+  mac_ = mac;
+  setParameter(std::string("Mac"), mac);
+}
+
+std::string ListExcessiveDeviceRegistrationApplicationsRequest::getHostname() const {
+  return hostname_;
+}
+
+void ListExcessiveDeviceRegistrationApplicationsRequest::setHostname(const std::string &hostname) {
+  hostname_ = hostname;
+  setParameter(std::string("Hostname"), hostname);
+}
+
+std::string ListExcessiveDeviceRegistrationApplicationsRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void ListExcessiveDeviceRegistrationApplicationsRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+
+std::string ListExcessiveDeviceRegistrationApplicationsRequest::getSaseUserId() const {
+  return saseUserId_;
+}
+
+void ListExcessiveDeviceRegistrationApplicationsRequest::setSaseUserId(const std::string &saseUserId) {
+  saseUserId_ = saseUserId;
+  setParameter(std::string("SaseUserId"), saseUserId);
+}
+
+long ListExcessiveDeviceRegistrationApplicationsRequest::getPageSize() const {
+  return pageSize_;
+}
+
+void ListExcessiveDeviceRegistrationApplicationsRequest::setPageSize(long pageSize) {
+  pageSize_ = pageSize;
+  setParameter(std::string("PageSize"), std::to_string(pageSize));
+}
+
+std::string ListExcessiveDeviceRegistrationApplicationsRequest::getDepartment() const {
+  return department_;
+}
+
+void ListExcessiveDeviceRegistrationApplicationsRequest::setDepartment(const std::string &department) {
+  department_ = department;
+  setParameter(std::string("Department"), department);
+}
+
+long ListExcessiveDeviceRegistrationApplicationsRequest::getCurrentPage() const {
+  return currentPage_;
+}
+
+void ListExcessiveDeviceRegistrationApplicationsRequest::setCurrentPage(long currentPage) {
+  currentPage_ = currentPage;
+  setParameter(std::string("CurrentPage"), std::to_string(currentPage));
+}
+
+std::vector<ListExcessiveDeviceRegistrationApplicationsRequest::std::string> ListExcessiveDeviceRegistrationApplicationsRequest::getApplicationIds() const {
+  return applicationIds_;
+}
+
+void ListExcessiveDeviceRegistrationApplicationsRequest::setApplicationIds(const std::vector<ListExcessiveDeviceRegistrationApplicationsRequest::std::string> &applicationIds) {
+  applicationIds_ = applicationIds;
+  for(int dep1 = 0; dep1 != applicationIds.size(); dep1++) {
+    setParameter(std::string("ApplicationIds") + "." + std::to_string(dep1 + 1), applicationIds[dep1]);
+  }
+}
+
+std::vector<ListExcessiveDeviceRegistrationApplicationsRequest::std::string> ListExcessiveDeviceRegistrationApplicationsRequest::getStatuses() const {
+  return statuses_;
+}
+
+void ListExcessiveDeviceRegistrationApplicationsRequest::setStatuses(const std::vector<ListExcessiveDeviceRegistrationApplicationsRequest::std::string> &statuses) {
+  statuses_ = statuses;
+  for(int dep1 = 0; dep1 != statuses.size(); dep1++) {
+    setParameter(std::string("Statuses") + "." + std::to_string(dep1 + 1), statuses[dep1]);
+  }
+}
+
+std::string ListExcessiveDeviceRegistrationApplicationsRequest::getUsername() const {
+  return username_;
+}
+
+void ListExcessiveDeviceRegistrationApplicationsRequest::setUsername(const std::string &username) {
+  username_ = username;
+  setParameter(std::string("Username"), username);
+}
+

+ 86 - 0
csas/src/model/ListExcessiveDeviceRegistrationApplicationsResult.cc

@@ -0,0 +1,86 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/ListExcessiveDeviceRegistrationApplicationsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+ListExcessiveDeviceRegistrationApplicationsResult::ListExcessiveDeviceRegistrationApplicationsResult() :
+	ServiceResult()
+{}
+
+ListExcessiveDeviceRegistrationApplicationsResult::ListExcessiveDeviceRegistrationApplicationsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListExcessiveDeviceRegistrationApplicationsResult::~ListExcessiveDeviceRegistrationApplicationsResult()
+{}
+
+void ListExcessiveDeviceRegistrationApplicationsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allApplicationsNode = value["Applications"]["dataList"];
+	for (auto valueApplicationsdataList : allApplicationsNode)
+	{
+		DataList applicationsObject;
+		if(!valueApplicationsdataList["DeviceTag"].isNull())
+			applicationsObject.deviceTag = valueApplicationsdataList["DeviceTag"].asString();
+		if(!valueApplicationsdataList["DeviceType"].isNull())
+			applicationsObject.deviceType = valueApplicationsdataList["DeviceType"].asString();
+		if(!valueApplicationsdataList["Hostname"].isNull())
+			applicationsObject.hostname = valueApplicationsdataList["Hostname"].asString();
+		if(!valueApplicationsdataList["Username"].isNull())
+			applicationsObject.username = valueApplicationsdataList["Username"].asString();
+		if(!valueApplicationsdataList["SaseUserId"].isNull())
+			applicationsObject.saseUserId = valueApplicationsdataList["SaseUserId"].asString();
+		if(!valueApplicationsdataList["Department"].isNull())
+			applicationsObject.department = valueApplicationsdataList["Department"].asString();
+		if(!valueApplicationsdataList["Mac"].isNull())
+			applicationsObject.mac = valueApplicationsdataList["Mac"].asString();
+		if(!valueApplicationsdataList["IsUsed"].isNull())
+			applicationsObject.isUsed = valueApplicationsdataList["IsUsed"].asString() == "true";
+		if(!valueApplicationsdataList["Status"].isNull())
+			applicationsObject.status = valueApplicationsdataList["Status"].asString();
+		if(!valueApplicationsdataList["CreateTime"].isNull())
+			applicationsObject.createTime = valueApplicationsdataList["CreateTime"].asString();
+		if(!valueApplicationsdataList["Description"].isNull())
+			applicationsObject.description = valueApplicationsdataList["Description"].asString();
+		if(!valueApplicationsdataList["ApplicationId"].isNull())
+			applicationsObject.applicationId = valueApplicationsdataList["ApplicationId"].asString();
+		applications_.push_back(applicationsObject);
+	}
+	if(!value["TotalNum"].isNull())
+		totalNum_ = std::stol(value["TotalNum"].asString());
+
+}
+
+long ListExcessiveDeviceRegistrationApplicationsResult::getTotalNum()const
+{
+	return totalNum_;
+}
+
+std::vector<ListExcessiveDeviceRegistrationApplicationsResult::DataList> ListExcessiveDeviceRegistrationApplicationsResult::getApplications()const
+{
+	return applications_;
+}
+

+ 9 - 0
csas/src/model/ListPrivateAccessTagsRequest.cc

@@ -61,6 +61,15 @@ void ListPrivateAccessTagsRequest::setApplicationId(const std::string &applicati
   setParameter(std::string("ApplicationId"), applicationId);
 }
 
+bool ListPrivateAccessTagsRequest::getSimpleMode() const {
+  return simpleMode_;
+}
+
+void ListPrivateAccessTagsRequest::setSimpleMode(bool simpleMode) {
+  simpleMode_ = simpleMode;
+  setParameter(std::string("SimpleMode"), simpleMode ? "true" : "false");
+}
+
 std::vector<ListPrivateAccessTagsRequest::std::string> ListPrivateAccessTagsRequest::getTagIds() const {
   return tagIds_;
 }

+ 47 - 0
csas/src/model/ListRegistrationPoliciesForUserGroupRequest.cc

@@ -0,0 +1,47 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/ListRegistrationPoliciesForUserGroupRequest.h>
+
+using AlibabaCloud::Csas::Model::ListRegistrationPoliciesForUserGroupRequest;
+
+ListRegistrationPoliciesForUserGroupRequest::ListRegistrationPoliciesForUserGroupRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "ListRegistrationPoliciesForUserGroup") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+ListRegistrationPoliciesForUserGroupRequest::~ListRegistrationPoliciesForUserGroupRequest() {}
+
+std::vector<ListRegistrationPoliciesForUserGroupRequest::std::string> ListRegistrationPoliciesForUserGroupRequest::getUserGroupIds() const {
+  return userGroupIds_;
+}
+
+void ListRegistrationPoliciesForUserGroupRequest::setUserGroupIds(const std::vector<ListRegistrationPoliciesForUserGroupRequest::std::string> &userGroupIds) {
+  userGroupIds_ = userGroupIds;
+  for(int dep1 = 0; dep1 != userGroupIds.size(); dep1++) {
+    setParameter(std::string("UserGroupIds") + "." + std::to_string(dep1 + 1), userGroupIds[dep1]);
+  }
+}
+
+std::string ListRegistrationPoliciesForUserGroupRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void ListRegistrationPoliciesForUserGroupRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+

+ 97 - 0
csas/src/model/ListRegistrationPoliciesForUserGroupResult.cc

@@ -0,0 +1,97 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/ListRegistrationPoliciesForUserGroupResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+ListRegistrationPoliciesForUserGroupResult::ListRegistrationPoliciesForUserGroupResult() :
+	ServiceResult()
+{}
+
+ListRegistrationPoliciesForUserGroupResult::ListRegistrationPoliciesForUserGroupResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListRegistrationPoliciesForUserGroupResult::~ListRegistrationPoliciesForUserGroupResult()
+{}
+
+void ListRegistrationPoliciesForUserGroupResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allUserGroupsNode = value["UserGroups"]["data"];
+	for (auto valueUserGroupsdata : allUserGroupsNode)
+	{
+		Data userGroupsObject;
+		if(!valueUserGroupsdata["UserGroupId"].isNull())
+			userGroupsObject.userGroupId = valueUserGroupsdata["UserGroupId"].asString();
+		auto allPoliciesNode = valueUserGroupsdata["Policies"]["policiesItem"];
+		for (auto valueUserGroupsdataPoliciespoliciesItem : allPoliciesNode)
+		{
+			Data::PoliciesItem policiesObject;
+			if(!valueUserGroupsdataPoliciespoliciesItem["Name"].isNull())
+				policiesObject.name = valueUserGroupsdataPoliciespoliciesItem["Name"].asString();
+			if(!valueUserGroupsdataPoliciespoliciesItem["PolicyId"].isNull())
+				policiesObject.policyId = valueUserGroupsdataPoliciespoliciesItem["PolicyId"].asString();
+			if(!valueUserGroupsdataPoliciespoliciesItem["Description"].isNull())
+				policiesObject.description = valueUserGroupsdataPoliciespoliciesItem["Description"].asString();
+			if(!valueUserGroupsdataPoliciespoliciesItem["Priority"].isNull())
+				policiesObject.priority = std::stol(valueUserGroupsdataPoliciespoliciesItem["Priority"].asString());
+			if(!valueUserGroupsdataPoliciespoliciesItem["Status"].isNull())
+				policiesObject.status = valueUserGroupsdataPoliciespoliciesItem["Status"].asString();
+			if(!valueUserGroupsdataPoliciespoliciesItem["MatchMode"].isNull())
+				policiesObject.matchMode = valueUserGroupsdataPoliciespoliciesItem["MatchMode"].asString();
+			if(!valueUserGroupsdataPoliciespoliciesItem["CreateTime"].isNull())
+				policiesObject.createTime = valueUserGroupsdataPoliciespoliciesItem["CreateTime"].asString();
+			auto allLimitDetailNode = valueUserGroupsdataPoliciespoliciesItem["LimitDetail"]["limitDetailItem"];
+			for (auto valueUserGroupsdataPoliciespoliciesItemLimitDetaillimitDetailItem : allLimitDetailNode)
+			{
+				Data::PoliciesItem::LimitDetailItem limitDetailObject;
+				if(!valueUserGroupsdataPoliciespoliciesItemLimitDetaillimitDetailItem["DeviceBelong"].isNull())
+					limitDetailObject.deviceBelong = valueUserGroupsdataPoliciespoliciesItemLimitDetaillimitDetailItem["DeviceBelong"].asString();
+				if(!valueUserGroupsdataPoliciespoliciesItemLimitDetaillimitDetailItem["LimitType"].isNull())
+					limitDetailObject.limitType = valueUserGroupsdataPoliciespoliciesItemLimitDetaillimitDetailItem["LimitType"].asString();
+				auto limitCountNode = value["LimitCount"];
+				if(!limitCountNode["All"].isNull())
+					limitDetailObject.limitCount.all = limitCountNode["All"].asString();
+				if(!limitCountNode["PC"].isNull())
+					limitDetailObject.limitCount.pC = limitCountNode["PC"].asString();
+				if(!limitCountNode["Mobile"].isNull())
+					limitDetailObject.limitCount.mobile = limitCountNode["Mobile"].asString();
+				policiesObject.limitDetail.push_back(limitDetailObject);
+			}
+			auto allWhitelist = value["Whitelist"]["whitelist"];
+			for (auto value : allWhitelist)
+				policiesObject.whitelist.push_back(value.asString());
+			userGroupsObject.policies.push_back(policiesObject);
+		}
+		userGroups_.push_back(userGroupsObject);
+	}
+
+}
+
+std::vector<ListRegistrationPoliciesForUserGroupResult::Data> ListRegistrationPoliciesForUserGroupResult::getUserGroups()const
+{
+	return userGroups_;
+}
+

+ 119 - 0
csas/src/model/ListRegistrationPoliciesRequest.cc

@@ -0,0 +1,119 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/ListRegistrationPoliciesRequest.h>
+
+using AlibabaCloud::Csas::Model::ListRegistrationPoliciesRequest;
+
+ListRegistrationPoliciesRequest::ListRegistrationPoliciesRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "ListRegistrationPolicies") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+ListRegistrationPoliciesRequest::~ListRegistrationPoliciesRequest() {}
+
+std::vector<ListRegistrationPoliciesRequest::std::string> ListRegistrationPoliciesRequest::getPolicyIds() const {
+  return policyIds_;
+}
+
+void ListRegistrationPoliciesRequest::setPolicyIds(const std::vector<ListRegistrationPoliciesRequest::std::string> &policyIds) {
+  policyIds_ = policyIds;
+  for(int dep1 = 0; dep1 != policyIds.size(); dep1++) {
+    setParameter(std::string("PolicyIds") + "." + std::to_string(dep1 + 1), policyIds[dep1]);
+  }
+}
+
+std::string ListRegistrationPoliciesRequest::getMatchMode() const {
+  return matchMode_;
+}
+
+void ListRegistrationPoliciesRequest::setMatchMode(const std::string &matchMode) {
+  matchMode_ = matchMode;
+  setParameter(std::string("MatchMode"), matchMode);
+}
+
+std::string ListRegistrationPoliciesRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void ListRegistrationPoliciesRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+
+long ListRegistrationPoliciesRequest::getPageSize() const {
+  return pageSize_;
+}
+
+void ListRegistrationPoliciesRequest::setPageSize(long pageSize) {
+  pageSize_ = pageSize;
+  setParameter(std::string("PageSize"), std::to_string(pageSize));
+}
+
+std::string ListRegistrationPoliciesRequest::getUserGroupId() const {
+  return userGroupId_;
+}
+
+void ListRegistrationPoliciesRequest::setUserGroupId(const std::string &userGroupId) {
+  userGroupId_ = userGroupId;
+  setParameter(std::string("UserGroupId"), userGroupId);
+}
+
+long ListRegistrationPoliciesRequest::getCurrentPage() const {
+  return currentPage_;
+}
+
+void ListRegistrationPoliciesRequest::setCurrentPage(long currentPage) {
+  currentPage_ = currentPage;
+  setParameter(std::string("CurrentPage"), std::to_string(currentPage));
+}
+
+std::string ListRegistrationPoliciesRequest::getPersonalLimitType() const {
+  return personalLimitType_;
+}
+
+void ListRegistrationPoliciesRequest::setPersonalLimitType(const std::string &personalLimitType) {
+  personalLimitType_ = personalLimitType;
+  setParameter(std::string("PersonalLimitType"), personalLimitType);
+}
+
+std::string ListRegistrationPoliciesRequest::getName() const {
+  return name_;
+}
+
+void ListRegistrationPoliciesRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+
+std::string ListRegistrationPoliciesRequest::getCompanyLimitType() const {
+  return companyLimitType_;
+}
+
+void ListRegistrationPoliciesRequest::setCompanyLimitType(const std::string &companyLimitType) {
+  companyLimitType_ = companyLimitType;
+  setParameter(std::string("CompanyLimitType"), companyLimitType);
+}
+
+std::string ListRegistrationPoliciesRequest::getStatus() const {
+  return status_;
+}
+
+void ListRegistrationPoliciesRequest::setStatus(const std::string &status) {
+  status_ = status;
+  setParameter(std::string("Status"), status);
+}
+

+ 99 - 0
csas/src/model/ListRegistrationPoliciesResult.cc

@@ -0,0 +1,99 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/ListRegistrationPoliciesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+ListRegistrationPoliciesResult::ListRegistrationPoliciesResult() :
+	ServiceResult()
+{}
+
+ListRegistrationPoliciesResult::ListRegistrationPoliciesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListRegistrationPoliciesResult::~ListRegistrationPoliciesResult()
+{}
+
+void ListRegistrationPoliciesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allPoliciesNode = value["Policies"]["dataList"];
+	for (auto valuePoliciesdataList : allPoliciesNode)
+	{
+		DataList policiesObject;
+		if(!valuePoliciesdataList["Name"].isNull())
+			policiesObject.name = valuePoliciesdataList["Name"].asString();
+		if(!valuePoliciesdataList["PolicyId"].isNull())
+			policiesObject.policyId = valuePoliciesdataList["PolicyId"].asString();
+		if(!valuePoliciesdataList["Description"].isNull())
+			policiesObject.description = valuePoliciesdataList["Description"].asString();
+		if(!valuePoliciesdataList["Priority"].isNull())
+			policiesObject.priority = std::stol(valuePoliciesdataList["Priority"].asString());
+		if(!valuePoliciesdataList["Status"].isNull())
+			policiesObject.status = valuePoliciesdataList["Status"].asString();
+		if(!valuePoliciesdataList["MatchMode"].isNull())
+			policiesObject.matchMode = valuePoliciesdataList["MatchMode"].asString();
+		if(!valuePoliciesdataList["CreateTime"].isNull())
+			policiesObject.createTime = valuePoliciesdataList["CreateTime"].asString();
+		auto allLimitDetailNode = valuePoliciesdataList["LimitDetail"]["limitDetailItem"];
+		for (auto valuePoliciesdataListLimitDetaillimitDetailItem : allLimitDetailNode)
+		{
+			DataList::LimitDetailItem limitDetailObject;
+			if(!valuePoliciesdataListLimitDetaillimitDetailItem["DeviceBelong"].isNull())
+				limitDetailObject.deviceBelong = valuePoliciesdataListLimitDetaillimitDetailItem["DeviceBelong"].asString();
+			if(!valuePoliciesdataListLimitDetaillimitDetailItem["LimitType"].isNull())
+				limitDetailObject.limitType = valuePoliciesdataListLimitDetaillimitDetailItem["LimitType"].asString();
+			auto limitCountNode = value["LimitCount"];
+			if(!limitCountNode["All"].isNull())
+				limitDetailObject.limitCount.all = std::stoi(limitCountNode["All"].asString());
+			if(!limitCountNode["PC"].isNull())
+				limitDetailObject.limitCount.pC = std::stoi(limitCountNode["PC"].asString());
+			if(!limitCountNode["Mobile"].isNull())
+				limitDetailObject.limitCount.mobile = std::stoi(limitCountNode["Mobile"].asString());
+			policiesObject.limitDetail.push_back(limitDetailObject);
+		}
+		auto allWhitelist = value["Whitelist"]["whitelist"];
+		for (auto value : allWhitelist)
+			policiesObject.whitelist.push_back(value.asString());
+		auto allUserGroupIds = value["UserGroupIds"]["userGroupIds"];
+		for (auto value : allUserGroupIds)
+			policiesObject.userGroupIds.push_back(value.asString());
+		policies_.push_back(policiesObject);
+	}
+	if(!value["TotalNum"].isNull())
+		totalNum_ = value["TotalNum"].asString();
+
+}
+
+std::vector<ListRegistrationPoliciesResult::DataList> ListRegistrationPoliciesResult::getPolicies()const
+{
+	return policies_;
+}
+
+std::string ListRegistrationPoliciesResult::getTotalNum()const
+{
+	return totalNum_;
+}
+

+ 63 - 0
csas/src/model/ListSoftwareForUserDeviceRequest.cc

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/ListSoftwareForUserDeviceRequest.h>
+
+using AlibabaCloud::Csas::Model::ListSoftwareForUserDeviceRequest;
+
+ListSoftwareForUserDeviceRequest::ListSoftwareForUserDeviceRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "ListSoftwareForUserDevice") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+ListSoftwareForUserDeviceRequest::~ListSoftwareForUserDeviceRequest() {}
+
+std::string ListSoftwareForUserDeviceRequest::getDeviceTag() const {
+  return deviceTag_;
+}
+
+void ListSoftwareForUserDeviceRequest::setDeviceTag(const std::string &deviceTag) {
+  deviceTag_ = deviceTag;
+  setParameter(std::string("DeviceTag"), deviceTag);
+}
+
+long ListSoftwareForUserDeviceRequest::getCurrentPage() const {
+  return currentPage_;
+}
+
+void ListSoftwareForUserDeviceRequest::setCurrentPage(long currentPage) {
+  currentPage_ = currentPage;
+  setParameter(std::string("CurrentPage"), std::to_string(currentPage));
+}
+
+std::string ListSoftwareForUserDeviceRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void ListSoftwareForUserDeviceRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+
+long ListSoftwareForUserDeviceRequest::getPageSize() const {
+  return pageSize_;
+}
+
+void ListSoftwareForUserDeviceRequest::setPageSize(long pageSize) {
+  pageSize_ = pageSize;
+  setParameter(std::string("PageSize"), std::to_string(pageSize));
+}
+

+ 71 - 0
csas/src/model/ListSoftwareForUserDeviceResult.cc

@@ -0,0 +1,71 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/ListSoftwareForUserDeviceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+ListSoftwareForUserDeviceResult::ListSoftwareForUserDeviceResult() :
+	ServiceResult()
+{}
+
+ListSoftwareForUserDeviceResult::ListSoftwareForUserDeviceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListSoftwareForUserDeviceResult::~ListSoftwareForUserDeviceResult()
+{}
+
+void ListSoftwareForUserDeviceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allSoftwareNode = value["Software"]["dataList"];
+	for (auto valueSoftwaredataList : allSoftwareNode)
+	{
+		DataList softwareObject;
+		if(!valueSoftwaredataList["Name"].isNull())
+			softwareObject.name = valueSoftwaredataList["Name"].asString();
+		if(!valueSoftwaredataList["Inc"].isNull())
+			softwareObject.inc = valueSoftwaredataList["Inc"].asString();
+		if(!valueSoftwaredataList["InstallTime"].isNull())
+			softwareObject.installTime = valueSoftwaredataList["InstallTime"].asString();
+		auto allVersions = value["Versions"]["versions"];
+		for (auto value : allVersions)
+			softwareObject.versions.push_back(value.asString());
+		software_.push_back(softwareObject);
+	}
+	if(!value["TotalNum"].isNull())
+		totalNum_ = std::stol(value["TotalNum"].asString());
+
+}
+
+long ListSoftwareForUserDeviceResult::getTotalNum()const
+{
+	return totalNum_;
+}
+
+std::vector<ListSoftwareForUserDeviceResult::DataList> ListSoftwareForUserDeviceResult::getSoftware()const
+{
+	return software_;
+}
+

+ 214 - 0
csas/src/model/ListUserDevicesRequest.cc

@@ -0,0 +1,214 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/ListUserDevicesRequest.h>
+
+using AlibabaCloud::Csas::Model::ListUserDevicesRequest;
+
+ListUserDevicesRequest::ListUserDevicesRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "ListUserDevices") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+ListUserDevicesRequest::~ListUserDevicesRequest() {}
+
+std::string ListUserDevicesRequest::getMac() const {
+  return mac_;
+}
+
+void ListUserDevicesRequest::setMac(const std::string &mac) {
+  mac_ = mac;
+  setParameter(std::string("Mac"), mac);
+}
+
+std::vector<ListUserDevicesRequest::std::string> ListUserDevicesRequest::getDeviceTypes() const {
+  return deviceTypes_;
+}
+
+void ListUserDevicesRequest::setDeviceTypes(const std::vector<ListUserDevicesRequest::std::string> &deviceTypes) {
+  deviceTypes_ = deviceTypes;
+  for(int dep1 = 0; dep1 != deviceTypes.size(); dep1++) {
+    setParameter(std::string("DeviceTypes") + "." + std::to_string(dep1 + 1), deviceTypes[dep1]);
+  }
+}
+
+std::string ListUserDevicesRequest::getHostname() const {
+  return hostname_;
+}
+
+void ListUserDevicesRequest::setHostname(const std::string &hostname) {
+  hostname_ = hostname;
+  setParameter(std::string("Hostname"), hostname);
+}
+
+std::vector<ListUserDevicesRequest::std::string> ListUserDevicesRequest::getAppStatuses() const {
+  return appStatuses_;
+}
+
+void ListUserDevicesRequest::setAppStatuses(const std::vector<ListUserDevicesRequest::std::string> &appStatuses) {
+  appStatuses_ = appStatuses;
+  for(int dep1 = 0; dep1 != appStatuses.size(); dep1++) {
+    setParameter(std::string("AppStatuses") + "." + std::to_string(dep1 + 1), appStatuses[dep1]);
+  }
+}
+
+std::vector<ListUserDevicesRequest::std::string> ListUserDevicesRequest::getDlpStatuses() const {
+  return dlpStatuses_;
+}
+
+void ListUserDevicesRequest::setDlpStatuses(const std::vector<ListUserDevicesRequest::std::string> &dlpStatuses) {
+  dlpStatuses_ = dlpStatuses;
+  for(int dep1 = 0; dep1 != dlpStatuses.size(); dep1++) {
+    setParameter(std::string("DlpStatuses") + "." + std::to_string(dep1 + 1), dlpStatuses[dep1]);
+  }
+}
+
+std::string ListUserDevicesRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void ListUserDevicesRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+
+std::string ListUserDevicesRequest::getSaseUserId() const {
+  return saseUserId_;
+}
+
+void ListUserDevicesRequest::setSaseUserId(const std::string &saseUserId) {
+  saseUserId_ = saseUserId;
+  setParameter(std::string("SaseUserId"), saseUserId);
+}
+
+long ListUserDevicesRequest::getPageSize() const {
+  return pageSize_;
+}
+
+void ListUserDevicesRequest::setPageSize(long pageSize) {
+  pageSize_ = pageSize;
+  setParameter(std::string("PageSize"), std::to_string(pageSize));
+}
+
+std::vector<ListUserDevicesRequest::std::string> ListUserDevicesRequest::getNacStatuses() const {
+  return nacStatuses_;
+}
+
+void ListUserDevicesRequest::setNacStatuses(const std::vector<ListUserDevicesRequest::std::string> &nacStatuses) {
+  nacStatuses_ = nacStatuses;
+  for(int dep1 = 0; dep1 != nacStatuses.size(); dep1++) {
+    setParameter(std::string("NacStatuses") + "." + std::to_string(dep1 + 1), nacStatuses[dep1]);
+  }
+}
+
+std::string ListUserDevicesRequest::getDepartment() const {
+  return department_;
+}
+
+void ListUserDevicesRequest::setDepartment(const std::string &department) {
+  department_ = department;
+  setParameter(std::string("Department"), department);
+}
+
+std::vector<ListUserDevicesRequest::std::string> ListUserDevicesRequest::getIaStatuses() const {
+  return iaStatuses_;
+}
+
+void ListUserDevicesRequest::setIaStatuses(const std::vector<ListUserDevicesRequest::std::string> &iaStatuses) {
+  iaStatuses_ = iaStatuses;
+  for(int dep1 = 0; dep1 != iaStatuses.size(); dep1++) {
+    setParameter(std::string("IaStatuses") + "." + std::to_string(dep1 + 1), iaStatuses[dep1]);
+  }
+}
+
+std::string ListUserDevicesRequest::getDeviceBelong() const {
+  return deviceBelong_;
+}
+
+void ListUserDevicesRequest::setDeviceBelong(const std::string &deviceBelong) {
+  deviceBelong_ = deviceBelong;
+  setParameter(std::string("DeviceBelong"), deviceBelong);
+}
+
+long ListUserDevicesRequest::getCurrentPage() const {
+  return currentPage_;
+}
+
+void ListUserDevicesRequest::setCurrentPage(long currentPage) {
+  currentPage_ = currentPage;
+  setParameter(std::string("CurrentPage"), std::to_string(currentPage));
+}
+
+bool ListUserDevicesRequest::getSharingStatus() const {
+  return sharingStatus_;
+}
+
+void ListUserDevicesRequest::setSharingStatus(bool sharingStatus) {
+  sharingStatus_ = sharingStatus;
+  setParameter(std::string("SharingStatus"), sharingStatus ? "true" : "false");
+}
+
+std::vector<ListUserDevicesRequest::std::string> ListUserDevicesRequest::getDeviceTags() const {
+  return deviceTags_;
+}
+
+void ListUserDevicesRequest::setDeviceTags(const std::vector<ListUserDevicesRequest::std::string> &deviceTags) {
+  deviceTags_ = deviceTags;
+  for(int dep1 = 0; dep1 != deviceTags.size(); dep1++) {
+    setParameter(std::string("DeviceTags") + "." + std::to_string(dep1 + 1), deviceTags[dep1]);
+  }
+}
+
+std::vector<ListUserDevicesRequest::std::string> ListUserDevicesRequest::getDeviceStatuses() const {
+  return deviceStatuses_;
+}
+
+void ListUserDevicesRequest::setDeviceStatuses(const std::vector<ListUserDevicesRequest::std::string> &deviceStatuses) {
+  deviceStatuses_ = deviceStatuses;
+  for(int dep1 = 0; dep1 != deviceStatuses.size(); dep1++) {
+    setParameter(std::string("DeviceStatuses") + "." + std::to_string(dep1 + 1), deviceStatuses[dep1]);
+  }
+}
+
+std::vector<ListUserDevicesRequest::std::string> ListUserDevicesRequest::getPaStatuses() const {
+  return paStatuses_;
+}
+
+void ListUserDevicesRequest::setPaStatuses(const std::vector<ListUserDevicesRequest::std::string> &paStatuses) {
+  paStatuses_ = paStatuses;
+  for(int dep1 = 0; dep1 != paStatuses.size(); dep1++) {
+    setParameter(std::string("PaStatuses") + "." + std::to_string(dep1 + 1), paStatuses[dep1]);
+  }
+}
+
+std::string ListUserDevicesRequest::getSortBy() const {
+  return sortBy_;
+}
+
+void ListUserDevicesRequest::setSortBy(const std::string &sortBy) {
+  sortBy_ = sortBy;
+  setParameter(std::string("SortBy"), sortBy);
+}
+
+std::string ListUserDevicesRequest::getUsername() const {
+  return username_;
+}
+
+void ListUserDevicesRequest::setUsername(const std::string &username) {
+  username_ = username;
+  setParameter(std::string("Username"), username);
+}
+

+ 112 - 0
csas/src/model/ListUserDevicesResult.cc

@@ -0,0 +1,112 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/ListUserDevicesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+ListUserDevicesResult::ListUserDevicesResult() :
+	ServiceResult()
+{}
+
+ListUserDevicesResult::ListUserDevicesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListUserDevicesResult::~ListUserDevicesResult()
+{}
+
+void ListUserDevicesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allDevicesNode = value["Devices"]["dataList"];
+	for (auto valueDevicesdataList : allDevicesNode)
+	{
+		DataList devicesObject;
+		if(!valueDevicesdataList["DeviceTag"].isNull())
+			devicesObject.deviceTag = valueDevicesdataList["DeviceTag"].asString();
+		if(!valueDevicesdataList["DeviceType"].isNull())
+			devicesObject.deviceType = valueDevicesdataList["DeviceType"].asString();
+		if(!valueDevicesdataList["DeviceModel"].isNull())
+			devicesObject.deviceModel = valueDevicesdataList["DeviceModel"].asString();
+		if(!valueDevicesdataList["DeviceVersion"].isNull())
+			devicesObject.deviceVersion = valueDevicesdataList["DeviceVersion"].asString();
+		if(!valueDevicesdataList["Hostname"].isNull())
+			devicesObject.hostname = valueDevicesdataList["Hostname"].asString();
+		if(!valueDevicesdataList["Username"].isNull())
+			devicesObject.username = valueDevicesdataList["Username"].asString();
+		if(!valueDevicesdataList["SaseUserId"].isNull())
+			devicesObject.saseUserId = valueDevicesdataList["SaseUserId"].asString();
+		if(!valueDevicesdataList["Department"].isNull())
+			devicesObject.department = valueDevicesdataList["Department"].asString();
+		if(!valueDevicesdataList["InnerIP"].isNull())
+			devicesObject.innerIP = valueDevicesdataList["InnerIP"].asString();
+		if(!valueDevicesdataList["SrcIP"].isNull())
+			devicesObject.srcIP = valueDevicesdataList["SrcIP"].asString();
+		if(!valueDevicesdataList["Memory"].isNull())
+			devicesObject.memory = valueDevicesdataList["Memory"].asString();
+		if(!valueDevicesdataList["CPU"].isNull())
+			devicesObject.cPU = valueDevicesdataList["CPU"].asString();
+		if(!valueDevicesdataList["Disk"].isNull())
+			devicesObject.disk = valueDevicesdataList["Disk"].asString();
+		if(!valueDevicesdataList["Mac"].isNull())
+			devicesObject.mac = valueDevicesdataList["Mac"].asString();
+		if(!valueDevicesdataList["AppVersion"].isNull())
+			devicesObject.appVersion = valueDevicesdataList["AppVersion"].asString();
+		if(!valueDevicesdataList["DeviceBelong"].isNull())
+			devicesObject.deviceBelong = valueDevicesdataList["DeviceBelong"].asString();
+		if(!valueDevicesdataList["SharingStatus"].isNull())
+			devicesObject.sharingStatus = valueDevicesdataList["SharingStatus"].asString() == "true";
+		if(!valueDevicesdataList["DeviceStatus"].isNull())
+			devicesObject.deviceStatus = valueDevicesdataList["DeviceStatus"].asString();
+		if(!valueDevicesdataList["AppStatus"].isNull())
+			devicesObject.appStatus = valueDevicesdataList["AppStatus"].asString();
+		if(!valueDevicesdataList["PaStatus"].isNull())
+			devicesObject.paStatus = valueDevicesdataList["PaStatus"].asString();
+		if(!valueDevicesdataList["IaStatus"].isNull())
+			devicesObject.iaStatus = valueDevicesdataList["IaStatus"].asString();
+		if(!valueDevicesdataList["DlpStatus"].isNull())
+			devicesObject.dlpStatus = valueDevicesdataList["DlpStatus"].asString();
+		if(!valueDevicesdataList["NacStatus"].isNull())
+			devicesObject.nacStatus = valueDevicesdataList["NacStatus"].asString();
+		if(!valueDevicesdataList["CreateTime"].isNull())
+			devicesObject.createTime = valueDevicesdataList["CreateTime"].asString();
+		if(!valueDevicesdataList["UpdateTime"].isNull())
+			devicesObject.updateTime = valueDevicesdataList["UpdateTime"].asString();
+		devices_.push_back(devicesObject);
+	}
+	if(!value["TotalNum"].isNull())
+		totalNum_ = std::stol(value["TotalNum"].asString());
+
+}
+
+long ListUserDevicesResult::getTotalNum()const
+{
+	return totalNum_;
+}
+
+std::vector<ListUserDevicesResult::DataList> ListUserDevicesResult::getDevices()const
+{
+	return devices_;
+}
+

+ 47 - 0
csas/src/model/ListUserGroupsForRegistrationPolicyRequest.cc

@@ -0,0 +1,47 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/ListUserGroupsForRegistrationPolicyRequest.h>
+
+using AlibabaCloud::Csas::Model::ListUserGroupsForRegistrationPolicyRequest;
+
+ListUserGroupsForRegistrationPolicyRequest::ListUserGroupsForRegistrationPolicyRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "ListUserGroupsForRegistrationPolicy") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+ListUserGroupsForRegistrationPolicyRequest::~ListUserGroupsForRegistrationPolicyRequest() {}
+
+std::vector<ListUserGroupsForRegistrationPolicyRequest::std::string> ListUserGroupsForRegistrationPolicyRequest::getPolicyIds() const {
+  return policyIds_;
+}
+
+void ListUserGroupsForRegistrationPolicyRequest::setPolicyIds(const std::vector<ListUserGroupsForRegistrationPolicyRequest::std::string> &policyIds) {
+  policyIds_ = policyIds;
+  for(int dep1 = 0; dep1 != policyIds.size(); dep1++) {
+    setParameter(std::string("PolicyIds") + "." + std::to_string(dep1 + 1), policyIds[dep1]);
+  }
+}
+
+std::string ListUserGroupsForRegistrationPolicyRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void ListUserGroupsForRegistrationPolicyRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+

+ 85 - 0
csas/src/model/ListUserGroupsForRegistrationPolicyResult.cc

@@ -0,0 +1,85 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/ListUserGroupsForRegistrationPolicyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+ListUserGroupsForRegistrationPolicyResult::ListUserGroupsForRegistrationPolicyResult() :
+	ServiceResult()
+{}
+
+ListUserGroupsForRegistrationPolicyResult::ListUserGroupsForRegistrationPolicyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListUserGroupsForRegistrationPolicyResult::~ListUserGroupsForRegistrationPolicyResult()
+{}
+
+void ListUserGroupsForRegistrationPolicyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allPoliciesNode = value["Policies"]["data"];
+	for (auto valuePoliciesdata : allPoliciesNode)
+	{
+		Data policiesObject;
+		if(!valuePoliciesdata["PolicyId"].isNull())
+			policiesObject.policyId = valuePoliciesdata["PolicyId"].asString();
+		auto allUserGroupsNode = valuePoliciesdata["UserGroups"]["userGroupsItem"];
+		for (auto valuePoliciesdataUserGroupsuserGroupsItem : allUserGroupsNode)
+		{
+			Data::UserGroupsItem userGroupsObject;
+			if(!valuePoliciesdataUserGroupsuserGroupsItem["UserGroupId"].isNull())
+				userGroupsObject.userGroupId = valuePoliciesdataUserGroupsuserGroupsItem["UserGroupId"].asString();
+			if(!valuePoliciesdataUserGroupsuserGroupsItem["Name"].isNull())
+				userGroupsObject.name = valuePoliciesdataUserGroupsuserGroupsItem["Name"].asString();
+			if(!valuePoliciesdataUserGroupsuserGroupsItem["Description"].isNull())
+				userGroupsObject.description = valuePoliciesdataUserGroupsuserGroupsItem["Description"].asString();
+			if(!valuePoliciesdataUserGroupsuserGroupsItem["CreateTime"].isNull())
+				userGroupsObject.createTime = valuePoliciesdataUserGroupsuserGroupsItem["CreateTime"].asString();
+			auto allAttributesNode = valuePoliciesdataUserGroupsuserGroupsItem["Attributes"]["attributesItem"];
+			for (auto valuePoliciesdataUserGroupsuserGroupsItemAttributesattributesItem : allAttributesNode)
+			{
+				Data::UserGroupsItem::AttributesItem attributesObject;
+				if(!valuePoliciesdataUserGroupsuserGroupsItemAttributesattributesItem["UserGroupType"].isNull())
+					attributesObject.userGroupType = valuePoliciesdataUserGroupsuserGroupsItemAttributesattributesItem["UserGroupType"].asString();
+				if(!valuePoliciesdataUserGroupsuserGroupsItemAttributesattributesItem["Relation"].isNull())
+					attributesObject.relation = valuePoliciesdataUserGroupsuserGroupsItemAttributesattributesItem["Relation"].asString();
+				if(!valuePoliciesdataUserGroupsuserGroupsItemAttributesattributesItem["Value"].isNull())
+					attributesObject.value = valuePoliciesdataUserGroupsuserGroupsItemAttributesattributesItem["Value"].asString();
+				if(!valuePoliciesdataUserGroupsuserGroupsItemAttributesattributesItem["IdpId"].isNull())
+					attributesObject.idpId = std::stoi(valuePoliciesdataUserGroupsuserGroupsItemAttributesattributesItem["IdpId"].asString());
+				userGroupsObject.attributes.push_back(attributesObject);
+			}
+			policiesObject.userGroups.push_back(userGroupsObject);
+		}
+		policies_.push_back(policiesObject);
+	}
+
+}
+
+std::vector<ListUserGroupsForRegistrationPolicyResult::Data> ListUserGroupsForRegistrationPolicyResult::getPolicies()const
+{
+	return policies_;
+}
+

+ 56 - 0
csas/src/model/UpdateExcessiveDeviceRegistrationApplicationsStatusRequest.cc

@@ -0,0 +1,56 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/UpdateExcessiveDeviceRegistrationApplicationsStatusRequest.h>
+
+using AlibabaCloud::Csas::Model::UpdateExcessiveDeviceRegistrationApplicationsStatusRequest;
+
+UpdateExcessiveDeviceRegistrationApplicationsStatusRequest::UpdateExcessiveDeviceRegistrationApplicationsStatusRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "UpdateExcessiveDeviceRegistrationApplicationsStatus") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+UpdateExcessiveDeviceRegistrationApplicationsStatusRequest::~UpdateExcessiveDeviceRegistrationApplicationsStatusRequest() {}
+
+std::vector<UpdateExcessiveDeviceRegistrationApplicationsStatusRequest::std::string> UpdateExcessiveDeviceRegistrationApplicationsStatusRequest::getApplicationIds() const {
+  return applicationIds_;
+}
+
+void UpdateExcessiveDeviceRegistrationApplicationsStatusRequest::setApplicationIds(const std::vector<UpdateExcessiveDeviceRegistrationApplicationsStatusRequest::std::string> &applicationIds) {
+  applicationIds_ = applicationIds;
+  for(int dep1 = 0; dep1 != applicationIds.size(); dep1++) {
+    setBodyParameter(std::string("ApplicationIds") + "." + std::to_string(dep1 + 1), applicationIds[dep1]);
+  }
+}
+
+std::string UpdateExcessiveDeviceRegistrationApplicationsStatusRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void UpdateExcessiveDeviceRegistrationApplicationsStatusRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+
+std::string UpdateExcessiveDeviceRegistrationApplicationsStatusRequest::getStatus() const {
+  return status_;
+}
+
+void UpdateExcessiveDeviceRegistrationApplicationsStatusRequest::setStatus(const std::string &status) {
+  status_ = status;
+  setBodyParameter(std::string("Status"), status);
+}
+

+ 79 - 0
csas/src/model/UpdateExcessiveDeviceRegistrationApplicationsStatusResult.cc

@@ -0,0 +1,79 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/UpdateExcessiveDeviceRegistrationApplicationsStatusResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+UpdateExcessiveDeviceRegistrationApplicationsStatusResult::UpdateExcessiveDeviceRegistrationApplicationsStatusResult() :
+	ServiceResult()
+{}
+
+UpdateExcessiveDeviceRegistrationApplicationsStatusResult::UpdateExcessiveDeviceRegistrationApplicationsStatusResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+UpdateExcessiveDeviceRegistrationApplicationsStatusResult::~UpdateExcessiveDeviceRegistrationApplicationsStatusResult()
+{}
+
+void UpdateExcessiveDeviceRegistrationApplicationsStatusResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allApplicationsNode = value["Applications"]["data"];
+	for (auto valueApplicationsdata : allApplicationsNode)
+	{
+		Data applicationsObject;
+		if(!valueApplicationsdata["DeviceTag"].isNull())
+			applicationsObject.deviceTag = valueApplicationsdata["DeviceTag"].asString();
+		if(!valueApplicationsdata["DeviceType"].isNull())
+			applicationsObject.deviceType = valueApplicationsdata["DeviceType"].asString();
+		if(!valueApplicationsdata["Hostname"].isNull())
+			applicationsObject.hostname = valueApplicationsdata["Hostname"].asString();
+		if(!valueApplicationsdata["Username"].isNull())
+			applicationsObject.username = valueApplicationsdata["Username"].asString();
+		if(!valueApplicationsdata["SaseUserId"].isNull())
+			applicationsObject.saseUserId = valueApplicationsdata["SaseUserId"].asString();
+		if(!valueApplicationsdata["Department"].isNull())
+			applicationsObject.department = valueApplicationsdata["Department"].asString();
+		if(!valueApplicationsdata["Mac"].isNull())
+			applicationsObject.mac = valueApplicationsdata["Mac"].asString();
+		if(!valueApplicationsdata["IsUsed"].isNull())
+			applicationsObject.isUsed = valueApplicationsdata["IsUsed"].asString() == "true";
+		if(!valueApplicationsdata["Status"].isNull())
+			applicationsObject.status = valueApplicationsdata["Status"].asString();
+		if(!valueApplicationsdata["CreateTime"].isNull())
+			applicationsObject.createTime = valueApplicationsdata["CreateTime"].asString();
+		if(!valueApplicationsdata["Description"].isNull())
+			applicationsObject.description = valueApplicationsdata["Description"].asString();
+		if(!valueApplicationsdata["ApplicationId"].isNull())
+			applicationsObject.applicationId = valueApplicationsdata["ApplicationId"].asString();
+		applications_.push_back(applicationsObject);
+	}
+
+}
+
+std::vector<UpdateExcessiveDeviceRegistrationApplicationsStatusResult::Data> UpdateExcessiveDeviceRegistrationApplicationsStatusResult::getApplications()const
+{
+	return applications_;
+}
+

+ 152 - 0
csas/src/model/UpdateRegistrationPolicyRequest.cc

@@ -0,0 +1,152 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/UpdateRegistrationPolicyRequest.h>
+
+using AlibabaCloud::Csas::Model::UpdateRegistrationPolicyRequest;
+
+UpdateRegistrationPolicyRequest::UpdateRegistrationPolicyRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "UpdateRegistrationPolicy") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+UpdateRegistrationPolicyRequest::~UpdateRegistrationPolicyRequest() {}
+
+std::string UpdateRegistrationPolicyRequest::getDescription() const {
+  return description_;
+}
+
+void UpdateRegistrationPolicyRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setBodyParameter(std::string("Description"), description);
+}
+
+std::string UpdateRegistrationPolicyRequest::getMatchMode() const {
+  return matchMode_;
+}
+
+void UpdateRegistrationPolicyRequest::setMatchMode(const std::string &matchMode) {
+  matchMode_ = matchMode;
+  setBodyParameter(std::string("MatchMode"), matchMode);
+}
+
+std::string UpdateRegistrationPolicyRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void UpdateRegistrationPolicyRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+
+std::string UpdateRegistrationPolicyRequest::getPolicyId() const {
+  return policyId_;
+}
+
+void UpdateRegistrationPolicyRequest::setPolicyId(const std::string &policyId) {
+  policyId_ = policyId;
+  setBodyParameter(std::string("PolicyId"), policyId);
+}
+
+UpdateRegistrationPolicyRequest::CompanyLimitCount UpdateRegistrationPolicyRequest::getCompanyLimitCount() const {
+  return companyLimitCount_;
+}
+
+void UpdateRegistrationPolicyRequest::setCompanyLimitCount(const UpdateRegistrationPolicyRequest::CompanyLimitCount &companyLimitCount) {
+  companyLimitCount_ = companyLimitCount;
+  setBodyParameter(std::string("CompanyLimitCount") + ".All", std::to_string(companyLimitCount.all));
+  setBodyParameter(std::string("CompanyLimitCount") + ".PC", std::to_string(companyLimitCount.pC));
+  setBodyParameter(std::string("CompanyLimitCount") + ".Mobile", std::to_string(companyLimitCount.mobile));
+}
+
+UpdateRegistrationPolicyRequest::PersonalLimitCount UpdateRegistrationPolicyRequest::getPersonalLimitCount() const {
+  return personalLimitCount_;
+}
+
+void UpdateRegistrationPolicyRequest::setPersonalLimitCount(const UpdateRegistrationPolicyRequest::PersonalLimitCount &personalLimitCount) {
+  personalLimitCount_ = personalLimitCount;
+  setBodyParameter(std::string("PersonalLimitCount") + ".All", std::to_string(personalLimitCount.all));
+  setBodyParameter(std::string("PersonalLimitCount") + ".PC", std::to_string(personalLimitCount.pC));
+  setBodyParameter(std::string("PersonalLimitCount") + ".Mobile", std::to_string(personalLimitCount.mobile));
+}
+
+std::vector<UpdateRegistrationPolicyRequest::std::string> UpdateRegistrationPolicyRequest::getUserGroupIds() const {
+  return userGroupIds_;
+}
+
+void UpdateRegistrationPolicyRequest::setUserGroupIds(const std::vector<UpdateRegistrationPolicyRequest::std::string> &userGroupIds) {
+  userGroupIds_ = userGroupIds;
+  for(int dep1 = 0; dep1 != userGroupIds.size(); dep1++) {
+    setBodyParameter(std::string("UserGroupIds") + "." + std::to_string(dep1 + 1), userGroupIds[dep1]);
+  }
+}
+
+std::vector<UpdateRegistrationPolicyRequest::std::string> UpdateRegistrationPolicyRequest::getWhitelist() const {
+  return whitelist_;
+}
+
+void UpdateRegistrationPolicyRequest::setWhitelist(const std::vector<UpdateRegistrationPolicyRequest::std::string> &whitelist) {
+  whitelist_ = whitelist;
+  for(int dep1 = 0; dep1 != whitelist.size(); dep1++) {
+    setBodyParameter(std::string("Whitelist") + "." + std::to_string(dep1 + 1), whitelist[dep1]);
+  }
+}
+
+long UpdateRegistrationPolicyRequest::getPriority() const {
+  return priority_;
+}
+
+void UpdateRegistrationPolicyRequest::setPriority(long priority) {
+  priority_ = priority;
+  setBodyParameter(std::string("Priority"), std::to_string(priority));
+}
+
+std::string UpdateRegistrationPolicyRequest::getPersonalLimitType() const {
+  return personalLimitType_;
+}
+
+void UpdateRegistrationPolicyRequest::setPersonalLimitType(const std::string &personalLimitType) {
+  personalLimitType_ = personalLimitType;
+  setBodyParameter(std::string("PersonalLimitType"), personalLimitType);
+}
+
+std::string UpdateRegistrationPolicyRequest::getName() const {
+  return name_;
+}
+
+void UpdateRegistrationPolicyRequest::setName(const std::string &name) {
+  name_ = name;
+  setBodyParameter(std::string("Name"), name);
+}
+
+std::string UpdateRegistrationPolicyRequest::getCompanyLimitType() const {
+  return companyLimitType_;
+}
+
+void UpdateRegistrationPolicyRequest::setCompanyLimitType(const std::string &companyLimitType) {
+  companyLimitType_ = companyLimitType;
+  setBodyParameter(std::string("CompanyLimitType"), companyLimitType);
+}
+
+std::string UpdateRegistrationPolicyRequest::getStatus() const {
+  return status_;
+}
+
+void UpdateRegistrationPolicyRequest::setStatus(const std::string &status) {
+  status_ = status;
+  setBodyParameter(std::string("Status"), status);
+}
+

+ 87 - 0
csas/src/model/UpdateRegistrationPolicyResult.cc

@@ -0,0 +1,87 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/UpdateRegistrationPolicyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+UpdateRegistrationPolicyResult::UpdateRegistrationPolicyResult() :
+	ServiceResult()
+{}
+
+UpdateRegistrationPolicyResult::UpdateRegistrationPolicyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+UpdateRegistrationPolicyResult::~UpdateRegistrationPolicyResult()
+{}
+
+void UpdateRegistrationPolicyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto policyNode = value["Policy"];
+	if(!policyNode["Name"].isNull())
+		policy_.name = policyNode["Name"].asString();
+	if(!policyNode["PolicyId"].isNull())
+		policy_.policyId = policyNode["PolicyId"].asString();
+	if(!policyNode["Priority"].isNull())
+		policy_.priority = policyNode["Priority"].asString();
+	if(!policyNode["Description"].isNull())
+		policy_.description = policyNode["Description"].asString();
+	if(!policyNode["Status"].isNull())
+		policy_.status = policyNode["Status"].asString();
+	if(!policyNode["MatchMode"].isNull())
+		policy_.matchMode = policyNode["MatchMode"].asString();
+	if(!policyNode["CreateTime"].isNull())
+		policy_.createTime = policyNode["CreateTime"].asString();
+	auto allLimitDetailNode = policyNode["LimitDetail"]["limitDetailItem"];
+	for (auto policyNodeLimitDetaillimitDetailItem : allLimitDetailNode)
+	{
+		Policy::LimitDetailItem limitDetailItemObject;
+		if(!policyNodeLimitDetaillimitDetailItem["DeviceBelong"].isNull())
+			limitDetailItemObject.deviceBelong = policyNodeLimitDetaillimitDetailItem["DeviceBelong"].asString();
+		if(!policyNodeLimitDetaillimitDetailItem["LimitType"].isNull())
+			limitDetailItemObject.limitType = policyNodeLimitDetaillimitDetailItem["LimitType"].asString();
+		auto limitCountNode = value["LimitCount"];
+		if(!limitCountNode["All"].isNull())
+			limitDetailItemObject.limitCount.all = std::stoi(limitCountNode["All"].asString());
+		if(!limitCountNode["PC"].isNull())
+			limitDetailItemObject.limitCount.pC = std::stoi(limitCountNode["PC"].asString());
+		if(!limitCountNode["Mobile"].isNull())
+			limitDetailItemObject.limitCount.mobile = std::stoi(limitCountNode["Mobile"].asString());
+		policy_.limitDetail.push_back(limitDetailItemObject);
+	}
+		auto allWhitelist = policyNode["Whitelist"]["whitelist"];
+		for (auto value : allWhitelist)
+			policy_.whitelist.push_back(value.asString());
+		auto allUserGroupIds = policyNode["UserGroupIds"]["userGroupIds"];
+		for (auto value : allUserGroupIds)
+			policy_.userGroupIds.push_back(value.asString());
+
+}
+
+UpdateRegistrationPolicyResult::Policy UpdateRegistrationPolicyResult::getPolicy()const
+{
+	return policy_;
+}
+

+ 56 - 0
csas/src/model/UpdateUserDevicesSharingStatusRequest.cc

@@ -0,0 +1,56 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/UpdateUserDevicesSharingStatusRequest.h>
+
+using AlibabaCloud::Csas::Model::UpdateUserDevicesSharingStatusRequest;
+
+UpdateUserDevicesSharingStatusRequest::UpdateUserDevicesSharingStatusRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "UpdateUserDevicesSharingStatus") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+UpdateUserDevicesSharingStatusRequest::~UpdateUserDevicesSharingStatusRequest() {}
+
+bool UpdateUserDevicesSharingStatusRequest::getSharingStatus() const {
+  return sharingStatus_;
+}
+
+void UpdateUserDevicesSharingStatusRequest::setSharingStatus(bool sharingStatus) {
+  sharingStatus_ = sharingStatus;
+  setBodyParameter(std::string("SharingStatus"), sharingStatus ? "true" : "false");
+}
+
+std::vector<UpdateUserDevicesSharingStatusRequest::std::string> UpdateUserDevicesSharingStatusRequest::getDeviceTags() const {
+  return deviceTags_;
+}
+
+void UpdateUserDevicesSharingStatusRequest::setDeviceTags(const std::vector<UpdateUserDevicesSharingStatusRequest::std::string> &deviceTags) {
+  deviceTags_ = deviceTags;
+  for(int dep1 = 0; dep1 != deviceTags.size(); dep1++) {
+    setBodyParameter(std::string("DeviceTags") + "." + std::to_string(dep1 + 1), deviceTags[dep1]);
+  }
+}
+
+std::string UpdateUserDevicesSharingStatusRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void UpdateUserDevicesSharingStatusRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+

+ 105 - 0
csas/src/model/UpdateUserDevicesSharingStatusResult.cc

@@ -0,0 +1,105 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/UpdateUserDevicesSharingStatusResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+UpdateUserDevicesSharingStatusResult::UpdateUserDevicesSharingStatusResult() :
+	ServiceResult()
+{}
+
+UpdateUserDevicesSharingStatusResult::UpdateUserDevicesSharingStatusResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+UpdateUserDevicesSharingStatusResult::~UpdateUserDevicesSharingStatusResult()
+{}
+
+void UpdateUserDevicesSharingStatusResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allDevicesNode = value["Devices"]["data"];
+	for (auto valueDevicesdata : allDevicesNode)
+	{
+		Data devicesObject;
+		if(!valueDevicesdata["DeviceTag"].isNull())
+			devicesObject.deviceTag = valueDevicesdata["DeviceTag"].asString();
+		if(!valueDevicesdata["DeviceType"].isNull())
+			devicesObject.deviceType = valueDevicesdata["DeviceType"].asString();
+		if(!valueDevicesdata["DeviceModel"].isNull())
+			devicesObject.deviceModel = valueDevicesdata["DeviceModel"].asString();
+		if(!valueDevicesdata["DeviceVersion"].isNull())
+			devicesObject.deviceVersion = valueDevicesdata["DeviceVersion"].asString();
+		if(!valueDevicesdata["Hostname"].isNull())
+			devicesObject.hostname = valueDevicesdata["Hostname"].asString();
+		if(!valueDevicesdata["Username"].isNull())
+			devicesObject.username = valueDevicesdata["Username"].asString();
+		if(!valueDevicesdata["SaseUserId"].isNull())
+			devicesObject.saseUserId = valueDevicesdata["SaseUserId"].asString();
+		if(!valueDevicesdata["Department"].isNull())
+			devicesObject.department = valueDevicesdata["Department"].asString();
+		if(!valueDevicesdata["InnerIP"].isNull())
+			devicesObject.innerIP = valueDevicesdata["InnerIP"].asString();
+		if(!valueDevicesdata["SrcIP"].isNull())
+			devicesObject.srcIP = valueDevicesdata["SrcIP"].asString();
+		if(!valueDevicesdata["Memory"].isNull())
+			devicesObject.memory = valueDevicesdata["Memory"].asString();
+		if(!valueDevicesdata["CPU"].isNull())
+			devicesObject.cPU = valueDevicesdata["CPU"].asString();
+		if(!valueDevicesdata["Disk"].isNull())
+			devicesObject.disk = valueDevicesdata["Disk"].asString();
+		if(!valueDevicesdata["Mac"].isNull())
+			devicesObject.mac = valueDevicesdata["Mac"].asString();
+		if(!valueDevicesdata["AppVersion"].isNull())
+			devicesObject.appVersion = valueDevicesdata["AppVersion"].asString();
+		if(!valueDevicesdata["DeviceBelong"].isNull())
+			devicesObject.deviceBelong = valueDevicesdata["DeviceBelong"].asString();
+		if(!valueDevicesdata["SharingStatus"].isNull())
+			devicesObject.sharingStatus = valueDevicesdata["SharingStatus"].asString() == "true";
+		if(!valueDevicesdata["DeviceStatus"].isNull())
+			devicesObject.deviceStatus = valueDevicesdata["DeviceStatus"].asString();
+		if(!valueDevicesdata["AppStatus"].isNull())
+			devicesObject.appStatus = valueDevicesdata["AppStatus"].asString();
+		if(!valueDevicesdata["PaStatus"].isNull())
+			devicesObject.paStatus = valueDevicesdata["PaStatus"].asString();
+		if(!valueDevicesdata["IaStatus"].isNull())
+			devicesObject.iaStatus = valueDevicesdata["IaStatus"].asString();
+		if(!valueDevicesdata["DlpStatus"].isNull())
+			devicesObject.dlpStatus = valueDevicesdata["DlpStatus"].asString();
+		if(!valueDevicesdata["NacStatus"].isNull())
+			devicesObject.nacStatus = valueDevicesdata["NacStatus"].asString();
+		if(!valueDevicesdata["CreateTime"].isNull())
+			devicesObject.createTime = valueDevicesdata["CreateTime"].asString();
+		if(!valueDevicesdata["UpdateTime"].isNull())
+			devicesObject.updateTime = valueDevicesdata["UpdateTime"].asString();
+		devices_.push_back(devicesObject);
+	}
+
+}
+
+std::vector<UpdateUserDevicesSharingStatusResult::Data> UpdateUserDevicesSharingStatusResult::getDevices()const
+{
+	return devices_;
+}
+

+ 56 - 0
csas/src/model/UpdateUserDevicesStatusRequest.cc

@@ -0,0 +1,56 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/UpdateUserDevicesStatusRequest.h>
+
+using AlibabaCloud::Csas::Model::UpdateUserDevicesStatusRequest;
+
+UpdateUserDevicesStatusRequest::UpdateUserDevicesStatusRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "UpdateUserDevicesStatus") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+UpdateUserDevicesStatusRequest::~UpdateUserDevicesStatusRequest() {}
+
+std::string UpdateUserDevicesStatusRequest::getDeviceAction() const {
+  return deviceAction_;
+}
+
+void UpdateUserDevicesStatusRequest::setDeviceAction(const std::string &deviceAction) {
+  deviceAction_ = deviceAction;
+  setBodyParameter(std::string("DeviceAction"), deviceAction);
+}
+
+std::vector<UpdateUserDevicesStatusRequest::std::string> UpdateUserDevicesStatusRequest::getDeviceTags() const {
+  return deviceTags_;
+}
+
+void UpdateUserDevicesStatusRequest::setDeviceTags(const std::vector<UpdateUserDevicesStatusRequest::std::string> &deviceTags) {
+  deviceTags_ = deviceTags;
+  for(int dep1 = 0; dep1 != deviceTags.size(); dep1++) {
+    setBodyParameter(std::string("DeviceTags") + "." + std::to_string(dep1 + 1), deviceTags[dep1]);
+  }
+}
+
+std::string UpdateUserDevicesStatusRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void UpdateUserDevicesStatusRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+

+ 105 - 0
csas/src/model/UpdateUserDevicesStatusResult.cc

@@ -0,0 +1,105 @@
+/*
+ * Copyright 2009-2017 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.
+ */
+
+#include <alibabacloud/csas/model/UpdateUserDevicesStatusResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+UpdateUserDevicesStatusResult::UpdateUserDevicesStatusResult() :
+	ServiceResult()
+{}
+
+UpdateUserDevicesStatusResult::UpdateUserDevicesStatusResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+UpdateUserDevicesStatusResult::~UpdateUserDevicesStatusResult()
+{}
+
+void UpdateUserDevicesStatusResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allDevicesNode = value["Devices"]["data"];
+	for (auto valueDevicesdata : allDevicesNode)
+	{
+		Data devicesObject;
+		if(!valueDevicesdata["DeviceTag"].isNull())
+			devicesObject.deviceTag = valueDevicesdata["DeviceTag"].asString();
+		if(!valueDevicesdata["DeviceType"].isNull())
+			devicesObject.deviceType = valueDevicesdata["DeviceType"].asString();
+		if(!valueDevicesdata["DeviceModel"].isNull())
+			devicesObject.deviceModel = valueDevicesdata["DeviceModel"].asString();
+		if(!valueDevicesdata["DeviceVersion"].isNull())
+			devicesObject.deviceVersion = valueDevicesdata["DeviceVersion"].asString();
+		if(!valueDevicesdata["Hostname"].isNull())
+			devicesObject.hostname = valueDevicesdata["Hostname"].asString();
+		if(!valueDevicesdata["Username"].isNull())
+			devicesObject.username = valueDevicesdata["Username"].asString();
+		if(!valueDevicesdata["SaseUserId"].isNull())
+			devicesObject.saseUserId = valueDevicesdata["SaseUserId"].asString();
+		if(!valueDevicesdata["Department"].isNull())
+			devicesObject.department = valueDevicesdata["Department"].asString();
+		if(!valueDevicesdata["InnerIP"].isNull())
+			devicesObject.innerIP = valueDevicesdata["InnerIP"].asString();
+		if(!valueDevicesdata["SrcIP"].isNull())
+			devicesObject.srcIP = valueDevicesdata["SrcIP"].asString();
+		if(!valueDevicesdata["Memory"].isNull())
+			devicesObject.memory = valueDevicesdata["Memory"].asString();
+		if(!valueDevicesdata["CPU"].isNull())
+			devicesObject.cPU = valueDevicesdata["CPU"].asString();
+		if(!valueDevicesdata["Disk"].isNull())
+			devicesObject.disk = valueDevicesdata["Disk"].asString();
+		if(!valueDevicesdata["Mac"].isNull())
+			devicesObject.mac = valueDevicesdata["Mac"].asString();
+		if(!valueDevicesdata["AppVersion"].isNull())
+			devicesObject.appVersion = valueDevicesdata["AppVersion"].asString();
+		if(!valueDevicesdata["DeviceBelong"].isNull())
+			devicesObject.deviceBelong = valueDevicesdata["DeviceBelong"].asString();
+		if(!valueDevicesdata["SharingStatus"].isNull())
+			devicesObject.sharingStatus = valueDevicesdata["SharingStatus"].asString() == "true";
+		if(!valueDevicesdata["DeviceStatus"].isNull())
+			devicesObject.deviceStatus = valueDevicesdata["DeviceStatus"].asString();
+		if(!valueDevicesdata["AppStatus"].isNull())
+			devicesObject.appStatus = valueDevicesdata["AppStatus"].asString();
+		if(!valueDevicesdata["PaStatus"].isNull())
+			devicesObject.paStatus = valueDevicesdata["PaStatus"].asString();
+		if(!valueDevicesdata["IaStatus"].isNull())
+			devicesObject.iaStatus = valueDevicesdata["IaStatus"].asString();
+		if(!valueDevicesdata["DlpStatus"].isNull())
+			devicesObject.dlpStatus = valueDevicesdata["DlpStatus"].asString();
+		if(!valueDevicesdata["NacStatus"].isNull())
+			devicesObject.nacStatus = valueDevicesdata["NacStatus"].asString();
+		if(!valueDevicesdata["CreateTime"].isNull())
+			devicesObject.createTime = valueDevicesdata["CreateTime"].asString();
+		if(!valueDevicesdata["UpdateTime"].isNull())
+			devicesObject.updateTime = valueDevicesdata["UpdateTime"].asString();
+		devices_.push_back(devicesObject);
+	}
+
+}
+
+std::vector<UpdateUserDevicesStatusResult::Data> UpdateUserDevicesStatusResult::getDevices()const
+{
+	return devices_;
+}
+