Browse Source

Supported dynamicRoute.

sdk-team 3 years ago
parent
commit
c360e49648
100 changed files with 7481 additions and 1 deletions
  1. 1 1
      VERSION
  2. 230 0
      csas/CMakeLists.txt
  3. 342 0
      csas/include/alibabacloud/csas/CsasClient.h
  4. 32 0
      csas/include/alibabacloud/csas/CsasExport.h
  5. 48 0
      csas/include/alibabacloud/csas/model/AttachApplication2ConnectorRequest.h
  6. 49 0
      csas/include/alibabacloud/csas/model/AttachApplication2ConnectorResult.h
  7. 72 0
      csas/include/alibabacloud/csas/model/CreateDynamicRouteRequest.h
  8. 51 0
      csas/include/alibabacloud/csas/model/CreateDynamicRouteResult.h
  9. 67 0
      csas/include/alibabacloud/csas/model/CreatePrivateAccessApplicationRequest.h
  10. 51 0
      csas/include/alibabacloud/csas/model/CreatePrivateAccessApplicationResult.h
  11. 81 0
      csas/include/alibabacloud/csas/model/CreatePrivateAccessPolicyRequest.h
  12. 51 0
      csas/include/alibabacloud/csas/model/CreatePrivateAccessPolicyResult.h
  13. 48 0
      csas/include/alibabacloud/csas/model/CreatePrivateAccessTagRequest.h
  14. 51 0
      csas/include/alibabacloud/csas/model/CreatePrivateAccessTagResult.h
  15. 57 0
      csas/include/alibabacloud/csas/model/CreateUserGroupRequest.h
  16. 51 0
      csas/include/alibabacloud/csas/model/CreateUserGroupResult.h
  17. 45 0
      csas/include/alibabacloud/csas/model/DeleteDynamicRouteRequest.h
  18. 49 0
      csas/include/alibabacloud/csas/model/DeleteDynamicRouteResult.h
  19. 45 0
      csas/include/alibabacloud/csas/model/DeletePrivateAccessApplicationRequest.h
  20. 49 0
      csas/include/alibabacloud/csas/model/DeletePrivateAccessApplicationResult.h
  21. 45 0
      csas/include/alibabacloud/csas/model/DeletePrivateAccessPolicyRequest.h
  22. 49 0
      csas/include/alibabacloud/csas/model/DeletePrivateAccessPolicyResult.h
  23. 45 0
      csas/include/alibabacloud/csas/model/DeletePrivateAccessTagRequest.h
  24. 49 0
      csas/include/alibabacloud/csas/model/DeletePrivateAccessTagResult.h
  25. 45 0
      csas/include/alibabacloud/csas/model/DeleteUserGroupRequest.h
  26. 49 0
      csas/include/alibabacloud/csas/model/DeleteUserGroupResult.h
  27. 48 0
      csas/include/alibabacloud/csas/model/DetachApplication2ConnectorRequest.h
  28. 49 0
      csas/include/alibabacloud/csas/model/DetachApplication2ConnectorResult.h
  29. 45 0
      csas/include/alibabacloud/csas/model/GetDynamicRouteRequest.h
  30. 66 0
      csas/include/alibabacloud/csas/model/GetDynamicRouteResult.h
  31. 45 0
      csas/include/alibabacloud/csas/model/GetPrivateAccessApplicationRequest.h
  32. 69 0
      csas/include/alibabacloud/csas/model/GetPrivateAccessApplicationResult.h
  33. 45 0
      csas/include/alibabacloud/csas/model/GetPrivateAccessPolicyRequest.h
  34. 74 0
      csas/include/alibabacloud/csas/model/GetPrivateAccessPolicyResult.h
  35. 45 0
      csas/include/alibabacloud/csas/model/GetUserGroupRequest.h
  36. 66 0
      csas/include/alibabacloud/csas/model/GetUserGroupResult.h
  37. 45 0
      csas/include/alibabacloud/csas/model/ListApplicationsForPrivateAccessPolicyRequest.h
  38. 72 0
      csas/include/alibabacloud/csas/model/ListApplicationsForPrivateAccessPolicyResult.h
  39. 45 0
      csas/include/alibabacloud/csas/model/ListApplicationsForPrivateAccessTagRequest.h
  40. 72 0
      csas/include/alibabacloud/csas/model/ListApplicationsForPrivateAccessTagResult.h
  41. 60 0
      csas/include/alibabacloud/csas/model/ListConnectorsRequest.h
  42. 74 0
      csas/include/alibabacloud/csas/model/ListConnectorsResult.h
  43. 42 0
      csas/include/alibabacloud/csas/model/ListDynamicRouteRegionsRequest.h
  44. 53 0
      csas/include/alibabacloud/csas/model/ListDynamicRouteRegionsResult.h
  45. 69 0
      csas/include/alibabacloud/csas/model/ListDynamicRoutesRequest.h
  46. 68 0
      csas/include/alibabacloud/csas/model/ListDynamicRoutesResult.h
  47. 45 0
      csas/include/alibabacloud/csas/model/ListPolicesForPrivateAccessApplicationRequest.h
  48. 76 0
      csas/include/alibabacloud/csas/model/ListPolicesForPrivateAccessApplicationResult.h
  49. 45 0
      csas/include/alibabacloud/csas/model/ListPolicesForPrivateAccessTagRequest.h
  50. 76 0
      csas/include/alibabacloud/csas/model/ListPolicesForPrivateAccessTagResult.h
  51. 45 0
      csas/include/alibabacloud/csas/model/ListPolicesForUserGroupRequest.h
  52. 62 0
      csas/include/alibabacloud/csas/model/ListPolicesForUserGroupResult.h
  53. 45 0
      csas/include/alibabacloud/csas/model/ListPrivateAccessApplicationsForDynamicRouteRequest.h
  54. 72 0
      csas/include/alibabacloud/csas/model/ListPrivateAccessApplicationsForDynamicRouteResult.h
  55. 66 0
      csas/include/alibabacloud/csas/model/ListPrivateAccessApplicationsRequest.h
  56. 71 0
      csas/include/alibabacloud/csas/model/ListPrivateAccessApplicationsResult.h
  57. 69 0
      csas/include/alibabacloud/csas/model/ListPrivateAccessPolicesRequest.h
  58. 76 0
      csas/include/alibabacloud/csas/model/ListPrivateAccessPolicesResult.h
  59. 45 0
      csas/include/alibabacloud/csas/model/ListPrivateAccessTagsForDynamicRouteRequest.h
  60. 64 0
      csas/include/alibabacloud/csas/model/ListPrivateAccessTagsForDynamicRouteResult.h
  61. 60 0
      csas/include/alibabacloud/csas/model/ListPrivateAccessTagsRequest.h
  62. 63 0
      csas/include/alibabacloud/csas/model/ListPrivateAccessTagsResult.h
  63. 45 0
      csas/include/alibabacloud/csas/model/ListTagsForPrivateAccessApplicationRequest.h
  64. 64 0
      csas/include/alibabacloud/csas/model/ListTagsForPrivateAccessApplicationResult.h
  65. 45 0
      csas/include/alibabacloud/csas/model/ListTagsForPrivateAccessPolicyRequest.h
  66. 64 0
      csas/include/alibabacloud/csas/model/ListTagsForPrivateAccessPolicyResult.h
  67. 45 0
      csas/include/alibabacloud/csas/model/ListUserGroupsForPrivateAccessPolicyRequest.h
  68. 71 0
      csas/include/alibabacloud/csas/model/ListUserGroupsForPrivateAccessPolicyResult.h
  69. 60 0
      csas/include/alibabacloud/csas/model/ListUserGroupsRequest.h
  70. 68 0
      csas/include/alibabacloud/csas/model/ListUserGroupsResult.h
  71. 78 0
      csas/include/alibabacloud/csas/model/UpdateDynamicRouteRequest.h
  72. 49 0
      csas/include/alibabacloud/csas/model/UpdateDynamicRouteResult.h
  73. 70 0
      csas/include/alibabacloud/csas/model/UpdatePrivateAccessApplicationRequest.h
  74. 49 0
      csas/include/alibabacloud/csas/model/UpdatePrivateAccessApplicationResult.h
  75. 84 0
      csas/include/alibabacloud/csas/model/UpdatePrivateAccessPolicyRequest.h
  76. 49 0
      csas/include/alibabacloud/csas/model/UpdatePrivateAccessPolicyResult.h
  77. 60 0
      csas/include/alibabacloud/csas/model/UpdateUserGroupRequest.h
  78. 49 0
      csas/include/alibabacloud/csas/model/UpdateUserGroupResult.h
  79. 1385 0
      csas/src/CsasClient.cc
  80. 56 0
      csas/src/model/AttachApplication2ConnectorRequest.cc
  81. 44 0
      csas/src/model/AttachApplication2ConnectorResult.cc
  82. 132 0
      csas/src/model/CreateDynamicRouteRequest.cc
  83. 51 0
      csas/src/model/CreateDynamicRouteResult.cc
  84. 106 0
      csas/src/model/CreatePrivateAccessApplicationRequest.cc
  85. 51 0
      csas/src/model/CreatePrivateAccessApplicationResult.cc
  86. 146 0
      csas/src/model/CreatePrivateAccessPolicyRequest.cc
  87. 51 0
      csas/src/model/CreatePrivateAccessPolicyResult.cc
  88. 54 0
      csas/src/model/CreatePrivateAccessTagRequest.cc
  89. 51 0
      csas/src/model/CreatePrivateAccessTagResult.cc
  90. 68 0
      csas/src/model/CreateUserGroupRequest.cc
  91. 51 0
      csas/src/model/CreateUserGroupResult.cc
  92. 45 0
      csas/src/model/DeleteDynamicRouteRequest.cc
  93. 44 0
      csas/src/model/DeleteDynamicRouteResult.cc
  94. 45 0
      csas/src/model/DeletePrivateAccessApplicationRequest.cc
  95. 44 0
      csas/src/model/DeletePrivateAccessApplicationResult.cc
  96. 45 0
      csas/src/model/DeletePrivateAccessPolicyRequest.cc
  97. 44 0
      csas/src/model/DeletePrivateAccessPolicyResult.cc
  98. 45 0
      csas/src/model/DeletePrivateAccessTagRequest.cc
  99. 44 0
      csas/src/model/DeletePrivateAccessTagResult.cc
  100. 45 0
      csas/src/model/DeleteUserGroupRequest.cc

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1723
+1.36.1724

+ 230 - 0
csas/CMakeLists.txt

@@ -0,0 +1,230 @@
+#
+# 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.
+#
+
+set(public_header_dir ${CMAKE_CURRENT_SOURCE_DIR}/../include)
+
+set(csas_public_header 
+	include/alibabacloud/csas/CsasClient.h
+	include/alibabacloud/csas/CsasExport.h )
+
+set(csas_public_header_model 
+	include/alibabacloud/csas/model/AttachApplication2ConnectorRequest.h
+	include/alibabacloud/csas/model/AttachApplication2ConnectorResult.h
+	include/alibabacloud/csas/model/CreateDynamicRouteRequest.h
+	include/alibabacloud/csas/model/CreateDynamicRouteResult.h
+	include/alibabacloud/csas/model/CreatePrivateAccessApplicationRequest.h
+	include/alibabacloud/csas/model/CreatePrivateAccessApplicationResult.h
+	include/alibabacloud/csas/model/CreatePrivateAccessPolicyRequest.h
+	include/alibabacloud/csas/model/CreatePrivateAccessPolicyResult.h
+	include/alibabacloud/csas/model/CreatePrivateAccessTagRequest.h
+	include/alibabacloud/csas/model/CreatePrivateAccessTagResult.h
+	include/alibabacloud/csas/model/CreateUserGroupRequest.h
+	include/alibabacloud/csas/model/CreateUserGroupResult.h
+	include/alibabacloud/csas/model/DeleteDynamicRouteRequest.h
+	include/alibabacloud/csas/model/DeleteDynamicRouteResult.h
+	include/alibabacloud/csas/model/DeletePrivateAccessApplicationRequest.h
+	include/alibabacloud/csas/model/DeletePrivateAccessApplicationResult.h
+	include/alibabacloud/csas/model/DeletePrivateAccessPolicyRequest.h
+	include/alibabacloud/csas/model/DeletePrivateAccessPolicyResult.h
+	include/alibabacloud/csas/model/DeletePrivateAccessTagRequest.h
+	include/alibabacloud/csas/model/DeletePrivateAccessTagResult.h
+	include/alibabacloud/csas/model/DeleteUserGroupRequest.h
+	include/alibabacloud/csas/model/DeleteUserGroupResult.h
+	include/alibabacloud/csas/model/DetachApplication2ConnectorRequest.h
+	include/alibabacloud/csas/model/DetachApplication2ConnectorResult.h
+	include/alibabacloud/csas/model/GetDynamicRouteRequest.h
+	include/alibabacloud/csas/model/GetDynamicRouteResult.h
+	include/alibabacloud/csas/model/GetPrivateAccessApplicationRequest.h
+	include/alibabacloud/csas/model/GetPrivateAccessApplicationResult.h
+	include/alibabacloud/csas/model/GetPrivateAccessPolicyRequest.h
+	include/alibabacloud/csas/model/GetPrivateAccessPolicyResult.h
+	include/alibabacloud/csas/model/GetUserGroupRequest.h
+	include/alibabacloud/csas/model/GetUserGroupResult.h
+	include/alibabacloud/csas/model/ListApplicationsForPrivateAccessPolicyRequest.h
+	include/alibabacloud/csas/model/ListApplicationsForPrivateAccessPolicyResult.h
+	include/alibabacloud/csas/model/ListApplicationsForPrivateAccessTagRequest.h
+	include/alibabacloud/csas/model/ListApplicationsForPrivateAccessTagResult.h
+	include/alibabacloud/csas/model/ListConnectorsRequest.h
+	include/alibabacloud/csas/model/ListConnectorsResult.h
+	include/alibabacloud/csas/model/ListDynamicRouteRegionsRequest.h
+	include/alibabacloud/csas/model/ListDynamicRouteRegionsResult.h
+	include/alibabacloud/csas/model/ListDynamicRoutesRequest.h
+	include/alibabacloud/csas/model/ListDynamicRoutesResult.h
+	include/alibabacloud/csas/model/ListPolicesForPrivateAccessApplicationRequest.h
+	include/alibabacloud/csas/model/ListPolicesForPrivateAccessApplicationResult.h
+	include/alibabacloud/csas/model/ListPolicesForPrivateAccessTagRequest.h
+	include/alibabacloud/csas/model/ListPolicesForPrivateAccessTagResult.h
+	include/alibabacloud/csas/model/ListPolicesForUserGroupRequest.h
+	include/alibabacloud/csas/model/ListPolicesForUserGroupResult.h
+	include/alibabacloud/csas/model/ListPrivateAccessApplicationsRequest.h
+	include/alibabacloud/csas/model/ListPrivateAccessApplicationsResult.h
+	include/alibabacloud/csas/model/ListPrivateAccessApplicationsForDynamicRouteRequest.h
+	include/alibabacloud/csas/model/ListPrivateAccessApplicationsForDynamicRouteResult.h
+	include/alibabacloud/csas/model/ListPrivateAccessPolicesRequest.h
+	include/alibabacloud/csas/model/ListPrivateAccessPolicesResult.h
+	include/alibabacloud/csas/model/ListPrivateAccessTagsRequest.h
+	include/alibabacloud/csas/model/ListPrivateAccessTagsResult.h
+	include/alibabacloud/csas/model/ListPrivateAccessTagsForDynamicRouteRequest.h
+	include/alibabacloud/csas/model/ListPrivateAccessTagsForDynamicRouteResult.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/ListUserGroupsRequest.h
+	include/alibabacloud/csas/model/ListUserGroupsResult.h
+	include/alibabacloud/csas/model/ListUserGroupsForPrivateAccessPolicyRequest.h
+	include/alibabacloud/csas/model/ListUserGroupsForPrivateAccessPolicyResult.h
+	include/alibabacloud/csas/model/UpdateDynamicRouteRequest.h
+	include/alibabacloud/csas/model/UpdateDynamicRouteResult.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/UpdateUserGroupRequest.h
+	include/alibabacloud/csas/model/UpdateUserGroupResult.h )
+
+set(csas_src 
+	src/CsasClient.cc
+	src/model/AttachApplication2ConnectorRequest.cc
+	src/model/AttachApplication2ConnectorResult.cc
+	src/model/CreateDynamicRouteRequest.cc
+	src/model/CreateDynamicRouteResult.cc
+	src/model/CreatePrivateAccessApplicationRequest.cc
+	src/model/CreatePrivateAccessApplicationResult.cc
+	src/model/CreatePrivateAccessPolicyRequest.cc
+	src/model/CreatePrivateAccessPolicyResult.cc
+	src/model/CreatePrivateAccessTagRequest.cc
+	src/model/CreatePrivateAccessTagResult.cc
+	src/model/CreateUserGroupRequest.cc
+	src/model/CreateUserGroupResult.cc
+	src/model/DeleteDynamicRouteRequest.cc
+	src/model/DeleteDynamicRouteResult.cc
+	src/model/DeletePrivateAccessApplicationRequest.cc
+	src/model/DeletePrivateAccessApplicationResult.cc
+	src/model/DeletePrivateAccessPolicyRequest.cc
+	src/model/DeletePrivateAccessPolicyResult.cc
+	src/model/DeletePrivateAccessTagRequest.cc
+	src/model/DeletePrivateAccessTagResult.cc
+	src/model/DeleteUserGroupRequest.cc
+	src/model/DeleteUserGroupResult.cc
+	src/model/DetachApplication2ConnectorRequest.cc
+	src/model/DetachApplication2ConnectorResult.cc
+	src/model/GetDynamicRouteRequest.cc
+	src/model/GetDynamicRouteResult.cc
+	src/model/GetPrivateAccessApplicationRequest.cc
+	src/model/GetPrivateAccessApplicationResult.cc
+	src/model/GetPrivateAccessPolicyRequest.cc
+	src/model/GetPrivateAccessPolicyResult.cc
+	src/model/GetUserGroupRequest.cc
+	src/model/GetUserGroupResult.cc
+	src/model/ListApplicationsForPrivateAccessPolicyRequest.cc
+	src/model/ListApplicationsForPrivateAccessPolicyResult.cc
+	src/model/ListApplicationsForPrivateAccessTagRequest.cc
+	src/model/ListApplicationsForPrivateAccessTagResult.cc
+	src/model/ListConnectorsRequest.cc
+	src/model/ListConnectorsResult.cc
+	src/model/ListDynamicRouteRegionsRequest.cc
+	src/model/ListDynamicRouteRegionsResult.cc
+	src/model/ListDynamicRoutesRequest.cc
+	src/model/ListDynamicRoutesResult.cc
+	src/model/ListPolicesForPrivateAccessApplicationRequest.cc
+	src/model/ListPolicesForPrivateAccessApplicationResult.cc
+	src/model/ListPolicesForPrivateAccessTagRequest.cc
+	src/model/ListPolicesForPrivateAccessTagResult.cc
+	src/model/ListPolicesForUserGroupRequest.cc
+	src/model/ListPolicesForUserGroupResult.cc
+	src/model/ListPrivateAccessApplicationsRequest.cc
+	src/model/ListPrivateAccessApplicationsResult.cc
+	src/model/ListPrivateAccessApplicationsForDynamicRouteRequest.cc
+	src/model/ListPrivateAccessApplicationsForDynamicRouteResult.cc
+	src/model/ListPrivateAccessPolicesRequest.cc
+	src/model/ListPrivateAccessPolicesResult.cc
+	src/model/ListPrivateAccessTagsRequest.cc
+	src/model/ListPrivateAccessTagsResult.cc
+	src/model/ListPrivateAccessTagsForDynamicRouteRequest.cc
+	src/model/ListPrivateAccessTagsForDynamicRouteResult.cc
+	src/model/ListTagsForPrivateAccessApplicationRequest.cc
+	src/model/ListTagsForPrivateAccessApplicationResult.cc
+	src/model/ListTagsForPrivateAccessPolicyRequest.cc
+	src/model/ListTagsForPrivateAccessPolicyResult.cc
+	src/model/ListUserGroupsRequest.cc
+	src/model/ListUserGroupsResult.cc
+	src/model/ListUserGroupsForPrivateAccessPolicyRequest.cc
+	src/model/ListUserGroupsForPrivateAccessPolicyResult.cc
+	src/model/UpdateDynamicRouteRequest.cc
+	src/model/UpdateDynamicRouteResult.cc
+	src/model/UpdatePrivateAccessApplicationRequest.cc
+	src/model/UpdatePrivateAccessApplicationResult.cc
+	src/model/UpdatePrivateAccessPolicyRequest.cc
+	src/model/UpdatePrivateAccessPolicyResult.cc
+	src/model/UpdateUserGroupRequest.cc
+	src/model/UpdateUserGroupResult.cc )
+
+add_library(csas ${LIB_TYPE}
+	${csas_public_header}
+	${csas_public_header_model}
+	${csas_src})
+
+set_target_properties(csas
+	PROPERTIES
+	LINKER_LANGUAGE CXX
+	ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
+	LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
+	RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+	OUTPUT_NAME ${TARGET_OUTPUT_NAME_PREFIX}csas
+	)
+
+if(${LIB_TYPE} STREQUAL "SHARED")
+	set_target_properties(csas
+		PROPERTIES
+		DEFINE_SYMBOL ALIBABACLOUD_CSAS_LIBRARY)
+endif()
+
+target_include_directories(csas
+	PRIVATE include
+		${CMAKE_SOURCE_DIR}/core/include
+	)
+target_link_libraries(csas
+	core)
+
+if(CMAKE_HOST_WIN32)
+	ExternalProject_Get_Property(jsoncpp INSTALL_DIR)
+	set(jsoncpp_install_dir ${INSTALL_DIR})
+	add_dependencies(csas
+		jsoncpp)
+	target_include_directories(csas
+		PRIVATE	${jsoncpp_install_dir}/include)
+	target_link_libraries(csas
+		${jsoncpp_install_dir}/lib/jsoncpp.lib)
+	set_target_properties(csas
+    	PROPERTIES
+    		COMPILE_OPTIONS "/bigobj")
+else()
+	target_include_directories(csas
+		PRIVATE /usr/include/jsoncpp)
+	target_link_libraries(csas
+		jsoncpp)
+endif()
+
+install(FILES ${csas_public_header}
+	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/csas)
+install(FILES ${csas_public_header_model}
+	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/csas/model)
+install(TARGETS csas
+	ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+	RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+	)

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

@@ -0,0 +1,342 @@
+/*
+ * 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_CSASCLIENT_H_
+#define ALIBABACLOUD_CSAS_CSASCLIENT_H_
+
+#include <future>
+#include <alibabacloud/core/AsyncCallerContext.h>
+#include <alibabacloud/core/EndpointProvider.h>
+#include <alibabacloud/core/RpcServiceClient.h>
+#include "CsasExport.h"
+#include "model/AttachApplication2ConnectorRequest.h"
+#include "model/AttachApplication2ConnectorResult.h"
+#include "model/CreateDynamicRouteRequest.h"
+#include "model/CreateDynamicRouteResult.h"
+#include "model/CreatePrivateAccessApplicationRequest.h"
+#include "model/CreatePrivateAccessApplicationResult.h"
+#include "model/CreatePrivateAccessPolicyRequest.h"
+#include "model/CreatePrivateAccessPolicyResult.h"
+#include "model/CreatePrivateAccessTagRequest.h"
+#include "model/CreatePrivateAccessTagResult.h"
+#include "model/CreateUserGroupRequest.h"
+#include "model/CreateUserGroupResult.h"
+#include "model/DeleteDynamicRouteRequest.h"
+#include "model/DeleteDynamicRouteResult.h"
+#include "model/DeletePrivateAccessApplicationRequest.h"
+#include "model/DeletePrivateAccessApplicationResult.h"
+#include "model/DeletePrivateAccessPolicyRequest.h"
+#include "model/DeletePrivateAccessPolicyResult.h"
+#include "model/DeletePrivateAccessTagRequest.h"
+#include "model/DeletePrivateAccessTagResult.h"
+#include "model/DeleteUserGroupRequest.h"
+#include "model/DeleteUserGroupResult.h"
+#include "model/DetachApplication2ConnectorRequest.h"
+#include "model/DetachApplication2ConnectorResult.h"
+#include "model/GetDynamicRouteRequest.h"
+#include "model/GetDynamicRouteResult.h"
+#include "model/GetPrivateAccessApplicationRequest.h"
+#include "model/GetPrivateAccessApplicationResult.h"
+#include "model/GetPrivateAccessPolicyRequest.h"
+#include "model/GetPrivateAccessPolicyResult.h"
+#include "model/GetUserGroupRequest.h"
+#include "model/GetUserGroupResult.h"
+#include "model/ListApplicationsForPrivateAccessPolicyRequest.h"
+#include "model/ListApplicationsForPrivateAccessPolicyResult.h"
+#include "model/ListApplicationsForPrivateAccessTagRequest.h"
+#include "model/ListApplicationsForPrivateAccessTagResult.h"
+#include "model/ListConnectorsRequest.h"
+#include "model/ListConnectorsResult.h"
+#include "model/ListDynamicRouteRegionsRequest.h"
+#include "model/ListDynamicRouteRegionsResult.h"
+#include "model/ListDynamicRoutesRequest.h"
+#include "model/ListDynamicRoutesResult.h"
+#include "model/ListPolicesForPrivateAccessApplicationRequest.h"
+#include "model/ListPolicesForPrivateAccessApplicationResult.h"
+#include "model/ListPolicesForPrivateAccessTagRequest.h"
+#include "model/ListPolicesForPrivateAccessTagResult.h"
+#include "model/ListPolicesForUserGroupRequest.h"
+#include "model/ListPolicesForUserGroupResult.h"
+#include "model/ListPrivateAccessApplicationsRequest.h"
+#include "model/ListPrivateAccessApplicationsResult.h"
+#include "model/ListPrivateAccessApplicationsForDynamicRouteRequest.h"
+#include "model/ListPrivateAccessApplicationsForDynamicRouteResult.h"
+#include "model/ListPrivateAccessPolicesRequest.h"
+#include "model/ListPrivateAccessPolicesResult.h"
+#include "model/ListPrivateAccessTagsRequest.h"
+#include "model/ListPrivateAccessTagsResult.h"
+#include "model/ListPrivateAccessTagsForDynamicRouteRequest.h"
+#include "model/ListPrivateAccessTagsForDynamicRouteResult.h"
+#include "model/ListTagsForPrivateAccessApplicationRequest.h"
+#include "model/ListTagsForPrivateAccessApplicationResult.h"
+#include "model/ListTagsForPrivateAccessPolicyRequest.h"
+#include "model/ListTagsForPrivateAccessPolicyResult.h"
+#include "model/ListUserGroupsRequest.h"
+#include "model/ListUserGroupsResult.h"
+#include "model/ListUserGroupsForPrivateAccessPolicyRequest.h"
+#include "model/ListUserGroupsForPrivateAccessPolicyResult.h"
+#include "model/UpdateDynamicRouteRequest.h"
+#include "model/UpdateDynamicRouteResult.h"
+#include "model/UpdatePrivateAccessApplicationRequest.h"
+#include "model/UpdatePrivateAccessApplicationResult.h"
+#include "model/UpdatePrivateAccessPolicyRequest.h"
+#include "model/UpdatePrivateAccessPolicyResult.h"
+#include "model/UpdateUserGroupRequest.h"
+#include "model/UpdateUserGroupResult.h"
+
+
+namespace AlibabaCloud
+{
+	namespace Csas
+	{
+		class ALIBABACLOUD_CSAS_EXPORT CsasClient : public RpcServiceClient
+		{
+		public:
+			typedef Outcome<Error, Model::AttachApplication2ConnectorResult> AttachApplication2ConnectorOutcome;
+			typedef std::future<AttachApplication2ConnectorOutcome> AttachApplication2ConnectorOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::AttachApplication2ConnectorRequest&, const AttachApplication2ConnectorOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AttachApplication2ConnectorAsyncHandler;
+			typedef Outcome<Error, Model::CreateDynamicRouteResult> CreateDynamicRouteOutcome;
+			typedef std::future<CreateDynamicRouteOutcome> CreateDynamicRouteOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::CreateDynamicRouteRequest&, const CreateDynamicRouteOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateDynamicRouteAsyncHandler;
+			typedef Outcome<Error, Model::CreatePrivateAccessApplicationResult> CreatePrivateAccessApplicationOutcome;
+			typedef std::future<CreatePrivateAccessApplicationOutcome> CreatePrivateAccessApplicationOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::CreatePrivateAccessApplicationRequest&, const CreatePrivateAccessApplicationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreatePrivateAccessApplicationAsyncHandler;
+			typedef Outcome<Error, Model::CreatePrivateAccessPolicyResult> CreatePrivateAccessPolicyOutcome;
+			typedef std::future<CreatePrivateAccessPolicyOutcome> CreatePrivateAccessPolicyOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::CreatePrivateAccessPolicyRequest&, const CreatePrivateAccessPolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreatePrivateAccessPolicyAsyncHandler;
+			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::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;
+			typedef Outcome<Error, Model::DeleteDynamicRouteResult> DeleteDynamicRouteOutcome;
+			typedef std::future<DeleteDynamicRouteOutcome> DeleteDynamicRouteOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::DeleteDynamicRouteRequest&, const DeleteDynamicRouteOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDynamicRouteAsyncHandler;
+			typedef Outcome<Error, Model::DeletePrivateAccessApplicationResult> DeletePrivateAccessApplicationOutcome;
+			typedef std::future<DeletePrivateAccessApplicationOutcome> DeletePrivateAccessApplicationOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::DeletePrivateAccessApplicationRequest&, const DeletePrivateAccessApplicationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeletePrivateAccessApplicationAsyncHandler;
+			typedef Outcome<Error, Model::DeletePrivateAccessPolicyResult> DeletePrivateAccessPolicyOutcome;
+			typedef std::future<DeletePrivateAccessPolicyOutcome> DeletePrivateAccessPolicyOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::DeletePrivateAccessPolicyRequest&, const DeletePrivateAccessPolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeletePrivateAccessPolicyAsyncHandler;
+			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::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;
+			typedef Outcome<Error, Model::DetachApplication2ConnectorResult> DetachApplication2ConnectorOutcome;
+			typedef std::future<DetachApplication2ConnectorOutcome> DetachApplication2ConnectorOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::DetachApplication2ConnectorRequest&, const DetachApplication2ConnectorOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DetachApplication2ConnectorAsyncHandler;
+			typedef Outcome<Error, Model::GetDynamicRouteResult> GetDynamicRouteOutcome;
+			typedef std::future<GetDynamicRouteOutcome> GetDynamicRouteOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::GetDynamicRouteRequest&, const GetDynamicRouteOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetDynamicRouteAsyncHandler;
+			typedef Outcome<Error, Model::GetPrivateAccessApplicationResult> GetPrivateAccessApplicationOutcome;
+			typedef std::future<GetPrivateAccessApplicationOutcome> GetPrivateAccessApplicationOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::GetPrivateAccessApplicationRequest&, const GetPrivateAccessApplicationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetPrivateAccessApplicationAsyncHandler;
+			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::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;
+			typedef Outcome<Error, Model::ListApplicationsForPrivateAccessPolicyResult> ListApplicationsForPrivateAccessPolicyOutcome;
+			typedef std::future<ListApplicationsForPrivateAccessPolicyOutcome> ListApplicationsForPrivateAccessPolicyOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListApplicationsForPrivateAccessPolicyRequest&, const ListApplicationsForPrivateAccessPolicyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListApplicationsForPrivateAccessPolicyAsyncHandler;
+			typedef Outcome<Error, Model::ListApplicationsForPrivateAccessTagResult> ListApplicationsForPrivateAccessTagOutcome;
+			typedef std::future<ListApplicationsForPrivateAccessTagOutcome> ListApplicationsForPrivateAccessTagOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListApplicationsForPrivateAccessTagRequest&, const ListApplicationsForPrivateAccessTagOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListApplicationsForPrivateAccessTagAsyncHandler;
+			typedef Outcome<Error, Model::ListConnectorsResult> ListConnectorsOutcome;
+			typedef std::future<ListConnectorsOutcome> ListConnectorsOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListConnectorsRequest&, const ListConnectorsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListConnectorsAsyncHandler;
+			typedef Outcome<Error, Model::ListDynamicRouteRegionsResult> ListDynamicRouteRegionsOutcome;
+			typedef std::future<ListDynamicRouteRegionsOutcome> ListDynamicRouteRegionsOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListDynamicRouteRegionsRequest&, const ListDynamicRouteRegionsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListDynamicRouteRegionsAsyncHandler;
+			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::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;
+			typedef Outcome<Error, Model::ListPolicesForPrivateAccessTagResult> ListPolicesForPrivateAccessTagOutcome;
+			typedef std::future<ListPolicesForPrivateAccessTagOutcome> ListPolicesForPrivateAccessTagOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListPolicesForPrivateAccessTagRequest&, const ListPolicesForPrivateAccessTagOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListPolicesForPrivateAccessTagAsyncHandler;
+			typedef Outcome<Error, Model::ListPolicesForUserGroupResult> ListPolicesForUserGroupOutcome;
+			typedef std::future<ListPolicesForUserGroupOutcome> ListPolicesForUserGroupOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListPolicesForUserGroupRequest&, const ListPolicesForUserGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListPolicesForUserGroupAsyncHandler;
+			typedef Outcome<Error, Model::ListPrivateAccessApplicationsResult> ListPrivateAccessApplicationsOutcome;
+			typedef std::future<ListPrivateAccessApplicationsOutcome> ListPrivateAccessApplicationsOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListPrivateAccessApplicationsRequest&, const ListPrivateAccessApplicationsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListPrivateAccessApplicationsAsyncHandler;
+			typedef Outcome<Error, Model::ListPrivateAccessApplicationsForDynamicRouteResult> ListPrivateAccessApplicationsForDynamicRouteOutcome;
+			typedef std::future<ListPrivateAccessApplicationsForDynamicRouteOutcome> ListPrivateAccessApplicationsForDynamicRouteOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListPrivateAccessApplicationsForDynamicRouteRequest&, const ListPrivateAccessApplicationsForDynamicRouteOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListPrivateAccessApplicationsForDynamicRouteAsyncHandler;
+			typedef Outcome<Error, Model::ListPrivateAccessPolicesResult> ListPrivateAccessPolicesOutcome;
+			typedef std::future<ListPrivateAccessPolicesOutcome> ListPrivateAccessPolicesOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListPrivateAccessPolicesRequest&, const ListPrivateAccessPolicesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListPrivateAccessPolicesAsyncHandler;
+			typedef Outcome<Error, Model::ListPrivateAccessTagsResult> ListPrivateAccessTagsOutcome;
+			typedef std::future<ListPrivateAccessTagsOutcome> ListPrivateAccessTagsOutcomeCallable;
+			typedef std::function<void(const CsasClient*, const Model::ListPrivateAccessTagsRequest&, const ListPrivateAccessTagsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListPrivateAccessTagsAsyncHandler;
+			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::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::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::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::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::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;
+
+			CsasClient(const Credentials &credentials, const ClientConfiguration &configuration);
+			CsasClient(const std::shared_ptr<CredentialsProvider> &credentialsProvider, const ClientConfiguration &configuration);
+			CsasClient(const std::string &accessKeyId, const std::string &accessKeySecret, const ClientConfiguration &configuration);
+			~CsasClient();
+			AttachApplication2ConnectorOutcome attachApplication2Connector(const Model::AttachApplication2ConnectorRequest &request)const;
+			void attachApplication2ConnectorAsync(const Model::AttachApplication2ConnectorRequest& request, const AttachApplication2ConnectorAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			AttachApplication2ConnectorOutcomeCallable attachApplication2ConnectorCallable(const Model::AttachApplication2ConnectorRequest& request) const;
+			CreateDynamicRouteOutcome createDynamicRoute(const Model::CreateDynamicRouteRequest &request)const;
+			void createDynamicRouteAsync(const Model::CreateDynamicRouteRequest& request, const CreateDynamicRouteAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateDynamicRouteOutcomeCallable createDynamicRouteCallable(const Model::CreateDynamicRouteRequest& request) const;
+			CreatePrivateAccessApplicationOutcome createPrivateAccessApplication(const Model::CreatePrivateAccessApplicationRequest &request)const;
+			void createPrivateAccessApplicationAsync(const Model::CreatePrivateAccessApplicationRequest& request, const CreatePrivateAccessApplicationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreatePrivateAccessApplicationOutcomeCallable createPrivateAccessApplicationCallable(const Model::CreatePrivateAccessApplicationRequest& request) const;
+			CreatePrivateAccessPolicyOutcome createPrivateAccessPolicy(const Model::CreatePrivateAccessPolicyRequest &request)const;
+			void createPrivateAccessPolicyAsync(const Model::CreatePrivateAccessPolicyRequest& request, const CreatePrivateAccessPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreatePrivateAccessPolicyOutcomeCallable createPrivateAccessPolicyCallable(const Model::CreatePrivateAccessPolicyRequest& request) const;
+			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;
+			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;
+			DeleteDynamicRouteOutcome deleteDynamicRoute(const Model::DeleteDynamicRouteRequest &request)const;
+			void deleteDynamicRouteAsync(const Model::DeleteDynamicRouteRequest& request, const DeleteDynamicRouteAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteDynamicRouteOutcomeCallable deleteDynamicRouteCallable(const Model::DeleteDynamicRouteRequest& request) const;
+			DeletePrivateAccessApplicationOutcome deletePrivateAccessApplication(const Model::DeletePrivateAccessApplicationRequest &request)const;
+			void deletePrivateAccessApplicationAsync(const Model::DeletePrivateAccessApplicationRequest& request, const DeletePrivateAccessApplicationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeletePrivateAccessApplicationOutcomeCallable deletePrivateAccessApplicationCallable(const Model::DeletePrivateAccessApplicationRequest& request) const;
+			DeletePrivateAccessPolicyOutcome deletePrivateAccessPolicy(const Model::DeletePrivateAccessPolicyRequest &request)const;
+			void deletePrivateAccessPolicyAsync(const Model::DeletePrivateAccessPolicyRequest& request, const DeletePrivateAccessPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeletePrivateAccessPolicyOutcomeCallable deletePrivateAccessPolicyCallable(const Model::DeletePrivateAccessPolicyRequest& request) const;
+			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;
+			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;
+			DetachApplication2ConnectorOutcome detachApplication2Connector(const Model::DetachApplication2ConnectorRequest &request)const;
+			void detachApplication2ConnectorAsync(const Model::DetachApplication2ConnectorRequest& request, const DetachApplication2ConnectorAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DetachApplication2ConnectorOutcomeCallable detachApplication2ConnectorCallable(const Model::DetachApplication2ConnectorRequest& request) const;
+			GetDynamicRouteOutcome getDynamicRoute(const Model::GetDynamicRouteRequest &request)const;
+			void getDynamicRouteAsync(const Model::GetDynamicRouteRequest& request, const GetDynamicRouteAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetDynamicRouteOutcomeCallable getDynamicRouteCallable(const Model::GetDynamicRouteRequest& request) const;
+			GetPrivateAccessApplicationOutcome getPrivateAccessApplication(const Model::GetPrivateAccessApplicationRequest &request)const;
+			void getPrivateAccessApplicationAsync(const Model::GetPrivateAccessApplicationRequest& request, const GetPrivateAccessApplicationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetPrivateAccessApplicationOutcomeCallable getPrivateAccessApplicationCallable(const Model::GetPrivateAccessApplicationRequest& request) const;
+			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;
+			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;
+			ListApplicationsForPrivateAccessPolicyOutcome listApplicationsForPrivateAccessPolicy(const Model::ListApplicationsForPrivateAccessPolicyRequest &request)const;
+			void listApplicationsForPrivateAccessPolicyAsync(const Model::ListApplicationsForPrivateAccessPolicyRequest& request, const ListApplicationsForPrivateAccessPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListApplicationsForPrivateAccessPolicyOutcomeCallable listApplicationsForPrivateAccessPolicyCallable(const Model::ListApplicationsForPrivateAccessPolicyRequest& request) const;
+			ListApplicationsForPrivateAccessTagOutcome listApplicationsForPrivateAccessTag(const Model::ListApplicationsForPrivateAccessTagRequest &request)const;
+			void listApplicationsForPrivateAccessTagAsync(const Model::ListApplicationsForPrivateAccessTagRequest& request, const ListApplicationsForPrivateAccessTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListApplicationsForPrivateAccessTagOutcomeCallable listApplicationsForPrivateAccessTagCallable(const Model::ListApplicationsForPrivateAccessTagRequest& request) const;
+			ListConnectorsOutcome listConnectors(const Model::ListConnectorsRequest &request)const;
+			void listConnectorsAsync(const Model::ListConnectorsRequest& request, const ListConnectorsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListConnectorsOutcomeCallable listConnectorsCallable(const Model::ListConnectorsRequest& request) const;
+			ListDynamicRouteRegionsOutcome listDynamicRouteRegions(const Model::ListDynamicRouteRegionsRequest &request)const;
+			void listDynamicRouteRegionsAsync(const Model::ListDynamicRouteRegionsRequest& request, const ListDynamicRouteRegionsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListDynamicRouteRegionsOutcomeCallable listDynamicRouteRegionsCallable(const Model::ListDynamicRouteRegionsRequest& request) const;
+			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;
+			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;
+			ListPolicesForPrivateAccessTagOutcome listPolicesForPrivateAccessTag(const Model::ListPolicesForPrivateAccessTagRequest &request)const;
+			void listPolicesForPrivateAccessTagAsync(const Model::ListPolicesForPrivateAccessTagRequest& request, const ListPolicesForPrivateAccessTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListPolicesForPrivateAccessTagOutcomeCallable listPolicesForPrivateAccessTagCallable(const Model::ListPolicesForPrivateAccessTagRequest& request) const;
+			ListPolicesForUserGroupOutcome listPolicesForUserGroup(const Model::ListPolicesForUserGroupRequest &request)const;
+			void listPolicesForUserGroupAsync(const Model::ListPolicesForUserGroupRequest& request, const ListPolicesForUserGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListPolicesForUserGroupOutcomeCallable listPolicesForUserGroupCallable(const Model::ListPolicesForUserGroupRequest& request) const;
+			ListPrivateAccessApplicationsOutcome listPrivateAccessApplications(const Model::ListPrivateAccessApplicationsRequest &request)const;
+			void listPrivateAccessApplicationsAsync(const Model::ListPrivateAccessApplicationsRequest& request, const ListPrivateAccessApplicationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListPrivateAccessApplicationsOutcomeCallable listPrivateAccessApplicationsCallable(const Model::ListPrivateAccessApplicationsRequest& request) const;
+			ListPrivateAccessApplicationsForDynamicRouteOutcome listPrivateAccessApplicationsForDynamicRoute(const Model::ListPrivateAccessApplicationsForDynamicRouteRequest &request)const;
+			void listPrivateAccessApplicationsForDynamicRouteAsync(const Model::ListPrivateAccessApplicationsForDynamicRouteRequest& request, const ListPrivateAccessApplicationsForDynamicRouteAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListPrivateAccessApplicationsForDynamicRouteOutcomeCallable listPrivateAccessApplicationsForDynamicRouteCallable(const Model::ListPrivateAccessApplicationsForDynamicRouteRequest& request) const;
+			ListPrivateAccessPolicesOutcome listPrivateAccessPolices(const Model::ListPrivateAccessPolicesRequest &request)const;
+			void listPrivateAccessPolicesAsync(const Model::ListPrivateAccessPolicesRequest& request, const ListPrivateAccessPolicesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListPrivateAccessPolicesOutcomeCallable listPrivateAccessPolicesCallable(const Model::ListPrivateAccessPolicesRequest& request) const;
+			ListPrivateAccessTagsOutcome listPrivateAccessTags(const Model::ListPrivateAccessTagsRequest &request)const;
+			void listPrivateAccessTagsAsync(const Model::ListPrivateAccessTagsRequest& request, const ListPrivateAccessTagsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListPrivateAccessTagsOutcomeCallable listPrivateAccessTagsCallable(const Model::ListPrivateAccessTagsRequest& request) const;
+			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;
+			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;
+			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;
+			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;
+			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;
+			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;
+	
+		private:
+			std::shared_ptr<EndpointProvider> endpointProvider_;
+		};
+	}
+}
+
+#endif // !ALIBABACLOUD_CSAS_CSASCLIENT_H_

+ 32 - 0
csas/include/alibabacloud/csas/CsasExport.h

@@ -0,0 +1,32 @@
+/*
+ * 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_CSASEXPORT_H_
+#define ALIBABACLOUD_CSAS_CSASEXPORT_H_
+
+#include <alibabacloud/core/Global.h>
+
+#if defined(ALIBABACLOUD_SHARED)
+#	if defined(ALIBABACLOUD_CSAS_LIBRARY)
+#		define ALIBABACLOUD_CSAS_EXPORT ALIBABACLOUD_DECL_EXPORT
+#	else
+#		define ALIBABACLOUD_CSAS_EXPORT ALIBABACLOUD_DECL_IMPORT
+#	endif
+#else
+#	define ALIBABACLOUD_CSAS_EXPORT
+#endif
+
+#endif // !ALIBABACLOUD_CSAS_CSASEXPORT_H_

+ 48 - 0
csas/include/alibabacloud/csas/model/AttachApplication2ConnectorRequest.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_ATTACHAPPLICATION2CONNECTORREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_ATTACHAPPLICATION2CONNECTORREQUEST_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 AttachApplication2ConnectorRequest : public RpcServiceRequest {
+public:
+	AttachApplication2ConnectorRequest();
+	~AttachApplication2ConnectorRequest();
+	std::string getConnectorId() const;
+	void setConnectorId(const std::string &connectorId);
+	std::vector<std::string> getApplicationIds() const;
+	void setApplicationIds(const std::vector<std::string> &applicationIds);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::string connectorId_;
+	std::vector<std::string> applicationIds_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_ATTACHAPPLICATION2CONNECTORREQUEST_H_

+ 49 - 0
csas/include/alibabacloud/csas/model/AttachApplication2ConnectorResult.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_ATTACHAPPLICATION2CONNECTORRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_ATTACHAPPLICATION2CONNECTORRESULT_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 AttachApplication2ConnectorResult : public ServiceResult
+			{
+			public:
+
+
+				AttachApplication2ConnectorResult();
+				explicit AttachApplication2ConnectorResult(const std::string &payload);
+				~AttachApplication2ConnectorResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_ATTACHAPPLICATION2CONNECTORRESULT_H_

+ 72 - 0
csas/include/alibabacloud/csas/model/CreateDynamicRouteRequest.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_CREATEDYNAMICROUTEREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_CREATEDYNAMICROUTEREQUEST_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 CreateDynamicRouteRequest : public RpcServiceRequest {
+public:
+	CreateDynamicRouteRequest();
+	~CreateDynamicRouteRequest();
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getDynamicRouteType() const;
+	void setDynamicRouteType(const std::string &dynamicRouteType);
+	std::vector<std::string> getTagIds() const;
+	void setTagIds(const std::vector<std::string> &tagIds);
+	std::vector<std::string> getRegionIds() const;
+	void setRegionIds(const std::vector<std::string> &regionIds);
+	int getPriority() const;
+	void setPriority(int priority);
+	std::string getNextHop() const;
+	void setNextHop(const std::string &nextHop);
+	std::vector<std::string> getApplicationIds() const;
+	void setApplicationIds(const std::vector<std::string> &applicationIds);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::string getApplicationType() const;
+	void setApplicationType(const std::string &applicationType);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
+
+private:
+	std::string description_;
+	std::string sourceIp_;
+	std::string dynamicRouteType_;
+	std::vector<std::string> tagIds_;
+	std::vector<std::string> regionIds_;
+	int priority_;
+	std::string nextHop_;
+	std::vector<std::string> applicationIds_;
+	std::string name_;
+	std::string applicationType_;
+	std::string status_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_CREATEDYNAMICROUTEREQUEST_H_

+ 51 - 0
csas/include/alibabacloud/csas/model/CreateDynamicRouteResult.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_CREATEDYNAMICROUTERESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_CREATEDYNAMICROUTERESULT_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 CreateDynamicRouteResult : public ServiceResult
+			{
+			public:
+
+
+				CreateDynamicRouteResult();
+				explicit CreateDynamicRouteResult(const std::string &payload);
+				~CreateDynamicRouteResult();
+				std::string getDynamicRouteId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string dynamicRouteId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_CREATEDYNAMICROUTERESULT_H_

+ 67 - 0
csas/include/alibabacloud/csas/model/CreatePrivateAccessApplicationRequest.h

@@ -0,0 +1,67 @@
+/*
+ * 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_CREATEPRIVATEACCESSAPPLICATIONREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_CREATEPRIVATEACCESSAPPLICATIONREQUEST_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 CreatePrivateAccessApplicationRequest : public RpcServiceRequest {
+public:
+	struct PortRanges {
+		int end;
+		int begin;
+	};
+	CreatePrivateAccessApplicationRequest();
+	~CreatePrivateAccessApplicationRequest();
+	std::vector<std::string> getAddresses() const;
+	void setAddresses(const std::vector<std::string> &addresses);
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getProtocol() const;
+	void setProtocol(const std::string &protocol);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::vector<std::string> getTagIds() const;
+	void setTagIds(const std::vector<std::string> &tagIds);
+	std::vector<PortRanges> getPortRanges() const;
+	void setPortRanges(const std::vector<PortRanges> &portRanges);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
+
+private:
+	std::vector<std::string> addresses_;
+	std::string description_;
+	std::string protocol_;
+	std::string sourceIp_;
+	std::vector<std::string> tagIds_;
+	std::vector<PortRanges> portRanges_;
+	std::string name_;
+	std::string status_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_CREATEPRIVATEACCESSAPPLICATIONREQUEST_H_

+ 51 - 0
csas/include/alibabacloud/csas/model/CreatePrivateAccessApplicationResult.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_CREATEPRIVATEACCESSAPPLICATIONRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_CREATEPRIVATEACCESSAPPLICATIONRESULT_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 CreatePrivateAccessApplicationResult : public ServiceResult
+			{
+			public:
+
+
+				CreatePrivateAccessApplicationResult();
+				explicit CreatePrivateAccessApplicationResult(const std::string &payload);
+				~CreatePrivateAccessApplicationResult();
+				std::string getApplicationId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string applicationId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_CREATEPRIVATEACCESSAPPLICATIONRESULT_H_

+ 81 - 0
csas/include/alibabacloud/csas/model/CreatePrivateAccessPolicyRequest.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_CREATEPRIVATEACCESSPOLICYREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_CREATEPRIVATEACCESSPOLICYREQUEST_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 CreatePrivateAccessPolicyRequest : public RpcServiceRequest {
+public:
+	struct CustomUserAttributes {
+		std::string userGroupType;
+		int idpId;
+		std::string value;
+		std::string relation;
+	};
+	CreatePrivateAccessPolicyRequest();
+	~CreatePrivateAccessPolicyRequest();
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::vector<CustomUserAttributes> getCustomUserAttributes() const;
+	void setCustomUserAttributes(const std::vector<CustomUserAttributes> &customUserAttributes);
+	std::vector<std::string> getTagIds() const;
+	void setTagIds(const std::vector<std::string> &tagIds);
+	std::vector<std::string> getUserGroupIds() const;
+	void setUserGroupIds(const std::vector<std::string> &userGroupIds);
+	std::string getPolicyAction() const;
+	void setPolicyAction(const std::string &policyAction);
+	int getPriority() const;
+	void setPriority(int priority);
+	std::vector<std::string> getApplicationIds() const;
+	void setApplicationIds(const std::vector<std::string> &applicationIds);
+	std::string getUserGroupMode() const;
+	void setUserGroupMode(const std::string &userGroupMode);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::string getApplicationType() const;
+	void setApplicationType(const std::string &applicationType);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
+
+private:
+	std::string description_;
+	std::string sourceIp_;
+	std::vector<CustomUserAttributes> customUserAttributes_;
+	std::vector<std::string> tagIds_;
+	std::vector<std::string> userGroupIds_;
+	std::string policyAction_;
+	int priority_;
+	std::vector<std::string> applicationIds_;
+	std::string userGroupMode_;
+	std::string name_;
+	std::string applicationType_;
+	std::string status_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_CREATEPRIVATEACCESSPOLICYREQUEST_H_

+ 51 - 0
csas/include/alibabacloud/csas/model/CreatePrivateAccessPolicyResult.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_CREATEPRIVATEACCESSPOLICYRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_CREATEPRIVATEACCESSPOLICYRESULT_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 CreatePrivateAccessPolicyResult : public ServiceResult
+			{
+			public:
+
+
+				CreatePrivateAccessPolicyResult();
+				explicit CreatePrivateAccessPolicyResult(const std::string &payload);
+				~CreatePrivateAccessPolicyResult();
+				std::string getPolicyId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string policyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_CREATEPRIVATEACCESSPOLICYRESULT_H_

+ 48 - 0
csas/include/alibabacloud/csas/model/CreatePrivateAccessTagRequest.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_CREATEPRIVATEACCESSTAGREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_CREATEPRIVATEACCESSTAGREQUEST_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 CreatePrivateAccessTagRequest : public RpcServiceRequest {
+public:
+	CreatePrivateAccessTagRequest();
+	~CreatePrivateAccessTagRequest();
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getName() const;
+	void setName(const std::string &name);
+
+private:
+	std::string description_;
+	std::string sourceIp_;
+	std::string name_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_CREATEPRIVATEACCESSTAGREQUEST_H_

+ 51 - 0
csas/include/alibabacloud/csas/model/CreatePrivateAccessTagResult.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_CREATEPRIVATEACCESSTAGRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_CREATEPRIVATEACCESSTAGRESULT_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 CreatePrivateAccessTagResult : public ServiceResult
+			{
+			public:
+
+
+				CreatePrivateAccessTagResult();
+				explicit CreatePrivateAccessTagResult(const std::string &payload);
+				~CreatePrivateAccessTagResult();
+				std::string getTagId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string tagId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_CREATEPRIVATEACCESSTAGRESULT_H_

+ 57 - 0
csas/include/alibabacloud/csas/model/CreateUserGroupRequest.h

@@ -0,0 +1,57 @@
+/*
+ * 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_CREATEUSERGROUPREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_CREATEUSERGROUPREQUEST_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 CreateUserGroupRequest : public RpcServiceRequest {
+public:
+	struct Attributes {
+		std::string userGroupType;
+		int idpId;
+		std::string value;
+		std::string relation;
+	};
+	CreateUserGroupRequest();
+	~CreateUserGroupRequest();
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::vector<Attributes> getAttributes() const;
+	void setAttributes(const std::vector<Attributes> &attributes);
+
+private:
+	std::string description_;
+	std::string sourceIp_;
+	std::string name_;
+	std::vector<Attributes> attributes_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_CREATEUSERGROUPREQUEST_H_

+ 51 - 0
csas/include/alibabacloud/csas/model/CreateUserGroupResult.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_CREATEUSERGROUPRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_CREATEUSERGROUPRESULT_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 CreateUserGroupResult : public ServiceResult
+			{
+			public:
+
+
+				CreateUserGroupResult();
+				explicit CreateUserGroupResult(const std::string &payload);
+				~CreateUserGroupResult();
+				std::string getUserGroupId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string userGroupId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_CREATEUSERGROUPRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/DeleteDynamicRouteRequest.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_DELETEDYNAMICROUTEREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_DELETEDYNAMICROUTEREQUEST_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 DeleteDynamicRouteRequest : public RpcServiceRequest {
+public:
+	DeleteDynamicRouteRequest();
+	~DeleteDynamicRouteRequest();
+	std::string getDynamicRouteId() const;
+	void setDynamicRouteId(const std::string &dynamicRouteId);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::string dynamicRouteId_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_DELETEDYNAMICROUTEREQUEST_H_

+ 49 - 0
csas/include/alibabacloud/csas/model/DeleteDynamicRouteResult.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_DELETEDYNAMICROUTERESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_DELETEDYNAMICROUTERESULT_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 DeleteDynamicRouteResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteDynamicRouteResult();
+				explicit DeleteDynamicRouteResult(const std::string &payload);
+				~DeleteDynamicRouteResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_DELETEDYNAMICROUTERESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/DeletePrivateAccessApplicationRequest.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_DELETEPRIVATEACCESSAPPLICATIONREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_DELETEPRIVATEACCESSAPPLICATIONREQUEST_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 DeletePrivateAccessApplicationRequest : public RpcServiceRequest {
+public:
+	DeletePrivateAccessApplicationRequest();
+	~DeletePrivateAccessApplicationRequest();
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getApplicationId() const;
+	void setApplicationId(const std::string &applicationId);
+
+private:
+	std::string sourceIp_;
+	std::string applicationId_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_DELETEPRIVATEACCESSAPPLICATIONREQUEST_H_

+ 49 - 0
csas/include/alibabacloud/csas/model/DeletePrivateAccessApplicationResult.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_DELETEPRIVATEACCESSAPPLICATIONRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_DELETEPRIVATEACCESSAPPLICATIONRESULT_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 DeletePrivateAccessApplicationResult : public ServiceResult
+			{
+			public:
+
+
+				DeletePrivateAccessApplicationResult();
+				explicit DeletePrivateAccessApplicationResult(const std::string &payload);
+				~DeletePrivateAccessApplicationResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_DELETEPRIVATEACCESSAPPLICATIONRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/DeletePrivateAccessPolicyRequest.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_DELETEPRIVATEACCESSPOLICYREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_DELETEPRIVATEACCESSPOLICYREQUEST_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 DeletePrivateAccessPolicyRequest : public RpcServiceRequest {
+public:
+	DeletePrivateAccessPolicyRequest();
+	~DeletePrivateAccessPolicyRequest();
+	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_DELETEPRIVATEACCESSPOLICYREQUEST_H_

+ 49 - 0
csas/include/alibabacloud/csas/model/DeletePrivateAccessPolicyResult.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_DELETEPRIVATEACCESSPOLICYRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_DELETEPRIVATEACCESSPOLICYRESULT_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 DeletePrivateAccessPolicyResult : public ServiceResult
+			{
+			public:
+
+
+				DeletePrivateAccessPolicyResult();
+				explicit DeletePrivateAccessPolicyResult(const std::string &payload);
+				~DeletePrivateAccessPolicyResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_DELETEPRIVATEACCESSPOLICYRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/DeletePrivateAccessTagRequest.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_DELETEPRIVATEACCESSTAGREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_DELETEPRIVATEACCESSTAGREQUEST_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 DeletePrivateAccessTagRequest : public RpcServiceRequest {
+public:
+	DeletePrivateAccessTagRequest();
+	~DeletePrivateAccessTagRequest();
+	std::string getTagId() const;
+	void setTagId(const std::string &tagId);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::string tagId_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_DELETEPRIVATEACCESSTAGREQUEST_H_

+ 49 - 0
csas/include/alibabacloud/csas/model/DeletePrivateAccessTagResult.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_DELETEPRIVATEACCESSTAGRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_DELETEPRIVATEACCESSTAGRESULT_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 DeletePrivateAccessTagResult : public ServiceResult
+			{
+			public:
+
+
+				DeletePrivateAccessTagResult();
+				explicit DeletePrivateAccessTagResult(const std::string &payload);
+				~DeletePrivateAccessTagResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_DELETEPRIVATEACCESSTAGRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/DeleteUserGroupRequest.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_DELETEUSERGROUPREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_DELETEUSERGROUPREQUEST_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 DeleteUserGroupRequest : public RpcServiceRequest {
+public:
+	DeleteUserGroupRequest();
+	~DeleteUserGroupRequest();
+	std::string getUserGroupId() const;
+	void setUserGroupId(const std::string &userGroupId);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::string userGroupId_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_DELETEUSERGROUPREQUEST_H_

+ 49 - 0
csas/include/alibabacloud/csas/model/DeleteUserGroupResult.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_DELETEUSERGROUPRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_DELETEUSERGROUPRESULT_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 DeleteUserGroupResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteUserGroupResult();
+				explicit DeleteUserGroupResult(const std::string &payload);
+				~DeleteUserGroupResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_DELETEUSERGROUPRESULT_H_

+ 48 - 0
csas/include/alibabacloud/csas/model/DetachApplication2ConnectorRequest.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_DETACHAPPLICATION2CONNECTORREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_DETACHAPPLICATION2CONNECTORREQUEST_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 DetachApplication2ConnectorRequest : public RpcServiceRequest {
+public:
+	DetachApplication2ConnectorRequest();
+	~DetachApplication2ConnectorRequest();
+	std::string getConnectorId() const;
+	void setConnectorId(const std::string &connectorId);
+	std::vector<std::string> getApplicationIds() const;
+	void setApplicationIds(const std::vector<std::string> &applicationIds);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::string connectorId_;
+	std::vector<std::string> applicationIds_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_DETACHAPPLICATION2CONNECTORREQUEST_H_

+ 49 - 0
csas/include/alibabacloud/csas/model/DetachApplication2ConnectorResult.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_DETACHAPPLICATION2CONNECTORRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_DETACHAPPLICATION2CONNECTORRESULT_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 DetachApplication2ConnectorResult : public ServiceResult
+			{
+			public:
+
+
+				DetachApplication2ConnectorResult();
+				explicit DetachApplication2ConnectorResult(const std::string &payload);
+				~DetachApplication2ConnectorResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_DETACHAPPLICATION2CONNECTORRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/GetDynamicRouteRequest.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_GETDYNAMICROUTEREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_GETDYNAMICROUTEREQUEST_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 GetDynamicRouteRequest : public RpcServiceRequest {
+public:
+	GetDynamicRouteRequest();
+	~GetDynamicRouteRequest();
+	std::string getDynamicRouteId() const;
+	void setDynamicRouteId(const std::string &dynamicRouteId);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::string dynamicRouteId_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_GETDYNAMICROUTEREQUEST_H_

+ 66 - 0
csas/include/alibabacloud/csas/model/GetDynamicRouteResult.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_GETDYNAMICROUTERESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_GETDYNAMICROUTERESULT_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 GetDynamicRouteResult : public ServiceResult
+			{
+			public:
+				struct DynamicRoute
+				{
+					std::string status;
+					std::string applicationType;
+					std::string description;
+					std::vector<std::string> tagIds;
+					std::vector<std::string> regionIds;
+					int priority;
+					std::string nextHop;
+					std::vector<std::string> applicationIds;
+					std::string createTime;
+					std::string dynamicRouteId;
+					std::string dynamicRouteType;
+					std::string name;
+				};
+
+
+				GetDynamicRouteResult();
+				explicit GetDynamicRouteResult(const std::string &payload);
+				~GetDynamicRouteResult();
+				DynamicRoute getDynamicRoute()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				DynamicRoute dynamicRoute_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_GETDYNAMICROUTERESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/GetPrivateAccessApplicationRequest.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_GETPRIVATEACCESSAPPLICATIONREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_GETPRIVATEACCESSAPPLICATIONREQUEST_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 GetPrivateAccessApplicationRequest : public RpcServiceRequest {
+public:
+	GetPrivateAccessApplicationRequest();
+	~GetPrivateAccessApplicationRequest();
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getApplicationId() const;
+	void setApplicationId(const std::string &applicationId);
+
+private:
+	std::string sourceIp_;
+	std::string applicationId_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_GETPRIVATEACCESSAPPLICATIONREQUEST_H_

+ 69 - 0
csas/include/alibabacloud/csas/model/GetPrivateAccessApplicationResult.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_GETPRIVATEACCESSAPPLICATIONRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_GETPRIVATEACCESSAPPLICATIONRESULT_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 GetPrivateAccessApplicationResult : public ServiceResult
+			{
+			public:
+				struct Application
+				{
+					struct PortRange
+					{
+						int begin;
+						int end;
+					};
+					std::string status;
+					std::vector<std::string> addresses;
+					std::string description;
+					std::vector<std::string> tagIds;
+					std::vector<PortRange> portRanges;
+					std::string createTime;
+					std::vector<std::string> policyIds;
+					std::string applicationId;
+					std::string protocol;
+					std::string name;
+				};
+
+
+				GetPrivateAccessApplicationResult();
+				explicit GetPrivateAccessApplicationResult(const std::string &payload);
+				~GetPrivateAccessApplicationResult();
+				Application getApplication()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Application application_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_GETPRIVATEACCESSAPPLICATIONRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/GetPrivateAccessPolicyRequest.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_GETPRIVATEACCESSPOLICYREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_GETPRIVATEACCESSPOLICYREQUEST_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 GetPrivateAccessPolicyRequest : public RpcServiceRequest {
+public:
+	GetPrivateAccessPolicyRequest();
+	~GetPrivateAccessPolicyRequest();
+	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_GETPRIVATEACCESSPOLICYREQUEST_H_

+ 74 - 0
csas/include/alibabacloud/csas/model/GetPrivateAccessPolicyResult.h

@@ -0,0 +1,74 @@
+/*
+ * 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_GETPRIVATEACCESSPOLICYRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_GETPRIVATEACCESSPOLICYRESULT_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 GetPrivateAccessPolicyResult : public ServiceResult
+			{
+			public:
+				struct Policy
+				{
+					struct CustomUserAttribute
+					{
+						std::string relation;
+						int idpId;
+						std::string userGroupType;
+						std::string value;
+					};
+					std::vector<CustomUserAttribute> customUserAttributes;
+					std::string status;
+					std::string description;
+					std::vector<std::string> tagIds;
+					int priority;
+					std::vector<std::string> applicationIds;
+					std::string createTime;
+					std::string name;
+					std::string userGroupMode;
+					std::string applicationType;
+					std::vector<std::string> userGroupIds;
+					std::string policyAction;
+					std::string policyId;
+				};
+
+
+				GetPrivateAccessPolicyResult();
+				explicit GetPrivateAccessPolicyResult(const std::string &payload);
+				~GetPrivateAccessPolicyResult();
+				Policy getPolicy()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Policy policy_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_GETPRIVATEACCESSPOLICYRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/GetUserGroupRequest.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_GETUSERGROUPREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_GETUSERGROUPREQUEST_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 GetUserGroupRequest : public RpcServiceRequest {
+public:
+	GetUserGroupRequest();
+	~GetUserGroupRequest();
+	std::string getUserGroupId() const;
+	void setUserGroupId(const std::string &userGroupId);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::string userGroupId_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_GETUSERGROUPREQUEST_H_

+ 66 - 0
csas/include/alibabacloud/csas/model/GetUserGroupResult.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_GETUSERGROUPRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_GETUSERGROUPRESULT_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 GetUserGroupResult : public ServiceResult
+			{
+			public:
+				struct UserGroup
+				{
+					struct Attribute
+					{
+						std::string relation;
+						int idpId;
+						std::string userGroupType;
+						std::string value;
+					};
+					std::string description;
+					std::string userGroupId;
+					std::string createTime;
+					std::vector<Attribute> attributes;
+					std::string name;
+				};
+
+
+				GetUserGroupResult();
+				explicit GetUserGroupResult(const std::string &payload);
+				~GetUserGroupResult();
+				UserGroup getUserGroup()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				UserGroup userGroup_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_GETUSERGROUPRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/ListApplicationsForPrivateAccessPolicyRequest.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_LISTAPPLICATIONSFORPRIVATEACCESSPOLICYREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTAPPLICATIONSFORPRIVATEACCESSPOLICYREQUEST_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 ListApplicationsForPrivateAccessPolicyRequest : public RpcServiceRequest {
+public:
+	ListApplicationsForPrivateAccessPolicyRequest();
+	~ListApplicationsForPrivateAccessPolicyRequest();
+	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_LISTAPPLICATIONSFORPRIVATEACCESSPOLICYREQUEST_H_

+ 72 - 0
csas/include/alibabacloud/csas/model/ListApplicationsForPrivateAccessPolicyResult.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_LISTAPPLICATIONSFORPRIVATEACCESSPOLICYRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTAPPLICATIONSFORPRIVATEACCESSPOLICYRESULT_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 ListApplicationsForPrivateAccessPolicyResult : public ServiceResult
+			{
+			public:
+				struct Policy
+				{
+					struct Application
+					{
+						struct PortRange
+						{
+							int begin;
+							int end;
+						};
+						std::string status;
+						std::vector<std::string> addresses;
+						std::string description;
+						std::vector<Application::PortRange> portRanges;
+						std::string createTime;
+						std::string applicationId;
+						std::string protocol;
+						std::string name;
+					};
+					std::vector<Policy::Application> applications;
+					std::string policyId;
+				};
+
+
+				ListApplicationsForPrivateAccessPolicyResult();
+				explicit ListApplicationsForPrivateAccessPolicyResult(const std::string &payload);
+				~ListApplicationsForPrivateAccessPolicyResult();
+				std::vector<Policy> getPolices()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Policy> polices_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTAPPLICATIONSFORPRIVATEACCESSPOLICYRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/ListApplicationsForPrivateAccessTagRequest.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_LISTAPPLICATIONSFORPRIVATEACCESSTAGREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTAPPLICATIONSFORPRIVATEACCESSTAGREQUEST_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 ListApplicationsForPrivateAccessTagRequest : public RpcServiceRequest {
+public:
+	ListApplicationsForPrivateAccessTagRequest();
+	~ListApplicationsForPrivateAccessTagRequest();
+	std::vector<std::string> getTagIds() const;
+	void setTagIds(const std::vector<std::string> &tagIds);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::vector<std::string> tagIds_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTAPPLICATIONSFORPRIVATEACCESSTAGREQUEST_H_

+ 72 - 0
csas/include/alibabacloud/csas/model/ListApplicationsForPrivateAccessTagResult.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_LISTAPPLICATIONSFORPRIVATEACCESSTAGRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTAPPLICATIONSFORPRIVATEACCESSTAGRESULT_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 ListApplicationsForPrivateAccessTagResult : public ServiceResult
+			{
+			public:
+				struct Tag
+				{
+					struct Application
+					{
+						struct PortRange
+						{
+							int begin;
+							int end;
+						};
+						std::string status;
+						std::vector<std::string> addresses;
+						std::string description;
+						std::vector<Application::PortRange> portRanges;
+						std::string createTime;
+						std::string applicationId;
+						std::string protocol;
+						std::string name;
+					};
+					std::vector<Tag::Application> applications;
+					std::string tagId;
+				};
+
+
+				ListApplicationsForPrivateAccessTagResult();
+				explicit ListApplicationsForPrivateAccessTagResult(const std::string &payload);
+				~ListApplicationsForPrivateAccessTagResult();
+				std::vector<Tag> getTags()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Tag> tags_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTAPPLICATIONSFORPRIVATEACCESSTAGRESULT_H_

+ 60 - 0
csas/include/alibabacloud/csas/model/ListConnectorsRequest.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_LISTCONNECTORSREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTCONNECTORSREQUEST_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 ListConnectorsRequest : public RpcServiceRequest {
+public:
+	ListConnectorsRequest();
+	~ListConnectorsRequest();
+	std::string getSwitchStatus() const;
+	void setSwitchStatus(const std::string &switchStatus);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	int getPageSize() const;
+	void setPageSize(int pageSize);
+	int getCurrentPage() const;
+	void setCurrentPage(int currentPage);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::vector<std::string> getConnectorIds() const;
+	void setConnectorIds(const std::vector<std::string> &connectorIds);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
+
+private:
+	std::string switchStatus_;
+	std::string sourceIp_;
+	int pageSize_;
+	int currentPage_;
+	std::string name_;
+	std::vector<std::string> connectorIds_;
+	std::string status_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTCONNECTORSREQUEST_H_

+ 74 - 0
csas/include/alibabacloud/csas/model/ListConnectorsResult.h

@@ -0,0 +1,74 @@
+/*
+ * 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_LISTCONNECTORSRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTCONNECTORSRESULT_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 ListConnectorsResult : public ServiceResult
+			{
+			public:
+				struct Connector
+				{
+					struct UpgradeTime
+					{
+						std::string start;
+						std::string end;
+					};
+					struct Application
+					{
+						std::string applicationName;
+						std::string applicationId;
+					};
+					std::string status;
+					std::vector<Connector::Application> applications;
+					std::string createTime;
+					std::string regionId;
+					UpgradeTime upgradeTime;
+					std::string switchStatus;
+					std::string connectorId;
+					std::string name;
+				};
+
+
+				ListConnectorsResult();
+				explicit ListConnectorsResult(const std::string &payload);
+				~ListConnectorsResult();
+				std::vector<Connector> getConnectors()const;
+				int getTotalNum()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Connector> connectors_;
+				int totalNum_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTCONNECTORSRESULT_H_

+ 42 - 0
csas/include/alibabacloud/csas/model/ListDynamicRouteRegionsRequest.h

@@ -0,0 +1,42 @@
+/*
+ * 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_LISTDYNAMICROUTEREGIONSREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTDYNAMICROUTEREGIONSREQUEST_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 ListDynamicRouteRegionsRequest : public RpcServiceRequest {
+public:
+	ListDynamicRouteRegionsRequest();
+	~ListDynamicRouteRegionsRequest();
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTDYNAMICROUTEREGIONSREQUEST_H_

+ 53 - 0
csas/include/alibabacloud/csas/model/ListDynamicRouteRegionsResult.h

@@ -0,0 +1,53 @@
+/*
+ * 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_LISTDYNAMICROUTEREGIONSRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTDYNAMICROUTEREGIONSRESULT_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 ListDynamicRouteRegionsResult : public ServiceResult
+			{
+			public:
+
+
+				ListDynamicRouteRegionsResult();
+				explicit ListDynamicRouteRegionsResult(const std::string &payload);
+				~ListDynamicRouteRegionsResult();
+				int getTotalNum()const;
+				std::vector<std::string> getRegions()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalNum_;
+				std::vector<std::string> regions_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTDYNAMICROUTEREGIONSRESULT_H_

+ 69 - 0
csas/include/alibabacloud/csas/model/ListDynamicRoutesRequest.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_LISTDYNAMICROUTESREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTDYNAMICROUTESREQUEST_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 ListDynamicRoutesRequest : public RpcServiceRequest {
+public:
+	ListDynamicRoutesRequest();
+	~ListDynamicRoutesRequest();
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	int getPageSize() const;
+	void setPageSize(int pageSize);
+	std::string getApplicationId() const;
+	void setApplicationId(const std::string &applicationId);
+	std::vector<std::string> getDynamicRouteIds() const;
+	void setDynamicRouteIds(const std::vector<std::string> &dynamicRouteIds);
+	std::string getTagId() const;
+	void setTagId(const std::string &tagId);
+	int getCurrentPage() const;
+	void setCurrentPage(int currentPage);
+	std::vector<std::string> getRegionIds() const;
+	void setRegionIds(const std::vector<std::string> &regionIds);
+	std::string getNextHop() const;
+	void setNextHop(const std::string &nextHop);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
+
+private:
+	std::string sourceIp_;
+	int pageSize_;
+	std::string applicationId_;
+	std::vector<std::string> dynamicRouteIds_;
+	std::string tagId_;
+	int currentPage_;
+	std::vector<std::string> regionIds_;
+	std::string nextHop_;
+	std::string name_;
+	std::string status_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTDYNAMICROUTESREQUEST_H_

+ 68 - 0
csas/include/alibabacloud/csas/model/ListDynamicRoutesResult.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_LISTDYNAMICROUTESRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTDYNAMICROUTESRESULT_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 ListDynamicRoutesResult : public ServiceResult
+			{
+			public:
+				struct DynamicRoute
+				{
+					std::string status;
+					std::string applicationType;
+					std::string description;
+					std::vector<std::string> tagIds;
+					std::vector<std::string> regionIds;
+					int priority;
+					std::string nextHop;
+					std::vector<std::string> applicationIds;
+					std::string createTime;
+					std::string dynamicRouteId;
+					std::string dynamicRouteType;
+					std::string name;
+				};
+
+
+				ListDynamicRoutesResult();
+				explicit ListDynamicRoutesResult(const std::string &payload);
+				~ListDynamicRoutesResult();
+				int getTotalNum()const;
+				std::vector<DynamicRoute> getDynamicRoutes()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalNum_;
+				std::vector<DynamicRoute> dynamicRoutes_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTDYNAMICROUTESRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/ListPolicesForPrivateAccessApplicationRequest.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_LISTPOLICESFORPRIVATEACCESSAPPLICATIONREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPOLICESFORPRIVATEACCESSAPPLICATIONREQUEST_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 ListPolicesForPrivateAccessApplicationRequest : public RpcServiceRequest {
+public:
+	ListPolicesForPrivateAccessApplicationRequest();
+	~ListPolicesForPrivateAccessApplicationRequest();
+	std::vector<std::string> getApplicationIds() const;
+	void setApplicationIds(const std::vector<std::string> &applicationIds);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::vector<std::string> applicationIds_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTPOLICESFORPRIVATEACCESSAPPLICATIONREQUEST_H_

+ 76 - 0
csas/include/alibabacloud/csas/model/ListPolicesForPrivateAccessApplicationResult.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_LISTPOLICESFORPRIVATEACCESSAPPLICATIONRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPOLICESFORPRIVATEACCESSAPPLICATIONRESULT_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 ListPolicesForPrivateAccessApplicationResult : public ServiceResult
+			{
+			public:
+				struct Application
+				{
+					struct Policy
+					{
+						struct CustomUserAttribute
+						{
+							std::string relation;
+							int idpId;
+							std::string userGroupType;
+							std::string value;
+						};
+						std::vector<Policy::CustomUserAttribute> customUserAttributes;
+						std::string status;
+						std::string applicationType;
+						std::string description;
+						std::string userGroupType;
+						int priority;
+						std::string createTime;
+						std::string policyAction;
+						std::string policyId;
+						std::string name;
+					};
+					std::vector<Application::Policy> policies;
+					std::string applicationId;
+				};
+
+
+				ListPolicesForPrivateAccessApplicationResult();
+				explicit ListPolicesForPrivateAccessApplicationResult(const std::string &payload);
+				~ListPolicesForPrivateAccessApplicationResult();
+				std::vector<Application> getApplications()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Application> applications_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTPOLICESFORPRIVATEACCESSAPPLICATIONRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/ListPolicesForPrivateAccessTagRequest.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_LISTPOLICESFORPRIVATEACCESSTAGREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPOLICESFORPRIVATEACCESSTAGREQUEST_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 ListPolicesForPrivateAccessTagRequest : public RpcServiceRequest {
+public:
+	ListPolicesForPrivateAccessTagRequest();
+	~ListPolicesForPrivateAccessTagRequest();
+	std::vector<std::string> getTagIds() const;
+	void setTagIds(const std::vector<std::string> &tagIds);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::vector<std::string> tagIds_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTPOLICESFORPRIVATEACCESSTAGREQUEST_H_

+ 76 - 0
csas/include/alibabacloud/csas/model/ListPolicesForPrivateAccessTagResult.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_LISTPOLICESFORPRIVATEACCESSTAGRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPOLICESFORPRIVATEACCESSTAGRESULT_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 ListPolicesForPrivateAccessTagResult : public ServiceResult
+			{
+			public:
+				struct Tag
+				{
+					struct Policy
+					{
+						struct CustomUserAttribute
+						{
+							std::string relation;
+							int idpId;
+							std::string userGroupType;
+							std::string value;
+						};
+						std::vector<Policy::CustomUserAttribute> customUserAttributes;
+						std::string status;
+						std::string applicationType;
+						std::string description;
+						std::string userGroupType;
+						int priority;
+						std::string createTime;
+						std::string policyAction;
+						std::string policyId;
+						std::string name;
+					};
+					std::string tagId;
+					std::vector<Tag::Policy> polices;
+				};
+
+
+				ListPolicesForPrivateAccessTagResult();
+				explicit ListPolicesForPrivateAccessTagResult(const std::string &payload);
+				~ListPolicesForPrivateAccessTagResult();
+				std::vector<Tag> getTags()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Tag> tags_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTPOLICESFORPRIVATEACCESSTAGRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/ListPolicesForUserGroupRequest.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_LISTPOLICESFORUSERGROUPREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPOLICESFORUSERGROUPREQUEST_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 ListPolicesForUserGroupRequest : public RpcServiceRequest {
+public:
+	ListPolicesForUserGroupRequest();
+	~ListPolicesForUserGroupRequest();
+	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_LISTPOLICESFORUSERGROUPREQUEST_H_

+ 62 - 0
csas/include/alibabacloud/csas/model/ListPolicesForUserGroupResult.h

@@ -0,0 +1,62 @@
+/*
+ * 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_LISTPOLICESFORUSERGROUPRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPOLICESFORUSERGROUPRESULT_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 ListPolicesForUserGroupResult : public ServiceResult
+			{
+			public:
+				struct UserGroup
+				{
+					struct Policy
+					{
+						std::string policyType;
+						std::string policyId;
+						std::string name;
+					};
+					std::string userGroupId;
+					std::vector<UserGroup::Policy> polices;
+				};
+
+
+				ListPolicesForUserGroupResult();
+				explicit ListPolicesForUserGroupResult(const std::string &payload);
+				~ListPolicesForUserGroupResult();
+				std::vector<UserGroup> getUserGroups()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<UserGroup> userGroups_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTPOLICESFORUSERGROUPRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/ListPrivateAccessApplicationsForDynamicRouteRequest.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_LISTPRIVATEACCESSAPPLICATIONSFORDYNAMICROUTEREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSAPPLICATIONSFORDYNAMICROUTEREQUEST_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 ListPrivateAccessApplicationsForDynamicRouteRequest : public RpcServiceRequest {
+public:
+	ListPrivateAccessApplicationsForDynamicRouteRequest();
+	~ListPrivateAccessApplicationsForDynamicRouteRequest();
+	std::vector<std::string> getDynamicRouteIds() const;
+	void setDynamicRouteIds(const std::vector<std::string> &dynamicRouteIds);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::vector<std::string> dynamicRouteIds_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSAPPLICATIONSFORDYNAMICROUTEREQUEST_H_

+ 72 - 0
csas/include/alibabacloud/csas/model/ListPrivateAccessApplicationsForDynamicRouteResult.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_LISTPRIVATEACCESSAPPLICATIONSFORDYNAMICROUTERESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSAPPLICATIONSFORDYNAMICROUTERESULT_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 ListPrivateAccessApplicationsForDynamicRouteResult : public ServiceResult
+			{
+			public:
+				struct DynamicRoute
+				{
+					struct Application
+					{
+						struct PortRange
+						{
+							int begin;
+							int end;
+						};
+						std::string status;
+						std::vector<std::string> addresses;
+						std::string description;
+						std::vector<Application::PortRange> portRanges;
+						std::string createTime;
+						std::string applicationId;
+						std::string protocol;
+						std::string name;
+					};
+					std::vector<DynamicRoute::Application> applications;
+					std::string dynamicRouteId;
+				};
+
+
+				ListPrivateAccessApplicationsForDynamicRouteResult();
+				explicit ListPrivateAccessApplicationsForDynamicRouteResult(const std::string &payload);
+				~ListPrivateAccessApplicationsForDynamicRouteResult();
+				std::vector<DynamicRoute> getDynamicRoutes()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<DynamicRoute> dynamicRoutes_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSAPPLICATIONSFORDYNAMICROUTERESULT_H_

+ 66 - 0
csas/include/alibabacloud/csas/model/ListPrivateAccessApplicationsRequest.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_LISTPRIVATEACCESSAPPLICATIONSREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSAPPLICATIONSREQUEST_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 ListPrivateAccessApplicationsRequest : public RpcServiceRequest {
+public:
+	ListPrivateAccessApplicationsRequest();
+	~ListPrivateAccessApplicationsRequest();
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getPolicyId() const;
+	void setPolicyId(const std::string &policyId);
+	int getPageSize() const;
+	void setPageSize(int pageSize);
+	std::string getAddress() const;
+	void setAddress(const std::string &address);
+	std::string getTagId() const;
+	void setTagId(const std::string &tagId);
+	int getCurrentPage() const;
+	void setCurrentPage(int currentPage);
+	std::vector<std::string> getApplicationIds() const;
+	void setApplicationIds(const std::vector<std::string> &applicationIds);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
+
+private:
+	std::string sourceIp_;
+	std::string policyId_;
+	int pageSize_;
+	std::string address_;
+	std::string tagId_;
+	int currentPage_;
+	std::vector<std::string> applicationIds_;
+	std::string name_;
+	std::string status_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSAPPLICATIONSREQUEST_H_

+ 71 - 0
csas/include/alibabacloud/csas/model/ListPrivateAccessApplicationsResult.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_LISTPRIVATEACCESSAPPLICATIONSRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSAPPLICATIONSRESULT_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 ListPrivateAccessApplicationsResult : public ServiceResult
+			{
+			public:
+				struct Application
+				{
+					struct PortRange
+					{
+						int begin;
+						int end;
+					};
+					std::string status;
+					std::vector<std::string> addresses;
+					std::string description;
+					std::vector<std::string> tagIds;
+					std::vector<Application::PortRange> portRanges;
+					std::string createTime;
+					std::vector<std::string> policyIds;
+					std::string applicationId;
+					std::string protocol;
+					std::string name;
+				};
+
+
+				ListPrivateAccessApplicationsResult();
+				explicit ListPrivateAccessApplicationsResult(const std::string &payload);
+				~ListPrivateAccessApplicationsResult();
+				int getTotalNum()const;
+				std::vector<Application> getApplications()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalNum_;
+				std::vector<Application> applications_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSAPPLICATIONSRESULT_H_

+ 69 - 0
csas/include/alibabacloud/csas/model/ListPrivateAccessPolicesRequest.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_LISTPRIVATEACCESSPOLICESREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSPOLICESREQUEST_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 ListPrivateAccessPolicesRequest : public RpcServiceRequest {
+public:
+	ListPrivateAccessPolicesRequest();
+	~ListPrivateAccessPolicesRequest();
+	std::vector<std::string> getPolicyIds() const;
+	void setPolicyIds(const std::vector<std::string> &policyIds);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	int getPageSize() const;
+	void setPageSize(int pageSize);
+	std::string getApplicationId() const;
+	void setApplicationId(const std::string &applicationId);
+	std::string getTagId() const;
+	void setTagId(const std::string &tagId);
+	std::string getUserGroupId() const;
+	void setUserGroupId(const std::string &userGroupId);
+	int getCurrentPage() const;
+	void setCurrentPage(int currentPage);
+	std::string getPolicyAction() const;
+	void setPolicyAction(const std::string &policyAction);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
+
+private:
+	std::vector<std::string> policyIds_;
+	std::string sourceIp_;
+	int pageSize_;
+	std::string applicationId_;
+	std::string tagId_;
+	std::string userGroupId_;
+	int currentPage_;
+	std::string policyAction_;
+	std::string name_;
+	std::string status_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSPOLICESREQUEST_H_

+ 76 - 0
csas/include/alibabacloud/csas/model/ListPrivateAccessPolicesResult.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_LISTPRIVATEACCESSPOLICESRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSPOLICESRESULT_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 ListPrivateAccessPolicesResult : public ServiceResult
+			{
+			public:
+				struct Policy
+				{
+					struct CustomUserAttribute
+					{
+						std::string relation;
+						int idpId;
+						std::string userGroupType;
+						std::string value;
+					};
+					std::vector<Policy::CustomUserAttribute> customUserAttributes;
+					std::string status;
+					std::string description;
+					std::vector<std::string> tagIds;
+					int priority;
+					std::vector<std::string> applicationIds;
+					std::string createTime;
+					std::string name;
+					std::string userGroupMode;
+					std::string applicationType;
+					std::vector<std::string> userGroupIds;
+					std::string policyAction;
+					std::string policyId;
+				};
+
+
+				ListPrivateAccessPolicesResult();
+				explicit ListPrivateAccessPolicesResult(const std::string &payload);
+				~ListPrivateAccessPolicesResult();
+				int getTotalNum()const;
+				std::vector<Policy> getPolices()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalNum_;
+				std::vector<Policy> polices_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSPOLICESRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/ListPrivateAccessTagsForDynamicRouteRequest.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_LISTPRIVATEACCESSTAGSFORDYNAMICROUTEREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSTAGSFORDYNAMICROUTEREQUEST_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 ListPrivateAccessTagsForDynamicRouteRequest : public RpcServiceRequest {
+public:
+	ListPrivateAccessTagsForDynamicRouteRequest();
+	~ListPrivateAccessTagsForDynamicRouteRequest();
+	std::vector<std::string> getDynamicRouteIds() const;
+	void setDynamicRouteIds(const std::vector<std::string> &dynamicRouteIds);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::vector<std::string> dynamicRouteIds_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSTAGSFORDYNAMICROUTEREQUEST_H_

+ 64 - 0
csas/include/alibabacloud/csas/model/ListPrivateAccessTagsForDynamicRouteResult.h

@@ -0,0 +1,64 @@
+/*
+ * 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_LISTPRIVATEACCESSTAGSFORDYNAMICROUTERESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSTAGSFORDYNAMICROUTERESULT_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 ListPrivateAccessTagsForDynamicRouteResult : public ServiceResult
+			{
+			public:
+				struct DynamicRoute
+				{
+					struct Tag
+					{
+						std::string tagType;
+						std::string description;
+						std::string createTime;
+						std::string tagId;
+						std::string name;
+					};
+					std::string dynamicRouteId;
+					std::vector<DynamicRoute::Tag> tags;
+				};
+
+
+				ListPrivateAccessTagsForDynamicRouteResult();
+				explicit ListPrivateAccessTagsForDynamicRouteResult(const std::string &payload);
+				~ListPrivateAccessTagsForDynamicRouteResult();
+				std::vector<DynamicRoute> getDynamicRoutes()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<DynamicRoute> dynamicRoutes_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSTAGSFORDYNAMICROUTERESULT_H_

+ 60 - 0
csas/include/alibabacloud/csas/model/ListPrivateAccessTagsRequest.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_LISTPRIVATEACCESSTAGSREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSTAGSREQUEST_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 ListPrivateAccessTagsRequest : public RpcServiceRequest {
+public:
+	ListPrivateAccessTagsRequest();
+	~ListPrivateAccessTagsRequest();
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getPolicyId() const;
+	void setPolicyId(const std::string &policyId);
+	int getPageSize() const;
+	void setPageSize(int pageSize);
+	std::string getApplicationId() const;
+	void setApplicationId(const std::string &applicationId);
+	std::vector<std::string> getTagIds() const;
+	void setTagIds(const std::vector<std::string> &tagIds);
+	int getCurrentPage() const;
+	void setCurrentPage(int currentPage);
+	std::string getName() const;
+	void setName(const std::string &name);
+
+private:
+	std::string sourceIp_;
+	std::string policyId_;
+	int pageSize_;
+	std::string applicationId_;
+	std::vector<std::string> tagIds_;
+	int currentPage_;
+	std::string name_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSTAGSREQUEST_H_

+ 63 - 0
csas/include/alibabacloud/csas/model/ListPrivateAccessTagsResult.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSTAGSRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSTAGSRESULT_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 ListPrivateAccessTagsResult : public ServiceResult
+			{
+			public:
+				struct Tag
+				{
+					std::string tagType;
+					std::string description;
+					std::vector<std::string> applicationIds;
+					std::string createTime;
+					std::string tagId;
+					std::vector<std::string> policyIds;
+					std::string name;
+				};
+
+
+				ListPrivateAccessTagsResult();
+				explicit ListPrivateAccessTagsResult(const std::string &payload);
+				~ListPrivateAccessTagsResult();
+				int getTotalNum()const;
+				std::vector<Tag> getTags()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalNum_;
+				std::vector<Tag> tags_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTPRIVATEACCESSTAGSRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/ListTagsForPrivateAccessApplicationRequest.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_LISTTAGSFORPRIVATEACCESSAPPLICATIONREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTTAGSFORPRIVATEACCESSAPPLICATIONREQUEST_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 ListTagsForPrivateAccessApplicationRequest : public RpcServiceRequest {
+public:
+	ListTagsForPrivateAccessApplicationRequest();
+	~ListTagsForPrivateAccessApplicationRequest();
+	std::vector<std::string> getApplicationIds() const;
+	void setApplicationIds(const std::vector<std::string> &applicationIds);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+
+private:
+	std::vector<std::string> applicationIds_;
+	std::string sourceIp_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTTAGSFORPRIVATEACCESSAPPLICATIONREQUEST_H_

+ 64 - 0
csas/include/alibabacloud/csas/model/ListTagsForPrivateAccessApplicationResult.h

@@ -0,0 +1,64 @@
+/*
+ * 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_LISTTAGSFORPRIVATEACCESSAPPLICATIONRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTTAGSFORPRIVATEACCESSAPPLICATIONRESULT_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 ListTagsForPrivateAccessApplicationResult : public ServiceResult
+			{
+			public:
+				struct Application
+				{
+					struct Tag
+					{
+						std::string tagType;
+						std::string description;
+						std::string createTime;
+						std::string tagId;
+						std::string name;
+					};
+					std::string applicationId;
+					std::vector<Application::Tag> tags;
+				};
+
+
+				ListTagsForPrivateAccessApplicationResult();
+				explicit ListTagsForPrivateAccessApplicationResult(const std::string &payload);
+				~ListTagsForPrivateAccessApplicationResult();
+				std::vector<Application> getApplications()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Application> applications_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTTAGSFORPRIVATEACCESSAPPLICATIONRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/ListTagsForPrivateAccessPolicyRequest.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_LISTTAGSFORPRIVATEACCESSPOLICYREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTTAGSFORPRIVATEACCESSPOLICYREQUEST_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 ListTagsForPrivateAccessPolicyRequest : public RpcServiceRequest {
+public:
+	ListTagsForPrivateAccessPolicyRequest();
+	~ListTagsForPrivateAccessPolicyRequest();
+	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_LISTTAGSFORPRIVATEACCESSPOLICYREQUEST_H_

+ 64 - 0
csas/include/alibabacloud/csas/model/ListTagsForPrivateAccessPolicyResult.h

@@ -0,0 +1,64 @@
+/*
+ * 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_LISTTAGSFORPRIVATEACCESSPOLICYRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTTAGSFORPRIVATEACCESSPOLICYRESULT_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 ListTagsForPrivateAccessPolicyResult : public ServiceResult
+			{
+			public:
+				struct Policy
+				{
+					struct Tag
+					{
+						std::string tagType;
+						std::string description;
+						std::string createTime;
+						std::string tagId;
+						std::string name;
+					};
+					std::vector<Policy::Tag> tags;
+					std::string policyId;
+				};
+
+
+				ListTagsForPrivateAccessPolicyResult();
+				explicit ListTagsForPrivateAccessPolicyResult(const std::string &payload);
+				~ListTagsForPrivateAccessPolicyResult();
+				std::vector<Policy> getPolices()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Policy> polices_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTTAGSFORPRIVATEACCESSPOLICYRESULT_H_

+ 45 - 0
csas/include/alibabacloud/csas/model/ListUserGroupsForPrivateAccessPolicyRequest.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_LISTUSERGROUPSFORPRIVATEACCESSPOLICYREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTUSERGROUPSFORPRIVATEACCESSPOLICYREQUEST_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 ListUserGroupsForPrivateAccessPolicyRequest : public RpcServiceRequest {
+public:
+	ListUserGroupsForPrivateAccessPolicyRequest();
+	~ListUserGroupsForPrivateAccessPolicyRequest();
+	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_LISTUSERGROUPSFORPRIVATEACCESSPOLICYREQUEST_H_

+ 71 - 0
csas/include/alibabacloud/csas/model/ListUserGroupsForPrivateAccessPolicyResult.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_LISTUSERGROUPSFORPRIVATEACCESSPOLICYRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTUSERGROUPSFORPRIVATEACCESSPOLICYRESULT_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 ListUserGroupsForPrivateAccessPolicyResult : public ServiceResult
+			{
+			public:
+				struct Policy
+				{
+					struct UserGroup
+					{
+						struct Attribute
+						{
+							std::string relation;
+							int idpId;
+							std::string userGroupType;
+							std::string value;
+						};
+						std::string description;
+						std::string userGroupId;
+						std::string createTime;
+						std::vector<UserGroup::Attribute> attributes;
+						std::string name;
+					};
+					std::string policyId;
+					std::vector<Policy::UserGroup> userGroups;
+				};
+
+
+				ListUserGroupsForPrivateAccessPolicyResult();
+				explicit ListUserGroupsForPrivateAccessPolicyResult(const std::string &payload);
+				~ListUserGroupsForPrivateAccessPolicyResult();
+				std::vector<Policy> getPolices()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Policy> polices_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTUSERGROUPSFORPRIVATEACCESSPOLICYRESULT_H_

+ 60 - 0
csas/include/alibabacloud/csas/model/ListUserGroupsRequest.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_LISTUSERGROUPSREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTUSERGROUPSREQUEST_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 ListUserGroupsRequest : public RpcServiceRequest {
+public:
+	ListUserGroupsRequest();
+	~ListUserGroupsRequest();
+	std::string getAttributeValue() const;
+	void setAttributeValue(const std::string &attributeValue);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getPAPolicyId() const;
+	void setPAPolicyId(const std::string &pAPolicyId);
+	int getPageSize() const;
+	void setPageSize(int pageSize);
+	int getCurrentPage() const;
+	void setCurrentPage(int currentPage);
+	std::vector<std::string> getUserGroupIds() const;
+	void setUserGroupIds(const std::vector<std::string> &userGroupIds);
+	std::string getName() const;
+	void setName(const std::string &name);
+
+private:
+	std::string attributeValue_;
+	std::string sourceIp_;
+	std::string pAPolicyId_;
+	int pageSize_;
+	int currentPage_;
+	std::vector<std::string> userGroupIds_;
+	std::string name_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTUSERGROUPSREQUEST_H_

+ 68 - 0
csas/include/alibabacloud/csas/model/ListUserGroupsResult.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_LISTUSERGROUPSRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_LISTUSERGROUPSRESULT_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 ListUserGroupsResult : public ServiceResult
+			{
+			public:
+				struct UserGroup
+				{
+					struct Attribute
+					{
+						std::string relation;
+						int idpId;
+						std::string userGroupType;
+						std::string value;
+					};
+					std::string description;
+					std::string userGroupId;
+					std::string createTime;
+					std::vector<UserGroup::Attribute> attributes;
+					std::string name;
+				};
+
+
+				ListUserGroupsResult();
+				explicit ListUserGroupsResult(const std::string &payload);
+				~ListUserGroupsResult();
+				int getTotalNum()const;
+				std::vector<UserGroup> getUserGroups()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalNum_;
+				std::vector<UserGroup> userGroups_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_LISTUSERGROUPSRESULT_H_

+ 78 - 0
csas/include/alibabacloud/csas/model/UpdateDynamicRouteRequest.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_UPDATEDYNAMICROUTEREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEDYNAMICROUTEREQUEST_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 UpdateDynamicRouteRequest : public RpcServiceRequest {
+public:
+	UpdateDynamicRouteRequest();
+	~UpdateDynamicRouteRequest();
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getDynamicRouteId() const;
+	void setDynamicRouteId(const std::string &dynamicRouteId);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getDynamicRouteType() const;
+	void setDynamicRouteType(const std::string &dynamicRouteType);
+	std::vector<std::string> getTagIds() const;
+	void setTagIds(const std::vector<std::string> &tagIds);
+	std::vector<std::string> getRegionIds() const;
+	void setRegionIds(const std::vector<std::string> &regionIds);
+	int getPriority() const;
+	void setPriority(int priority);
+	std::string getNextHop() const;
+	void setNextHop(const std::string &nextHop);
+	std::vector<std::string> getApplicationIds() const;
+	void setApplicationIds(const std::vector<std::string> &applicationIds);
+	std::string getModifyType() const;
+	void setModifyType(const std::string &modifyType);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::string getApplicationType() const;
+	void setApplicationType(const std::string &applicationType);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
+
+private:
+	std::string description_;
+	std::string dynamicRouteId_;
+	std::string sourceIp_;
+	std::string dynamicRouteType_;
+	std::vector<std::string> tagIds_;
+	std::vector<std::string> regionIds_;
+	int priority_;
+	std::string nextHop_;
+	std::vector<std::string> applicationIds_;
+	std::string modifyType_;
+	std::string name_;
+	std::string applicationType_;
+	std::string status_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEDYNAMICROUTEREQUEST_H_

+ 49 - 0
csas/include/alibabacloud/csas/model/UpdateDynamicRouteResult.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_UPDATEDYNAMICROUTERESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEDYNAMICROUTERESULT_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 UpdateDynamicRouteResult : public ServiceResult
+			{
+			public:
+
+
+				UpdateDynamicRouteResult();
+				explicit UpdateDynamicRouteResult(const std::string &payload);
+				~UpdateDynamicRouteResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEDYNAMICROUTERESULT_H_

+ 70 - 0
csas/include/alibabacloud/csas/model/UpdatePrivateAccessApplicationRequest.h

@@ -0,0 +1,70 @@
+/*
+ * 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_UPDATEPRIVATEACCESSAPPLICATIONREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEPRIVATEACCESSAPPLICATIONREQUEST_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 UpdatePrivateAccessApplicationRequest : public RpcServiceRequest {
+public:
+	struct PortRanges {
+		int end;
+		int begin;
+	};
+	UpdatePrivateAccessApplicationRequest();
+	~UpdatePrivateAccessApplicationRequest();
+	std::vector<std::string> getAddresses() const;
+	void setAddresses(const std::vector<std::string> &addresses);
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getProtocol() const;
+	void setProtocol(const std::string &protocol);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getApplicationId() const;
+	void setApplicationId(const std::string &applicationId);
+	std::vector<std::string> getTagIds() const;
+	void setTagIds(const std::vector<std::string> &tagIds);
+	std::vector<PortRanges> getPortRanges() const;
+	void setPortRanges(const std::vector<PortRanges> &portRanges);
+	std::string getModifyType() const;
+	void setModifyType(const std::string &modifyType);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
+
+private:
+	std::vector<std::string> addresses_;
+	std::string description_;
+	std::string protocol_;
+	std::string sourceIp_;
+	std::string applicationId_;
+	std::vector<std::string> tagIds_;
+	std::vector<PortRanges> portRanges_;
+	std::string modifyType_;
+	std::string status_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEPRIVATEACCESSAPPLICATIONREQUEST_H_

+ 49 - 0
csas/include/alibabacloud/csas/model/UpdatePrivateAccessApplicationResult.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_UPDATEPRIVATEACCESSAPPLICATIONRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEPRIVATEACCESSAPPLICATIONRESULT_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 UpdatePrivateAccessApplicationResult : public ServiceResult
+			{
+			public:
+
+
+				UpdatePrivateAccessApplicationResult();
+				explicit UpdatePrivateAccessApplicationResult(const std::string &payload);
+				~UpdatePrivateAccessApplicationResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEPRIVATEACCESSAPPLICATIONRESULT_H_

+ 84 - 0
csas/include/alibabacloud/csas/model/UpdatePrivateAccessPolicyRequest.h

@@ -0,0 +1,84 @@
+/*
+ * 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_UPDATEPRIVATEACCESSPOLICYREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEPRIVATEACCESSPOLICYREQUEST_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 UpdatePrivateAccessPolicyRequest : public RpcServiceRequest {
+public:
+	struct CustomUserAttributes {
+		std::string userGroupType;
+		int idpId;
+		std::string value;
+		std::string relation;
+	};
+	UpdatePrivateAccessPolicyRequest();
+	~UpdatePrivateAccessPolicyRequest();
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getPolicyId() const;
+	void setPolicyId(const std::string &policyId);
+	std::vector<CustomUserAttributes> getCustomUserAttributes() const;
+	void setCustomUserAttributes(const std::vector<CustomUserAttributes> &customUserAttributes);
+	std::vector<std::string> getTagIds() const;
+	void setTagIds(const std::vector<std::string> &tagIds);
+	std::vector<std::string> getUserGroupIds() const;
+	void setUserGroupIds(const std::vector<std::string> &userGroupIds);
+	std::string getPolicyAction() const;
+	void setPolicyAction(const std::string &policyAction);
+	int getPriority() const;
+	void setPriority(int priority);
+	std::vector<std::string> getApplicationIds() const;
+	void setApplicationIds(const std::vector<std::string> &applicationIds);
+	std::string getUserGroupMode() const;
+	void setUserGroupMode(const std::string &userGroupMode);
+	std::string getModifyType() const;
+	void setModifyType(const std::string &modifyType);
+	std::string getApplicationType() const;
+	void setApplicationType(const std::string &applicationType);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
+
+private:
+	std::string description_;
+	std::string sourceIp_;
+	std::string policyId_;
+	std::vector<CustomUserAttributes> customUserAttributes_;
+	std::vector<std::string> tagIds_;
+	std::vector<std::string> userGroupIds_;
+	std::string policyAction_;
+	int priority_;
+	std::vector<std::string> applicationIds_;
+	std::string userGroupMode_;
+	std::string modifyType_;
+	std::string applicationType_;
+	std::string status_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEPRIVATEACCESSPOLICYREQUEST_H_

+ 49 - 0
csas/include/alibabacloud/csas/model/UpdatePrivateAccessPolicyResult.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_UPDATEPRIVATEACCESSPOLICYRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEPRIVATEACCESSPOLICYRESULT_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 UpdatePrivateAccessPolicyResult : public ServiceResult
+			{
+			public:
+
+
+				UpdatePrivateAccessPolicyResult();
+				explicit UpdatePrivateAccessPolicyResult(const std::string &payload);
+				~UpdatePrivateAccessPolicyResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEPRIVATEACCESSPOLICYRESULT_H_

+ 60 - 0
csas/include/alibabacloud/csas/model/UpdateUserGroupRequest.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_UPDATEUSERGROUPREQUEST_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEUSERGROUPREQUEST_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 UpdateUserGroupRequest : public RpcServiceRequest {
+public:
+	struct Attributes {
+		std::string userGroupType;
+		int idpId;
+		std::string value;
+		std::string relation;
+	};
+	UpdateUserGroupRequest();
+	~UpdateUserGroupRequest();
+	std::string getUserGroupId() const;
+	void setUserGroupId(const std::string &userGroupId);
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::string getSourceIp() const;
+	void setSourceIp(const std::string &sourceIp);
+	std::string getModifyType() const;
+	void setModifyType(const std::string &modifyType);
+	std::vector<Attributes> getAttributes() const;
+	void setAttributes(const std::vector<Attributes> &attributes);
+
+private:
+	std::string userGroupId_;
+	std::string description_;
+	std::string sourceIp_;
+	std::string modifyType_;
+	std::vector<Attributes> attributes_;
+};
+} // namespace Model
+} // namespace Csas
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEUSERGROUPREQUEST_H_

+ 49 - 0
csas/include/alibabacloud/csas/model/UpdateUserGroupResult.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_UPDATEUSERGROUPRESULT_H_
+#define ALIBABACLOUD_CSAS_MODEL_UPDATEUSERGROUPRESULT_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 UpdateUserGroupResult : public ServiceResult
+			{
+			public:
+
+
+				UpdateUserGroupResult();
+				explicit UpdateUserGroupResult(const std::string &payload);
+				~UpdateUserGroupResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CSAS_MODEL_UPDATEUSERGROUPRESULT_H_

+ 1385 - 0
csas/src/CsasClient.cc

@@ -0,0 +1,1385 @@
+/*
+ * 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/CsasClient.h>
+#include <alibabacloud/core/SimpleCredentialsProvider.h>
+
+using namespace AlibabaCloud;
+using namespace AlibabaCloud::Location;
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+namespace
+{
+	const std::string SERVICE_NAME = "csas";
+}
+
+CsasClient::CsasClient(const Credentials &credentials, const ClientConfiguration &configuration) :
+	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(credentials), configuration)
+{
+	auto locationClient = std::make_shared<LocationClient>(credentials, configuration);
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+}
+
+CsasClient::CsasClient(const std::shared_ptr<CredentialsProvider>& credentialsProvider, const ClientConfiguration & configuration) :
+	RpcServiceClient(SERVICE_NAME, credentialsProvider, configuration)
+{
+	auto locationClient = std::make_shared<LocationClient>(credentialsProvider, configuration);
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+}
+
+CsasClient::CsasClient(const std::string & accessKeyId, const std::string & accessKeySecret, const ClientConfiguration & configuration) :
+	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(accessKeyId, accessKeySecret), configuration)
+{
+	auto locationClient = std::make_shared<LocationClient>(accessKeyId, accessKeySecret, configuration);
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "");
+}
+
+CsasClient::~CsasClient()
+{}
+
+CsasClient::AttachApplication2ConnectorOutcome CsasClient::attachApplication2Connector(const AttachApplication2ConnectorRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return AttachApplication2ConnectorOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return AttachApplication2ConnectorOutcome(AttachApplication2ConnectorResult(outcome.result()));
+	else
+		return AttachApplication2ConnectorOutcome(outcome.error());
+}
+
+void CsasClient::attachApplication2ConnectorAsync(const AttachApplication2ConnectorRequest& request, const AttachApplication2ConnectorAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, attachApplication2Connector(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::AttachApplication2ConnectorOutcomeCallable CsasClient::attachApplication2ConnectorCallable(const AttachApplication2ConnectorRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<AttachApplication2ConnectorOutcome()>>(
+			[this, request]()
+			{
+			return this->attachApplication2Connector(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::CreateDynamicRouteOutcome CsasClient::createDynamicRoute(const CreateDynamicRouteRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateDynamicRouteOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateDynamicRouteOutcome(CreateDynamicRouteResult(outcome.result()));
+	else
+		return CreateDynamicRouteOutcome(outcome.error());
+}
+
+void CsasClient::createDynamicRouteAsync(const CreateDynamicRouteRequest& request, const CreateDynamicRouteAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createDynamicRoute(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::CreateDynamicRouteOutcomeCallable CsasClient::createDynamicRouteCallable(const CreateDynamicRouteRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateDynamicRouteOutcome()>>(
+			[this, request]()
+			{
+			return this->createDynamicRoute(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::CreatePrivateAccessApplicationOutcome CsasClient::createPrivateAccessApplication(const CreatePrivateAccessApplicationRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreatePrivateAccessApplicationOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreatePrivateAccessApplicationOutcome(CreatePrivateAccessApplicationResult(outcome.result()));
+	else
+		return CreatePrivateAccessApplicationOutcome(outcome.error());
+}
+
+void CsasClient::createPrivateAccessApplicationAsync(const CreatePrivateAccessApplicationRequest& request, const CreatePrivateAccessApplicationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createPrivateAccessApplication(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::CreatePrivateAccessApplicationOutcomeCallable CsasClient::createPrivateAccessApplicationCallable(const CreatePrivateAccessApplicationRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreatePrivateAccessApplicationOutcome()>>(
+			[this, request]()
+			{
+			return this->createPrivateAccessApplication(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::CreatePrivateAccessPolicyOutcome CsasClient::createPrivateAccessPolicy(const CreatePrivateAccessPolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreatePrivateAccessPolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreatePrivateAccessPolicyOutcome(CreatePrivateAccessPolicyResult(outcome.result()));
+	else
+		return CreatePrivateAccessPolicyOutcome(outcome.error());
+}
+
+void CsasClient::createPrivateAccessPolicyAsync(const CreatePrivateAccessPolicyRequest& request, const CreatePrivateAccessPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createPrivateAccessPolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::CreatePrivateAccessPolicyOutcomeCallable CsasClient::createPrivateAccessPolicyCallable(const CreatePrivateAccessPolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreatePrivateAccessPolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->createPrivateAccessPolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::CreatePrivateAccessTagOutcome CsasClient::createPrivateAccessTag(const CreatePrivateAccessTagRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreatePrivateAccessTagOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreatePrivateAccessTagOutcome(CreatePrivateAccessTagResult(outcome.result()));
+	else
+		return CreatePrivateAccessTagOutcome(outcome.error());
+}
+
+void CsasClient::createPrivateAccessTagAsync(const CreatePrivateAccessTagRequest& request, const CreatePrivateAccessTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createPrivateAccessTag(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::CreatePrivateAccessTagOutcomeCallable CsasClient::createPrivateAccessTagCallable(const CreatePrivateAccessTagRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreatePrivateAccessTagOutcome()>>(
+			[this, request]()
+			{
+			return this->createPrivateAccessTag(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::CreateUserGroupOutcome CsasClient::createUserGroup(const CreateUserGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateUserGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateUserGroupOutcome(CreateUserGroupResult(outcome.result()));
+	else
+		return CreateUserGroupOutcome(outcome.error());
+}
+
+void CsasClient::createUserGroupAsync(const CreateUserGroupRequest& request, const CreateUserGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createUserGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::CreateUserGroupOutcomeCallable CsasClient::createUserGroupCallable(const CreateUserGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateUserGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->createUserGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::DeleteDynamicRouteOutcome CsasClient::deleteDynamicRoute(const DeleteDynamicRouteRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteDynamicRouteOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteDynamicRouteOutcome(DeleteDynamicRouteResult(outcome.result()));
+	else
+		return DeleteDynamicRouteOutcome(outcome.error());
+}
+
+void CsasClient::deleteDynamicRouteAsync(const DeleteDynamicRouteRequest& request, const DeleteDynamicRouteAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteDynamicRoute(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::DeleteDynamicRouteOutcomeCallable CsasClient::deleteDynamicRouteCallable(const DeleteDynamicRouteRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteDynamicRouteOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteDynamicRoute(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::DeletePrivateAccessApplicationOutcome CsasClient::deletePrivateAccessApplication(const DeletePrivateAccessApplicationRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeletePrivateAccessApplicationOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeletePrivateAccessApplicationOutcome(DeletePrivateAccessApplicationResult(outcome.result()));
+	else
+		return DeletePrivateAccessApplicationOutcome(outcome.error());
+}
+
+void CsasClient::deletePrivateAccessApplicationAsync(const DeletePrivateAccessApplicationRequest& request, const DeletePrivateAccessApplicationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deletePrivateAccessApplication(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::DeletePrivateAccessApplicationOutcomeCallable CsasClient::deletePrivateAccessApplicationCallable(const DeletePrivateAccessApplicationRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeletePrivateAccessApplicationOutcome()>>(
+			[this, request]()
+			{
+			return this->deletePrivateAccessApplication(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::DeletePrivateAccessPolicyOutcome CsasClient::deletePrivateAccessPolicy(const DeletePrivateAccessPolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeletePrivateAccessPolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeletePrivateAccessPolicyOutcome(DeletePrivateAccessPolicyResult(outcome.result()));
+	else
+		return DeletePrivateAccessPolicyOutcome(outcome.error());
+}
+
+void CsasClient::deletePrivateAccessPolicyAsync(const DeletePrivateAccessPolicyRequest& request, const DeletePrivateAccessPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deletePrivateAccessPolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::DeletePrivateAccessPolicyOutcomeCallable CsasClient::deletePrivateAccessPolicyCallable(const DeletePrivateAccessPolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeletePrivateAccessPolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->deletePrivateAccessPolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::DeletePrivateAccessTagOutcome CsasClient::deletePrivateAccessTag(const DeletePrivateAccessTagRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeletePrivateAccessTagOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeletePrivateAccessTagOutcome(DeletePrivateAccessTagResult(outcome.result()));
+	else
+		return DeletePrivateAccessTagOutcome(outcome.error());
+}
+
+void CsasClient::deletePrivateAccessTagAsync(const DeletePrivateAccessTagRequest& request, const DeletePrivateAccessTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deletePrivateAccessTag(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::DeletePrivateAccessTagOutcomeCallable CsasClient::deletePrivateAccessTagCallable(const DeletePrivateAccessTagRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeletePrivateAccessTagOutcome()>>(
+			[this, request]()
+			{
+			return this->deletePrivateAccessTag(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::DeleteUserGroupOutcome CsasClient::deleteUserGroup(const DeleteUserGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteUserGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteUserGroupOutcome(DeleteUserGroupResult(outcome.result()));
+	else
+		return DeleteUserGroupOutcome(outcome.error());
+}
+
+void CsasClient::deleteUserGroupAsync(const DeleteUserGroupRequest& request, const DeleteUserGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteUserGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::DeleteUserGroupOutcomeCallable CsasClient::deleteUserGroupCallable(const DeleteUserGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteUserGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteUserGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::DetachApplication2ConnectorOutcome CsasClient::detachApplication2Connector(const DetachApplication2ConnectorRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DetachApplication2ConnectorOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DetachApplication2ConnectorOutcome(DetachApplication2ConnectorResult(outcome.result()));
+	else
+		return DetachApplication2ConnectorOutcome(outcome.error());
+}
+
+void CsasClient::detachApplication2ConnectorAsync(const DetachApplication2ConnectorRequest& request, const DetachApplication2ConnectorAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, detachApplication2Connector(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::DetachApplication2ConnectorOutcomeCallable CsasClient::detachApplication2ConnectorCallable(const DetachApplication2ConnectorRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DetachApplication2ConnectorOutcome()>>(
+			[this, request]()
+			{
+			return this->detachApplication2Connector(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::GetDynamicRouteOutcome CsasClient::getDynamicRoute(const GetDynamicRouteRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetDynamicRouteOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetDynamicRouteOutcome(GetDynamicRouteResult(outcome.result()));
+	else
+		return GetDynamicRouteOutcome(outcome.error());
+}
+
+void CsasClient::getDynamicRouteAsync(const GetDynamicRouteRequest& request, const GetDynamicRouteAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getDynamicRoute(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::GetDynamicRouteOutcomeCallable CsasClient::getDynamicRouteCallable(const GetDynamicRouteRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetDynamicRouteOutcome()>>(
+			[this, request]()
+			{
+			return this->getDynamicRoute(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::GetPrivateAccessApplicationOutcome CsasClient::getPrivateAccessApplication(const GetPrivateAccessApplicationRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetPrivateAccessApplicationOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetPrivateAccessApplicationOutcome(GetPrivateAccessApplicationResult(outcome.result()));
+	else
+		return GetPrivateAccessApplicationOutcome(outcome.error());
+}
+
+void CsasClient::getPrivateAccessApplicationAsync(const GetPrivateAccessApplicationRequest& request, const GetPrivateAccessApplicationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getPrivateAccessApplication(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::GetPrivateAccessApplicationOutcomeCallable CsasClient::getPrivateAccessApplicationCallable(const GetPrivateAccessApplicationRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetPrivateAccessApplicationOutcome()>>(
+			[this, request]()
+			{
+			return this->getPrivateAccessApplication(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::GetPrivateAccessPolicyOutcome CsasClient::getPrivateAccessPolicy(const GetPrivateAccessPolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetPrivateAccessPolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetPrivateAccessPolicyOutcome(GetPrivateAccessPolicyResult(outcome.result()));
+	else
+		return GetPrivateAccessPolicyOutcome(outcome.error());
+}
+
+void CsasClient::getPrivateAccessPolicyAsync(const GetPrivateAccessPolicyRequest& request, const GetPrivateAccessPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getPrivateAccessPolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::GetPrivateAccessPolicyOutcomeCallable CsasClient::getPrivateAccessPolicyCallable(const GetPrivateAccessPolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetPrivateAccessPolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->getPrivateAccessPolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::GetUserGroupOutcome CsasClient::getUserGroup(const GetUserGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetUserGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetUserGroupOutcome(GetUserGroupResult(outcome.result()));
+	else
+		return GetUserGroupOutcome(outcome.error());
+}
+
+void CsasClient::getUserGroupAsync(const GetUserGroupRequest& request, const GetUserGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getUserGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::GetUserGroupOutcomeCallable CsasClient::getUserGroupCallable(const GetUserGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetUserGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->getUserGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListApplicationsForPrivateAccessPolicyOutcome CsasClient::listApplicationsForPrivateAccessPolicy(const ListApplicationsForPrivateAccessPolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListApplicationsForPrivateAccessPolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListApplicationsForPrivateAccessPolicyOutcome(ListApplicationsForPrivateAccessPolicyResult(outcome.result()));
+	else
+		return ListApplicationsForPrivateAccessPolicyOutcome(outcome.error());
+}
+
+void CsasClient::listApplicationsForPrivateAccessPolicyAsync(const ListApplicationsForPrivateAccessPolicyRequest& request, const ListApplicationsForPrivateAccessPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listApplicationsForPrivateAccessPolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListApplicationsForPrivateAccessPolicyOutcomeCallable CsasClient::listApplicationsForPrivateAccessPolicyCallable(const ListApplicationsForPrivateAccessPolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListApplicationsForPrivateAccessPolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->listApplicationsForPrivateAccessPolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListApplicationsForPrivateAccessTagOutcome CsasClient::listApplicationsForPrivateAccessTag(const ListApplicationsForPrivateAccessTagRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListApplicationsForPrivateAccessTagOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListApplicationsForPrivateAccessTagOutcome(ListApplicationsForPrivateAccessTagResult(outcome.result()));
+	else
+		return ListApplicationsForPrivateAccessTagOutcome(outcome.error());
+}
+
+void CsasClient::listApplicationsForPrivateAccessTagAsync(const ListApplicationsForPrivateAccessTagRequest& request, const ListApplicationsForPrivateAccessTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listApplicationsForPrivateAccessTag(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListApplicationsForPrivateAccessTagOutcomeCallable CsasClient::listApplicationsForPrivateAccessTagCallable(const ListApplicationsForPrivateAccessTagRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListApplicationsForPrivateAccessTagOutcome()>>(
+			[this, request]()
+			{
+			return this->listApplicationsForPrivateAccessTag(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListConnectorsOutcome CsasClient::listConnectors(const ListConnectorsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListConnectorsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListConnectorsOutcome(ListConnectorsResult(outcome.result()));
+	else
+		return ListConnectorsOutcome(outcome.error());
+}
+
+void CsasClient::listConnectorsAsync(const ListConnectorsRequest& request, const ListConnectorsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listConnectors(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListConnectorsOutcomeCallable CsasClient::listConnectorsCallable(const ListConnectorsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListConnectorsOutcome()>>(
+			[this, request]()
+			{
+			return this->listConnectors(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListDynamicRouteRegionsOutcome CsasClient::listDynamicRouteRegions(const ListDynamicRouteRegionsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListDynamicRouteRegionsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListDynamicRouteRegionsOutcome(ListDynamicRouteRegionsResult(outcome.result()));
+	else
+		return ListDynamicRouteRegionsOutcome(outcome.error());
+}
+
+void CsasClient::listDynamicRouteRegionsAsync(const ListDynamicRouteRegionsRequest& request, const ListDynamicRouteRegionsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listDynamicRouteRegions(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListDynamicRouteRegionsOutcomeCallable CsasClient::listDynamicRouteRegionsCallable(const ListDynamicRouteRegionsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListDynamicRouteRegionsOutcome()>>(
+			[this, request]()
+			{
+			return this->listDynamicRouteRegions(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListDynamicRoutesOutcome CsasClient::listDynamicRoutes(const ListDynamicRoutesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListDynamicRoutesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListDynamicRoutesOutcome(ListDynamicRoutesResult(outcome.result()));
+	else
+		return ListDynamicRoutesOutcome(outcome.error());
+}
+
+void CsasClient::listDynamicRoutesAsync(const ListDynamicRoutesRequest& request, const ListDynamicRoutesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listDynamicRoutes(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListDynamicRoutesOutcomeCallable CsasClient::listDynamicRoutesCallable(const ListDynamicRoutesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListDynamicRoutesOutcome()>>(
+			[this, request]()
+			{
+			return this->listDynamicRoutes(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListPolicesForPrivateAccessApplicationOutcome CsasClient::listPolicesForPrivateAccessApplication(const ListPolicesForPrivateAccessApplicationRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListPolicesForPrivateAccessApplicationOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListPolicesForPrivateAccessApplicationOutcome(ListPolicesForPrivateAccessApplicationResult(outcome.result()));
+	else
+		return ListPolicesForPrivateAccessApplicationOutcome(outcome.error());
+}
+
+void CsasClient::listPolicesForPrivateAccessApplicationAsync(const ListPolicesForPrivateAccessApplicationRequest& request, const ListPolicesForPrivateAccessApplicationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listPolicesForPrivateAccessApplication(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListPolicesForPrivateAccessApplicationOutcomeCallable CsasClient::listPolicesForPrivateAccessApplicationCallable(const ListPolicesForPrivateAccessApplicationRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListPolicesForPrivateAccessApplicationOutcome()>>(
+			[this, request]()
+			{
+			return this->listPolicesForPrivateAccessApplication(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListPolicesForPrivateAccessTagOutcome CsasClient::listPolicesForPrivateAccessTag(const ListPolicesForPrivateAccessTagRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListPolicesForPrivateAccessTagOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListPolicesForPrivateAccessTagOutcome(ListPolicesForPrivateAccessTagResult(outcome.result()));
+	else
+		return ListPolicesForPrivateAccessTagOutcome(outcome.error());
+}
+
+void CsasClient::listPolicesForPrivateAccessTagAsync(const ListPolicesForPrivateAccessTagRequest& request, const ListPolicesForPrivateAccessTagAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listPolicesForPrivateAccessTag(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListPolicesForPrivateAccessTagOutcomeCallable CsasClient::listPolicesForPrivateAccessTagCallable(const ListPolicesForPrivateAccessTagRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListPolicesForPrivateAccessTagOutcome()>>(
+			[this, request]()
+			{
+			return this->listPolicesForPrivateAccessTag(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListPolicesForUserGroupOutcome CsasClient::listPolicesForUserGroup(const ListPolicesForUserGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListPolicesForUserGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListPolicesForUserGroupOutcome(ListPolicesForUserGroupResult(outcome.result()));
+	else
+		return ListPolicesForUserGroupOutcome(outcome.error());
+}
+
+void CsasClient::listPolicesForUserGroupAsync(const ListPolicesForUserGroupRequest& request, const ListPolicesForUserGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listPolicesForUserGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListPolicesForUserGroupOutcomeCallable CsasClient::listPolicesForUserGroupCallable(const ListPolicesForUserGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListPolicesForUserGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->listPolicesForUserGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListPrivateAccessApplicationsOutcome CsasClient::listPrivateAccessApplications(const ListPrivateAccessApplicationsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListPrivateAccessApplicationsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListPrivateAccessApplicationsOutcome(ListPrivateAccessApplicationsResult(outcome.result()));
+	else
+		return ListPrivateAccessApplicationsOutcome(outcome.error());
+}
+
+void CsasClient::listPrivateAccessApplicationsAsync(const ListPrivateAccessApplicationsRequest& request, const ListPrivateAccessApplicationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listPrivateAccessApplications(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListPrivateAccessApplicationsOutcomeCallable CsasClient::listPrivateAccessApplicationsCallable(const ListPrivateAccessApplicationsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListPrivateAccessApplicationsOutcome()>>(
+			[this, request]()
+			{
+			return this->listPrivateAccessApplications(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListPrivateAccessApplicationsForDynamicRouteOutcome CsasClient::listPrivateAccessApplicationsForDynamicRoute(const ListPrivateAccessApplicationsForDynamicRouteRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListPrivateAccessApplicationsForDynamicRouteOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListPrivateAccessApplicationsForDynamicRouteOutcome(ListPrivateAccessApplicationsForDynamicRouteResult(outcome.result()));
+	else
+		return ListPrivateAccessApplicationsForDynamicRouteOutcome(outcome.error());
+}
+
+void CsasClient::listPrivateAccessApplicationsForDynamicRouteAsync(const ListPrivateAccessApplicationsForDynamicRouteRequest& request, const ListPrivateAccessApplicationsForDynamicRouteAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listPrivateAccessApplicationsForDynamicRoute(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListPrivateAccessApplicationsForDynamicRouteOutcomeCallable CsasClient::listPrivateAccessApplicationsForDynamicRouteCallable(const ListPrivateAccessApplicationsForDynamicRouteRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListPrivateAccessApplicationsForDynamicRouteOutcome()>>(
+			[this, request]()
+			{
+			return this->listPrivateAccessApplicationsForDynamicRoute(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListPrivateAccessPolicesOutcome CsasClient::listPrivateAccessPolices(const ListPrivateAccessPolicesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListPrivateAccessPolicesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListPrivateAccessPolicesOutcome(ListPrivateAccessPolicesResult(outcome.result()));
+	else
+		return ListPrivateAccessPolicesOutcome(outcome.error());
+}
+
+void CsasClient::listPrivateAccessPolicesAsync(const ListPrivateAccessPolicesRequest& request, const ListPrivateAccessPolicesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listPrivateAccessPolices(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListPrivateAccessPolicesOutcomeCallable CsasClient::listPrivateAccessPolicesCallable(const ListPrivateAccessPolicesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListPrivateAccessPolicesOutcome()>>(
+			[this, request]()
+			{
+			return this->listPrivateAccessPolices(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListPrivateAccessTagsOutcome CsasClient::listPrivateAccessTags(const ListPrivateAccessTagsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListPrivateAccessTagsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListPrivateAccessTagsOutcome(ListPrivateAccessTagsResult(outcome.result()));
+	else
+		return ListPrivateAccessTagsOutcome(outcome.error());
+}
+
+void CsasClient::listPrivateAccessTagsAsync(const ListPrivateAccessTagsRequest& request, const ListPrivateAccessTagsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listPrivateAccessTags(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListPrivateAccessTagsOutcomeCallable CsasClient::listPrivateAccessTagsCallable(const ListPrivateAccessTagsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListPrivateAccessTagsOutcome()>>(
+			[this, request]()
+			{
+			return this->listPrivateAccessTags(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListPrivateAccessTagsForDynamicRouteOutcome CsasClient::listPrivateAccessTagsForDynamicRoute(const ListPrivateAccessTagsForDynamicRouteRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListPrivateAccessTagsForDynamicRouteOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListPrivateAccessTagsForDynamicRouteOutcome(ListPrivateAccessTagsForDynamicRouteResult(outcome.result()));
+	else
+		return ListPrivateAccessTagsForDynamicRouteOutcome(outcome.error());
+}
+
+void CsasClient::listPrivateAccessTagsForDynamicRouteAsync(const ListPrivateAccessTagsForDynamicRouteRequest& request, const ListPrivateAccessTagsForDynamicRouteAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listPrivateAccessTagsForDynamicRoute(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListPrivateAccessTagsForDynamicRouteOutcomeCallable CsasClient::listPrivateAccessTagsForDynamicRouteCallable(const ListPrivateAccessTagsForDynamicRouteRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListPrivateAccessTagsForDynamicRouteOutcome()>>(
+			[this, request]()
+			{
+			return this->listPrivateAccessTagsForDynamicRoute(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListTagsForPrivateAccessApplicationOutcome CsasClient::listTagsForPrivateAccessApplication(const ListTagsForPrivateAccessApplicationRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListTagsForPrivateAccessApplicationOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListTagsForPrivateAccessApplicationOutcome(ListTagsForPrivateAccessApplicationResult(outcome.result()));
+	else
+		return ListTagsForPrivateAccessApplicationOutcome(outcome.error());
+}
+
+void CsasClient::listTagsForPrivateAccessApplicationAsync(const ListTagsForPrivateAccessApplicationRequest& request, const ListTagsForPrivateAccessApplicationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listTagsForPrivateAccessApplication(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListTagsForPrivateAccessApplicationOutcomeCallable CsasClient::listTagsForPrivateAccessApplicationCallable(const ListTagsForPrivateAccessApplicationRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListTagsForPrivateAccessApplicationOutcome()>>(
+			[this, request]()
+			{
+			return this->listTagsForPrivateAccessApplication(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListTagsForPrivateAccessPolicyOutcome CsasClient::listTagsForPrivateAccessPolicy(const ListTagsForPrivateAccessPolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListTagsForPrivateAccessPolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListTagsForPrivateAccessPolicyOutcome(ListTagsForPrivateAccessPolicyResult(outcome.result()));
+	else
+		return ListTagsForPrivateAccessPolicyOutcome(outcome.error());
+}
+
+void CsasClient::listTagsForPrivateAccessPolicyAsync(const ListTagsForPrivateAccessPolicyRequest& request, const ListTagsForPrivateAccessPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listTagsForPrivateAccessPolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListTagsForPrivateAccessPolicyOutcomeCallable CsasClient::listTagsForPrivateAccessPolicyCallable(const ListTagsForPrivateAccessPolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListTagsForPrivateAccessPolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->listTagsForPrivateAccessPolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListUserGroupsOutcome CsasClient::listUserGroups(const ListUserGroupsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListUserGroupsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListUserGroupsOutcome(ListUserGroupsResult(outcome.result()));
+	else
+		return ListUserGroupsOutcome(outcome.error());
+}
+
+void CsasClient::listUserGroupsAsync(const ListUserGroupsRequest& request, const ListUserGroupsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listUserGroups(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListUserGroupsOutcomeCallable CsasClient::listUserGroupsCallable(const ListUserGroupsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListUserGroupsOutcome()>>(
+			[this, request]()
+			{
+			return this->listUserGroups(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::ListUserGroupsForPrivateAccessPolicyOutcome CsasClient::listUserGroupsForPrivateAccessPolicy(const ListUserGroupsForPrivateAccessPolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListUserGroupsForPrivateAccessPolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListUserGroupsForPrivateAccessPolicyOutcome(ListUserGroupsForPrivateAccessPolicyResult(outcome.result()));
+	else
+		return ListUserGroupsForPrivateAccessPolicyOutcome(outcome.error());
+}
+
+void CsasClient::listUserGroupsForPrivateAccessPolicyAsync(const ListUserGroupsForPrivateAccessPolicyRequest& request, const ListUserGroupsForPrivateAccessPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listUserGroupsForPrivateAccessPolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::ListUserGroupsForPrivateAccessPolicyOutcomeCallable CsasClient::listUserGroupsForPrivateAccessPolicyCallable(const ListUserGroupsForPrivateAccessPolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListUserGroupsForPrivateAccessPolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->listUserGroupsForPrivateAccessPolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::UpdateDynamicRouteOutcome CsasClient::updateDynamicRoute(const UpdateDynamicRouteRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateDynamicRouteOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateDynamicRouteOutcome(UpdateDynamicRouteResult(outcome.result()));
+	else
+		return UpdateDynamicRouteOutcome(outcome.error());
+}
+
+void CsasClient::updateDynamicRouteAsync(const UpdateDynamicRouteRequest& request, const UpdateDynamicRouteAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateDynamicRoute(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::UpdateDynamicRouteOutcomeCallable CsasClient::updateDynamicRouteCallable(const UpdateDynamicRouteRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateDynamicRouteOutcome()>>(
+			[this, request]()
+			{
+			return this->updateDynamicRoute(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::UpdatePrivateAccessApplicationOutcome CsasClient::updatePrivateAccessApplication(const UpdatePrivateAccessApplicationRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdatePrivateAccessApplicationOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdatePrivateAccessApplicationOutcome(UpdatePrivateAccessApplicationResult(outcome.result()));
+	else
+		return UpdatePrivateAccessApplicationOutcome(outcome.error());
+}
+
+void CsasClient::updatePrivateAccessApplicationAsync(const UpdatePrivateAccessApplicationRequest& request, const UpdatePrivateAccessApplicationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updatePrivateAccessApplication(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::UpdatePrivateAccessApplicationOutcomeCallable CsasClient::updatePrivateAccessApplicationCallable(const UpdatePrivateAccessApplicationRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdatePrivateAccessApplicationOutcome()>>(
+			[this, request]()
+			{
+			return this->updatePrivateAccessApplication(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::UpdatePrivateAccessPolicyOutcome CsasClient::updatePrivateAccessPolicy(const UpdatePrivateAccessPolicyRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdatePrivateAccessPolicyOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdatePrivateAccessPolicyOutcome(UpdatePrivateAccessPolicyResult(outcome.result()));
+	else
+		return UpdatePrivateAccessPolicyOutcome(outcome.error());
+}
+
+void CsasClient::updatePrivateAccessPolicyAsync(const UpdatePrivateAccessPolicyRequest& request, const UpdatePrivateAccessPolicyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updatePrivateAccessPolicy(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::UpdatePrivateAccessPolicyOutcomeCallable CsasClient::updatePrivateAccessPolicyCallable(const UpdatePrivateAccessPolicyRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdatePrivateAccessPolicyOutcome()>>(
+			[this, request]()
+			{
+			return this->updatePrivateAccessPolicy(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+CsasClient::UpdateUserGroupOutcome CsasClient::updateUserGroup(const UpdateUserGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateUserGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateUserGroupOutcome(UpdateUserGroupResult(outcome.result()));
+	else
+		return UpdateUserGroupOutcome(outcome.error());
+}
+
+void CsasClient::updateUserGroupAsync(const UpdateUserGroupRequest& request, const UpdateUserGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateUserGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+CsasClient::UpdateUserGroupOutcomeCallable CsasClient::updateUserGroupCallable(const UpdateUserGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateUserGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->updateUserGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+

+ 56 - 0
csas/src/model/AttachApplication2ConnectorRequest.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/AttachApplication2ConnectorRequest.h>
+
+using AlibabaCloud::Csas::Model::AttachApplication2ConnectorRequest;
+
+AttachApplication2ConnectorRequest::AttachApplication2ConnectorRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "AttachApplication2Connector") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+AttachApplication2ConnectorRequest::~AttachApplication2ConnectorRequest() {}
+
+std::string AttachApplication2ConnectorRequest::getConnectorId() const {
+  return connectorId_;
+}
+
+void AttachApplication2ConnectorRequest::setConnectorId(const std::string &connectorId) {
+  connectorId_ = connectorId;
+  setBodyParameter(std::string("ConnectorId"), connectorId);
+}
+
+std::vector<AttachApplication2ConnectorRequest::std::string> AttachApplication2ConnectorRequest::getApplicationIds() const {
+  return applicationIds_;
+}
+
+void AttachApplication2ConnectorRequest::setApplicationIds(const std::vector<AttachApplication2ConnectorRequest::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 AttachApplication2ConnectorRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void AttachApplication2ConnectorRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+

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

+ 132 - 0
csas/src/model/CreateDynamicRouteRequest.cc

@@ -0,0 +1,132 @@
+/*
+ * 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/CreateDynamicRouteRequest.h>
+
+using AlibabaCloud::Csas::Model::CreateDynamicRouteRequest;
+
+CreateDynamicRouteRequest::CreateDynamicRouteRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "CreateDynamicRoute") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateDynamicRouteRequest::~CreateDynamicRouteRequest() {}
+
+std::string CreateDynamicRouteRequest::getDescription() const {
+  return description_;
+}
+
+void CreateDynamicRouteRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setBodyParameter(std::string("Description"), description);
+}
+
+std::string CreateDynamicRouteRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void CreateDynamicRouteRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+
+std::string CreateDynamicRouteRequest::getDynamicRouteType() const {
+  return dynamicRouteType_;
+}
+
+void CreateDynamicRouteRequest::setDynamicRouteType(const std::string &dynamicRouteType) {
+  dynamicRouteType_ = dynamicRouteType;
+  setBodyParameter(std::string("DynamicRouteType"), dynamicRouteType);
+}
+
+std::vector<CreateDynamicRouteRequest::std::string> CreateDynamicRouteRequest::getTagIds() const {
+  return tagIds_;
+}
+
+void CreateDynamicRouteRequest::setTagIds(const std::vector<CreateDynamicRouteRequest::std::string> &tagIds) {
+  tagIds_ = tagIds;
+  for(int dep1 = 0; dep1 != tagIds.size(); dep1++) {
+    setBodyParameter(std::string("TagIds") + "." + std::to_string(dep1 + 1), tagIds[dep1]);
+  }
+}
+
+std::vector<CreateDynamicRouteRequest::std::string> CreateDynamicRouteRequest::getRegionIds() const {
+  return regionIds_;
+}
+
+void CreateDynamicRouteRequest::setRegionIds(const std::vector<CreateDynamicRouteRequest::std::string> &regionIds) {
+  regionIds_ = regionIds;
+  for(int dep1 = 0; dep1 != regionIds.size(); dep1++) {
+    setBodyParameter(std::string("RegionIds") + "." + std::to_string(dep1 + 1), regionIds[dep1]);
+  }
+}
+
+int CreateDynamicRouteRequest::getPriority() const {
+  return priority_;
+}
+
+void CreateDynamicRouteRequest::setPriority(int priority) {
+  priority_ = priority;
+  setBodyParameter(std::string("Priority"), std::to_string(priority));
+}
+
+std::string CreateDynamicRouteRequest::getNextHop() const {
+  return nextHop_;
+}
+
+void CreateDynamicRouteRequest::setNextHop(const std::string &nextHop) {
+  nextHop_ = nextHop;
+  setBodyParameter(std::string("NextHop"), nextHop);
+}
+
+std::vector<CreateDynamicRouteRequest::std::string> CreateDynamicRouteRequest::getApplicationIds() const {
+  return applicationIds_;
+}
+
+void CreateDynamicRouteRequest::setApplicationIds(const std::vector<CreateDynamicRouteRequest::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 CreateDynamicRouteRequest::getName() const {
+  return name_;
+}
+
+void CreateDynamicRouteRequest::setName(const std::string &name) {
+  name_ = name;
+  setBodyParameter(std::string("Name"), name);
+}
+
+std::string CreateDynamicRouteRequest::getApplicationType() const {
+  return applicationType_;
+}
+
+void CreateDynamicRouteRequest::setApplicationType(const std::string &applicationType) {
+  applicationType_ = applicationType;
+  setBodyParameter(std::string("ApplicationType"), applicationType);
+}
+
+std::string CreateDynamicRouteRequest::getStatus() const {
+  return status_;
+}
+
+void CreateDynamicRouteRequest::setStatus(const std::string &status) {
+  status_ = status;
+  setBodyParameter(std::string("Status"), status);
+}
+

+ 51 - 0
csas/src/model/CreateDynamicRouteResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/csas/model/CreateDynamicRouteResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+CreateDynamicRouteResult::CreateDynamicRouteResult() :
+	ServiceResult()
+{}
+
+CreateDynamicRouteResult::CreateDynamicRouteResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateDynamicRouteResult::~CreateDynamicRouteResult()
+{}
+
+void CreateDynamicRouteResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["DynamicRouteId"].isNull())
+		dynamicRouteId_ = value["DynamicRouteId"].asString();
+
+}
+
+std::string CreateDynamicRouteResult::getDynamicRouteId()const
+{
+	return dynamicRouteId_;
+}
+

+ 106 - 0
csas/src/model/CreatePrivateAccessApplicationRequest.cc

@@ -0,0 +1,106 @@
+/*
+ * 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/CreatePrivateAccessApplicationRequest.h>
+
+using AlibabaCloud::Csas::Model::CreatePrivateAccessApplicationRequest;
+
+CreatePrivateAccessApplicationRequest::CreatePrivateAccessApplicationRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "CreatePrivateAccessApplication") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreatePrivateAccessApplicationRequest::~CreatePrivateAccessApplicationRequest() {}
+
+std::vector<CreatePrivateAccessApplicationRequest::std::string> CreatePrivateAccessApplicationRequest::getAddresses() const {
+  return addresses_;
+}
+
+void CreatePrivateAccessApplicationRequest::setAddresses(const std::vector<CreatePrivateAccessApplicationRequest::std::string> &addresses) {
+  addresses_ = addresses;
+  for(int dep1 = 0; dep1 != addresses.size(); dep1++) {
+    setBodyParameter(std::string("Addresses") + "." + std::to_string(dep1 + 1), addresses[dep1]);
+  }
+}
+
+std::string CreatePrivateAccessApplicationRequest::getDescription() const {
+  return description_;
+}
+
+void CreatePrivateAccessApplicationRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setBodyParameter(std::string("Description"), description);
+}
+
+std::string CreatePrivateAccessApplicationRequest::getProtocol() const {
+  return protocol_;
+}
+
+void CreatePrivateAccessApplicationRequest::setProtocol(const std::string &protocol) {
+  protocol_ = protocol;
+  setBodyParameter(std::string("Protocol"), protocol);
+}
+
+std::string CreatePrivateAccessApplicationRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void CreatePrivateAccessApplicationRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+
+std::vector<CreatePrivateAccessApplicationRequest::std::string> CreatePrivateAccessApplicationRequest::getTagIds() const {
+  return tagIds_;
+}
+
+void CreatePrivateAccessApplicationRequest::setTagIds(const std::vector<CreatePrivateAccessApplicationRequest::std::string> &tagIds) {
+  tagIds_ = tagIds;
+  for(int dep1 = 0; dep1 != tagIds.size(); dep1++) {
+    setBodyParameter(std::string("TagIds") + "." + std::to_string(dep1 + 1), tagIds[dep1]);
+  }
+}
+
+std::vector<CreatePrivateAccessApplicationRequest::PortRanges> CreatePrivateAccessApplicationRequest::getPortRanges() const {
+  return portRanges_;
+}
+
+void CreatePrivateAccessApplicationRequest::setPortRanges(const std::vector<CreatePrivateAccessApplicationRequest::PortRanges> &portRanges) {
+  portRanges_ = portRanges;
+  for(int dep1 = 0; dep1 != portRanges.size(); dep1++) {
+    setBodyParameter(std::string("PortRanges") + "." + std::to_string(dep1 + 1) + ".End", std::to_string(portRanges[dep1].end));
+    setBodyParameter(std::string("PortRanges") + "." + std::to_string(dep1 + 1) + ".Begin", std::to_string(portRanges[dep1].begin));
+  }
+}
+
+std::string CreatePrivateAccessApplicationRequest::getName() const {
+  return name_;
+}
+
+void CreatePrivateAccessApplicationRequest::setName(const std::string &name) {
+  name_ = name;
+  setBodyParameter(std::string("Name"), name);
+}
+
+std::string CreatePrivateAccessApplicationRequest::getStatus() const {
+  return status_;
+}
+
+void CreatePrivateAccessApplicationRequest::setStatus(const std::string &status) {
+  status_ = status;
+  setBodyParameter(std::string("Status"), status);
+}
+

+ 51 - 0
csas/src/model/CreatePrivateAccessApplicationResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/csas/model/CreatePrivateAccessApplicationResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+CreatePrivateAccessApplicationResult::CreatePrivateAccessApplicationResult() :
+	ServiceResult()
+{}
+
+CreatePrivateAccessApplicationResult::CreatePrivateAccessApplicationResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreatePrivateAccessApplicationResult::~CreatePrivateAccessApplicationResult()
+{}
+
+void CreatePrivateAccessApplicationResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["ApplicationId"].isNull())
+		applicationId_ = value["ApplicationId"].asString();
+
+}
+
+std::string CreatePrivateAccessApplicationResult::getApplicationId()const
+{
+	return applicationId_;
+}
+

+ 146 - 0
csas/src/model/CreatePrivateAccessPolicyRequest.cc

@@ -0,0 +1,146 @@
+/*
+ * 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/CreatePrivateAccessPolicyRequest.h>
+
+using AlibabaCloud::Csas::Model::CreatePrivateAccessPolicyRequest;
+
+CreatePrivateAccessPolicyRequest::CreatePrivateAccessPolicyRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "CreatePrivateAccessPolicy") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreatePrivateAccessPolicyRequest::~CreatePrivateAccessPolicyRequest() {}
+
+std::string CreatePrivateAccessPolicyRequest::getDescription() const {
+  return description_;
+}
+
+void CreatePrivateAccessPolicyRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setBodyParameter(std::string("Description"), description);
+}
+
+std::string CreatePrivateAccessPolicyRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void CreatePrivateAccessPolicyRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+
+std::vector<CreatePrivateAccessPolicyRequest::CustomUserAttributes> CreatePrivateAccessPolicyRequest::getCustomUserAttributes() const {
+  return customUserAttributes_;
+}
+
+void CreatePrivateAccessPolicyRequest::setCustomUserAttributes(const std::vector<CreatePrivateAccessPolicyRequest::CustomUserAttributes> &customUserAttributes) {
+  customUserAttributes_ = customUserAttributes;
+  for(int dep1 = 0; dep1 != customUserAttributes.size(); dep1++) {
+    setBodyParameter(std::string("CustomUserAttributes") + "." + std::to_string(dep1 + 1) + ".UserGroupType", customUserAttributes[dep1].userGroupType);
+    setBodyParameter(std::string("CustomUserAttributes") + "." + std::to_string(dep1 + 1) + ".IdpId", std::to_string(customUserAttributes[dep1].idpId));
+    setBodyParameter(std::string("CustomUserAttributes") + "." + std::to_string(dep1 + 1) + ".Value", customUserAttributes[dep1].value);
+    setBodyParameter(std::string("CustomUserAttributes") + "." + std::to_string(dep1 + 1) + ".Relation", customUserAttributes[dep1].relation);
+  }
+}
+
+std::vector<CreatePrivateAccessPolicyRequest::std::string> CreatePrivateAccessPolicyRequest::getTagIds() const {
+  return tagIds_;
+}
+
+void CreatePrivateAccessPolicyRequest::setTagIds(const std::vector<CreatePrivateAccessPolicyRequest::std::string> &tagIds) {
+  tagIds_ = tagIds;
+  for(int dep1 = 0; dep1 != tagIds.size(); dep1++) {
+    setBodyParameter(std::string("TagIds") + "." + std::to_string(dep1 + 1), tagIds[dep1]);
+  }
+}
+
+std::vector<CreatePrivateAccessPolicyRequest::std::string> CreatePrivateAccessPolicyRequest::getUserGroupIds() const {
+  return userGroupIds_;
+}
+
+void CreatePrivateAccessPolicyRequest::setUserGroupIds(const std::vector<CreatePrivateAccessPolicyRequest::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::string CreatePrivateAccessPolicyRequest::getPolicyAction() const {
+  return policyAction_;
+}
+
+void CreatePrivateAccessPolicyRequest::setPolicyAction(const std::string &policyAction) {
+  policyAction_ = policyAction;
+  setBodyParameter(std::string("PolicyAction"), policyAction);
+}
+
+int CreatePrivateAccessPolicyRequest::getPriority() const {
+  return priority_;
+}
+
+void CreatePrivateAccessPolicyRequest::setPriority(int priority) {
+  priority_ = priority;
+  setBodyParameter(std::string("Priority"), std::to_string(priority));
+}
+
+std::vector<CreatePrivateAccessPolicyRequest::std::string> CreatePrivateAccessPolicyRequest::getApplicationIds() const {
+  return applicationIds_;
+}
+
+void CreatePrivateAccessPolicyRequest::setApplicationIds(const std::vector<CreatePrivateAccessPolicyRequest::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 CreatePrivateAccessPolicyRequest::getUserGroupMode() const {
+  return userGroupMode_;
+}
+
+void CreatePrivateAccessPolicyRequest::setUserGroupMode(const std::string &userGroupMode) {
+  userGroupMode_ = userGroupMode;
+  setBodyParameter(std::string("UserGroupMode"), userGroupMode);
+}
+
+std::string CreatePrivateAccessPolicyRequest::getName() const {
+  return name_;
+}
+
+void CreatePrivateAccessPolicyRequest::setName(const std::string &name) {
+  name_ = name;
+  setBodyParameter(std::string("Name"), name);
+}
+
+std::string CreatePrivateAccessPolicyRequest::getApplicationType() const {
+  return applicationType_;
+}
+
+void CreatePrivateAccessPolicyRequest::setApplicationType(const std::string &applicationType) {
+  applicationType_ = applicationType;
+  setBodyParameter(std::string("ApplicationType"), applicationType);
+}
+
+std::string CreatePrivateAccessPolicyRequest::getStatus() const {
+  return status_;
+}
+
+void CreatePrivateAccessPolicyRequest::setStatus(const std::string &status) {
+  status_ = status;
+  setBodyParameter(std::string("Status"), status);
+}
+

+ 51 - 0
csas/src/model/CreatePrivateAccessPolicyResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/csas/model/CreatePrivateAccessPolicyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+CreatePrivateAccessPolicyResult::CreatePrivateAccessPolicyResult() :
+	ServiceResult()
+{}
+
+CreatePrivateAccessPolicyResult::CreatePrivateAccessPolicyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreatePrivateAccessPolicyResult::~CreatePrivateAccessPolicyResult()
+{}
+
+void CreatePrivateAccessPolicyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["PolicyId"].isNull())
+		policyId_ = value["PolicyId"].asString();
+
+}
+
+std::string CreatePrivateAccessPolicyResult::getPolicyId()const
+{
+	return policyId_;
+}
+

+ 54 - 0
csas/src/model/CreatePrivateAccessTagRequest.cc

@@ -0,0 +1,54 @@
+/*
+ * 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/CreatePrivateAccessTagRequest.h>
+
+using AlibabaCloud::Csas::Model::CreatePrivateAccessTagRequest;
+
+CreatePrivateAccessTagRequest::CreatePrivateAccessTagRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "CreatePrivateAccessTag") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreatePrivateAccessTagRequest::~CreatePrivateAccessTagRequest() {}
+
+std::string CreatePrivateAccessTagRequest::getDescription() const {
+  return description_;
+}
+
+void CreatePrivateAccessTagRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setBodyParameter(std::string("Description"), description);
+}
+
+std::string CreatePrivateAccessTagRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void CreatePrivateAccessTagRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+
+std::string CreatePrivateAccessTagRequest::getName() const {
+  return name_;
+}
+
+void CreatePrivateAccessTagRequest::setName(const std::string &name) {
+  name_ = name;
+  setBodyParameter(std::string("Name"), name);
+}
+

+ 51 - 0
csas/src/model/CreatePrivateAccessTagResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/csas/model/CreatePrivateAccessTagResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+CreatePrivateAccessTagResult::CreatePrivateAccessTagResult() :
+	ServiceResult()
+{}
+
+CreatePrivateAccessTagResult::CreatePrivateAccessTagResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreatePrivateAccessTagResult::~CreatePrivateAccessTagResult()
+{}
+
+void CreatePrivateAccessTagResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["TagId"].isNull())
+		tagId_ = value["TagId"].asString();
+
+}
+
+std::string CreatePrivateAccessTagResult::getTagId()const
+{
+	return tagId_;
+}
+

+ 68 - 0
csas/src/model/CreateUserGroupRequest.cc

@@ -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.
+ */
+
+#include <alibabacloud/csas/model/CreateUserGroupRequest.h>
+
+using AlibabaCloud::Csas::Model::CreateUserGroupRequest;
+
+CreateUserGroupRequest::CreateUserGroupRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "CreateUserGroup") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateUserGroupRequest::~CreateUserGroupRequest() {}
+
+std::string CreateUserGroupRequest::getDescription() const {
+  return description_;
+}
+
+void CreateUserGroupRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setBodyParameter(std::string("Description"), description);
+}
+
+std::string CreateUserGroupRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void CreateUserGroupRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+
+std::string CreateUserGroupRequest::getName() const {
+  return name_;
+}
+
+void CreateUserGroupRequest::setName(const std::string &name) {
+  name_ = name;
+  setBodyParameter(std::string("Name"), name);
+}
+
+std::vector<CreateUserGroupRequest::Attributes> CreateUserGroupRequest::getAttributes() const {
+  return attributes_;
+}
+
+void CreateUserGroupRequest::setAttributes(const std::vector<CreateUserGroupRequest::Attributes> &attributes) {
+  attributes_ = attributes;
+  for(int dep1 = 0; dep1 != attributes.size(); dep1++) {
+    setBodyParameter(std::string("Attributes") + "." + std::to_string(dep1 + 1) + ".UserGroupType", attributes[dep1].userGroupType);
+    setBodyParameter(std::string("Attributes") + "." + std::to_string(dep1 + 1) + ".IdpId", std::to_string(attributes[dep1].idpId));
+    setBodyParameter(std::string("Attributes") + "." + std::to_string(dep1 + 1) + ".Value", attributes[dep1].value);
+    setBodyParameter(std::string("Attributes") + "." + std::to_string(dep1 + 1) + ".Relation", attributes[dep1].relation);
+  }
+}
+

+ 51 - 0
csas/src/model/CreateUserGroupResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/csas/model/CreateUserGroupResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Csas;
+using namespace AlibabaCloud::Csas::Model;
+
+CreateUserGroupResult::CreateUserGroupResult() :
+	ServiceResult()
+{}
+
+CreateUserGroupResult::CreateUserGroupResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateUserGroupResult::~CreateUserGroupResult()
+{}
+
+void CreateUserGroupResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["UserGroupId"].isNull())
+		userGroupId_ = value["UserGroupId"].asString();
+
+}
+
+std::string CreateUserGroupResult::getUserGroupId()const
+{
+	return userGroupId_;
+}
+

+ 45 - 0
csas/src/model/DeleteDynamicRouteRequest.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/DeleteDynamicRouteRequest.h>
+
+using AlibabaCloud::Csas::Model::DeleteDynamicRouteRequest;
+
+DeleteDynamicRouteRequest::DeleteDynamicRouteRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "DeleteDynamicRoute") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteDynamicRouteRequest::~DeleteDynamicRouteRequest() {}
+
+std::string DeleteDynamicRouteRequest::getDynamicRouteId() const {
+  return dynamicRouteId_;
+}
+
+void DeleteDynamicRouteRequest::setDynamicRouteId(const std::string &dynamicRouteId) {
+  dynamicRouteId_ = dynamicRouteId;
+  setParameter(std::string("DynamicRouteId"), dynamicRouteId);
+}
+
+std::string DeleteDynamicRouteRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void DeleteDynamicRouteRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+

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

+ 45 - 0
csas/src/model/DeletePrivateAccessApplicationRequest.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/DeletePrivateAccessApplicationRequest.h>
+
+using AlibabaCloud::Csas::Model::DeletePrivateAccessApplicationRequest;
+
+DeletePrivateAccessApplicationRequest::DeletePrivateAccessApplicationRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "DeletePrivateAccessApplication") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeletePrivateAccessApplicationRequest::~DeletePrivateAccessApplicationRequest() {}
+
+std::string DeletePrivateAccessApplicationRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void DeletePrivateAccessApplicationRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+
+std::string DeletePrivateAccessApplicationRequest::getApplicationId() const {
+  return applicationId_;
+}
+
+void DeletePrivateAccessApplicationRequest::setApplicationId(const std::string &applicationId) {
+  applicationId_ = applicationId;
+  setBodyParameter(std::string("ApplicationId"), applicationId);
+}
+

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

+ 45 - 0
csas/src/model/DeletePrivateAccessPolicyRequest.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/DeletePrivateAccessPolicyRequest.h>
+
+using AlibabaCloud::Csas::Model::DeletePrivateAccessPolicyRequest;
+
+DeletePrivateAccessPolicyRequest::DeletePrivateAccessPolicyRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "DeletePrivateAccessPolicy") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeletePrivateAccessPolicyRequest::~DeletePrivateAccessPolicyRequest() {}
+
+std::string DeletePrivateAccessPolicyRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void DeletePrivateAccessPolicyRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+
+std::string DeletePrivateAccessPolicyRequest::getPolicyId() const {
+  return policyId_;
+}
+
+void DeletePrivateAccessPolicyRequest::setPolicyId(const std::string &policyId) {
+  policyId_ = policyId;
+  setBodyParameter(std::string("PolicyId"), policyId);
+}
+

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

+ 45 - 0
csas/src/model/DeletePrivateAccessTagRequest.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/DeletePrivateAccessTagRequest.h>
+
+using AlibabaCloud::Csas::Model::DeletePrivateAccessTagRequest;
+
+DeletePrivateAccessTagRequest::DeletePrivateAccessTagRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "DeletePrivateAccessTag") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeletePrivateAccessTagRequest::~DeletePrivateAccessTagRequest() {}
+
+std::string DeletePrivateAccessTagRequest::getTagId() const {
+  return tagId_;
+}
+
+void DeletePrivateAccessTagRequest::setTagId(const std::string &tagId) {
+  tagId_ = tagId;
+  setBodyParameter(std::string("TagId"), tagId);
+}
+
+std::string DeletePrivateAccessTagRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void DeletePrivateAccessTagRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+

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

+ 45 - 0
csas/src/model/DeleteUserGroupRequest.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/DeleteUserGroupRequest.h>
+
+using AlibabaCloud::Csas::Model::DeleteUserGroupRequest;
+
+DeleteUserGroupRequest::DeleteUserGroupRequest()
+    : RpcServiceRequest("csas", "2023-01-20", "DeleteUserGroup") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteUserGroupRequest::~DeleteUserGroupRequest() {}
+
+std::string DeleteUserGroupRequest::getUserGroupId() const {
+  return userGroupId_;
+}
+
+void DeleteUserGroupRequest::setUserGroupId(const std::string &userGroupId) {
+  userGroupId_ = userGroupId;
+  setBodyParameter(std::string("UserGroupId"), userGroupId);
+}
+
+std::string DeleteUserGroupRequest::getSourceIp() const {
+  return sourceIp_;
+}
+
+void DeleteUserGroupRequest::setSourceIp(const std::string &sourceIp) {
+  sourceIp_ = sourceIp;
+  setParameter(std::string("SourceIp"), sourceIp);
+}
+

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