Bläddra i källkod

Generated 2017-11-10 for Ens.

sdk-team 1 år sedan
förälder
incheckning
4d0d423351
52 ändrade filer med 2831 tillägg och 21 borttagningar
  1. 1 1
      VERSION
  2. 40 0
      ens/CMakeLists.txt
  3. 80 0
      ens/include/alibabacloud/ens/EnsClient.h
  4. 45 0
      ens/include/alibabacloud/ens/model/AttachInstanceSDGRequest.h
  5. 68 0
      ens/include/alibabacloud/ens/model/AttachInstanceSDGResult.h
  6. 3 0
      ens/include/alibabacloud/ens/model/CreateARMServerInstancesRequest.h
  7. 54 0
      ens/include/alibabacloud/ens/model/CreateHaVipRequest.h
  8. 51 0
      ens/include/alibabacloud/ens/model/CreateHaVipResult.h
  9. 51 0
      ens/include/alibabacloud/ens/model/CreateNetworkInterfaceRequest.h
  10. 51 0
      ens/include/alibabacloud/ens/model/CreateNetworkInterfaceResult.h
  11. 42 0
      ens/include/alibabacloud/ens/model/DeleteHaVipsRequest.h
  12. 49 0
      ens/include/alibabacloud/ens/model/DeleteHaVipsResult.h
  13. 42 0
      ens/include/alibabacloud/ens/model/DeleteNetworkInterfacesRequest.h
  14. 49 0
      ens/include/alibabacloud/ens/model/DeleteNetworkInterfacesResult.h
  15. 2 0
      ens/include/alibabacloud/ens/model/DescribeDisksResult.h
  16. 54 0
      ens/include/alibabacloud/ens/model/DescribeEnsRouteTablesRequest.h
  17. 69 0
      ens/include/alibabacloud/ens/model/DescribeEnsRouteTablesResult.h
  18. 54 0
      ens/include/alibabacloud/ens/model/DescribeInstanceSDGStatusRequest.h
  19. 67 0
      ens/include/alibabacloud/ens/model/DescribeInstanceSDGStatusResult.h
  20. 1 0
      ens/include/alibabacloud/ens/model/DescribeSDGDeploymentStatusResult.h
  21. 12 6
      ens/include/alibabacloud/ens/model/DescribeSnapshotsRequest.h
  22. 45 0
      ens/include/alibabacloud/ens/model/DetachInstanceSDGRequest.h
  23. 68 0
      ens/include/alibabacloud/ens/model/DetachInstanceSDGResult.h
  24. 45 0
      ens/include/alibabacloud/ens/model/MountInstanceSDGRequest.h
  25. 68 0
      ens/include/alibabacloud/ens/model/MountInstanceSDGResult.h
  26. 45 0
      ens/include/alibabacloud/ens/model/UnmountInstanceSDGRequest.h
  27. 68 0
      ens/include/alibabacloud/ens/model/UnmountInstanceSDGResult.h
  28. 360 0
      ens/src/EnsClient.cc
  29. 47 0
      ens/src/model/AttachInstanceSDGRequest.cc
  30. 69 0
      ens/src/model/AttachInstanceSDGResult.cc
  31. 9 0
      ens/src/model/CreateARMServerInstancesRequest.cc
  32. 72 0
      ens/src/model/CreateHaVipRequest.cc
  33. 52 0
      ens/src/model/CreateHaVipResult.cc
  34. 65 0
      ens/src/model/CreateNetworkInterfaceRequest.cc
  35. 52 0
      ens/src/model/CreateNetworkInterfaceResult.cc
  36. 38 0
      ens/src/model/DeleteHaVipsRequest.cc
  37. 44 0
      ens/src/model/DeleteHaVipsResult.cc
  38. 38 0
      ens/src/model/DeleteNetworkInterfacesRequest.cc
  39. 44 0
      ens/src/model/DeleteNetworkInterfacesResult.cc
  40. 4 0
      ens/src/model/DescribeDisksResult.cc
  41. 72 0
      ens/src/model/DescribeEnsRouteTablesRequest.cc
  42. 95 0
      ens/src/model/DescribeEnsRouteTablesResult.cc
  43. 74 0
      ens/src/model/DescribeInstanceSDGStatusRequest.cc
  44. 90 0
      ens/src/model/DescribeInstanceSDGStatusResult.cc
  45. 2 0
      ens/src/model/DescribeSDGDeploymentStatusResult.cc
  46. 32 14
      ens/src/model/DescribeSnapshotsRequest.cc
  47. 47 0
      ens/src/model/DetachInstanceSDGRequest.cc
  48. 69 0
      ens/src/model/DetachInstanceSDGResult.cc
  49. 47 0
      ens/src/model/MountInstanceSDGRequest.cc
  50. 69 0
      ens/src/model/MountInstanceSDGResult.cc
  51. 47 0
      ens/src/model/UnmountInstanceSDGRequest.cc
  52. 69 0
      ens/src/model/UnmountInstanceSDGResult.cc

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.2021
+1.36.2022

+ 40 - 0
ens/CMakeLists.txt

@@ -41,6 +41,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/AttachDiskResult.h
 	include/alibabacloud/ens/model/AttachEnsInstancesRequest.h
 	include/alibabacloud/ens/model/AttachEnsInstancesResult.h
+	include/alibabacloud/ens/model/AttachInstanceSDGRequest.h
+	include/alibabacloud/ens/model/AttachInstanceSDGResult.h
 	include/alibabacloud/ens/model/AttachNetworkInterfaceRequest.h
 	include/alibabacloud/ens/model/AttachNetworkInterfaceResult.h
 	include/alibabacloud/ens/model/AuthorizeSecurityGroupRequest.h
@@ -77,6 +79,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/CreateFileSystemResult.h
 	include/alibabacloud/ens/model/CreateForwardEntryRequest.h
 	include/alibabacloud/ens/model/CreateForwardEntryResult.h
+	include/alibabacloud/ens/model/CreateHaVipRequest.h
+	include/alibabacloud/ens/model/CreateHaVipResult.h
 	include/alibabacloud/ens/model/CreateImageRequest.h
 	include/alibabacloud/ens/model/CreateImageResult.h
 	include/alibabacloud/ens/model/CreateInstanceRequest.h
@@ -105,6 +109,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/CreateNetworkAclResult.h
 	include/alibabacloud/ens/model/CreateNetworkAclEntryRequest.h
 	include/alibabacloud/ens/model/CreateNetworkAclEntryResult.h
+	include/alibabacloud/ens/model/CreateNetworkInterfaceRequest.h
+	include/alibabacloud/ens/model/CreateNetworkInterfaceResult.h
 	include/alibabacloud/ens/model/CreateSDGRequest.h
 	include/alibabacloud/ens/model/CreateSDGResult.h
 	include/alibabacloud/ens/model/CreateSecurityGroupRequest.h
@@ -141,6 +147,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/DeleteFileSystemResult.h
 	include/alibabacloud/ens/model/DeleteForwardEntryRequest.h
 	include/alibabacloud/ens/model/DeleteForwardEntryResult.h
+	include/alibabacloud/ens/model/DeleteHaVipsRequest.h
+	include/alibabacloud/ens/model/DeleteHaVipsResult.h
 	include/alibabacloud/ens/model/DeleteImageRequest.h
 	include/alibabacloud/ens/model/DeleteImageResult.h
 	include/alibabacloud/ens/model/DeleteKeyPairsRequest.h
@@ -157,6 +165,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/DeleteNetworkAclResult.h
 	include/alibabacloud/ens/model/DeleteNetworkAclEntryRequest.h
 	include/alibabacloud/ens/model/DeleteNetworkAclEntryResult.h
+	include/alibabacloud/ens/model/DeleteNetworkInterfacesRequest.h
+	include/alibabacloud/ens/model/DeleteNetworkInterfacesResult.h
 	include/alibabacloud/ens/model/DeleteObjectRequest.h
 	include/alibabacloud/ens/model/DeleteObjectResult.h
 	include/alibabacloud/ens/model/DeleteSDGRequest.h
@@ -239,6 +249,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/DescribeEnsResourceUsageResult.h
 	include/alibabacloud/ens/model/DescribeEnsRouteEntryListRequest.h
 	include/alibabacloud/ens/model/DescribeEnsRouteEntryListResult.h
+	include/alibabacloud/ens/model/DescribeEnsRouteTablesRequest.h
+	include/alibabacloud/ens/model/DescribeEnsRouteTablesResult.h
 	include/alibabacloud/ens/model/DescribeEnsSaleControlRequest.h
 	include/alibabacloud/ens/model/DescribeEnsSaleControlResult.h
 	include/alibabacloud/ens/model/DescribeEnsSaleControlAvailableResourceRequest.h
@@ -277,6 +289,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/DescribeInstanceBandwidthDetailResult.h
 	include/alibabacloud/ens/model/DescribeInstanceMonitorDataRequest.h
 	include/alibabacloud/ens/model/DescribeInstanceMonitorDataResult.h
+	include/alibabacloud/ens/model/DescribeInstanceSDGStatusRequest.h
+	include/alibabacloud/ens/model/DescribeInstanceSDGStatusResult.h
 	include/alibabacloud/ens/model/DescribeInstanceSpecRequest.h
 	include/alibabacloud/ens/model/DescribeInstanceSpecResult.h
 	include/alibabacloud/ens/model/DescribeInstanceTypesRequest.h
@@ -369,6 +383,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/DescribeVSwitchesResult.h
 	include/alibabacloud/ens/model/DetachDiskRequest.h
 	include/alibabacloud/ens/model/DetachDiskResult.h
+	include/alibabacloud/ens/model/DetachInstanceSDGRequest.h
+	include/alibabacloud/ens/model/DetachInstanceSDGResult.h
 	include/alibabacloud/ens/model/DetachNetworkInterfaceRequest.h
 	include/alibabacloud/ens/model/DetachNetworkInterfaceResult.h
 	include/alibabacloud/ens/model/DistApplicationDataRequest.h
@@ -445,6 +461,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/ModifySnapshotAttributeResult.h
 	include/alibabacloud/ens/model/ModifyVSwitchAttributeRequest.h
 	include/alibabacloud/ens/model/ModifyVSwitchAttributeResult.h
+	include/alibabacloud/ens/model/MountInstanceSDGRequest.h
+	include/alibabacloud/ens/model/MountInstanceSDGResult.h
 	include/alibabacloud/ens/model/PreloadRegionSDGRequest.h
 	include/alibabacloud/ens/model/PreloadRegionSDGResult.h
 	include/alibabacloud/ens/model/PrepareUploadRequest.h
@@ -567,6 +585,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/UnassociateNetworkAclResult.h
 	include/alibabacloud/ens/model/UnloadRegionSDGRequest.h
 	include/alibabacloud/ens/model/UnloadRegionSDGResult.h
+	include/alibabacloud/ens/model/UnmountInstanceSDGRequest.h
+	include/alibabacloud/ens/model/UnmountInstanceSDGResult.h
 	include/alibabacloud/ens/model/UntagResourcesRequest.h
 	include/alibabacloud/ens/model/UntagResourcesResult.h
 	include/alibabacloud/ens/model/UpdateEnsSaleControlRequest.h
@@ -598,6 +618,8 @@ set(ens_src
 	src/model/AttachDiskResult.cc
 	src/model/AttachEnsInstancesRequest.cc
 	src/model/AttachEnsInstancesResult.cc
+	src/model/AttachInstanceSDGRequest.cc
+	src/model/AttachInstanceSDGResult.cc
 	src/model/AttachNetworkInterfaceRequest.cc
 	src/model/AttachNetworkInterfaceResult.cc
 	src/model/AuthorizeSecurityGroupRequest.cc
@@ -634,6 +656,8 @@ set(ens_src
 	src/model/CreateFileSystemResult.cc
 	src/model/CreateForwardEntryRequest.cc
 	src/model/CreateForwardEntryResult.cc
+	src/model/CreateHaVipRequest.cc
+	src/model/CreateHaVipResult.cc
 	src/model/CreateImageRequest.cc
 	src/model/CreateImageResult.cc
 	src/model/CreateInstanceRequest.cc
@@ -662,6 +686,8 @@ set(ens_src
 	src/model/CreateNetworkAclResult.cc
 	src/model/CreateNetworkAclEntryRequest.cc
 	src/model/CreateNetworkAclEntryResult.cc
+	src/model/CreateNetworkInterfaceRequest.cc
+	src/model/CreateNetworkInterfaceResult.cc
 	src/model/CreateSDGRequest.cc
 	src/model/CreateSDGResult.cc
 	src/model/CreateSecurityGroupRequest.cc
@@ -698,6 +724,8 @@ set(ens_src
 	src/model/DeleteFileSystemResult.cc
 	src/model/DeleteForwardEntryRequest.cc
 	src/model/DeleteForwardEntryResult.cc
+	src/model/DeleteHaVipsRequest.cc
+	src/model/DeleteHaVipsResult.cc
 	src/model/DeleteImageRequest.cc
 	src/model/DeleteImageResult.cc
 	src/model/DeleteKeyPairsRequest.cc
@@ -714,6 +742,8 @@ set(ens_src
 	src/model/DeleteNetworkAclResult.cc
 	src/model/DeleteNetworkAclEntryRequest.cc
 	src/model/DeleteNetworkAclEntryResult.cc
+	src/model/DeleteNetworkInterfacesRequest.cc
+	src/model/DeleteNetworkInterfacesResult.cc
 	src/model/DeleteObjectRequest.cc
 	src/model/DeleteObjectResult.cc
 	src/model/DeleteSDGRequest.cc
@@ -796,6 +826,8 @@ set(ens_src
 	src/model/DescribeEnsResourceUsageResult.cc
 	src/model/DescribeEnsRouteEntryListRequest.cc
 	src/model/DescribeEnsRouteEntryListResult.cc
+	src/model/DescribeEnsRouteTablesRequest.cc
+	src/model/DescribeEnsRouteTablesResult.cc
 	src/model/DescribeEnsSaleControlRequest.cc
 	src/model/DescribeEnsSaleControlResult.cc
 	src/model/DescribeEnsSaleControlAvailableResourceRequest.cc
@@ -834,6 +866,8 @@ set(ens_src
 	src/model/DescribeInstanceBandwidthDetailResult.cc
 	src/model/DescribeInstanceMonitorDataRequest.cc
 	src/model/DescribeInstanceMonitorDataResult.cc
+	src/model/DescribeInstanceSDGStatusRequest.cc
+	src/model/DescribeInstanceSDGStatusResult.cc
 	src/model/DescribeInstanceSpecRequest.cc
 	src/model/DescribeInstanceSpecResult.cc
 	src/model/DescribeInstanceTypesRequest.cc
@@ -926,6 +960,8 @@ set(ens_src
 	src/model/DescribeVSwitchesResult.cc
 	src/model/DetachDiskRequest.cc
 	src/model/DetachDiskResult.cc
+	src/model/DetachInstanceSDGRequest.cc
+	src/model/DetachInstanceSDGResult.cc
 	src/model/DetachNetworkInterfaceRequest.cc
 	src/model/DetachNetworkInterfaceResult.cc
 	src/model/DistApplicationDataRequest.cc
@@ -1002,6 +1038,8 @@ set(ens_src
 	src/model/ModifySnapshotAttributeResult.cc
 	src/model/ModifyVSwitchAttributeRequest.cc
 	src/model/ModifyVSwitchAttributeResult.cc
+	src/model/MountInstanceSDGRequest.cc
+	src/model/MountInstanceSDGResult.cc
 	src/model/PreloadRegionSDGRequest.cc
 	src/model/PreloadRegionSDGResult.cc
 	src/model/PrepareUploadRequest.cc
@@ -1124,6 +1162,8 @@ set(ens_src
 	src/model/UnassociateNetworkAclResult.cc
 	src/model/UnloadRegionSDGRequest.cc
 	src/model/UnloadRegionSDGResult.cc
+	src/model/UnmountInstanceSDGRequest.cc
+	src/model/UnmountInstanceSDGResult.cc
 	src/model/UntagResourcesRequest.cc
 	src/model/UntagResourcesResult.cc
 	src/model/UpdateEnsSaleControlRequest.cc

+ 80 - 0
ens/include/alibabacloud/ens/EnsClient.h

@@ -42,6 +42,8 @@
 #include "model/AttachDiskResult.h"
 #include "model/AttachEnsInstancesRequest.h"
 #include "model/AttachEnsInstancesResult.h"
+#include "model/AttachInstanceSDGRequest.h"
+#include "model/AttachInstanceSDGResult.h"
 #include "model/AttachNetworkInterfaceRequest.h"
 #include "model/AttachNetworkInterfaceResult.h"
 #include "model/AuthorizeSecurityGroupRequest.h"
@@ -78,6 +80,8 @@
 #include "model/CreateFileSystemResult.h"
 #include "model/CreateForwardEntryRequest.h"
 #include "model/CreateForwardEntryResult.h"
+#include "model/CreateHaVipRequest.h"
+#include "model/CreateHaVipResult.h"
 #include "model/CreateImageRequest.h"
 #include "model/CreateImageResult.h"
 #include "model/CreateInstanceRequest.h"
@@ -106,6 +110,8 @@
 #include "model/CreateNetworkAclResult.h"
 #include "model/CreateNetworkAclEntryRequest.h"
 #include "model/CreateNetworkAclEntryResult.h"
+#include "model/CreateNetworkInterfaceRequest.h"
+#include "model/CreateNetworkInterfaceResult.h"
 #include "model/CreateSDGRequest.h"
 #include "model/CreateSDGResult.h"
 #include "model/CreateSecurityGroupRequest.h"
@@ -142,6 +148,8 @@
 #include "model/DeleteFileSystemResult.h"
 #include "model/DeleteForwardEntryRequest.h"
 #include "model/DeleteForwardEntryResult.h"
+#include "model/DeleteHaVipsRequest.h"
+#include "model/DeleteHaVipsResult.h"
 #include "model/DeleteImageRequest.h"
 #include "model/DeleteImageResult.h"
 #include "model/DeleteKeyPairsRequest.h"
@@ -158,6 +166,8 @@
 #include "model/DeleteNetworkAclResult.h"
 #include "model/DeleteNetworkAclEntryRequest.h"
 #include "model/DeleteNetworkAclEntryResult.h"
+#include "model/DeleteNetworkInterfacesRequest.h"
+#include "model/DeleteNetworkInterfacesResult.h"
 #include "model/DeleteObjectRequest.h"
 #include "model/DeleteObjectResult.h"
 #include "model/DeleteSDGRequest.h"
@@ -240,6 +250,8 @@
 #include "model/DescribeEnsResourceUsageResult.h"
 #include "model/DescribeEnsRouteEntryListRequest.h"
 #include "model/DescribeEnsRouteEntryListResult.h"
+#include "model/DescribeEnsRouteTablesRequest.h"
+#include "model/DescribeEnsRouteTablesResult.h"
 #include "model/DescribeEnsSaleControlRequest.h"
 #include "model/DescribeEnsSaleControlResult.h"
 #include "model/DescribeEnsSaleControlAvailableResourceRequest.h"
@@ -278,6 +290,8 @@
 #include "model/DescribeInstanceBandwidthDetailResult.h"
 #include "model/DescribeInstanceMonitorDataRequest.h"
 #include "model/DescribeInstanceMonitorDataResult.h"
+#include "model/DescribeInstanceSDGStatusRequest.h"
+#include "model/DescribeInstanceSDGStatusResult.h"
 #include "model/DescribeInstanceSpecRequest.h"
 #include "model/DescribeInstanceSpecResult.h"
 #include "model/DescribeInstanceTypesRequest.h"
@@ -370,6 +384,8 @@
 #include "model/DescribeVSwitchesResult.h"
 #include "model/DetachDiskRequest.h"
 #include "model/DetachDiskResult.h"
+#include "model/DetachInstanceSDGRequest.h"
+#include "model/DetachInstanceSDGResult.h"
 #include "model/DetachNetworkInterfaceRequest.h"
 #include "model/DetachNetworkInterfaceResult.h"
 #include "model/DistApplicationDataRequest.h"
@@ -446,6 +462,8 @@
 #include "model/ModifySnapshotAttributeResult.h"
 #include "model/ModifyVSwitchAttributeRequest.h"
 #include "model/ModifyVSwitchAttributeResult.h"
+#include "model/MountInstanceSDGRequest.h"
+#include "model/MountInstanceSDGResult.h"
 #include "model/PreloadRegionSDGRequest.h"
 #include "model/PreloadRegionSDGResult.h"
 #include "model/PrepareUploadRequest.h"
@@ -568,6 +586,8 @@
 #include "model/UnassociateNetworkAclResult.h"
 #include "model/UnloadRegionSDGRequest.h"
 #include "model/UnloadRegionSDGResult.h"
+#include "model/UnmountInstanceSDGRequest.h"
+#include "model/UnmountInstanceSDGResult.h"
 #include "model/UntagResourcesRequest.h"
 #include "model/UntagResourcesResult.h"
 #include "model/UpdateEnsSaleControlRequest.h"
@@ -615,6 +635,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::AttachEnsInstancesResult> AttachEnsInstancesOutcome;
 			typedef std::future<AttachEnsInstancesOutcome> AttachEnsInstancesOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::AttachEnsInstancesRequest&, const AttachEnsInstancesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AttachEnsInstancesAsyncHandler;
+			typedef Outcome<Error, Model::AttachInstanceSDGResult> AttachInstanceSDGOutcome;
+			typedef std::future<AttachInstanceSDGOutcome> AttachInstanceSDGOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::AttachInstanceSDGRequest&, const AttachInstanceSDGOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AttachInstanceSDGAsyncHandler;
 			typedef Outcome<Error, Model::AttachNetworkInterfaceResult> AttachNetworkInterfaceOutcome;
 			typedef std::future<AttachNetworkInterfaceOutcome> AttachNetworkInterfaceOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::AttachNetworkInterfaceRequest&, const AttachNetworkInterfaceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AttachNetworkInterfaceAsyncHandler;
@@ -669,6 +692,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateForwardEntryResult> CreateForwardEntryOutcome;
 			typedef std::future<CreateForwardEntryOutcome> CreateForwardEntryOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::CreateForwardEntryRequest&, const CreateForwardEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateForwardEntryAsyncHandler;
+			typedef Outcome<Error, Model::CreateHaVipResult> CreateHaVipOutcome;
+			typedef std::future<CreateHaVipOutcome> CreateHaVipOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::CreateHaVipRequest&, const CreateHaVipOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateHaVipAsyncHandler;
 			typedef Outcome<Error, Model::CreateImageResult> CreateImageOutcome;
 			typedef std::future<CreateImageOutcome> CreateImageOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::CreateImageRequest&, const CreateImageOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateImageAsyncHandler;
@@ -711,6 +737,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateNetworkAclEntryResult> CreateNetworkAclEntryOutcome;
 			typedef std::future<CreateNetworkAclEntryOutcome> CreateNetworkAclEntryOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::CreateNetworkAclEntryRequest&, const CreateNetworkAclEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateNetworkAclEntryAsyncHandler;
+			typedef Outcome<Error, Model::CreateNetworkInterfaceResult> CreateNetworkInterfaceOutcome;
+			typedef std::future<CreateNetworkInterfaceOutcome> CreateNetworkInterfaceOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::CreateNetworkInterfaceRequest&, const CreateNetworkInterfaceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateNetworkInterfaceAsyncHandler;
 			typedef Outcome<Error, Model::CreateSDGResult> CreateSDGOutcome;
 			typedef std::future<CreateSDGOutcome> CreateSDGOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::CreateSDGRequest&, const CreateSDGOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateSDGAsyncHandler;
@@ -765,6 +794,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteForwardEntryResult> DeleteForwardEntryOutcome;
 			typedef std::future<DeleteForwardEntryOutcome> DeleteForwardEntryOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DeleteForwardEntryRequest&, const DeleteForwardEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteForwardEntryAsyncHandler;
+			typedef Outcome<Error, Model::DeleteHaVipsResult> DeleteHaVipsOutcome;
+			typedef std::future<DeleteHaVipsOutcome> DeleteHaVipsOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::DeleteHaVipsRequest&, const DeleteHaVipsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteHaVipsAsyncHandler;
 			typedef Outcome<Error, Model::DeleteImageResult> DeleteImageOutcome;
 			typedef std::future<DeleteImageOutcome> DeleteImageOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DeleteImageRequest&, const DeleteImageOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteImageAsyncHandler;
@@ -789,6 +821,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteNetworkAclEntryResult> DeleteNetworkAclEntryOutcome;
 			typedef std::future<DeleteNetworkAclEntryOutcome> DeleteNetworkAclEntryOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DeleteNetworkAclEntryRequest&, const DeleteNetworkAclEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteNetworkAclEntryAsyncHandler;
+			typedef Outcome<Error, Model::DeleteNetworkInterfacesResult> DeleteNetworkInterfacesOutcome;
+			typedef std::future<DeleteNetworkInterfacesOutcome> DeleteNetworkInterfacesOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::DeleteNetworkInterfacesRequest&, const DeleteNetworkInterfacesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteNetworkInterfacesAsyncHandler;
 			typedef Outcome<Error, Model::DeleteObjectResult> DeleteObjectOutcome;
 			typedef std::future<DeleteObjectOutcome> DeleteObjectOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DeleteObjectRequest&, const DeleteObjectOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteObjectAsyncHandler;
@@ -912,6 +947,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeEnsRouteEntryListResult> DescribeEnsRouteEntryListOutcome;
 			typedef std::future<DescribeEnsRouteEntryListOutcome> DescribeEnsRouteEntryListOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DescribeEnsRouteEntryListRequest&, const DescribeEnsRouteEntryListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeEnsRouteEntryListAsyncHandler;
+			typedef Outcome<Error, Model::DescribeEnsRouteTablesResult> DescribeEnsRouteTablesOutcome;
+			typedef std::future<DescribeEnsRouteTablesOutcome> DescribeEnsRouteTablesOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::DescribeEnsRouteTablesRequest&, const DescribeEnsRouteTablesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeEnsRouteTablesAsyncHandler;
 			typedef Outcome<Error, Model::DescribeEnsSaleControlResult> DescribeEnsSaleControlOutcome;
 			typedef std::future<DescribeEnsSaleControlOutcome> DescribeEnsSaleControlOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DescribeEnsSaleControlRequest&, const DescribeEnsSaleControlOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeEnsSaleControlAsyncHandler;
@@ -969,6 +1007,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeInstanceMonitorDataResult> DescribeInstanceMonitorDataOutcome;
 			typedef std::future<DescribeInstanceMonitorDataOutcome> DescribeInstanceMonitorDataOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DescribeInstanceMonitorDataRequest&, const DescribeInstanceMonitorDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeInstanceMonitorDataAsyncHandler;
+			typedef Outcome<Error, Model::DescribeInstanceSDGStatusResult> DescribeInstanceSDGStatusOutcome;
+			typedef std::future<DescribeInstanceSDGStatusOutcome> DescribeInstanceSDGStatusOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::DescribeInstanceSDGStatusRequest&, const DescribeInstanceSDGStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeInstanceSDGStatusAsyncHandler;
 			typedef Outcome<Error, Model::DescribeInstanceSpecResult> DescribeInstanceSpecOutcome;
 			typedef std::future<DescribeInstanceSpecOutcome> DescribeInstanceSpecOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DescribeInstanceSpecRequest&, const DescribeInstanceSpecOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeInstanceSpecAsyncHandler;
@@ -1107,6 +1148,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DetachDiskResult> DetachDiskOutcome;
 			typedef std::future<DetachDiskOutcome> DetachDiskOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DetachDiskRequest&, const DetachDiskOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DetachDiskAsyncHandler;
+			typedef Outcome<Error, Model::DetachInstanceSDGResult> DetachInstanceSDGOutcome;
+			typedef std::future<DetachInstanceSDGOutcome> DetachInstanceSDGOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::DetachInstanceSDGRequest&, const DetachInstanceSDGOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DetachInstanceSDGAsyncHandler;
 			typedef Outcome<Error, Model::DetachNetworkInterfaceResult> DetachNetworkInterfaceOutcome;
 			typedef std::future<DetachNetworkInterfaceOutcome> DetachNetworkInterfaceOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DetachNetworkInterfaceRequest&, const DetachNetworkInterfaceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DetachNetworkInterfaceAsyncHandler;
@@ -1221,6 +1265,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ModifyVSwitchAttributeResult> ModifyVSwitchAttributeOutcome;
 			typedef std::future<ModifyVSwitchAttributeOutcome> ModifyVSwitchAttributeOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::ModifyVSwitchAttributeRequest&, const ModifyVSwitchAttributeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyVSwitchAttributeAsyncHandler;
+			typedef Outcome<Error, Model::MountInstanceSDGResult> MountInstanceSDGOutcome;
+			typedef std::future<MountInstanceSDGOutcome> MountInstanceSDGOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::MountInstanceSDGRequest&, const MountInstanceSDGOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> MountInstanceSDGAsyncHandler;
 			typedef Outcome<Error, Model::PreloadRegionSDGResult> PreloadRegionSDGOutcome;
 			typedef std::future<PreloadRegionSDGOutcome> PreloadRegionSDGOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::PreloadRegionSDGRequest&, const PreloadRegionSDGOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> PreloadRegionSDGAsyncHandler;
@@ -1404,6 +1451,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::UnloadRegionSDGResult> UnloadRegionSDGOutcome;
 			typedef std::future<UnloadRegionSDGOutcome> UnloadRegionSDGOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::UnloadRegionSDGRequest&, const UnloadRegionSDGOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UnloadRegionSDGAsyncHandler;
+			typedef Outcome<Error, Model::UnmountInstanceSDGResult> UnmountInstanceSDGOutcome;
+			typedef std::future<UnmountInstanceSDGOutcome> UnmountInstanceSDGOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::UnmountInstanceSDGRequest&, const UnmountInstanceSDGOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UnmountInstanceSDGAsyncHandler;
 			typedef Outcome<Error, Model::UntagResourcesResult> UntagResourcesOutcome;
 			typedef std::future<UntagResourcesOutcome> UntagResourcesOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::UntagResourcesRequest&, const UntagResourcesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UntagResourcesAsyncHandler;
@@ -1451,6 +1501,9 @@ namespace AlibabaCloud
 			AttachEnsInstancesOutcome attachEnsInstances(const Model::AttachEnsInstancesRequest &request)const;
 			void attachEnsInstancesAsync(const Model::AttachEnsInstancesRequest& request, const AttachEnsInstancesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AttachEnsInstancesOutcomeCallable attachEnsInstancesCallable(const Model::AttachEnsInstancesRequest& request) const;
+			AttachInstanceSDGOutcome attachInstanceSDG(const Model::AttachInstanceSDGRequest &request)const;
+			void attachInstanceSDGAsync(const Model::AttachInstanceSDGRequest& request, const AttachInstanceSDGAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			AttachInstanceSDGOutcomeCallable attachInstanceSDGCallable(const Model::AttachInstanceSDGRequest& request) const;
 			AttachNetworkInterfaceOutcome attachNetworkInterface(const Model::AttachNetworkInterfaceRequest &request)const;
 			void attachNetworkInterfaceAsync(const Model::AttachNetworkInterfaceRequest& request, const AttachNetworkInterfaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AttachNetworkInterfaceOutcomeCallable attachNetworkInterfaceCallable(const Model::AttachNetworkInterfaceRequest& request) const;
@@ -1505,6 +1558,9 @@ namespace AlibabaCloud
 			CreateForwardEntryOutcome createForwardEntry(const Model::CreateForwardEntryRequest &request)const;
 			void createForwardEntryAsync(const Model::CreateForwardEntryRequest& request, const CreateForwardEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateForwardEntryOutcomeCallable createForwardEntryCallable(const Model::CreateForwardEntryRequest& request) const;
+			CreateHaVipOutcome createHaVip(const Model::CreateHaVipRequest &request)const;
+			void createHaVipAsync(const Model::CreateHaVipRequest& request, const CreateHaVipAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateHaVipOutcomeCallable createHaVipCallable(const Model::CreateHaVipRequest& request) const;
 			CreateImageOutcome createImage(const Model::CreateImageRequest &request)const;
 			void createImageAsync(const Model::CreateImageRequest& request, const CreateImageAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateImageOutcomeCallable createImageCallable(const Model::CreateImageRequest& request) const;
@@ -1547,6 +1603,9 @@ namespace AlibabaCloud
 			CreateNetworkAclEntryOutcome createNetworkAclEntry(const Model::CreateNetworkAclEntryRequest &request)const;
 			void createNetworkAclEntryAsync(const Model::CreateNetworkAclEntryRequest& request, const CreateNetworkAclEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateNetworkAclEntryOutcomeCallable createNetworkAclEntryCallable(const Model::CreateNetworkAclEntryRequest& request) const;
+			CreateNetworkInterfaceOutcome createNetworkInterface(const Model::CreateNetworkInterfaceRequest &request)const;
+			void createNetworkInterfaceAsync(const Model::CreateNetworkInterfaceRequest& request, const CreateNetworkInterfaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateNetworkInterfaceOutcomeCallable createNetworkInterfaceCallable(const Model::CreateNetworkInterfaceRequest& request) const;
 			CreateSDGOutcome createSDG(const Model::CreateSDGRequest &request)const;
 			void createSDGAsync(const Model::CreateSDGRequest& request, const CreateSDGAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateSDGOutcomeCallable createSDGCallable(const Model::CreateSDGRequest& request) const;
@@ -1601,6 +1660,9 @@ namespace AlibabaCloud
 			DeleteForwardEntryOutcome deleteForwardEntry(const Model::DeleteForwardEntryRequest &request)const;
 			void deleteForwardEntryAsync(const Model::DeleteForwardEntryRequest& request, const DeleteForwardEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteForwardEntryOutcomeCallable deleteForwardEntryCallable(const Model::DeleteForwardEntryRequest& request) const;
+			DeleteHaVipsOutcome deleteHaVips(const Model::DeleteHaVipsRequest &request)const;
+			void deleteHaVipsAsync(const Model::DeleteHaVipsRequest& request, const DeleteHaVipsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteHaVipsOutcomeCallable deleteHaVipsCallable(const Model::DeleteHaVipsRequest& request) const;
 			DeleteImageOutcome deleteImage(const Model::DeleteImageRequest &request)const;
 			void deleteImageAsync(const Model::DeleteImageRequest& request, const DeleteImageAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteImageOutcomeCallable deleteImageCallable(const Model::DeleteImageRequest& request) const;
@@ -1625,6 +1687,9 @@ namespace AlibabaCloud
 			DeleteNetworkAclEntryOutcome deleteNetworkAclEntry(const Model::DeleteNetworkAclEntryRequest &request)const;
 			void deleteNetworkAclEntryAsync(const Model::DeleteNetworkAclEntryRequest& request, const DeleteNetworkAclEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteNetworkAclEntryOutcomeCallable deleteNetworkAclEntryCallable(const Model::DeleteNetworkAclEntryRequest& request) const;
+			DeleteNetworkInterfacesOutcome deleteNetworkInterfaces(const Model::DeleteNetworkInterfacesRequest &request)const;
+			void deleteNetworkInterfacesAsync(const Model::DeleteNetworkInterfacesRequest& request, const DeleteNetworkInterfacesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteNetworkInterfacesOutcomeCallable deleteNetworkInterfacesCallable(const Model::DeleteNetworkInterfacesRequest& request) const;
 			DeleteObjectOutcome deleteObject(const Model::DeleteObjectRequest &request)const;
 			void deleteObjectAsync(const Model::DeleteObjectRequest& request, const DeleteObjectAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteObjectOutcomeCallable deleteObjectCallable(const Model::DeleteObjectRequest& request) const;
@@ -1748,6 +1813,9 @@ namespace AlibabaCloud
 			DescribeEnsRouteEntryListOutcome describeEnsRouteEntryList(const Model::DescribeEnsRouteEntryListRequest &request)const;
 			void describeEnsRouteEntryListAsync(const Model::DescribeEnsRouteEntryListRequest& request, const DescribeEnsRouteEntryListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeEnsRouteEntryListOutcomeCallable describeEnsRouteEntryListCallable(const Model::DescribeEnsRouteEntryListRequest& request) const;
+			DescribeEnsRouteTablesOutcome describeEnsRouteTables(const Model::DescribeEnsRouteTablesRequest &request)const;
+			void describeEnsRouteTablesAsync(const Model::DescribeEnsRouteTablesRequest& request, const DescribeEnsRouteTablesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeEnsRouteTablesOutcomeCallable describeEnsRouteTablesCallable(const Model::DescribeEnsRouteTablesRequest& request) const;
 			DescribeEnsSaleControlOutcome describeEnsSaleControl(const Model::DescribeEnsSaleControlRequest &request)const;
 			void describeEnsSaleControlAsync(const Model::DescribeEnsSaleControlRequest& request, const DescribeEnsSaleControlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeEnsSaleControlOutcomeCallable describeEnsSaleControlCallable(const Model::DescribeEnsSaleControlRequest& request) const;
@@ -1805,6 +1873,9 @@ namespace AlibabaCloud
 			DescribeInstanceMonitorDataOutcome describeInstanceMonitorData(const Model::DescribeInstanceMonitorDataRequest &request)const;
 			void describeInstanceMonitorDataAsync(const Model::DescribeInstanceMonitorDataRequest& request, const DescribeInstanceMonitorDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeInstanceMonitorDataOutcomeCallable describeInstanceMonitorDataCallable(const Model::DescribeInstanceMonitorDataRequest& request) const;
+			DescribeInstanceSDGStatusOutcome describeInstanceSDGStatus(const Model::DescribeInstanceSDGStatusRequest &request)const;
+			void describeInstanceSDGStatusAsync(const Model::DescribeInstanceSDGStatusRequest& request, const DescribeInstanceSDGStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeInstanceSDGStatusOutcomeCallable describeInstanceSDGStatusCallable(const Model::DescribeInstanceSDGStatusRequest& request) const;
 			DescribeInstanceSpecOutcome describeInstanceSpec(const Model::DescribeInstanceSpecRequest &request)const;
 			void describeInstanceSpecAsync(const Model::DescribeInstanceSpecRequest& request, const DescribeInstanceSpecAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeInstanceSpecOutcomeCallable describeInstanceSpecCallable(const Model::DescribeInstanceSpecRequest& request) const;
@@ -1943,6 +2014,9 @@ namespace AlibabaCloud
 			DetachDiskOutcome detachDisk(const Model::DetachDiskRequest &request)const;
 			void detachDiskAsync(const Model::DetachDiskRequest& request, const DetachDiskAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DetachDiskOutcomeCallable detachDiskCallable(const Model::DetachDiskRequest& request) const;
+			DetachInstanceSDGOutcome detachInstanceSDG(const Model::DetachInstanceSDGRequest &request)const;
+			void detachInstanceSDGAsync(const Model::DetachInstanceSDGRequest& request, const DetachInstanceSDGAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DetachInstanceSDGOutcomeCallable detachInstanceSDGCallable(const Model::DetachInstanceSDGRequest& request) const;
 			DetachNetworkInterfaceOutcome detachNetworkInterface(const Model::DetachNetworkInterfaceRequest &request)const;
 			void detachNetworkInterfaceAsync(const Model::DetachNetworkInterfaceRequest& request, const DetachNetworkInterfaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DetachNetworkInterfaceOutcomeCallable detachNetworkInterfaceCallable(const Model::DetachNetworkInterfaceRequest& request) const;
@@ -2057,6 +2131,9 @@ namespace AlibabaCloud
 			ModifyVSwitchAttributeOutcome modifyVSwitchAttribute(const Model::ModifyVSwitchAttributeRequest &request)const;
 			void modifyVSwitchAttributeAsync(const Model::ModifyVSwitchAttributeRequest& request, const ModifyVSwitchAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ModifyVSwitchAttributeOutcomeCallable modifyVSwitchAttributeCallable(const Model::ModifyVSwitchAttributeRequest& request) const;
+			MountInstanceSDGOutcome mountInstanceSDG(const Model::MountInstanceSDGRequest &request)const;
+			void mountInstanceSDGAsync(const Model::MountInstanceSDGRequest& request, const MountInstanceSDGAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			MountInstanceSDGOutcomeCallable mountInstanceSDGCallable(const Model::MountInstanceSDGRequest& request) const;
 			PreloadRegionSDGOutcome preloadRegionSDG(const Model::PreloadRegionSDGRequest &request)const;
 			void preloadRegionSDGAsync(const Model::PreloadRegionSDGRequest& request, const PreloadRegionSDGAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			PreloadRegionSDGOutcomeCallable preloadRegionSDGCallable(const Model::PreloadRegionSDGRequest& request) const;
@@ -2240,6 +2317,9 @@ namespace AlibabaCloud
 			UnloadRegionSDGOutcome unloadRegionSDG(const Model::UnloadRegionSDGRequest &request)const;
 			void unloadRegionSDGAsync(const Model::UnloadRegionSDGRequest& request, const UnloadRegionSDGAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UnloadRegionSDGOutcomeCallable unloadRegionSDGCallable(const Model::UnloadRegionSDGRequest& request) const;
+			UnmountInstanceSDGOutcome unmountInstanceSDG(const Model::UnmountInstanceSDGRequest &request)const;
+			void unmountInstanceSDGAsync(const Model::UnmountInstanceSDGRequest& request, const UnmountInstanceSDGAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UnmountInstanceSDGOutcomeCallable unmountInstanceSDGCallable(const Model::UnmountInstanceSDGRequest& request) const;
 			UntagResourcesOutcome untagResources(const Model::UntagResourcesRequest &request)const;
 			void untagResourcesAsync(const Model::UntagResourcesRequest& request, const UntagResourcesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UntagResourcesOutcomeCallable untagResourcesCallable(const Model::UntagResourcesRequest& request) const;

+ 45 - 0
ens/include/alibabacloud/ens/model/AttachInstanceSDGRequest.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_ENS_MODEL_ATTACHINSTANCESDGREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_ATTACHINSTANCESDGREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT AttachInstanceSDGRequest : public RpcServiceRequest {
+public:
+	AttachInstanceSDGRequest();
+	~AttachInstanceSDGRequest();
+	std::string getSDGId() const;
+	void setSDGId(const std::string &sDGId);
+	std::vector<std::string> getInstanceIds() const;
+	void setInstanceIds(const std::vector<std::string> &instanceIds);
+
+private:
+	std::string sDGId_;
+	std::vector<std::string> instanceIds_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_ATTACHINSTANCESDGREQUEST_H_

+ 68 - 0
ens/include/alibabacloud/ens/model/AttachInstanceSDGResult.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_ENS_MODEL_ATTACHINSTANCESDGRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_ATTACHINSTANCESDGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT AttachInstanceSDGResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct Result
+					{
+						struct FailedItemsItem
+						{
+							std::string instanceId;
+							std::string errMessage;
+						};
+						std::vector<FailedItemsItem> failedItems;
+						long failedCount;
+						long successCount;
+					};
+					std::string message;
+					bool success;
+					Result result;
+				};
+
+
+				AttachInstanceSDGResult();
+				explicit AttachInstanceSDGResult(const std::string &payload);
+				~AttachInstanceSDGResult();
+				Data getData()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Data data_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_ATTACHINSTANCESDGRESULT_H_

+ 3 - 0
ens/include/alibabacloud/ens/model/CreateARMServerInstancesRequest.h

@@ -54,6 +54,8 @@ public:
 	void setInstanceType(const std::string &instanceType);
 	int getAmount() const;
 	void setAmount(int amount);
+	std::string getEnvironmentVar() const;
+	void setEnvironmentVar(const std::string &environmentVar);
 	std::string get_NameSpace() const;
 	void set_NameSpace(const std::string &_nameSpace);
 	std::string getServerName() const;
@@ -74,6 +76,7 @@ private:
 	bool autoUseCoupon_;
 	std::string instanceType_;
 	int amount_;
+	std::string environmentVar_;
 	std::string _nameSpace_;
 	std::string serverName_;
 	std::string payType_;

+ 54 - 0
ens/include/alibabacloud/ens/model/CreateHaVipRequest.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_ENS_MODEL_CREATEHAVIPREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_CREATEHAVIPREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT CreateHaVipRequest : public RpcServiceRequest {
+public:
+	CreateHaVipRequest();
+	~CreateHaVipRequest();
+	std::string getIpAddress() const;
+	void setIpAddress(const std::string &ipAddress);
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	int getAmount() const;
+	void setAmount(int amount);
+	std::string getVSwitchId() const;
+	void setVSwitchId(const std::string &vSwitchId);
+	std::string getName() const;
+	void setName(const std::string &name);
+
+private:
+	std::string ipAddress_;
+	std::string description_;
+	int amount_;
+	std::string vSwitchId_;
+	std::string name_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_CREATEHAVIPREQUEST_H_

+ 51 - 0
ens/include/alibabacloud/ens/model/CreateHaVipResult.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_ENS_MODEL_CREATEHAVIPRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_CREATEHAVIPRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT CreateHaVipResult : public ServiceResult
+			{
+			public:
+
+
+				CreateHaVipResult();
+				explicit CreateHaVipResult(const std::string &payload);
+				~CreateHaVipResult();
+				std::vector<std::string> getHaVipIds()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<std::string> haVipIds_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_CREATEHAVIPRESULT_H_

+ 51 - 0
ens/include/alibabacloud/ens/model/CreateNetworkInterfaceRequest.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_ENS_MODEL_CREATENETWORKINTERFACEREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_CREATENETWORKINTERFACEREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT CreateNetworkInterfaceRequest : public RpcServiceRequest {
+public:
+	CreateNetworkInterfaceRequest();
+	~CreateNetworkInterfaceRequest();
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
+	std::vector<std::string> getSecurityGroupIds() const;
+	void setSecurityGroupIds(const std::vector<std::string> &securityGroupIds);
+	std::string getVSwitchId() const;
+	void setVSwitchId(const std::string &vSwitchId);
+	std::string getName() const;
+	void setName(const std::string &name);
+
+private:
+	std::string description_;
+	std::vector<std::string> securityGroupIds_;
+	std::string vSwitchId_;
+	std::string name_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_CREATENETWORKINTERFACEREQUEST_H_

+ 51 - 0
ens/include/alibabacloud/ens/model/CreateNetworkInterfaceResult.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_ENS_MODEL_CREATENETWORKINTERFACERESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_CREATENETWORKINTERFACERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT CreateNetworkInterfaceResult : public ServiceResult
+			{
+			public:
+
+
+				CreateNetworkInterfaceResult();
+				explicit CreateNetworkInterfaceResult(const std::string &payload);
+				~CreateNetworkInterfaceResult();
+				std::vector<std::string> getNetworkInterfaceIds()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<std::string> networkInterfaceIds_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_CREATENETWORKINTERFACERESULT_H_

+ 42 - 0
ens/include/alibabacloud/ens/model/DeleteHaVipsRequest.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_ENS_MODEL_DELETEHAVIPSREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_DELETEHAVIPSREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT DeleteHaVipsRequest : public RpcServiceRequest {
+public:
+	DeleteHaVipsRequest();
+	~DeleteHaVipsRequest();
+	std::vector<std::string> getHaVipIds() const;
+	void setHaVipIds(const std::vector<std::string> &haVipIds);
+
+private:
+	std::vector<std::string> haVipIds_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_DELETEHAVIPSREQUEST_H_

+ 49 - 0
ens/include/alibabacloud/ens/model/DeleteHaVipsResult.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_ENS_MODEL_DELETEHAVIPSRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_DELETEHAVIPSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT DeleteHaVipsResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteHaVipsResult();
+				explicit DeleteHaVipsResult(const std::string &payload);
+				~DeleteHaVipsResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_DELETEHAVIPSRESULT_H_

+ 42 - 0
ens/include/alibabacloud/ens/model/DeleteNetworkInterfacesRequest.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_ENS_MODEL_DELETENETWORKINTERFACESREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_DELETENETWORKINTERFACESREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT DeleteNetworkInterfacesRequest : public RpcServiceRequest {
+public:
+	DeleteNetworkInterfacesRequest();
+	~DeleteNetworkInterfacesRequest();
+	std::vector<std::string> getNetworkInterfaceIds() const;
+	void setNetworkInterfaceIds(const std::vector<std::string> &networkInterfaceIds);
+
+private:
+	std::vector<std::string> networkInterfaceIds_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_DELETENETWORKINTERFACESREQUEST_H_

+ 49 - 0
ens/include/alibabacloud/ens/model/DeleteNetworkInterfacesResult.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_ENS_MODEL_DELETENETWORKINTERFACESRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_DELETENETWORKINTERFACESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT DeleteNetworkInterfacesResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteNetworkInterfacesResult();
+				explicit DeleteNetworkInterfacesResult(const std::string &payload);
+				~DeleteNetworkInterfacesResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_DELETENETWORKINTERFACESRESULT_H_

+ 2 - 0
ens/include/alibabacloud/ens/model/DescribeDisksResult.h

@@ -36,9 +36,11 @@ namespace AlibabaCloud
 				{
 					std::string status;
 					std::string category;
+					std::string description;
 					std::string instanceId;
 					int size;
 					bool encrypted;
+					bool deleteWithInstance;
 					std::string diskChargeType;
 					std::string diskName;
 					std::string encryptedKeyId;

+ 54 - 0
ens/include/alibabacloud/ens/model/DescribeEnsRouteTablesRequest.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_ENS_MODEL_DESCRIBEENSROUTETABLESREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEENSROUTETABLESREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT DescribeEnsRouteTablesRequest : public RpcServiceRequest {
+public:
+	DescribeEnsRouteTablesRequest();
+	~DescribeEnsRouteTablesRequest();
+	int getPageNumber() const;
+	void setPageNumber(int pageNumber);
+	int getPageSize() const;
+	void setPageSize(int pageSize);
+	std::string getEnsRegionId() const;
+	void setEnsRegionId(const std::string &ensRegionId);
+	std::string getRouteTableId() const;
+	void setRouteTableId(const std::string &routeTableId);
+	std::string getNetworkId() const;
+	void setNetworkId(const std::string &networkId);
+
+private:
+	int pageNumber_;
+	int pageSize_;
+	std::string ensRegionId_;
+	std::string routeTableId_;
+	std::string networkId_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEENSROUTETABLESREQUEST_H_

+ 69 - 0
ens/include/alibabacloud/ens/model/DescribeEnsRouteTablesResult.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_ENS_MODEL_DESCRIBEENSROUTETABLESRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEENSROUTETABLESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT DescribeEnsRouteTablesResult : public ServiceResult
+			{
+			public:
+				struct RouteTable
+				{
+					std::string status;
+					std::string type;
+					std::string networkName;
+					std::string routeTableId;
+					std::vector<std::string> vSwitchIds;
+					std::string creationTime;
+					std::string networkId;
+					std::string ensRegionId;
+					std::string routeTableName;
+				};
+
+
+				DescribeEnsRouteTablesResult();
+				explicit DescribeEnsRouteTablesResult(const std::string &payload);
+				~DescribeEnsRouteTablesResult();
+				int getTotalCount()const;
+				int getPageSize()const;
+				int getPageNumber()const;
+				std::vector<RouteTable> getRouteTables()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalCount_;
+				int pageSize_;
+				int pageNumber_;
+				std::vector<RouteTable> routeTables_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEENSROUTETABLESRESULT_H_

+ 54 - 0
ens/include/alibabacloud/ens/model/DescribeInstanceSDGStatusRequest.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_ENS_MODEL_DESCRIBEINSTANCESDGSTATUSREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEINSTANCESDGSTATUSREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT DescribeInstanceSDGStatusRequest : public RpcServiceRequest {
+public:
+	DescribeInstanceSDGStatusRequest();
+	~DescribeInstanceSDGStatusRequest();
+	int getPageNumber() const;
+	void setPageNumber(int pageNumber);
+	int getPageSize() const;
+	void setPageSize(int pageSize);
+	std::vector<std::string> getSDGIds() const;
+	void setSDGIds(const std::vector<std::string> &sDGIds);
+	std::string getInstanceId() const;
+	void setInstanceId(const std::string &instanceId);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
+
+private:
+	int pageNumber_;
+	int pageSize_;
+	std::vector<std::string> sDGIds_;
+	std::string instanceId_;
+	std::string status_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEINSTANCESDGSTATUSREQUEST_H_

+ 67 - 0
ens/include/alibabacloud/ens/model/DescribeInstanceSDGStatusResult.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_ENS_MODEL_DESCRIBEINSTANCESDGSTATUSRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEINSTANCESDGSTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT DescribeInstanceSDGStatusResult : public ServiceResult
+			{
+			public:
+				struct DeploymentStatusItem
+				{
+					std::string sDGId;
+					std::string status;
+					std::string mountType;
+					std::string phase;
+					std::string instanceId;
+					std::string updateTime;
+					std::string ensRegionId;
+				};
+
+
+				DescribeInstanceSDGStatusResult();
+				explicit DescribeInstanceSDGStatusResult(const std::string &payload);
+				~DescribeInstanceSDGStatusResult();
+				std::string getTotalCount()const;
+				std::string getPageSize()const;
+				long getPageNumber()const;
+				std::vector<DeploymentStatusItem> getDeploymentStatus()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string totalCount_;
+				std::string pageSize_;
+				long pageNumber_;
+				std::vector<DeploymentStatusItem> deploymentStatus_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEINSTANCESDGSTATUSRESULT_H_

+ 1 - 0
ens/include/alibabacloud/ens/model/DescribeSDGDeploymentStatusResult.h

@@ -36,6 +36,7 @@ namespace AlibabaCloud
 				{
 					std::string status;
 					std::string mountType;
+					std::string phase;
 					std::string instanceId;
 					std::string updateTime;
 					std::string regionId;

+ 12 - 6
ens/include/alibabacloud/ens/model/DescribeSnapshotsRequest.h

@@ -30,26 +30,32 @@ class ALIBABACLOUD_ENS_EXPORT DescribeSnapshotsRequest : public RpcServiceReques
 public:
 	DescribeSnapshotsRequest();
 	~DescribeSnapshotsRequest();
+	std::string getEnsRegionId() const;
+	void setEnsRegionId(const std::string &ensRegionId);
+	std::string getInstanceId() const;
+	void setInstanceId(const std::string &instanceId);
 	std::string getSnapshotId() const;
 	void setSnapshotId(const std::string &snapshotId);
+	std::string getSnapshotName() const;
+	void setSnapshotName(const std::string &snapshotName);
 	int getPageNumber() const;
 	void setPageNumber(int pageNumber);
-	std::string getEnsRegionId() const;
-	void setEnsRegionId(const std::string &ensRegionId);
 	int getPageSize() const;
 	void setPageSize(int pageSize);
 	std::string getDiskId() const;
 	void setDiskId(const std::string &diskId);
-	std::string getInstanceId() const;
-	void setInstanceId(const std::string &instanceId);
+	std::string getEnsRegionIds() const;
+	void setEnsRegionIds(const std::string &ensRegionIds);
 
 private:
+	std::string ensRegionId_;
+	std::string instanceId_;
 	std::string snapshotId_;
+	std::string snapshotName_;
 	int pageNumber_;
-	std::string ensRegionId_;
 	int pageSize_;
 	std::string diskId_;
-	std::string instanceId_;
+	std::string ensRegionIds_;
 };
 } // namespace Model
 } // namespace Ens

+ 45 - 0
ens/include/alibabacloud/ens/model/DetachInstanceSDGRequest.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_ENS_MODEL_DETACHINSTANCESDGREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_DETACHINSTANCESDGREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT DetachInstanceSDGRequest : public RpcServiceRequest {
+public:
+	DetachInstanceSDGRequest();
+	~DetachInstanceSDGRequest();
+	std::string getSDGId() const;
+	void setSDGId(const std::string &sDGId);
+	std::vector<std::string> getInstanceIds() const;
+	void setInstanceIds(const std::vector<std::string> &instanceIds);
+
+private:
+	std::string sDGId_;
+	std::vector<std::string> instanceIds_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_DETACHINSTANCESDGREQUEST_H_

+ 68 - 0
ens/include/alibabacloud/ens/model/DetachInstanceSDGResult.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_ENS_MODEL_DETACHINSTANCESDGRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_DETACHINSTANCESDGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT DetachInstanceSDGResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct Result
+					{
+						struct FailedItem
+						{
+							std::string instanceId;
+							std::string errMessage;
+						};
+						std::vector<FailedItem> failedItems;
+						long failedCount;
+						std::string successCount;
+					};
+					std::string message;
+					bool success;
+					Result result;
+				};
+
+
+				DetachInstanceSDGResult();
+				explicit DetachInstanceSDGResult(const std::string &payload);
+				~DetachInstanceSDGResult();
+				Data getData()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Data data_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_DETACHINSTANCESDGRESULT_H_

+ 45 - 0
ens/include/alibabacloud/ens/model/MountInstanceSDGRequest.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_ENS_MODEL_MOUNTINSTANCESDGREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_MOUNTINSTANCESDGREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT MountInstanceSDGRequest : public RpcServiceRequest {
+public:
+	MountInstanceSDGRequest();
+	~MountInstanceSDGRequest();
+	std::string getSDGId() const;
+	void setSDGId(const std::string &sDGId);
+	std::vector<std::string> getInstanceIds() const;
+	void setInstanceIds(const std::vector<std::string> &instanceIds);
+
+private:
+	std::string sDGId_;
+	std::vector<std::string> instanceIds_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_MOUNTINSTANCESDGREQUEST_H_

+ 68 - 0
ens/include/alibabacloud/ens/model/MountInstanceSDGResult.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_ENS_MODEL_MOUNTINSTANCESDGRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_MOUNTINSTANCESDGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT MountInstanceSDGResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct Result
+					{
+						struct FailedItem
+						{
+							std::string instanceId;
+							std::string errMessage;
+						};
+						std::vector<FailedItem> failedItems;
+						long failedCount;
+						long successCount;
+					};
+					std::string message;
+					bool success;
+					Result result;
+				};
+
+
+				MountInstanceSDGResult();
+				explicit MountInstanceSDGResult(const std::string &payload);
+				~MountInstanceSDGResult();
+				Data getData()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Data data_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_MOUNTINSTANCESDGRESULT_H_

+ 45 - 0
ens/include/alibabacloud/ens/model/UnmountInstanceSDGRequest.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_ENS_MODEL_UNMOUNTINSTANCESDGREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_UNMOUNTINSTANCESDGREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT UnmountInstanceSDGRequest : public RpcServiceRequest {
+public:
+	UnmountInstanceSDGRequest();
+	~UnmountInstanceSDGRequest();
+	std::string getSDGId() const;
+	void setSDGId(const std::string &sDGId);
+	std::vector<std::string> getInstanceIds() const;
+	void setInstanceIds(const std::vector<std::string> &instanceIds);
+
+private:
+	std::string sDGId_;
+	std::vector<std::string> instanceIds_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_UNMOUNTINSTANCESDGREQUEST_H_

+ 68 - 0
ens/include/alibabacloud/ens/model/UnmountInstanceSDGResult.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_ENS_MODEL_UNMOUNTINSTANCESDGRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_UNMOUNTINSTANCESDGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT UnmountInstanceSDGResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct Result
+					{
+						struct FailedItem
+						{
+							std::string instanceId;
+							std::string errMessage;
+						};
+						std::vector<FailedItem> failedItems;
+						long failedCount;
+						long successCount;
+					};
+					std::string message;
+					bool success;
+					Result result;
+				};
+
+
+				UnmountInstanceSDGResult();
+				explicit UnmountInstanceSDGResult(const std::string &payload);
+				~UnmountInstanceSDGResult();
+				Data getData()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Data data_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_UNMOUNTINSTANCESDGRESULT_H_

+ 360 - 0
ens/src/EnsClient.cc

@@ -411,6 +411,42 @@ EnsClient::AttachEnsInstancesOutcomeCallable EnsClient::attachEnsInstancesCallab
 	return task->get_future();
 }
 
+EnsClient::AttachInstanceSDGOutcome EnsClient::attachInstanceSDG(const AttachInstanceSDGRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return AttachInstanceSDGOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return AttachInstanceSDGOutcome(AttachInstanceSDGResult(outcome.result()));
+	else
+		return AttachInstanceSDGOutcome(outcome.error());
+}
+
+void EnsClient::attachInstanceSDGAsync(const AttachInstanceSDGRequest& request, const AttachInstanceSDGAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, attachInstanceSDG(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::AttachInstanceSDGOutcomeCallable EnsClient::attachInstanceSDGCallable(const AttachInstanceSDGRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<AttachInstanceSDGOutcome()>>(
+			[this, request]()
+			{
+			return this->attachInstanceSDG(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::AttachNetworkInterfaceOutcome EnsClient::attachNetworkInterface(const AttachNetworkInterfaceRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1059,6 +1095,42 @@ EnsClient::CreateForwardEntryOutcomeCallable EnsClient::createForwardEntryCallab
 	return task->get_future();
 }
 
+EnsClient::CreateHaVipOutcome EnsClient::createHaVip(const CreateHaVipRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateHaVipOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateHaVipOutcome(CreateHaVipResult(outcome.result()));
+	else
+		return CreateHaVipOutcome(outcome.error());
+}
+
+void EnsClient::createHaVipAsync(const CreateHaVipRequest& request, const CreateHaVipAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createHaVip(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::CreateHaVipOutcomeCallable EnsClient::createHaVipCallable(const CreateHaVipRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateHaVipOutcome()>>(
+			[this, request]()
+			{
+			return this->createHaVip(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::CreateImageOutcome EnsClient::createImage(const CreateImageRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1563,6 +1635,42 @@ EnsClient::CreateNetworkAclEntryOutcomeCallable EnsClient::createNetworkAclEntry
 	return task->get_future();
 }
 
+EnsClient::CreateNetworkInterfaceOutcome EnsClient::createNetworkInterface(const CreateNetworkInterfaceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateNetworkInterfaceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateNetworkInterfaceOutcome(CreateNetworkInterfaceResult(outcome.result()));
+	else
+		return CreateNetworkInterfaceOutcome(outcome.error());
+}
+
+void EnsClient::createNetworkInterfaceAsync(const CreateNetworkInterfaceRequest& request, const CreateNetworkInterfaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createNetworkInterface(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::CreateNetworkInterfaceOutcomeCallable EnsClient::createNetworkInterfaceCallable(const CreateNetworkInterfaceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateNetworkInterfaceOutcome()>>(
+			[this, request]()
+			{
+			return this->createNetworkInterface(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::CreateSDGOutcome EnsClient::createSDG(const CreateSDGRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2211,6 +2319,42 @@ EnsClient::DeleteForwardEntryOutcomeCallable EnsClient::deleteForwardEntryCallab
 	return task->get_future();
 }
 
+EnsClient::DeleteHaVipsOutcome EnsClient::deleteHaVips(const DeleteHaVipsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteHaVipsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteHaVipsOutcome(DeleteHaVipsResult(outcome.result()));
+	else
+		return DeleteHaVipsOutcome(outcome.error());
+}
+
+void EnsClient::deleteHaVipsAsync(const DeleteHaVipsRequest& request, const DeleteHaVipsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteHaVips(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::DeleteHaVipsOutcomeCallable EnsClient::deleteHaVipsCallable(const DeleteHaVipsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteHaVipsOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteHaVips(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::DeleteImageOutcome EnsClient::deleteImage(const DeleteImageRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2499,6 +2643,42 @@ EnsClient::DeleteNetworkAclEntryOutcomeCallable EnsClient::deleteNetworkAclEntry
 	return task->get_future();
 }
 
+EnsClient::DeleteNetworkInterfacesOutcome EnsClient::deleteNetworkInterfaces(const DeleteNetworkInterfacesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteNetworkInterfacesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteNetworkInterfacesOutcome(DeleteNetworkInterfacesResult(outcome.result()));
+	else
+		return DeleteNetworkInterfacesOutcome(outcome.error());
+}
+
+void EnsClient::deleteNetworkInterfacesAsync(const DeleteNetworkInterfacesRequest& request, const DeleteNetworkInterfacesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteNetworkInterfaces(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::DeleteNetworkInterfacesOutcomeCallable EnsClient::deleteNetworkInterfacesCallable(const DeleteNetworkInterfacesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteNetworkInterfacesOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteNetworkInterfaces(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::DeleteObjectOutcome EnsClient::deleteObject(const DeleteObjectRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -3975,6 +4155,42 @@ EnsClient::DescribeEnsRouteEntryListOutcomeCallable EnsClient::describeEnsRouteE
 	return task->get_future();
 }
 
+EnsClient::DescribeEnsRouteTablesOutcome EnsClient::describeEnsRouteTables(const DescribeEnsRouteTablesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeEnsRouteTablesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeEnsRouteTablesOutcome(DescribeEnsRouteTablesResult(outcome.result()));
+	else
+		return DescribeEnsRouteTablesOutcome(outcome.error());
+}
+
+void EnsClient::describeEnsRouteTablesAsync(const DescribeEnsRouteTablesRequest& request, const DescribeEnsRouteTablesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeEnsRouteTables(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::DescribeEnsRouteTablesOutcomeCallable EnsClient::describeEnsRouteTablesCallable(const DescribeEnsRouteTablesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeEnsRouteTablesOutcome()>>(
+			[this, request]()
+			{
+			return this->describeEnsRouteTables(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::DescribeEnsSaleControlOutcome EnsClient::describeEnsSaleControl(const DescribeEnsSaleControlRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -4659,6 +4875,42 @@ EnsClient::DescribeInstanceMonitorDataOutcomeCallable EnsClient::describeInstanc
 	return task->get_future();
 }
 
+EnsClient::DescribeInstanceSDGStatusOutcome EnsClient::describeInstanceSDGStatus(const DescribeInstanceSDGStatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeInstanceSDGStatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeInstanceSDGStatusOutcome(DescribeInstanceSDGStatusResult(outcome.result()));
+	else
+		return DescribeInstanceSDGStatusOutcome(outcome.error());
+}
+
+void EnsClient::describeInstanceSDGStatusAsync(const DescribeInstanceSDGStatusRequest& request, const DescribeInstanceSDGStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeInstanceSDGStatus(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::DescribeInstanceSDGStatusOutcomeCallable EnsClient::describeInstanceSDGStatusCallable(const DescribeInstanceSDGStatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeInstanceSDGStatusOutcome()>>(
+			[this, request]()
+			{
+			return this->describeInstanceSDGStatus(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::DescribeInstanceSpecOutcome EnsClient::describeInstanceSpec(const DescribeInstanceSpecRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -6315,6 +6567,42 @@ EnsClient::DetachDiskOutcomeCallable EnsClient::detachDiskCallable(const DetachD
 	return task->get_future();
 }
 
+EnsClient::DetachInstanceSDGOutcome EnsClient::detachInstanceSDG(const DetachInstanceSDGRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DetachInstanceSDGOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DetachInstanceSDGOutcome(DetachInstanceSDGResult(outcome.result()));
+	else
+		return DetachInstanceSDGOutcome(outcome.error());
+}
+
+void EnsClient::detachInstanceSDGAsync(const DetachInstanceSDGRequest& request, const DetachInstanceSDGAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, detachInstanceSDG(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::DetachInstanceSDGOutcomeCallable EnsClient::detachInstanceSDGCallable(const DetachInstanceSDGRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DetachInstanceSDGOutcome()>>(
+			[this, request]()
+			{
+			return this->detachInstanceSDG(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::DetachNetworkInterfaceOutcome EnsClient::detachNetworkInterface(const DetachNetworkInterfaceRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -7683,6 +7971,42 @@ EnsClient::ModifyVSwitchAttributeOutcomeCallable EnsClient::modifyVSwitchAttribu
 	return task->get_future();
 }
 
+EnsClient::MountInstanceSDGOutcome EnsClient::mountInstanceSDG(const MountInstanceSDGRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return MountInstanceSDGOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return MountInstanceSDGOutcome(MountInstanceSDGResult(outcome.result()));
+	else
+		return MountInstanceSDGOutcome(outcome.error());
+}
+
+void EnsClient::mountInstanceSDGAsync(const MountInstanceSDGRequest& request, const MountInstanceSDGAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, mountInstanceSDG(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::MountInstanceSDGOutcomeCallable EnsClient::mountInstanceSDGCallable(const MountInstanceSDGRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<MountInstanceSDGOutcome()>>(
+			[this, request]()
+			{
+			return this->mountInstanceSDG(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::PreloadRegionSDGOutcome EnsClient::preloadRegionSDG(const PreloadRegionSDGRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -9879,6 +10203,42 @@ EnsClient::UnloadRegionSDGOutcomeCallable EnsClient::unloadRegionSDGCallable(con
 	return task->get_future();
 }
 
+EnsClient::UnmountInstanceSDGOutcome EnsClient::unmountInstanceSDG(const UnmountInstanceSDGRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UnmountInstanceSDGOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UnmountInstanceSDGOutcome(UnmountInstanceSDGResult(outcome.result()));
+	else
+		return UnmountInstanceSDGOutcome(outcome.error());
+}
+
+void EnsClient::unmountInstanceSDGAsync(const UnmountInstanceSDGRequest& request, const UnmountInstanceSDGAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, unmountInstanceSDG(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::UnmountInstanceSDGOutcomeCallable EnsClient::unmountInstanceSDGCallable(const UnmountInstanceSDGRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UnmountInstanceSDGOutcome()>>(
+			[this, request]()
+			{
+			return this->unmountInstanceSDG(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::UntagResourcesOutcome EnsClient::untagResources(const UntagResourcesRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 47 - 0
ens/src/model/AttachInstanceSDGRequest.cc

@@ -0,0 +1,47 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ens/model/AttachInstanceSDGRequest.h>
+
+using AlibabaCloud::Ens::Model::AttachInstanceSDGRequest;
+
+AttachInstanceSDGRequest::AttachInstanceSDGRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "AttachInstanceSDG") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+AttachInstanceSDGRequest::~AttachInstanceSDGRequest() {}
+
+std::string AttachInstanceSDGRequest::getSDGId() const {
+  return sDGId_;
+}
+
+void AttachInstanceSDGRequest::setSDGId(const std::string &sDGId) {
+  sDGId_ = sDGId;
+  setParameter(std::string("SDGId"), sDGId);
+}
+
+std::vector<AttachInstanceSDGRequest::std::string> AttachInstanceSDGRequest::getInstanceIds() const {
+  return instanceIds_;
+}
+
+void AttachInstanceSDGRequest::setInstanceIds(const std::vector<AttachInstanceSDGRequest::std::string> &instanceIds) {
+  instanceIds_ = instanceIds;
+  for(int dep1 = 0; dep1 != instanceIds.size(); dep1++) {
+    setParameter(std::string("InstanceIds") + "." + std::to_string(dep1 + 1), instanceIds[dep1]);
+  }
+}
+

+ 69 - 0
ens/src/model/AttachInstanceSDGResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/ens/model/AttachInstanceSDGResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ens;
+using namespace AlibabaCloud::Ens::Model;
+
+AttachInstanceSDGResult::AttachInstanceSDGResult() :
+	ServiceResult()
+{}
+
+AttachInstanceSDGResult::AttachInstanceSDGResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+AttachInstanceSDGResult::~AttachInstanceSDGResult()
+{}
+
+void AttachInstanceSDGResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Message"].isNull())
+		data_.message = dataNode["Message"].asString();
+	if(!dataNode["Success"].isNull())
+		data_.success = dataNode["Success"].asString() == "true";
+	auto resultNode = dataNode["Result"];
+	if(!resultNode["FailedCount"].isNull())
+		data_.result.failedCount = std::stol(resultNode["FailedCount"].asString());
+	if(!resultNode["SuccessCount"].isNull())
+		data_.result.successCount = std::stol(resultNode["SuccessCount"].asString());
+	auto allFailedItemsNode = resultNode["FailedItems"]["FailedItemsItem"];
+	for (auto resultNodeFailedItemsFailedItemsItem : allFailedItemsNode)
+	{
+		Data::Result::FailedItemsItem failedItemsItemObject;
+		if(!resultNodeFailedItemsFailedItemsItem["ErrMessage"].isNull())
+			failedItemsItemObject.errMessage = resultNodeFailedItemsFailedItemsItem["ErrMessage"].asString();
+		if(!resultNodeFailedItemsFailedItemsItem["InstanceId"].isNull())
+			failedItemsItemObject.instanceId = resultNodeFailedItemsFailedItemsItem["InstanceId"].asString();
+		data_.result.failedItems.push_back(failedItemsItemObject);
+	}
+
+}
+
+AttachInstanceSDGResult::Data AttachInstanceSDGResult::getData()const
+{
+	return data_;
+}
+

+ 9 - 0
ens/src/model/CreateARMServerInstancesRequest.cc

@@ -133,6 +133,15 @@ void CreateARMServerInstancesRequest::setAmount(int amount) {
   setParameter(std::string("Amount"), std::to_string(amount));
 }
 
+std::string CreateARMServerInstancesRequest::getEnvironmentVar() const {
+  return environmentVar_;
+}
+
+void CreateARMServerInstancesRequest::setEnvironmentVar(const std::string &environmentVar) {
+  environmentVar_ = environmentVar;
+  setParameter(std::string("EnvironmentVar"), environmentVar);
+}
+
 std::string CreateARMServerInstancesRequest::get_NameSpace() const {
   return _nameSpace_;
 }

+ 72 - 0
ens/src/model/CreateHaVipRequest.cc

@@ -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.
+ */
+
+#include <alibabacloud/ens/model/CreateHaVipRequest.h>
+
+using AlibabaCloud::Ens::Model::CreateHaVipRequest;
+
+CreateHaVipRequest::CreateHaVipRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "CreateHaVip") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateHaVipRequest::~CreateHaVipRequest() {}
+
+std::string CreateHaVipRequest::getIpAddress() const {
+  return ipAddress_;
+}
+
+void CreateHaVipRequest::setIpAddress(const std::string &ipAddress) {
+  ipAddress_ = ipAddress;
+  setParameter(std::string("IpAddress"), ipAddress);
+}
+
+std::string CreateHaVipRequest::getDescription() const {
+  return description_;
+}
+
+void CreateHaVipRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setParameter(std::string("Description"), description);
+}
+
+int CreateHaVipRequest::getAmount() const {
+  return amount_;
+}
+
+void CreateHaVipRequest::setAmount(int amount) {
+  amount_ = amount;
+  setParameter(std::string("Amount"), std::to_string(amount));
+}
+
+std::string CreateHaVipRequest::getVSwitchId() const {
+  return vSwitchId_;
+}
+
+void CreateHaVipRequest::setVSwitchId(const std::string &vSwitchId) {
+  vSwitchId_ = vSwitchId;
+  setParameter(std::string("VSwitchId"), vSwitchId);
+}
+
+std::string CreateHaVipRequest::getName() const {
+  return name_;
+}
+
+void CreateHaVipRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+

+ 52 - 0
ens/src/model/CreateHaVipResult.cc

@@ -0,0 +1,52 @@
+/*
+ * 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/ens/model/CreateHaVipResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ens;
+using namespace AlibabaCloud::Ens::Model;
+
+CreateHaVipResult::CreateHaVipResult() :
+	ServiceResult()
+{}
+
+CreateHaVipResult::CreateHaVipResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateHaVipResult::~CreateHaVipResult()
+{}
+
+void CreateHaVipResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allHaVipIds = value["HaVipIds"]["HaVipIds"];
+	for (const auto &item : allHaVipIds)
+		haVipIds_.push_back(item.asString());
+
+}
+
+std::vector<std::string> CreateHaVipResult::getHaVipIds()const
+{
+	return haVipIds_;
+}
+

+ 65 - 0
ens/src/model/CreateNetworkInterfaceRequest.cc

@@ -0,0 +1,65 @@
+/*
+ * 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/ens/model/CreateNetworkInterfaceRequest.h>
+
+using AlibabaCloud::Ens::Model::CreateNetworkInterfaceRequest;
+
+CreateNetworkInterfaceRequest::CreateNetworkInterfaceRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "CreateNetworkInterface") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateNetworkInterfaceRequest::~CreateNetworkInterfaceRequest() {}
+
+std::string CreateNetworkInterfaceRequest::getDescription() const {
+  return description_;
+}
+
+void CreateNetworkInterfaceRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setParameter(std::string("Description"), description);
+}
+
+std::vector<CreateNetworkInterfaceRequest::std::string> CreateNetworkInterfaceRequest::getSecurityGroupIds() const {
+  return securityGroupIds_;
+}
+
+void CreateNetworkInterfaceRequest::setSecurityGroupIds(const std::vector<CreateNetworkInterfaceRequest::std::string> &securityGroupIds) {
+  securityGroupIds_ = securityGroupIds;
+  for(int dep1 = 0; dep1 != securityGroupIds.size(); dep1++) {
+    setParameter(std::string("SecurityGroupIds") + "." + std::to_string(dep1 + 1), securityGroupIds[dep1]);
+  }
+}
+
+std::string CreateNetworkInterfaceRequest::getVSwitchId() const {
+  return vSwitchId_;
+}
+
+void CreateNetworkInterfaceRequest::setVSwitchId(const std::string &vSwitchId) {
+  vSwitchId_ = vSwitchId;
+  setParameter(std::string("VSwitchId"), vSwitchId);
+}
+
+std::string CreateNetworkInterfaceRequest::getName() const {
+  return name_;
+}
+
+void CreateNetworkInterfaceRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+

+ 52 - 0
ens/src/model/CreateNetworkInterfaceResult.cc

@@ -0,0 +1,52 @@
+/*
+ * 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/ens/model/CreateNetworkInterfaceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ens;
+using namespace AlibabaCloud::Ens::Model;
+
+CreateNetworkInterfaceResult::CreateNetworkInterfaceResult() :
+	ServiceResult()
+{}
+
+CreateNetworkInterfaceResult::CreateNetworkInterfaceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateNetworkInterfaceResult::~CreateNetworkInterfaceResult()
+{}
+
+void CreateNetworkInterfaceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allNetworkInterfaceIds = value["NetworkInterfaceIds"]["NetworkInterfaceIds"];
+	for (const auto &item : allNetworkInterfaceIds)
+		networkInterfaceIds_.push_back(item.asString());
+
+}
+
+std::vector<std::string> CreateNetworkInterfaceResult::getNetworkInterfaceIds()const
+{
+	return networkInterfaceIds_;
+}
+

+ 38 - 0
ens/src/model/DeleteHaVipsRequest.cc

@@ -0,0 +1,38 @@
+/*
+ * 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/ens/model/DeleteHaVipsRequest.h>
+
+using AlibabaCloud::Ens::Model::DeleteHaVipsRequest;
+
+DeleteHaVipsRequest::DeleteHaVipsRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "DeleteHaVips") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteHaVipsRequest::~DeleteHaVipsRequest() {}
+
+std::vector<DeleteHaVipsRequest::std::string> DeleteHaVipsRequest::getHaVipIds() const {
+  return haVipIds_;
+}
+
+void DeleteHaVipsRequest::setHaVipIds(const std::vector<DeleteHaVipsRequest::std::string> &haVipIds) {
+  haVipIds_ = haVipIds;
+  for(int dep1 = 0; dep1 != haVipIds.size(); dep1++) {
+    setParameter(std::string("HaVipIds") + "." + std::to_string(dep1 + 1), haVipIds[dep1]);
+  }
+}
+

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

+ 38 - 0
ens/src/model/DeleteNetworkInterfacesRequest.cc

@@ -0,0 +1,38 @@
+/*
+ * 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/ens/model/DeleteNetworkInterfacesRequest.h>
+
+using AlibabaCloud::Ens::Model::DeleteNetworkInterfacesRequest;
+
+DeleteNetworkInterfacesRequest::DeleteNetworkInterfacesRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "DeleteNetworkInterfaces") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteNetworkInterfacesRequest::~DeleteNetworkInterfacesRequest() {}
+
+std::vector<DeleteNetworkInterfacesRequest::std::string> DeleteNetworkInterfacesRequest::getNetworkInterfaceIds() const {
+  return networkInterfaceIds_;
+}
+
+void DeleteNetworkInterfacesRequest::setNetworkInterfaceIds(const std::vector<DeleteNetworkInterfacesRequest::std::string> &networkInterfaceIds) {
+  networkInterfaceIds_ = networkInterfaceIds;
+  for(int dep1 = 0; dep1 != networkInterfaceIds.size(); dep1++) {
+    setParameter(std::string("NetworkInterfaceIds") + "." + std::to_string(dep1 + 1), networkInterfaceIds[dep1]);
+  }
+}
+

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

+ 4 - 0
ens/src/model/DescribeDisksResult.cc

@@ -59,6 +59,8 @@ void DescribeDisksResult::parse(const std::string &payload)
 			disksObject.instanceId = valueDisksDisksItem["InstanceId"].asString();
 		if(!valueDisksDisksItem["InstanceName"].isNull())
 			disksObject.instanceName = valueDisksDisksItem["InstanceName"].asString();
+		if(!valueDisksDisksItem["Description"].isNull())
+			disksObject.description = valueDisksDisksItem["Description"].asString();
 		if(!valueDisksDisksItem["Size"].isNull())
 			disksObject.size = std::stoi(valueDisksDisksItem["Size"].asString());
 		if(!valueDisksDisksItem["Status"].isNull())
@@ -75,6 +77,8 @@ void DescribeDisksResult::parse(const std::string &payload)
 			disksObject.encrypted = valueDisksDisksItem["Encrypted"].asString() == "true";
 		if(!valueDisksDisksItem["EncryptedKeyId"].isNull())
 			disksObject.encryptedKeyId = valueDisksDisksItem["EncryptedKeyId"].asString();
+		if(!valueDisksDisksItem["DeleteWithInstance"].isNull())
+			disksObject.deleteWithInstance = valueDisksDisksItem["DeleteWithInstance"].asString() == "true";
 		disks_.push_back(disksObject);
 	}
 	if(!value["Code"].isNull())

+ 72 - 0
ens/src/model/DescribeEnsRouteTablesRequest.cc

@@ -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.
+ */
+
+#include <alibabacloud/ens/model/DescribeEnsRouteTablesRequest.h>
+
+using AlibabaCloud::Ens::Model::DescribeEnsRouteTablesRequest;
+
+DescribeEnsRouteTablesRequest::DescribeEnsRouteTablesRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "DescribeEnsRouteTables") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeEnsRouteTablesRequest::~DescribeEnsRouteTablesRequest() {}
+
+int DescribeEnsRouteTablesRequest::getPageNumber() const {
+  return pageNumber_;
+}
+
+void DescribeEnsRouteTablesRequest::setPageNumber(int pageNumber) {
+  pageNumber_ = pageNumber;
+  setParameter(std::string("PageNumber"), std::to_string(pageNumber));
+}
+
+int DescribeEnsRouteTablesRequest::getPageSize() const {
+  return pageSize_;
+}
+
+void DescribeEnsRouteTablesRequest::setPageSize(int pageSize) {
+  pageSize_ = pageSize;
+  setParameter(std::string("PageSize"), std::to_string(pageSize));
+}
+
+std::string DescribeEnsRouteTablesRequest::getEnsRegionId() const {
+  return ensRegionId_;
+}
+
+void DescribeEnsRouteTablesRequest::setEnsRegionId(const std::string &ensRegionId) {
+  ensRegionId_ = ensRegionId;
+  setParameter(std::string("EnsRegionId"), ensRegionId);
+}
+
+std::string DescribeEnsRouteTablesRequest::getRouteTableId() const {
+  return routeTableId_;
+}
+
+void DescribeEnsRouteTablesRequest::setRouteTableId(const std::string &routeTableId) {
+  routeTableId_ = routeTableId;
+  setParameter(std::string("RouteTableId"), routeTableId);
+}
+
+std::string DescribeEnsRouteTablesRequest::getNetworkId() const {
+  return networkId_;
+}
+
+void DescribeEnsRouteTablesRequest::setNetworkId(const std::string &networkId) {
+  networkId_ = networkId;
+  setParameter(std::string("NetworkId"), networkId);
+}
+

+ 95 - 0
ens/src/model/DescribeEnsRouteTablesResult.cc

@@ -0,0 +1,95 @@
+/*
+ * 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/ens/model/DescribeEnsRouteTablesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ens;
+using namespace AlibabaCloud::Ens::Model;
+
+DescribeEnsRouteTablesResult::DescribeEnsRouteTablesResult() :
+	ServiceResult()
+{}
+
+DescribeEnsRouteTablesResult::DescribeEnsRouteTablesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeEnsRouteTablesResult::~DescribeEnsRouteTablesResult()
+{}
+
+void DescribeEnsRouteTablesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allRouteTablesNode = value["RouteTables"]["RouteTable"];
+	for (auto valueRouteTablesRouteTable : allRouteTablesNode)
+	{
+		RouteTable routeTablesObject;
+		if(!valueRouteTablesRouteTable["CreationTime"].isNull())
+			routeTablesObject.creationTime = valueRouteTablesRouteTable["CreationTime"].asString();
+		if(!valueRouteTablesRouteTable["Status"].isNull())
+			routeTablesObject.status = valueRouteTablesRouteTable["Status"].asString();
+		if(!valueRouteTablesRouteTable["RouteTableId"].isNull())
+			routeTablesObject.routeTableId = valueRouteTablesRouteTable["RouteTableId"].asString();
+		if(!valueRouteTablesRouteTable["NetworkId"].isNull())
+			routeTablesObject.networkId = valueRouteTablesRouteTable["NetworkId"].asString();
+		if(!valueRouteTablesRouteTable["EnsRegionId"].isNull())
+			routeTablesObject.ensRegionId = valueRouteTablesRouteTable["EnsRegionId"].asString();
+		if(!valueRouteTablesRouteTable["Type"].isNull())
+			routeTablesObject.type = valueRouteTablesRouteTable["Type"].asString();
+		if(!valueRouteTablesRouteTable["RouteTableName"].isNull())
+			routeTablesObject.routeTableName = valueRouteTablesRouteTable["RouteTableName"].asString();
+		if(!valueRouteTablesRouteTable["NetworkName"].isNull())
+			routeTablesObject.networkName = valueRouteTablesRouteTable["NetworkName"].asString();
+		auto allVSwitchIds = value["VSwitchIds"]["VSwitch"];
+		for (auto value : allVSwitchIds)
+			routeTablesObject.vSwitchIds.push_back(value.asString());
+		routeTables_.push_back(routeTablesObject);
+	}
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stoi(value["PageNumber"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+
+}
+
+int DescribeEnsRouteTablesResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+int DescribeEnsRouteTablesResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+int DescribeEnsRouteTablesResult::getPageNumber()const
+{
+	return pageNumber_;
+}
+
+std::vector<DescribeEnsRouteTablesResult::RouteTable> DescribeEnsRouteTablesResult::getRouteTables()const
+{
+	return routeTables_;
+}
+

+ 74 - 0
ens/src/model/DescribeInstanceSDGStatusRequest.cc

@@ -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.
+ */
+
+#include <alibabacloud/ens/model/DescribeInstanceSDGStatusRequest.h>
+
+using AlibabaCloud::Ens::Model::DescribeInstanceSDGStatusRequest;
+
+DescribeInstanceSDGStatusRequest::DescribeInstanceSDGStatusRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "DescribeInstanceSDGStatus") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+DescribeInstanceSDGStatusRequest::~DescribeInstanceSDGStatusRequest() {}
+
+int DescribeInstanceSDGStatusRequest::getPageNumber() const {
+  return pageNumber_;
+}
+
+void DescribeInstanceSDGStatusRequest::setPageNumber(int pageNumber) {
+  pageNumber_ = pageNumber;
+  setParameter(std::string("PageNumber"), std::to_string(pageNumber));
+}
+
+int DescribeInstanceSDGStatusRequest::getPageSize() const {
+  return pageSize_;
+}
+
+void DescribeInstanceSDGStatusRequest::setPageSize(int pageSize) {
+  pageSize_ = pageSize;
+  setParameter(std::string("PageSize"), std::to_string(pageSize));
+}
+
+std::vector<DescribeInstanceSDGStatusRequest::std::string> DescribeInstanceSDGStatusRequest::getSDGIds() const {
+  return sDGIds_;
+}
+
+void DescribeInstanceSDGStatusRequest::setSDGIds(const std::vector<DescribeInstanceSDGStatusRequest::std::string> &sDGIds) {
+  sDGIds_ = sDGIds;
+  for(int dep1 = 0; dep1 != sDGIds.size(); dep1++) {
+    setParameter(std::string("SDGIds") + "." + std::to_string(dep1 + 1), sDGIds[dep1]);
+  }
+}
+
+std::string DescribeInstanceSDGStatusRequest::getInstanceId() const {
+  return instanceId_;
+}
+
+void DescribeInstanceSDGStatusRequest::setInstanceId(const std::string &instanceId) {
+  instanceId_ = instanceId;
+  setParameter(std::string("InstanceId"), instanceId);
+}
+
+std::string DescribeInstanceSDGStatusRequest::getStatus() const {
+  return status_;
+}
+
+void DescribeInstanceSDGStatusRequest::setStatus(const std::string &status) {
+  status_ = status;
+  setParameter(std::string("Status"), status);
+}
+

+ 90 - 0
ens/src/model/DescribeInstanceSDGStatusResult.cc

@@ -0,0 +1,90 @@
+/*
+ * 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/ens/model/DescribeInstanceSDGStatusResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ens;
+using namespace AlibabaCloud::Ens::Model;
+
+DescribeInstanceSDGStatusResult::DescribeInstanceSDGStatusResult() :
+	ServiceResult()
+{}
+
+DescribeInstanceSDGStatusResult::DescribeInstanceSDGStatusResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeInstanceSDGStatusResult::~DescribeInstanceSDGStatusResult()
+{}
+
+void DescribeInstanceSDGStatusResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allDeploymentStatusNode = value["DeploymentStatus"]["DeploymentStatusItem"];
+	for (auto valueDeploymentStatusDeploymentStatusItem : allDeploymentStatusNode)
+	{
+		DeploymentStatusItem deploymentStatusObject;
+		if(!valueDeploymentStatusDeploymentStatusItem["InstanceId"].isNull())
+			deploymentStatusObject.instanceId = valueDeploymentStatusDeploymentStatusItem["InstanceId"].asString();
+		if(!valueDeploymentStatusDeploymentStatusItem["SDGId"].isNull())
+			deploymentStatusObject.sDGId = valueDeploymentStatusDeploymentStatusItem["SDGId"].asString();
+		if(!valueDeploymentStatusDeploymentStatusItem["MountType"].isNull())
+			deploymentStatusObject.mountType = valueDeploymentStatusDeploymentStatusItem["MountType"].asString();
+		if(!valueDeploymentStatusDeploymentStatusItem["EnsRegionId"].isNull())
+			deploymentStatusObject.ensRegionId = valueDeploymentStatusDeploymentStatusItem["EnsRegionId"].asString();
+		if(!valueDeploymentStatusDeploymentStatusItem["Status"].isNull())
+			deploymentStatusObject.status = valueDeploymentStatusDeploymentStatusItem["Status"].asString();
+		if(!valueDeploymentStatusDeploymentStatusItem["Phase"].isNull())
+			deploymentStatusObject.phase = valueDeploymentStatusDeploymentStatusItem["Phase"].asString();
+		if(!valueDeploymentStatusDeploymentStatusItem["UpdateTime"].isNull())
+			deploymentStatusObject.updateTime = valueDeploymentStatusDeploymentStatusItem["UpdateTime"].asString();
+		deploymentStatus_.push_back(deploymentStatusObject);
+	}
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stol(value["PageNumber"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = value["PageSize"].asString();
+	if(!value["TotalCount"].isNull())
+		totalCount_ = value["TotalCount"].asString();
+
+}
+
+std::string DescribeInstanceSDGStatusResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+std::string DescribeInstanceSDGStatusResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+long DescribeInstanceSDGStatusResult::getPageNumber()const
+{
+	return pageNumber_;
+}
+
+std::vector<DescribeInstanceSDGStatusResult::DeploymentStatusItem> DescribeInstanceSDGStatusResult::getDeploymentStatus()const
+{
+	return deploymentStatus_;
+}
+

+ 2 - 0
ens/src/model/DescribeSDGDeploymentStatusResult.cc

@@ -51,6 +51,8 @@ void DescribeSDGDeploymentStatusResult::parse(const std::string &payload)
 			deploymentStatusObject.regionId = valueDeploymentStatusDeploymentStatusItem["RegionId"].asString();
 		if(!valueDeploymentStatusDeploymentStatusItem["Status"].isNull())
 			deploymentStatusObject.status = valueDeploymentStatusDeploymentStatusItem["Status"].asString();
+		if(!valueDeploymentStatusDeploymentStatusItem["Phase"].isNull())
+			deploymentStatusObject.phase = valueDeploymentStatusDeploymentStatusItem["Phase"].asString();
 		if(!valueDeploymentStatusDeploymentStatusItem["UpdateTime"].isNull())
 			deploymentStatusObject.updateTime = valueDeploymentStatusDeploymentStatusItem["UpdateTime"].asString();
 		deploymentStatus_.push_back(deploymentStatusObject);

+ 32 - 14
ens/src/model/DescribeSnapshotsRequest.cc

@@ -25,6 +25,24 @@ DescribeSnapshotsRequest::DescribeSnapshotsRequest()
 
 DescribeSnapshotsRequest::~DescribeSnapshotsRequest() {}
 
+std::string DescribeSnapshotsRequest::getEnsRegionId() const {
+  return ensRegionId_;
+}
+
+void DescribeSnapshotsRequest::setEnsRegionId(const std::string &ensRegionId) {
+  ensRegionId_ = ensRegionId;
+  setParameter(std::string("EnsRegionId"), ensRegionId);
+}
+
+std::string DescribeSnapshotsRequest::getInstanceId() const {
+  return instanceId_;
+}
+
+void DescribeSnapshotsRequest::setInstanceId(const std::string &instanceId) {
+  instanceId_ = instanceId;
+  setParameter(std::string("InstanceId"), instanceId);
+}
+
 std::string DescribeSnapshotsRequest::getSnapshotId() const {
   return snapshotId_;
 }
@@ -34,6 +52,15 @@ void DescribeSnapshotsRequest::setSnapshotId(const std::string &snapshotId) {
   setParameter(std::string("SnapshotId"), snapshotId);
 }
 
+std::string DescribeSnapshotsRequest::getSnapshotName() const {
+  return snapshotName_;
+}
+
+void DescribeSnapshotsRequest::setSnapshotName(const std::string &snapshotName) {
+  snapshotName_ = snapshotName;
+  setParameter(std::string("SnapshotName"), snapshotName);
+}
+
 int DescribeSnapshotsRequest::getPageNumber() const {
   return pageNumber_;
 }
@@ -43,15 +70,6 @@ void DescribeSnapshotsRequest::setPageNumber(int pageNumber) {
   setParameter(std::string("PageNumber"), std::to_string(pageNumber));
 }
 
-std::string DescribeSnapshotsRequest::getEnsRegionId() const {
-  return ensRegionId_;
-}
-
-void DescribeSnapshotsRequest::setEnsRegionId(const std::string &ensRegionId) {
-  ensRegionId_ = ensRegionId;
-  setParameter(std::string("EnsRegionId"), ensRegionId);
-}
-
 int DescribeSnapshotsRequest::getPageSize() const {
   return pageSize_;
 }
@@ -70,12 +88,12 @@ void DescribeSnapshotsRequest::setDiskId(const std::string &diskId) {
   setParameter(std::string("DiskId"), diskId);
 }
 
-std::string DescribeSnapshotsRequest::getInstanceId() const {
-  return instanceId_;
+std::string DescribeSnapshotsRequest::getEnsRegionIds() const {
+  return ensRegionIds_;
 }
 
-void DescribeSnapshotsRequest::setInstanceId(const std::string &instanceId) {
-  instanceId_ = instanceId;
-  setParameter(std::string("InstanceId"), instanceId);
+void DescribeSnapshotsRequest::setEnsRegionIds(const std::string &ensRegionIds) {
+  ensRegionIds_ = ensRegionIds;
+  setParameter(std::string("EnsRegionIds"), ensRegionIds);
 }
 

+ 47 - 0
ens/src/model/DetachInstanceSDGRequest.cc

@@ -0,0 +1,47 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ens/model/DetachInstanceSDGRequest.h>
+
+using AlibabaCloud::Ens::Model::DetachInstanceSDGRequest;
+
+DetachInstanceSDGRequest::DetachInstanceSDGRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "DetachInstanceSDG") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DetachInstanceSDGRequest::~DetachInstanceSDGRequest() {}
+
+std::string DetachInstanceSDGRequest::getSDGId() const {
+  return sDGId_;
+}
+
+void DetachInstanceSDGRequest::setSDGId(const std::string &sDGId) {
+  sDGId_ = sDGId;
+  setParameter(std::string("SDGId"), sDGId);
+}
+
+std::vector<DetachInstanceSDGRequest::std::string> DetachInstanceSDGRequest::getInstanceIds() const {
+  return instanceIds_;
+}
+
+void DetachInstanceSDGRequest::setInstanceIds(const std::vector<DetachInstanceSDGRequest::std::string> &instanceIds) {
+  instanceIds_ = instanceIds;
+  for(int dep1 = 0; dep1 != instanceIds.size(); dep1++) {
+    setParameter(std::string("InstanceIds") + "." + std::to_string(dep1 + 1), instanceIds[dep1]);
+  }
+}
+

+ 69 - 0
ens/src/model/DetachInstanceSDGResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/ens/model/DetachInstanceSDGResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ens;
+using namespace AlibabaCloud::Ens::Model;
+
+DetachInstanceSDGResult::DetachInstanceSDGResult() :
+	ServiceResult()
+{}
+
+DetachInstanceSDGResult::DetachInstanceSDGResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DetachInstanceSDGResult::~DetachInstanceSDGResult()
+{}
+
+void DetachInstanceSDGResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Message"].isNull())
+		data_.message = dataNode["Message"].asString();
+	if(!dataNode["Success"].isNull())
+		data_.success = dataNode["Success"].asString() == "true";
+	auto resultNode = dataNode["Result"];
+	if(!resultNode["FailedCount"].isNull())
+		data_.result.failedCount = std::stol(resultNode["FailedCount"].asString());
+	if(!resultNode["SuccessCount"].isNull())
+		data_.result.successCount = resultNode["SuccessCount"].asString();
+	auto allFailedItemsNode = resultNode["FailedItems"]["FailedItem"];
+	for (auto resultNodeFailedItemsFailedItem : allFailedItemsNode)
+	{
+		Data::Result::FailedItem failedItemObject;
+		if(!resultNodeFailedItemsFailedItem["ErrMessage"].isNull())
+			failedItemObject.errMessage = resultNodeFailedItemsFailedItem["ErrMessage"].asString();
+		if(!resultNodeFailedItemsFailedItem["InstanceId"].isNull())
+			failedItemObject.instanceId = resultNodeFailedItemsFailedItem["InstanceId"].asString();
+		data_.result.failedItems.push_back(failedItemObject);
+	}
+
+}
+
+DetachInstanceSDGResult::Data DetachInstanceSDGResult::getData()const
+{
+	return data_;
+}
+

+ 47 - 0
ens/src/model/MountInstanceSDGRequest.cc

@@ -0,0 +1,47 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ens/model/MountInstanceSDGRequest.h>
+
+using AlibabaCloud::Ens::Model::MountInstanceSDGRequest;
+
+MountInstanceSDGRequest::MountInstanceSDGRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "MountInstanceSDG") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+MountInstanceSDGRequest::~MountInstanceSDGRequest() {}
+
+std::string MountInstanceSDGRequest::getSDGId() const {
+  return sDGId_;
+}
+
+void MountInstanceSDGRequest::setSDGId(const std::string &sDGId) {
+  sDGId_ = sDGId;
+  setParameter(std::string("SDGId"), sDGId);
+}
+
+std::vector<MountInstanceSDGRequest::std::string> MountInstanceSDGRequest::getInstanceIds() const {
+  return instanceIds_;
+}
+
+void MountInstanceSDGRequest::setInstanceIds(const std::vector<MountInstanceSDGRequest::std::string> &instanceIds) {
+  instanceIds_ = instanceIds;
+  for(int dep1 = 0; dep1 != instanceIds.size(); dep1++) {
+    setParameter(std::string("InstanceIds") + "." + std::to_string(dep1 + 1), instanceIds[dep1]);
+  }
+}
+

+ 69 - 0
ens/src/model/MountInstanceSDGResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/ens/model/MountInstanceSDGResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ens;
+using namespace AlibabaCloud::Ens::Model;
+
+MountInstanceSDGResult::MountInstanceSDGResult() :
+	ServiceResult()
+{}
+
+MountInstanceSDGResult::MountInstanceSDGResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+MountInstanceSDGResult::~MountInstanceSDGResult()
+{}
+
+void MountInstanceSDGResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Message"].isNull())
+		data_.message = dataNode["Message"].asString();
+	if(!dataNode["Success"].isNull())
+		data_.success = dataNode["Success"].asString() == "true";
+	auto resultNode = dataNode["Result"];
+	if(!resultNode["FailedCount"].isNull())
+		data_.result.failedCount = std::stol(resultNode["FailedCount"].asString());
+	if(!resultNode["SuccessCount"].isNull())
+		data_.result.successCount = std::stol(resultNode["SuccessCount"].asString());
+	auto allFailedItemsNode = resultNode["FailedItems"]["FailedItem"];
+	for (auto resultNodeFailedItemsFailedItem : allFailedItemsNode)
+	{
+		Data::Result::FailedItem failedItemObject;
+		if(!resultNodeFailedItemsFailedItem["ErrMessage"].isNull())
+			failedItemObject.errMessage = resultNodeFailedItemsFailedItem["ErrMessage"].asString();
+		if(!resultNodeFailedItemsFailedItem["InstanceId"].isNull())
+			failedItemObject.instanceId = resultNodeFailedItemsFailedItem["InstanceId"].asString();
+		data_.result.failedItems.push_back(failedItemObject);
+	}
+
+}
+
+MountInstanceSDGResult::Data MountInstanceSDGResult::getData()const
+{
+	return data_;
+}
+

+ 47 - 0
ens/src/model/UnmountInstanceSDGRequest.cc

@@ -0,0 +1,47 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ens/model/UnmountInstanceSDGRequest.h>
+
+using AlibabaCloud::Ens::Model::UnmountInstanceSDGRequest;
+
+UnmountInstanceSDGRequest::UnmountInstanceSDGRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "UnmountInstanceSDG") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+UnmountInstanceSDGRequest::~UnmountInstanceSDGRequest() {}
+
+std::string UnmountInstanceSDGRequest::getSDGId() const {
+  return sDGId_;
+}
+
+void UnmountInstanceSDGRequest::setSDGId(const std::string &sDGId) {
+  sDGId_ = sDGId;
+  setParameter(std::string("SDGId"), sDGId);
+}
+
+std::vector<UnmountInstanceSDGRequest::std::string> UnmountInstanceSDGRequest::getInstanceIds() const {
+  return instanceIds_;
+}
+
+void UnmountInstanceSDGRequest::setInstanceIds(const std::vector<UnmountInstanceSDGRequest::std::string> &instanceIds) {
+  instanceIds_ = instanceIds;
+  for(int dep1 = 0; dep1 != instanceIds.size(); dep1++) {
+    setParameter(std::string("InstanceIds") + "." + std::to_string(dep1 + 1), instanceIds[dep1]);
+  }
+}
+

+ 69 - 0
ens/src/model/UnmountInstanceSDGResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/ens/model/UnmountInstanceSDGResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ens;
+using namespace AlibabaCloud::Ens::Model;
+
+UnmountInstanceSDGResult::UnmountInstanceSDGResult() :
+	ServiceResult()
+{}
+
+UnmountInstanceSDGResult::UnmountInstanceSDGResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+UnmountInstanceSDGResult::~UnmountInstanceSDGResult()
+{}
+
+void UnmountInstanceSDGResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["Message"].isNull())
+		data_.message = dataNode["Message"].asString();
+	if(!dataNode["Success"].isNull())
+		data_.success = dataNode["Success"].asString() == "true";
+	auto resultNode = dataNode["Result"];
+	if(!resultNode["FailedCount"].isNull())
+		data_.result.failedCount = std::stol(resultNode["FailedCount"].asString());
+	if(!resultNode["SuccessCount"].isNull())
+		data_.result.successCount = std::stol(resultNode["SuccessCount"].asString());
+	auto allFailedItemsNode = resultNode["FailedItems"]["FailedItem"];
+	for (auto resultNodeFailedItemsFailedItem : allFailedItemsNode)
+	{
+		Data::Result::FailedItem failedItemObject;
+		if(!resultNodeFailedItemsFailedItem["ErrMessage"].isNull())
+			failedItemObject.errMessage = resultNodeFailedItemsFailedItem["ErrMessage"].asString();
+		if(!resultNodeFailedItemsFailedItem["InstanceId"].isNull())
+			failedItemObject.instanceId = resultNodeFailedItemsFailedItem["InstanceId"].asString();
+		data_.result.failedItems.push_back(failedItemObject);
+	}
+
+}
+
+UnmountInstanceSDGResult::Data UnmountInstanceSDGResult::getData()const
+{
+	return data_;
+}
+