فهرست منبع

ECS SDK publish full package.

sdk-team 2 سال پیش
والد
کامیت
f9603e792e
76فایلهای تغییر یافته به همراه1146 افزوده شده و 469 حذف شده
  1. 1 1
      VERSION
  2. 12 8
      ecs/CMakeLists.txt
  3. 24 16
      ecs/include/alibabacloud/ecs/EcsClient.h
  4. 3 0
      ecs/include/alibabacloud/ecs/model/CreateActivationRequest.h
  5. 3 0
      ecs/include/alibabacloud/ecs/model/CreateAutoProvisioningGroupRequest.h
  6. 3 0
      ecs/include/alibabacloud/ecs/model/CreateCommandRequest.h
  7. 9 6
      ecs/include/alibabacloud/ecs/model/CreateDiagnosticReportRequest.h
  8. 3 0
      ecs/include/alibabacloud/ecs/model/CreateLaunchTemplateRequest.h
  9. 2 0
      ecs/include/alibabacloud/ecs/model/CreateLaunchTemplateResult.h
  10. 3 0
      ecs/include/alibabacloud/ecs/model/CreateLaunchTemplateVersionRequest.h
  11. 3 0
      ecs/include/alibabacloud/ecs/model/CreateNetworkInterfaceRequest.h
  12. 66 0
      ecs/include/alibabacloud/ecs/model/CreateSavingsPlanRequest.h
  13. 11 9
      ecs/include/alibabacloud/ecs/model/CreateSavingsPlanResult.h
  14. 2 0
      ecs/include/alibabacloud/ecs/model/DeleteLaunchTemplateResult.h
  15. 1 0
      ecs/include/alibabacloud/ecs/model/DeregisterManagedInstanceResult.h
  16. 3 0
      ecs/include/alibabacloud/ecs/model/DescribeActivationsRequest.h
  17. 1 0
      ecs/include/alibabacloud/ecs/model/DescribeActivationsResult.h
  18. 9 0
      ecs/include/alibabacloud/ecs/model/DescribeCapacityReservationsResult.h
  19. 3 0
      ecs/include/alibabacloud/ecs/model/DescribeCommandsRequest.h
  20. 1 0
      ecs/include/alibabacloud/ecs/model/DescribeCommandsResult.h
  21. 2 0
      ecs/include/alibabacloud/ecs/model/DescribeDisksResult.h
  22. 1 0
      ecs/include/alibabacloud/ecs/model/DescribeLaunchTemplateVersionsResult.h
  23. 3 0
      ecs/include/alibabacloud/ecs/model/DescribeManagedInstancesRequest.h
  24. 1 0
      ecs/include/alibabacloud/ecs/model/DescribeManagedInstancesResult.h
  25. 2 0
      ecs/include/alibabacloud/ecs/model/DescribeNetworkInterfaceAttributeResult.h
  26. 1 0
      ecs/include/alibabacloud/ecs/model/DescribeNetworkInterfacesResult.h
  27. 21 21
      ecs/include/alibabacloud/ecs/model/DescribeSavingsPlanEstimationRequest.h
  28. 65 0
      ecs/include/alibabacloud/ecs/model/DescribeSavingsPlanEstimationResult.h
  29. 63 0
      ecs/include/alibabacloud/ecs/model/DescribeSavingsPlanPriceRequest.h
  30. 26 11
      ecs/include/alibabacloud/ecs/model/DescribeSavingsPlanPriceResult.h
  31. 3 0
      ecs/include/alibabacloud/ecs/model/DescribeSecurityGroupsRequest.h
  32. 3 0
      ecs/include/alibabacloud/ecs/model/DescribeSendFileResultsRequest.h
  33. 1 0
      ecs/include/alibabacloud/ecs/model/DescribeSnapshotGroupsResult.h
  34. 1 0
      ecs/include/alibabacloud/ecs/model/DescribeSnapshotsResult.h
  35. 0 63
      ecs/include/alibabacloud/ecs/model/ImportSnapshotRequest.h
  36. 3 0
      ecs/include/alibabacloud/ecs/model/ModifyNetworkInterfaceAttributeRequest.h
  37. 3 0
      ecs/include/alibabacloud/ecs/model/ModifySnapshotAttributeRequest.h
  38. 2 0
      ecs/include/alibabacloud/ecs/model/RunInstancesRequest.h
  39. 108 72
      ecs/src/EcsClient.cc
  40. 9 0
      ecs/src/model/CreateActivationRequest.cc
  41. 9 0
      ecs/src/model/CreateAutoProvisioningGroupRequest.cc
  42. 9 0
      ecs/src/model/CreateCommandRequest.cc
  43. 29 18
      ecs/src/model/CreateDiagnosticReportRequest.cc
  44. 9 0
      ecs/src/model/CreateLaunchTemplateRequest.cc
  45. 7 0
      ecs/src/model/CreateLaunchTemplateResult.cc
  46. 9 0
      ecs/src/model/CreateLaunchTemplateVersionRequest.cc
  47. 9 0
      ecs/src/model/CreateNetworkInterfaceRequest.cc
  48. 107 0
      ecs/src/model/CreateSavingsPlanRequest.cc
  49. 13 13
      ecs/src/model/CreateSavingsPlanResult.cc
  50. 8 0
      ecs/src/model/DeleteLaunchTemplateResult.cc
  51. 2 0
      ecs/src/model/DeregisterManagedInstanceResult.cc
  52. 9 0
      ecs/src/model/DescribeActivationsRequest.cc
  53. 2 0
      ecs/src/model/DescribeActivationsResult.cc
  54. 16 0
      ecs/src/model/DescribeCapacityReservationsResult.cc
  55. 9 0
      ecs/src/model/DescribeCommandsRequest.cc
  56. 2 0
      ecs/src/model/DescribeCommandsResult.cc
  57. 4 0
      ecs/src/model/DescribeDisksResult.cc
  58. 0 81
      ecs/src/model/DescribeInstanceVncPasswdRequest.cc
  59. 0 51
      ecs/src/model/DescribeInstanceVncPasswdResult.cc
  60. 2 0
      ecs/src/model/DescribeLaunchTemplateVersionsResult.cc
  61. 9 0
      ecs/src/model/DescribeManagedInstancesRequest.cc
  62. 2 0
      ecs/src/model/DescribeManagedInstancesResult.cc
  63. 7 0
      ecs/src/model/DescribeNetworkInterfaceAttributeResult.cc
  64. 2 0
      ecs/src/model/DescribeNetworkInterfacesResult.cc
  65. 81 0
      ecs/src/model/DescribeSavingsPlanEstimationRequest.cc
  66. 100 0
      ecs/src/model/DescribeSavingsPlanEstimationResult.cc
  67. 98 0
      ecs/src/model/DescribeSavingsPlanPriceRequest.cc
  68. 69 0
      ecs/src/model/DescribeSavingsPlanPriceResult.cc
  69. 9 0
      ecs/src/model/DescribeSecurityGroupsRequest.cc
  70. 9 0
      ecs/src/model/DescribeSendFileResultsRequest.cc
  71. 2 0
      ecs/src/model/DescribeSnapshotGroupsResult.cc
  72. 2 0
      ecs/src/model/DescribeSnapshotsResult.cc
  73. 0 99
      ecs/src/model/ImportSnapshotRequest.cc
  74. 9 0
      ecs/src/model/ModifyNetworkInterfaceAttributeRequest.cc
  75. 9 0
      ecs/src/model/ModifySnapshotAttributeRequest.cc
  76. 2 0
      ecs/src/model/RunInstancesRequest.cc

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1815
+1.36.1816

+ 12 - 8
ecs/CMakeLists.txt

@@ -137,6 +137,8 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/CreateRouteEntryResult.h
 	include/alibabacloud/ecs/model/CreateRouterInterfaceRequest.h
 	include/alibabacloud/ecs/model/CreateRouterInterfaceResult.h
+	include/alibabacloud/ecs/model/CreateSavingsPlanRequest.h
+	include/alibabacloud/ecs/model/CreateSavingsPlanResult.h
 	include/alibabacloud/ecs/model/CreateSecurityGroupRequest.h
 	include/alibabacloud/ecs/model/CreateSecurityGroupResult.h
 	include/alibabacloud/ecs/model/CreateSimulatedSystemEventsRequest.h
@@ -343,8 +345,6 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/DescribeInstanceTypeFamiliesResult.h
 	include/alibabacloud/ecs/model/DescribeInstanceTypesRequest.h
 	include/alibabacloud/ecs/model/DescribeInstanceTypesResult.h
-	include/alibabacloud/ecs/model/DescribeInstanceVncPasswdRequest.h
-	include/alibabacloud/ecs/model/DescribeInstanceVncPasswdResult.h
 	include/alibabacloud/ecs/model/DescribeInstanceVncUrlRequest.h
 	include/alibabacloud/ecs/model/DescribeInstanceVncUrlResult.h
 	include/alibabacloud/ecs/model/DescribeInstancesRequest.h
@@ -403,6 +403,10 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/DescribeRouteTablesResult.h
 	include/alibabacloud/ecs/model/DescribeRouterInterfacesRequest.h
 	include/alibabacloud/ecs/model/DescribeRouterInterfacesResult.h
+	include/alibabacloud/ecs/model/DescribeSavingsPlanEstimationRequest.h
+	include/alibabacloud/ecs/model/DescribeSavingsPlanEstimationResult.h
+	include/alibabacloud/ecs/model/DescribeSavingsPlanPriceRequest.h
+	include/alibabacloud/ecs/model/DescribeSavingsPlanPriceResult.h
 	include/alibabacloud/ecs/model/DescribeSecurityGroupAttributeRequest.h
 	include/alibabacloud/ecs/model/DescribeSecurityGroupAttributeResult.h
 	include/alibabacloud/ecs/model/DescribeSecurityGroupReferencesRequest.h
@@ -487,8 +491,6 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/ImportImageResult.h
 	include/alibabacloud/ecs/model/ImportKeyPairRequest.h
 	include/alibabacloud/ecs/model/ImportKeyPairResult.h
-	include/alibabacloud/ecs/model/ImportSnapshotRequest.h
-	include/alibabacloud/ecs/model/ImportSnapshotResult.h
 	include/alibabacloud/ecs/model/InstallCloudAssistantRequest.h
 	include/alibabacloud/ecs/model/InstallCloudAssistantResult.h
 	include/alibabacloud/ecs/model/InvokeCommandRequest.h
@@ -834,6 +836,8 @@ set(ecs_src
 	src/model/CreateRouteEntryResult.cc
 	src/model/CreateRouterInterfaceRequest.cc
 	src/model/CreateRouterInterfaceResult.cc
+	src/model/CreateSavingsPlanRequest.cc
+	src/model/CreateSavingsPlanResult.cc
 	src/model/CreateSecurityGroupRequest.cc
 	src/model/CreateSecurityGroupResult.cc
 	src/model/CreateSimulatedSystemEventsRequest.cc
@@ -1040,8 +1044,6 @@ set(ecs_src
 	src/model/DescribeInstanceTypeFamiliesResult.cc
 	src/model/DescribeInstanceTypesRequest.cc
 	src/model/DescribeInstanceTypesResult.cc
-	src/model/DescribeInstanceVncPasswdRequest.cc
-	src/model/DescribeInstanceVncPasswdResult.cc
 	src/model/DescribeInstanceVncUrlRequest.cc
 	src/model/DescribeInstanceVncUrlResult.cc
 	src/model/DescribeInstancesRequest.cc
@@ -1100,6 +1102,10 @@ set(ecs_src
 	src/model/DescribeRouteTablesResult.cc
 	src/model/DescribeRouterInterfacesRequest.cc
 	src/model/DescribeRouterInterfacesResult.cc
+	src/model/DescribeSavingsPlanEstimationRequest.cc
+	src/model/DescribeSavingsPlanEstimationResult.cc
+	src/model/DescribeSavingsPlanPriceRequest.cc
+	src/model/DescribeSavingsPlanPriceResult.cc
 	src/model/DescribeSecurityGroupAttributeRequest.cc
 	src/model/DescribeSecurityGroupAttributeResult.cc
 	src/model/DescribeSecurityGroupReferencesRequest.cc
@@ -1184,8 +1190,6 @@ set(ecs_src
 	src/model/ImportImageResult.cc
 	src/model/ImportKeyPairRequest.cc
 	src/model/ImportKeyPairResult.cc
-	src/model/ImportSnapshotRequest.cc
-	src/model/ImportSnapshotResult.cc
 	src/model/InstallCloudAssistantRequest.cc
 	src/model/InstallCloudAssistantResult.cc
 	src/model/InvokeCommandRequest.cc

+ 24 - 16
ecs/include/alibabacloud/ecs/EcsClient.h

@@ -138,6 +138,8 @@
 #include "model/CreateRouteEntryResult.h"
 #include "model/CreateRouterInterfaceRequest.h"
 #include "model/CreateRouterInterfaceResult.h"
+#include "model/CreateSavingsPlanRequest.h"
+#include "model/CreateSavingsPlanResult.h"
 #include "model/CreateSecurityGroupRequest.h"
 #include "model/CreateSecurityGroupResult.h"
 #include "model/CreateSimulatedSystemEventsRequest.h"
@@ -344,8 +346,6 @@
 #include "model/DescribeInstanceTypeFamiliesResult.h"
 #include "model/DescribeInstanceTypesRequest.h"
 #include "model/DescribeInstanceTypesResult.h"
-#include "model/DescribeInstanceVncPasswdRequest.h"
-#include "model/DescribeInstanceVncPasswdResult.h"
 #include "model/DescribeInstanceVncUrlRequest.h"
 #include "model/DescribeInstanceVncUrlResult.h"
 #include "model/DescribeInstancesRequest.h"
@@ -404,6 +404,10 @@
 #include "model/DescribeRouteTablesResult.h"
 #include "model/DescribeRouterInterfacesRequest.h"
 #include "model/DescribeRouterInterfacesResult.h"
+#include "model/DescribeSavingsPlanEstimationRequest.h"
+#include "model/DescribeSavingsPlanEstimationResult.h"
+#include "model/DescribeSavingsPlanPriceRequest.h"
+#include "model/DescribeSavingsPlanPriceResult.h"
 #include "model/DescribeSecurityGroupAttributeRequest.h"
 #include "model/DescribeSecurityGroupAttributeResult.h"
 #include "model/DescribeSecurityGroupReferencesRequest.h"
@@ -488,8 +492,6 @@
 #include "model/ImportImageResult.h"
 #include "model/ImportKeyPairRequest.h"
 #include "model/ImportKeyPairResult.h"
-#include "model/ImportSnapshotRequest.h"
-#include "model/ImportSnapshotResult.h"
 #include "model/InstallCloudAssistantRequest.h"
 #include "model/InstallCloudAssistantResult.h"
 #include "model/InvokeCommandRequest.h"
@@ -899,6 +901,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateRouterInterfaceResult> CreateRouterInterfaceOutcome;
 			typedef std::future<CreateRouterInterfaceOutcome> CreateRouterInterfaceOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::CreateRouterInterfaceRequest&, const CreateRouterInterfaceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateRouterInterfaceAsyncHandler;
+			typedef Outcome<Error, Model::CreateSavingsPlanResult> CreateSavingsPlanOutcome;
+			typedef std::future<CreateSavingsPlanOutcome> CreateSavingsPlanOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::CreateSavingsPlanRequest&, const CreateSavingsPlanOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateSavingsPlanAsyncHandler;
 			typedef Outcome<Error, Model::CreateSecurityGroupResult> CreateSecurityGroupOutcome;
 			typedef std::future<CreateSecurityGroupOutcome> CreateSecurityGroupOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::CreateSecurityGroupRequest&, const CreateSecurityGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateSecurityGroupAsyncHandler;
@@ -1208,9 +1213,6 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeInstanceTypesResult> DescribeInstanceTypesOutcome;
 			typedef std::future<DescribeInstanceTypesOutcome> DescribeInstanceTypesOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DescribeInstanceTypesRequest&, const DescribeInstanceTypesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeInstanceTypesAsyncHandler;
-			typedef Outcome<Error, Model::DescribeInstanceVncPasswdResult> DescribeInstanceVncPasswdOutcome;
-			typedef std::future<DescribeInstanceVncPasswdOutcome> DescribeInstanceVncPasswdOutcomeCallable;
-			typedef std::function<void(const EcsClient*, const Model::DescribeInstanceVncPasswdRequest&, const DescribeInstanceVncPasswdOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeInstanceVncPasswdAsyncHandler;
 			typedef Outcome<Error, Model::DescribeInstanceVncUrlResult> DescribeInstanceVncUrlOutcome;
 			typedef std::future<DescribeInstanceVncUrlOutcome> DescribeInstanceVncUrlOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DescribeInstanceVncUrlRequest&, const DescribeInstanceVncUrlOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeInstanceVncUrlAsyncHandler;
@@ -1298,6 +1300,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeRouterInterfacesResult> DescribeRouterInterfacesOutcome;
 			typedef std::future<DescribeRouterInterfacesOutcome> DescribeRouterInterfacesOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DescribeRouterInterfacesRequest&, const DescribeRouterInterfacesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRouterInterfacesAsyncHandler;
+			typedef Outcome<Error, Model::DescribeSavingsPlanEstimationResult> DescribeSavingsPlanEstimationOutcome;
+			typedef std::future<DescribeSavingsPlanEstimationOutcome> DescribeSavingsPlanEstimationOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::DescribeSavingsPlanEstimationRequest&, const DescribeSavingsPlanEstimationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeSavingsPlanEstimationAsyncHandler;
+			typedef Outcome<Error, Model::DescribeSavingsPlanPriceResult> DescribeSavingsPlanPriceOutcome;
+			typedef std::future<DescribeSavingsPlanPriceOutcome> DescribeSavingsPlanPriceOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::DescribeSavingsPlanPriceRequest&, const DescribeSavingsPlanPriceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeSavingsPlanPriceAsyncHandler;
 			typedef Outcome<Error, Model::DescribeSecurityGroupAttributeResult> DescribeSecurityGroupAttributeOutcome;
 			typedef std::future<DescribeSecurityGroupAttributeOutcome> DescribeSecurityGroupAttributeOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DescribeSecurityGroupAttributeRequest&, const DescribeSecurityGroupAttributeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeSecurityGroupAttributeAsyncHandler;
@@ -1424,9 +1432,6 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ImportKeyPairResult> ImportKeyPairOutcome;
 			typedef std::future<ImportKeyPairOutcome> ImportKeyPairOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::ImportKeyPairRequest&, const ImportKeyPairOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ImportKeyPairAsyncHandler;
-			typedef Outcome<Error, Model::ImportSnapshotResult> ImportSnapshotOutcome;
-			typedef std::future<ImportSnapshotOutcome> ImportSnapshotOutcomeCallable;
-			typedef std::function<void(const EcsClient*, const Model::ImportSnapshotRequest&, const ImportSnapshotOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ImportSnapshotAsyncHandler;
 			typedef Outcome<Error, Model::InstallCloudAssistantResult> InstallCloudAssistantOutcome;
 			typedef std::future<InstallCloudAssistantOutcome> InstallCloudAssistantOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::InstallCloudAssistantRequest&, const InstallCloudAssistantOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> InstallCloudAssistantAsyncHandler;
@@ -1945,6 +1950,9 @@ namespace AlibabaCloud
 			CreateRouterInterfaceOutcome createRouterInterface(const Model::CreateRouterInterfaceRequest &request)const;
 			void createRouterInterfaceAsync(const Model::CreateRouterInterfaceRequest& request, const CreateRouterInterfaceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateRouterInterfaceOutcomeCallable createRouterInterfaceCallable(const Model::CreateRouterInterfaceRequest& request) const;
+			CreateSavingsPlanOutcome createSavingsPlan(const Model::CreateSavingsPlanRequest &request)const;
+			void createSavingsPlanAsync(const Model::CreateSavingsPlanRequest& request, const CreateSavingsPlanAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateSavingsPlanOutcomeCallable createSavingsPlanCallable(const Model::CreateSavingsPlanRequest& request) const;
 			CreateSecurityGroupOutcome createSecurityGroup(const Model::CreateSecurityGroupRequest &request)const;
 			void createSecurityGroupAsync(const Model::CreateSecurityGroupRequest& request, const CreateSecurityGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateSecurityGroupOutcomeCallable createSecurityGroupCallable(const Model::CreateSecurityGroupRequest& request) const;
@@ -2254,9 +2262,6 @@ namespace AlibabaCloud
 			DescribeInstanceTypesOutcome describeInstanceTypes(const Model::DescribeInstanceTypesRequest &request)const;
 			void describeInstanceTypesAsync(const Model::DescribeInstanceTypesRequest& request, const DescribeInstanceTypesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeInstanceTypesOutcomeCallable describeInstanceTypesCallable(const Model::DescribeInstanceTypesRequest& request) const;
-			DescribeInstanceVncPasswdOutcome describeInstanceVncPasswd(const Model::DescribeInstanceVncPasswdRequest &request)const;
-			void describeInstanceVncPasswdAsync(const Model::DescribeInstanceVncPasswdRequest& request, const DescribeInstanceVncPasswdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			DescribeInstanceVncPasswdOutcomeCallable describeInstanceVncPasswdCallable(const Model::DescribeInstanceVncPasswdRequest& request) const;
 			DescribeInstanceVncUrlOutcome describeInstanceVncUrl(const Model::DescribeInstanceVncUrlRequest &request)const;
 			void describeInstanceVncUrlAsync(const Model::DescribeInstanceVncUrlRequest& request, const DescribeInstanceVncUrlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeInstanceVncUrlOutcomeCallable describeInstanceVncUrlCallable(const Model::DescribeInstanceVncUrlRequest& request) const;
@@ -2344,6 +2349,12 @@ namespace AlibabaCloud
 			DescribeRouterInterfacesOutcome describeRouterInterfaces(const Model::DescribeRouterInterfacesRequest &request)const;
 			void describeRouterInterfacesAsync(const Model::DescribeRouterInterfacesRequest& request, const DescribeRouterInterfacesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeRouterInterfacesOutcomeCallable describeRouterInterfacesCallable(const Model::DescribeRouterInterfacesRequest& request) const;
+			DescribeSavingsPlanEstimationOutcome describeSavingsPlanEstimation(const Model::DescribeSavingsPlanEstimationRequest &request)const;
+			void describeSavingsPlanEstimationAsync(const Model::DescribeSavingsPlanEstimationRequest& request, const DescribeSavingsPlanEstimationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeSavingsPlanEstimationOutcomeCallable describeSavingsPlanEstimationCallable(const Model::DescribeSavingsPlanEstimationRequest& request) const;
+			DescribeSavingsPlanPriceOutcome describeSavingsPlanPrice(const Model::DescribeSavingsPlanPriceRequest &request)const;
+			void describeSavingsPlanPriceAsync(const Model::DescribeSavingsPlanPriceRequest& request, const DescribeSavingsPlanPriceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeSavingsPlanPriceOutcomeCallable describeSavingsPlanPriceCallable(const Model::DescribeSavingsPlanPriceRequest& request) const;
 			DescribeSecurityGroupAttributeOutcome describeSecurityGroupAttribute(const Model::DescribeSecurityGroupAttributeRequest &request)const;
 			void describeSecurityGroupAttributeAsync(const Model::DescribeSecurityGroupAttributeRequest& request, const DescribeSecurityGroupAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeSecurityGroupAttributeOutcomeCallable describeSecurityGroupAttributeCallable(const Model::DescribeSecurityGroupAttributeRequest& request) const;
@@ -2470,9 +2481,6 @@ namespace AlibabaCloud
 			ImportKeyPairOutcome importKeyPair(const Model::ImportKeyPairRequest &request)const;
 			void importKeyPairAsync(const Model::ImportKeyPairRequest& request, const ImportKeyPairAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ImportKeyPairOutcomeCallable importKeyPairCallable(const Model::ImportKeyPairRequest& request) const;
-			ImportSnapshotOutcome importSnapshot(const Model::ImportSnapshotRequest &request)const;
-			void importSnapshotAsync(const Model::ImportSnapshotRequest& request, const ImportSnapshotAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
-			ImportSnapshotOutcomeCallable importSnapshotCallable(const Model::ImportSnapshotRequest& request) const;
 			InstallCloudAssistantOutcome installCloudAssistant(const Model::InstallCloudAssistantRequest &request)const;
 			void installCloudAssistantAsync(const Model::InstallCloudAssistantRequest& request, const InstallCloudAssistantAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			InstallCloudAssistantOutcomeCallable installCloudAssistantCallable(const Model::InstallCloudAssistantRequest& request) const;

+ 3 - 0
ecs/include/alibabacloud/ecs/model/CreateActivationRequest.h

@@ -38,6 +38,8 @@ public:
 	void setResourceOwnerId(long resourceOwnerId);
 	std::string getDescription() const;
 	void setDescription(const std::string &description);
+	std::string getResourceGroupId() const;
+	void setResourceGroupId(const std::string &resourceGroupId);
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
 	int getInstanceCount() const;
@@ -60,6 +62,7 @@ public:
 private:
 	long resourceOwnerId_;
 	std::string description_;
+	std::string resourceGroupId_;
 	std::string regionId_;
 	int instanceCount_;
 	std::vector<Tag> tag_;

+ 3 - 0
ecs/include/alibabacloud/ecs/model/CreateAutoProvisioningGroupRequest.h

@@ -122,6 +122,8 @@ public:
 	void setLaunchTemplateId(const std::string &launchTemplateId);
 	long getOwnerId() const;
 	void setOwnerId(long ownerId);
+	std::string getLaunchConfigurationImageFamily() const;
+	void setLaunchConfigurationImageFamily(const std::string &launchConfigurationImageFamily);
 	int getLaunchConfigurationSystemDiskSize() const;
 	void setLaunchConfigurationSystemDiskSize(int launchConfigurationSystemDiskSize);
 	int getLaunchConfigurationInternetMaxBandwidthOut() const;
@@ -229,6 +231,7 @@ private:
 	std::string validUntil_;
 	std::string launchTemplateId_;
 	long ownerId_;
+	std::string launchConfigurationImageFamily_;
 	int launchConfigurationSystemDiskSize_;
 	int launchConfigurationInternetMaxBandwidthOut_;
 	std::string launchConfigurationHostName_;

+ 3 - 0
ecs/include/alibabacloud/ecs/model/CreateCommandRequest.h

@@ -53,6 +53,8 @@ public:
 	void setCommandContent(const std::string &commandContent);
 	long getTimeout() const;
 	void setTimeout(long timeout);
+	std::string getResourceGroupId() const;
+	void setResourceGroupId(const std::string &resourceGroupId);
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
 	std::string getContentEncoding() const;
@@ -78,6 +80,7 @@ private:
 	std::string type_;
 	std::string commandContent_;
 	long timeout_;
+	std::string resourceGroupId_;
 	std::string regionId_;
 	std::string contentEncoding_;
 	std::vector<Tag> tag_;

+ 9 - 6
ecs/include/alibabacloud/ecs/model/CreateDiagnosticReportRequest.h

@@ -30,23 +30,26 @@ class ALIBABACLOUD_ECS_EXPORT CreateDiagnosticReportRequest : public RpcServiceR
 public:
 	CreateDiagnosticReportRequest();
 	~CreateDiagnosticReportRequest();
-	std::string getResourceId() const;
-	void setResourceId(const std::string &resourceId);
 	std::string getMetricSetId() const;
 	void setMetricSetId(const std::string &metricSetId);
-	std::string getEndTime() const;
-	void setEndTime(const std::string &endTime);
 	std::string getStartTime() const;
 	void setStartTime(const std::string &startTime);
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
+	std::string getResourceId() const;
+	void setResourceId(const std::string &resourceId);
+	std::string getEndTime() const;
+	void setEndTime(const std::string &endTime);
+	std::map<std::string, std::string> getAdditionalOptions() const;
+	void setAdditionalOptions(const std::map<std::string, std::string> &additionalOptions);
 
 private:
-	std::string resourceId_;
 	std::string metricSetId_;
-	std::string endTime_;
 	std::string startTime_;
 	std::string regionId_;
+	std::string resourceId_;
+	std::string endTime_;
+	std::map<std::string, std::string> additionalOptions_;
 };
 } // namespace Model
 } // namespace Ecs

+ 3 - 0
ecs/include/alibabacloud/ecs/model/CreateLaunchTemplateRequest.h

@@ -157,6 +157,8 @@ public:
 	void setRamRoleName(const std::string &ramRoleName);
 	std::string getAutoReleaseTime() const;
 	void setAutoReleaseTime(const std::string &autoReleaseTime);
+	std::string getCreditSpecification() const;
+	void setCreditSpecification(const std::string &creditSpecification);
 	int getSpotDuration() const;
 	void setSpotDuration(int spotDuration);
 	std::vector<std::string> getSecurityGroupIds() const;
@@ -223,6 +225,7 @@ private:
 	std::string systemDiskDiskName_;
 	std::string ramRoleName_;
 	std::string autoReleaseTime_;
+	std::string creditSpecification_;
 	int spotDuration_;
 	std::vector<std::string> securityGroupIds_;
 	std::vector<DataDisk> dataDisk_;

+ 2 - 0
ecs/include/alibabacloud/ecs/model/CreateLaunchTemplateResult.h

@@ -37,11 +37,13 @@ namespace AlibabaCloud
 				CreateLaunchTemplateResult();
 				explicit CreateLaunchTemplateResult(const std::string &payload);
 				~CreateLaunchTemplateResult();
+				long getLaunchTemplateVersionNumber()const;
 				std::string getLaunchTemplateId()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				long launchTemplateVersionNumber_;
 				std::string launchTemplateId_;
 
 			};

+ 3 - 0
ecs/include/alibabacloud/ecs/model/CreateLaunchTemplateVersionRequest.h

@@ -151,6 +151,8 @@ public:
 	void setRamRoleName(const std::string &ramRoleName);
 	std::string getAutoReleaseTime() const;
 	void setAutoReleaseTime(const std::string &autoReleaseTime);
+	std::string getCreditSpecification() const;
+	void setCreditSpecification(const std::string &creditSpecification);
 	int getSpotDuration() const;
 	void setSpotDuration(int spotDuration);
 	std::vector<std::string> getSecurityGroupIds() const;
@@ -216,6 +218,7 @@ private:
 	std::string systemDiskDiskName_;
 	std::string ramRoleName_;
 	std::string autoReleaseTime_;
+	std::string creditSpecification_;
 	int spotDuration_;
 	std::vector<std::string> securityGroupIds_;
 	std::vector<DataDisk> dataDisk_;

+ 3 - 0
ecs/include/alibabacloud/ecs/model/CreateNetworkInterfaceRequest.h

@@ -76,6 +76,8 @@ public:
 	void setRegionId(const std::string &regionId);
 	std::string getInstanceType() const;
 	void setInstanceType(const std::string &instanceType);
+	bool getDeleteOnRelease() const;
+	void setDeleteOnRelease(bool deleteOnRelease);
 	std::string getResourceOwnerAccount() const;
 	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
 	std::string getOwnerAccount() const;
@@ -113,6 +115,7 @@ private:
 	int ipv6PrefixCount_;
 	std::string regionId_;
 	std::string instanceType_;
+	bool deleteOnRelease_;
 	std::string resourceOwnerAccount_;
 	std::string ownerAccount_;
 	int queuePairNumber_;

+ 66 - 0
ecs/include/alibabacloud/ecs/model/CreateSavingsPlanRequest.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_CREATESAVINGSPLANREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_CREATESAVINGSPLANREQUEST_H_
+
+#include <alibabacloud/ecs/EcsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ecs {
+namespace Model {
+class ALIBABACLOUD_ECS_EXPORT CreateSavingsPlanRequest : public RpcServiceRequest {
+public:
+	CreateSavingsPlanRequest();
+	~CreateSavingsPlanRequest();
+	std::string getPeriod() const;
+	void setPeriod(const std::string &period);
+	std::vector<std::string> getResourceId() const;
+	void setResourceId(const std::vector<std::string> &resourceId);
+	std::string getInstanceTypeFamily() const;
+	void setInstanceTypeFamily(const std::string &instanceTypeFamily);
+	std::string getPlanType() const;
+	void setPlanType(const std::string &planType);
+	std::string getPeriodUnit() const;
+	void setPeriodUnit(const std::string &periodUnit);
+	std::string getOfferingType() const;
+	void setOfferingType(const std::string &offeringType);
+	std::string getRegionId() const;
+	void setRegionId(const std::string &regionId);
+	std::string getChargeType() const;
+	void setChargeType(const std::string &chargeType);
+	std::string getCommittedAmount() const;
+	void setCommittedAmount(const std::string &committedAmount);
+
+private:
+	std::string period_;
+	std::vector<std::string> resourceId_;
+	std::string instanceTypeFamily_;
+	std::string planType_;
+	std::string periodUnit_;
+	std::string offeringType_;
+	std::string regionId_;
+	std::string chargeType_;
+	std::string committedAmount_;
+};
+} // namespace Model
+} // namespace Ecs
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ECS_MODEL_CREATESAVINGSPLANREQUEST_H_

+ 11 - 9
ecs/include/alibabacloud/ecs/model/DescribeInstanceVncPasswdResult.h → ecs/include/alibabacloud/ecs/model/CreateSavingsPlanResult.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_ECS_MODEL_DESCRIBEINSTANCEVNCPASSWDRESULT_H_
-#define ALIBABACLOUD_ECS_MODEL_DESCRIBEINSTANCEVNCPASSWDRESULT_H_
+#ifndef ALIBABACLOUD_ECS_MODEL_CREATESAVINGSPLANRESULT_H_
+#define ALIBABACLOUD_ECS_MODEL_CREATESAVINGSPLANRESULT_H_
 
 #include <string>
 #include <vector>
@@ -29,23 +29,25 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_ECS_EXPORT DescribeInstanceVncPasswdResult : public ServiceResult
+			class ALIBABACLOUD_ECS_EXPORT CreateSavingsPlanResult : public ServiceResult
 			{
 			public:
 
 
-				DescribeInstanceVncPasswdResult();
-				explicit DescribeInstanceVncPasswdResult(const std::string &payload);
-				~DescribeInstanceVncPasswdResult();
-				std::string getVncPasswd()const;
+				CreateSavingsPlanResult();
+				explicit CreateSavingsPlanResult(const std::string &payload);
+				~CreateSavingsPlanResult();
+				std::string getSavingsPlanId()const;
+				std::string getOrderId()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
-				std::string vncPasswd_;
+				std::string savingsPlanId_;
+				std::string orderId_;
 
 			};
 		}
 	}
 }
-#endif // !ALIBABACLOUD_ECS_MODEL_DESCRIBEINSTANCEVNCPASSWDRESULT_H_
+#endif // !ALIBABACLOUD_ECS_MODEL_CREATESAVINGSPLANRESULT_H_

+ 2 - 0
ecs/include/alibabacloud/ecs/model/DeleteLaunchTemplateResult.h

@@ -37,11 +37,13 @@ namespace AlibabaCloud
 				DeleteLaunchTemplateResult();
 				explicit DeleteLaunchTemplateResult(const std::string &payload);
 				~DeleteLaunchTemplateResult();
+				std::vector<std::string> getLaunchTemplateVersionNumbers()const;
 				std::string getLaunchTemplateId()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::vector<std::string> launchTemplateVersionNumbers_;
 				std::string launchTemplateId_;
 
 			};

+ 1 - 0
ecs/include/alibabacloud/ecs/model/DeregisterManagedInstanceResult.h

@@ -35,6 +35,7 @@ namespace AlibabaCloud
 				struct Instance
 				{
 					std::string machineId;
+					std::string resourceGroupId;
 					std::string instanceId;
 					std::string agentVersion;
 					long invocationCount;

+ 3 - 0
ecs/include/alibabacloud/ecs/model/DescribeActivationsRequest.h

@@ -38,6 +38,8 @@ public:
 	void setResourceOwnerId(long resourceOwnerId);
 	long getPageNumber() const;
 	void setPageNumber(long pageNumber);
+	std::string getResourceGroupId() const;
+	void setResourceGroupId(const std::string &resourceGroupId);
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
 	long getPageSize() const;
@@ -58,6 +60,7 @@ public:
 private:
 	long resourceOwnerId_;
 	long pageNumber_;
+	std::string resourceGroupId_;
 	std::string regionId_;
 	long pageSize_;
 	std::vector<Tag> tag_;

+ 1 - 0
ecs/include/alibabacloud/ecs/model/DescribeActivationsResult.h

@@ -43,6 +43,7 @@ namespace AlibabaCloud
 					int deregisteredCount;
 					int instanceCount;
 					std::string description;
+					std::string resourceGroupId;
 					std::string creationTime;
 					std::string activationId;
 					int registeredCount;

+ 9 - 0
ecs/include/alibabacloud/ecs/model/DescribeCapacityReservationsResult.h

@@ -36,10 +36,18 @@ namespace AlibabaCloud
 				{
 					struct AllocatedResource
 					{
+						struct CapacityReservationUsage
+						{
+							int usedAmount;
+							std::string accountId;
+							std::string serviceName;
+						};
 						int usedAmount;
 						std::string zoneId;
+						int availableAmount;
 						int totalAmount;
 						std::string instanceType;
+						std::vector<AllocatedResource::CapacityReservationUsage> capacityReservationUsages;
 					};
 					struct Tag
 					{
@@ -58,6 +66,7 @@ namespace AlibabaCloud
 					std::string privatePoolOptionsMatchCriteria;
 					std::string timeSlot;
 					std::string savingPlanId;
+					std::string capacityReservationOwnerId;
 					std::vector<CapacityReservationItem::AllocatedResource> allocatedResources;
 					std::string privatePoolOptionsId;
 					std::string endTimeType;

+ 3 - 0
ecs/include/alibabacloud/ecs/model/DescribeCommandsRequest.h

@@ -44,6 +44,8 @@ public:
 	void setCommandId(const std::string &commandId);
 	long getPageNumber() const;
 	void setPageNumber(long pageNumber);
+	std::string getResourceGroupId() const;
+	void setResourceGroupId(const std::string &resourceGroupId);
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
 	std::string getProvider() const;
@@ -71,6 +73,7 @@ private:
 	std::string type_;
 	std::string commandId_;
 	long pageNumber_;
+	std::string resourceGroupId_;
 	std::string regionId_;
 	std::string provider_;
 	std::string contentEncoding_;

+ 1 - 0
ecs/include/alibabacloud/ecs/model/DescribeCommandsResult.h

@@ -50,6 +50,7 @@ namespace AlibabaCloud
 					std::vector<Command::ParameterDefinition> parameterDefinitions;
 					std::string description;
 					std::string category;
+					std::string resourceGroupId;
 					std::vector<std::string> parameterNames;
 					long timeout;
 					std::string provider;

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

@@ -59,6 +59,7 @@ namespace AlibabaCloud
 					std::string description;
 					std::string kMSKeyId;
 					std::string category;
+					int throughputRead;
 					std::string resourceGroupId;
 					bool encrypted;
 					int size;
@@ -93,6 +94,7 @@ namespace AlibabaCloud
 					long provisionedIops;
 					std::vector<Disk::OperationLock> operationLocks;
 					std::string bdfId;
+					int throughputWrite;
 					bool portable;
 					std::string type;
 					int mountInstanceNum;

+ 1 - 0
ecs/include/alibabacloud/ecs/model/DescribeLaunchTemplateVersionsResult.h

@@ -113,6 +113,7 @@ namespace AlibabaCloud
 						int internetMaxBandwidthIn;
 						int systemDiskIops;
 						std::string securityEnhancementStrategy;
+						std::string creditSpecification;
 						std::string autoReleaseTime;
 					};
 					LaunchTemplateData launchTemplateData;

+ 3 - 0
ecs/include/alibabacloud/ecs/model/DescribeManagedInstancesRequest.h

@@ -38,6 +38,8 @@ public:
 	void setResourceOwnerId(long resourceOwnerId);
 	long getPageNumber() const;
 	void setPageNumber(long pageNumber);
+	std::string getResourceGroupId() const;
+	void setResourceGroupId(const std::string &resourceGroupId);
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
 	long getPageSize() const;
@@ -64,6 +66,7 @@ public:
 private:
 	long resourceOwnerId_;
 	long pageNumber_;
+	std::string resourceGroupId_;
 	std::string regionId_;
 	long pageSize_;
 	std::vector<Tag> tag_;

+ 1 - 0
ecs/include/alibabacloud/ecs/model/DescribeManagedInstancesResult.h

@@ -40,6 +40,7 @@ namespace AlibabaCloud
 						std::string tagValue;
 					};
 					std::string machineId;
+					std::string resourceGroupId;
 					bool connected;
 					std::string instanceId;
 					std::string agentVersion;

+ 2 - 0
ecs/include/alibabacloud/ecs/model/DescribeNetworkInterfaceAttributeResult.h

@@ -99,6 +99,7 @@ namespace AlibabaCloud
 				std::string getPrivateIpAddress()const;
 				bool getServiceManaged()const;
 				std::string getResourceGroupId()const;
+				bool getDeleteOnRelease()const;
 				Attachment getAttachment()const;
 				std::string getNetworkInterfaceId()const;
 				std::vector<Ipv6Set> getIpv6Sets()const;
@@ -132,6 +133,7 @@ namespace AlibabaCloud
 				std::string privateIpAddress_;
 				bool serviceManaged_;
 				std::string resourceGroupId_;
+				bool deleteOnRelease_;
 				Attachment attachment_;
 				std::string networkInterfaceId_;
 				std::vector<Ipv6Set> ipv6Sets_;

+ 1 - 0
ecs/include/alibabacloud/ecs/model/DescribeNetworkInterfacesResult.h

@@ -78,6 +78,7 @@ namespace AlibabaCloud
 					std::string privateIpAddress;
 					bool serviceManaged;
 					std::string resourceGroupId;
+					bool deleteOnRelease;
 					Attachment attachment;
 					std::string networkInterfaceId;
 					std::vector<NetworkInterfaceSet::Ipv6Set> ipv6Sets;

+ 21 - 21
ecs/include/alibabacloud/ecs/model/DescribeInstanceVncPasswdRequest.h → ecs/include/alibabacloud/ecs/model/DescribeSavingsPlanEstimationRequest.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_ECS_MODEL_DESCRIBEINSTANCEVNCPASSWDREQUEST_H_
-#define ALIBABACLOUD_ECS_MODEL_DESCRIBEINSTANCEVNCPASSWDREQUEST_H_
+#ifndef ALIBABACLOUD_ECS_MODEL_DESCRIBESAVINGSPLANESTIMATIONREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_DESCRIBESAVINGSPLANESTIMATIONREQUEST_H_
 
 #include <alibabacloud/ecs/EcsExport.h>
 #include <alibabacloud/core/RpcServiceRequest.h>
@@ -26,32 +26,32 @@
 namespace AlibabaCloud {
 namespace Ecs {
 namespace Model {
-class ALIBABACLOUD_ECS_EXPORT DescribeInstanceVncPasswdRequest : public RpcServiceRequest {
+class ALIBABACLOUD_ECS_EXPORT DescribeSavingsPlanEstimationRequest : public RpcServiceRequest {
 public:
-	DescribeInstanceVncPasswdRequest();
-	~DescribeInstanceVncPasswdRequest();
-	long getResourceOwnerId() const;
-	void setResourceOwnerId(long resourceOwnerId);
+	DescribeSavingsPlanEstimationRequest();
+	~DescribeSavingsPlanEstimationRequest();
+	std::string getResourceId() const;
+	void setResourceId(const std::string &resourceId);
+	std::string getPeriod() const;
+	void setPeriod(const std::string &period);
+	std::string getPlanType() const;
+	void setPlanType(const std::string &planType);
+	std::string getPeriodUnit() const;
+	void setPeriodUnit(const std::string &periodUnit);
+	std::string getOfferingType() const;
+	void setOfferingType(const std::string &offeringType);
 	std::string getRegionId() const;
 	void setRegionId(const std::string &regionId);
-	std::string getResourceOwnerAccount() const;
-	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
-	std::string getOwnerAccount() const;
-	void setOwnerAccount(const std::string &ownerAccount);
-	long getOwnerId() const;
-	void setOwnerId(long ownerId);
-	std::string getInstanceId() const;
-	void setInstanceId(const std::string &instanceId);
 
 private:
-	long resourceOwnerId_;
+	std::string resourceId_;
+	std::string period_;
+	std::string planType_;
+	std::string periodUnit_;
+	std::string offeringType_;
 	std::string regionId_;
-	std::string resourceOwnerAccount_;
-	std::string ownerAccount_;
-	long ownerId_;
-	std::string instanceId_;
 };
 } // namespace Model
 } // namespace Ecs
 } // namespace AlibabaCloud
-#endif // !ALIBABACLOUD_ECS_MODEL_DESCRIBEINSTANCEVNCPASSWDREQUEST_H_
+#endif // !ALIBABACLOUD_ECS_MODEL_DESCRIBESAVINGSPLANESTIMATIONREQUEST_H_

+ 65 - 0
ecs/include/alibabacloud/ecs/model/DescribeSavingsPlanEstimationResult.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_DESCRIBESAVINGSPLANESTIMATIONRESULT_H_
+#define ALIBABACLOUD_ECS_MODEL_DESCRIBESAVINGSPLANESTIMATIONRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ecs/EcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ecs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ECS_EXPORT DescribeSavingsPlanEstimationResult : public ServiceResult
+			{
+			public:
+
+
+				DescribeSavingsPlanEstimationResult();
+				explicit DescribeSavingsPlanEstimationResult(const std::string &payload);
+				~DescribeSavingsPlanEstimationResult();
+				std::string getOfferingType()const;
+				std::string getCommittedAmount()const;
+				std::string getResourceId()const;
+				std::string getInstanceTypeFamily()const;
+				std::string getCurrency()const;
+				std::string getPlanType()const;
+				int getPeriod()const;
+				std::string getPeriodUnit()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string offeringType_;
+				std::string committedAmount_;
+				std::string resourceId_;
+				std::string instanceTypeFamily_;
+				std::string currency_;
+				std::string planType_;
+				int period_;
+				std::string periodUnit_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_DESCRIBESAVINGSPLANESTIMATIONRESULT_H_

+ 63 - 0
ecs/include/alibabacloud/ecs/model/DescribeSavingsPlanPriceRequest.h

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_DESCRIBESAVINGSPLANPRICEREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_DESCRIBESAVINGSPLANPRICEREQUEST_H_
+
+#include <alibabacloud/ecs/EcsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ecs {
+namespace Model {
+class ALIBABACLOUD_ECS_EXPORT DescribeSavingsPlanPriceRequest : public RpcServiceRequest {
+public:
+	DescribeSavingsPlanPriceRequest();
+	~DescribeSavingsPlanPriceRequest();
+	int getPeriod() const;
+	void setPeriod(int period);
+	std::vector<std::string> getResourceId() const;
+	void setResourceId(const std::vector<std::string> &resourceId);
+	std::string getInstanceTypeFamily() const;
+	void setInstanceTypeFamily(const std::string &instanceTypeFamily);
+	std::string getPlanType() const;
+	void setPlanType(const std::string &planType);
+	std::string getPeriodUnit() const;
+	void setPeriodUnit(const std::string &periodUnit);
+	std::string getOfferingType() const;
+	void setOfferingType(const std::string &offeringType);
+	std::string getRegionId() const;
+	void setRegionId(const std::string &regionId);
+	std::string getCommittedAmount() const;
+	void setCommittedAmount(const std::string &committedAmount);
+
+private:
+	int period_;
+	std::vector<std::string> resourceId_;
+	std::string instanceTypeFamily_;
+	std::string planType_;
+	std::string periodUnit_;
+	std::string offeringType_;
+	std::string regionId_;
+	std::string committedAmount_;
+};
+} // namespace Model
+} // namespace Ecs
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ECS_MODEL_DESCRIBESAVINGSPLANPRICEREQUEST_H_

+ 26 - 11
ecs/include/alibabacloud/ecs/model/ImportSnapshotResult.h → ecs/include/alibabacloud/ecs/model/DescribeSavingsPlanPriceResult.h

@@ -14,8 +14,8 @@
  * limitations under the License.
  */
 
-#ifndef ALIBABACLOUD_ECS_MODEL_IMPORTSNAPSHOTRESULT_H_
-#define ALIBABACLOUD_ECS_MODEL_IMPORTSNAPSHOTRESULT_H_
+#ifndef ALIBABACLOUD_ECS_MODEL_DESCRIBESAVINGSPLANPRICERESULT_H_
+#define ALIBABACLOUD_ECS_MODEL_DESCRIBESAVINGSPLANPRICERESULT_H_
 
 #include <string>
 #include <vector>
@@ -29,25 +29,40 @@ namespace AlibabaCloud
 	{
 		namespace Model
 		{
-			class ALIBABACLOUD_ECS_EXPORT ImportSnapshotResult : public ServiceResult
+			class ALIBABACLOUD_ECS_EXPORT DescribeSavingsPlanPriceResult : public ServiceResult
 			{
 			public:
+				struct PriceInfo
+				{
+					struct Price
+					{
+						float originalPrice;
+						float discountPrice;
+						std::string currency;
+						float tradePrice;
+					};
+					struct RulesItem
+					{
+						std::string description;
+						std::string ruleId;
+					};
+					Price price;
+					std::vector<RulesItem> rules;
+				};
 
 
-				ImportSnapshotResult();
-				explicit ImportSnapshotResult(const std::string &payload);
-				~ImportSnapshotResult();
-				std::string getSnapshotId()const;
-				std::string getTaskId()const;
+				DescribeSavingsPlanPriceResult();
+				explicit DescribeSavingsPlanPriceResult(const std::string &payload);
+				~DescribeSavingsPlanPriceResult();
+				PriceInfo getPriceInfo()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
-				std::string snapshotId_;
-				std::string taskId_;
+				PriceInfo priceInfo_;
 
 			};
 		}
 	}
 }
-#endif // !ALIBABACLOUD_ECS_MODEL_IMPORTSNAPSHOTRESULT_H_
+#endif // !ALIBABACLOUD_ECS_MODEL_DESCRIBESAVINGSPLANPRICERESULT_H_

+ 3 - 0
ecs/include/alibabacloud/ecs/model/DescribeSecurityGroupsRequest.h

@@ -38,6 +38,8 @@ public:
 	void setResourceOwnerId(long resourceOwnerId);
 	bool getFuzzyQuery() const;
 	void setFuzzyQuery(bool fuzzyQuery);
+	bool getServiceManaged() const;
+	void setServiceManaged(bool serviceManaged);
 	std::string getSecurityGroupId() const;
 	void setSecurityGroupId(const std::string &securityGroupId);
 	bool getIsQueryEcsCount() const;
@@ -78,6 +80,7 @@ public:
 private:
 	long resourceOwnerId_;
 	bool fuzzyQuery_;
+	bool serviceManaged_;
 	std::string securityGroupId_;
 	bool isQueryEcsCount_;
 	std::string networkType_;

+ 3 - 0
ecs/include/alibabacloud/ecs/model/DescribeSendFileResultsRequest.h

@@ -56,6 +56,8 @@ public:
 	void setOwnerId(long ownerId);
 	std::string getInstanceId() const;
 	void setInstanceId(const std::string &instanceId);
+	std::string getInvocationStatus() const;
+	void setInvocationStatus(const std::string &invocationStatus);
 	std::string getName() const;
 	void setName(const std::string &name);
 
@@ -71,6 +73,7 @@ private:
 	std::string ownerAccount_;
 	long ownerId_;
 	std::string instanceId_;
+	std::string invocationStatus_;
 	std::string name_;
 };
 } // namespace Model

+ 1 - 0
ecs/include/alibabacloud/ecs/model/DescribeSnapshotGroupsResult.h

@@ -50,6 +50,7 @@ namespace AlibabaCloud
 						bool instantAccess;
 						std::string progress;
 						std::vector<Snapshot::Tag2> tags1;
+						bool available;
 						std::string sourceDiskType;
 						int instantAccessRetentionDays;
 						std::string sourceDiskId;

+ 1 - 0
ecs/include/alibabacloud/ecs/model/DescribeSnapshotsResult.h

@@ -50,6 +50,7 @@ namespace AlibabaCloud
 					std::string sourceDiskId;
 					std::string snapshotSN;
 					std::string sourceRegionId;
+					bool available;
 					std::vector<Snapshot::Tag> tags;
 					std::string status;
 					std::string progress;

+ 0 - 63
ecs/include/alibabacloud/ecs/model/ImportSnapshotRequest.h

@@ -1,63 +0,0 @@
-/*
- * 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_ECS_MODEL_IMPORTSNAPSHOTREQUEST_H_
-#define ALIBABACLOUD_ECS_MODEL_IMPORTSNAPSHOTREQUEST_H_
-
-#include <alibabacloud/ecs/EcsExport.h>
-#include <alibabacloud/core/RpcServiceRequest.h>
-#include <string>
-#include <vector>
-#include <map>
-
-namespace AlibabaCloud {
-namespace Ecs {
-namespace Model {
-class ALIBABACLOUD_ECS_EXPORT ImportSnapshotRequest : public RpcServiceRequest {
-public:
-	ImportSnapshotRequest();
-	~ImportSnapshotRequest();
-	long getResourceOwnerId() const;
-	void setResourceOwnerId(long resourceOwnerId);
-	std::string getSnapshotName() const;
-	void setSnapshotName(const std::string &snapshotName);
-	std::string getOssObject() const;
-	void setOssObject(const std::string &ossObject);
-	std::string getRegionId() const;
-	void setRegionId(const std::string &regionId);
-	std::string getOssBucket() const;
-	void setOssBucket(const std::string &ossBucket);
-	std::string getResourceOwnerAccount() const;
-	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
-	std::string getRoleName() const;
-	void setRoleName(const std::string &roleName);
-	long getOwnerId() const;
-	void setOwnerId(long ownerId);
-
-private:
-	long resourceOwnerId_;
-	std::string snapshotName_;
-	std::string ossObject_;
-	std::string regionId_;
-	std::string ossBucket_;
-	std::string resourceOwnerAccount_;
-	std::string roleName_;
-	long ownerId_;
-};
-} // namespace Model
-} // namespace Ecs
-} // namespace AlibabaCloud
-#endif // !ALIBABACLOUD_ECS_MODEL_IMPORTSNAPSHOTREQUEST_H_

+ 3 - 0
ecs/include/alibabacloud/ecs/model/ModifyNetworkInterfaceAttributeRequest.h

@@ -42,6 +42,8 @@ public:
 	void setRegionId(const std::string &regionId);
 	std::string getNetworkInterfaceName() const;
 	void setNetworkInterfaceName(const std::string &networkInterfaceName);
+	bool getDeleteOnRelease() const;
+	void setDeleteOnRelease(bool deleteOnRelease);
 	std::string getResourceOwnerAccount() const;
 	void setResourceOwnerAccount(const std::string &resourceOwnerAccount);
 	std::string getOwnerAccount() const;
@@ -58,6 +60,7 @@ private:
 	std::string description_;
 	std::string regionId_;
 	std::string networkInterfaceName_;
+	bool deleteOnRelease_;
 	std::string resourceOwnerAccount_;
 	std::string ownerAccount_;
 	long ownerId_;

+ 3 - 0
ecs/include/alibabacloud/ecs/model/ModifySnapshotAttributeRequest.h

@@ -46,6 +46,8 @@ public:
 	void setOwnerId(long ownerId);
 	bool getDisableInstantAccess() const;
 	void setDisableInstantAccess(bool disableInstantAccess);
+	int getRetentionDays() const;
+	void setRetentionDays(int retentionDays);
 
 private:
 	long resourceOwnerId_;
@@ -56,6 +58,7 @@ private:
 	std::string ownerAccount_;
 	long ownerId_;
 	bool disableInstantAccess_;
+	int retentionDays_;
 };
 } // namespace Model
 } // namespace Ecs

+ 2 - 0
ecs/include/alibabacloud/ecs/model/RunInstancesRequest.h

@@ -68,6 +68,8 @@ public:
 		std::string instanceType;
 		long ipv6AddressCount;
 		int networkCardIndex;
+		bool deleteOnRelease;
+		std::string networkInterfaceId;
 	};
 	struct DataDisk {
 		std::string performanceLevel;

+ 108 - 72
ecs/src/EcsClient.cc

@@ -2139,6 +2139,42 @@ EcsClient::CreateRouterInterfaceOutcomeCallable EcsClient::createRouterInterface
 	return task->get_future();
 }
 
+EcsClient::CreateSavingsPlanOutcome EcsClient::createSavingsPlan(const CreateSavingsPlanRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateSavingsPlanOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateSavingsPlanOutcome(CreateSavingsPlanResult(outcome.result()));
+	else
+		return CreateSavingsPlanOutcome(outcome.error());
+}
+
+void EcsClient::createSavingsPlanAsync(const CreateSavingsPlanRequest& request, const CreateSavingsPlanAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createSavingsPlan(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::CreateSavingsPlanOutcomeCallable EcsClient::createSavingsPlanCallable(const CreateSavingsPlanRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateSavingsPlanOutcome()>>(
+			[this, request]()
+			{
+			return this->createSavingsPlan(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::CreateSecurityGroupOutcome EcsClient::createSecurityGroup(const CreateSecurityGroupRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -5847,42 +5883,6 @@ EcsClient::DescribeInstanceTypesOutcomeCallable EcsClient::describeInstanceTypes
 	return task->get_future();
 }
 
-EcsClient::DescribeInstanceVncPasswdOutcome EcsClient::describeInstanceVncPasswd(const DescribeInstanceVncPasswdRequest &request) const
-{
-	auto endpointOutcome = endpointProvider_->getEndpoint();
-	if (!endpointOutcome.isSuccess())
-		return DescribeInstanceVncPasswdOutcome(endpointOutcome.error());
-
-	auto outcome = makeRequest(endpointOutcome.result(), request);
-
-	if (outcome.isSuccess())
-		return DescribeInstanceVncPasswdOutcome(DescribeInstanceVncPasswdResult(outcome.result()));
-	else
-		return DescribeInstanceVncPasswdOutcome(outcome.error());
-}
-
-void EcsClient::describeInstanceVncPasswdAsync(const DescribeInstanceVncPasswdRequest& request, const DescribeInstanceVncPasswdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
-{
-	auto fn = [this, request, handler, context]()
-	{
-		handler(this, request, describeInstanceVncPasswd(request), context);
-	};
-
-	asyncExecute(new Runnable(fn));
-}
-
-EcsClient::DescribeInstanceVncPasswdOutcomeCallable EcsClient::describeInstanceVncPasswdCallable(const DescribeInstanceVncPasswdRequest &request) const
-{
-	auto task = std::make_shared<std::packaged_task<DescribeInstanceVncPasswdOutcome()>>(
-			[this, request]()
-			{
-			return this->describeInstanceVncPasswd(request);
-			});
-
-	asyncExecute(new Runnable([task]() { (*task)(); }));
-	return task->get_future();
-}
-
 EcsClient::DescribeInstanceVncUrlOutcome EcsClient::describeInstanceVncUrl(const DescribeInstanceVncUrlRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -6927,6 +6927,78 @@ EcsClient::DescribeRouterInterfacesOutcomeCallable EcsClient::describeRouterInte
 	return task->get_future();
 }
 
+EcsClient::DescribeSavingsPlanEstimationOutcome EcsClient::describeSavingsPlanEstimation(const DescribeSavingsPlanEstimationRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeSavingsPlanEstimationOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeSavingsPlanEstimationOutcome(DescribeSavingsPlanEstimationResult(outcome.result()));
+	else
+		return DescribeSavingsPlanEstimationOutcome(outcome.error());
+}
+
+void EcsClient::describeSavingsPlanEstimationAsync(const DescribeSavingsPlanEstimationRequest& request, const DescribeSavingsPlanEstimationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeSavingsPlanEstimation(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::DescribeSavingsPlanEstimationOutcomeCallable EcsClient::describeSavingsPlanEstimationCallable(const DescribeSavingsPlanEstimationRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeSavingsPlanEstimationOutcome()>>(
+			[this, request]()
+			{
+			return this->describeSavingsPlanEstimation(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+EcsClient::DescribeSavingsPlanPriceOutcome EcsClient::describeSavingsPlanPrice(const DescribeSavingsPlanPriceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeSavingsPlanPriceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeSavingsPlanPriceOutcome(DescribeSavingsPlanPriceResult(outcome.result()));
+	else
+		return DescribeSavingsPlanPriceOutcome(outcome.error());
+}
+
+void EcsClient::describeSavingsPlanPriceAsync(const DescribeSavingsPlanPriceRequest& request, const DescribeSavingsPlanPriceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeSavingsPlanPrice(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::DescribeSavingsPlanPriceOutcomeCallable EcsClient::describeSavingsPlanPriceCallable(const DescribeSavingsPlanPriceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeSavingsPlanPriceOutcome()>>(
+			[this, request]()
+			{
+			return this->describeSavingsPlanPrice(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::DescribeSecurityGroupAttributeOutcome EcsClient::describeSecurityGroupAttribute(const DescribeSecurityGroupAttributeRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -8439,42 +8511,6 @@ EcsClient::ImportKeyPairOutcomeCallable EcsClient::importKeyPairCallable(const I
 	return task->get_future();
 }
 
-EcsClient::ImportSnapshotOutcome EcsClient::importSnapshot(const ImportSnapshotRequest &request) const
-{
-	auto endpointOutcome = endpointProvider_->getEndpoint();
-	if (!endpointOutcome.isSuccess())
-		return ImportSnapshotOutcome(endpointOutcome.error());
-
-	auto outcome = makeRequest(endpointOutcome.result(), request);
-
-	if (outcome.isSuccess())
-		return ImportSnapshotOutcome(ImportSnapshotResult(outcome.result()));
-	else
-		return ImportSnapshotOutcome(outcome.error());
-}
-
-void EcsClient::importSnapshotAsync(const ImportSnapshotRequest& request, const ImportSnapshotAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
-{
-	auto fn = [this, request, handler, context]()
-	{
-		handler(this, request, importSnapshot(request), context);
-	};
-
-	asyncExecute(new Runnable(fn));
-}
-
-EcsClient::ImportSnapshotOutcomeCallable EcsClient::importSnapshotCallable(const ImportSnapshotRequest &request) const
-{
-	auto task = std::make_shared<std::packaged_task<ImportSnapshotOutcome()>>(
-			[this, request]()
-			{
-			return this->importSnapshot(request);
-			});
-
-	asyncExecute(new Runnable([task]() { (*task)(); }));
-	return task->get_future();
-}
-
 EcsClient::InstallCloudAssistantOutcome EcsClient::installCloudAssistant(const InstallCloudAssistantRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 9 - 0
ecs/src/model/CreateActivationRequest.cc

@@ -43,6 +43,15 @@ void CreateActivationRequest::setDescription(const std::string &description) {
   setParameter(std::string("Description"), description);
 }
 
+std::string CreateActivationRequest::getResourceGroupId() const {
+  return resourceGroupId_;
+}
+
+void CreateActivationRequest::setResourceGroupId(const std::string &resourceGroupId) {
+  resourceGroupId_ = resourceGroupId;
+  setParameter(std::string("ResourceGroupId"), resourceGroupId);
+}
+
 std::string CreateActivationRequest::getRegionId() const {
   return regionId_;
 }

+ 9 - 0
ecs/src/model/CreateAutoProvisioningGroupRequest.cc

@@ -233,6 +233,15 @@ void CreateAutoProvisioningGroupRequest::setOwnerId(long ownerId) {
   setParameter(std::string("OwnerId"), std::to_string(ownerId));
 }
 
+std::string CreateAutoProvisioningGroupRequest::getLaunchConfigurationImageFamily() const {
+  return launchConfigurationImageFamily_;
+}
+
+void CreateAutoProvisioningGroupRequest::setLaunchConfigurationImageFamily(const std::string &launchConfigurationImageFamily) {
+  launchConfigurationImageFamily_ = launchConfigurationImageFamily;
+  setParameter(std::string("LaunchConfiguration.ImageFamily"), launchConfigurationImageFamily);
+}
+
 int CreateAutoProvisioningGroupRequest::getLaunchConfigurationSystemDiskSize() const {
   return launchConfigurationSystemDiskSize_;
 }

+ 9 - 0
ecs/src/model/CreateCommandRequest.cc

@@ -94,6 +94,15 @@ void CreateCommandRequest::setTimeout(long timeout) {
   setParameter(std::string("Timeout"), std::to_string(timeout));
 }
 
+std::string CreateCommandRequest::getResourceGroupId() const {
+  return resourceGroupId_;
+}
+
+void CreateCommandRequest::setResourceGroupId(const std::string &resourceGroupId) {
+  resourceGroupId_ = resourceGroupId;
+  setParameter(std::string("ResourceGroupId"), resourceGroupId);
+}
+
 std::string CreateCommandRequest::getRegionId() const {
   return regionId_;
 }

+ 29 - 18
ecs/src/model/CreateDiagnosticReportRequest.cc

@@ -25,15 +25,6 @@ CreateDiagnosticReportRequest::CreateDiagnosticReportRequest()
 
 CreateDiagnosticReportRequest::~CreateDiagnosticReportRequest() {}
 
-std::string CreateDiagnosticReportRequest::getResourceId() const {
-  return resourceId_;
-}
-
-void CreateDiagnosticReportRequest::setResourceId(const std::string &resourceId) {
-  resourceId_ = resourceId;
-  setParameter(std::string("ResourceId"), resourceId);
-}
-
 std::string CreateDiagnosticReportRequest::getMetricSetId() const {
   return metricSetId_;
 }
@@ -43,15 +34,6 @@ void CreateDiagnosticReportRequest::setMetricSetId(const std::string &metricSetI
   setParameter(std::string("MetricSetId"), metricSetId);
 }
 
-std::string CreateDiagnosticReportRequest::getEndTime() const {
-  return endTime_;
-}
-
-void CreateDiagnosticReportRequest::setEndTime(const std::string &endTime) {
-  endTime_ = endTime;
-  setParameter(std::string("EndTime"), endTime);
-}
-
 std::string CreateDiagnosticReportRequest::getStartTime() const {
   return startTime_;
 }
@@ -70,3 +52,32 @@ void CreateDiagnosticReportRequest::setRegionId(const std::string &regionId) {
   setParameter(std::string("RegionId"), regionId);
 }
 
+std::string CreateDiagnosticReportRequest::getResourceId() const {
+  return resourceId_;
+}
+
+void CreateDiagnosticReportRequest::setResourceId(const std::string &resourceId) {
+  resourceId_ = resourceId;
+  setParameter(std::string("ResourceId"), resourceId);
+}
+
+std::string CreateDiagnosticReportRequest::getEndTime() const {
+  return endTime_;
+}
+
+void CreateDiagnosticReportRequest::setEndTime(const std::string &endTime) {
+  endTime_ = endTime;
+  setParameter(std::string("EndTime"), endTime);
+}
+
+std::map<std::string, std::string> CreateDiagnosticReportRequest::getAdditionalOptions() const {
+  return additionalOptions_;
+}
+
+void CreateDiagnosticReportRequest::setAdditionalOptions(const std::map<std::string, std::string> &additionalOptions) {
+  additionalOptions_ = additionalOptions;
+  for(auto const &iter1 : additionalOptions) {
+    setParameter(std::string("AdditionalOptions") + "." + iter1.first, iter1.second);
+  }
+}
+

+ 9 - 0
ecs/src/model/CreateLaunchTemplateRequest.cc

@@ -477,6 +477,15 @@ void CreateLaunchTemplateRequest::setAutoReleaseTime(const std::string &autoRele
   setParameter(std::string("AutoReleaseTime"), autoReleaseTime);
 }
 
+std::string CreateLaunchTemplateRequest::getCreditSpecification() const {
+  return creditSpecification_;
+}
+
+void CreateLaunchTemplateRequest::setCreditSpecification(const std::string &creditSpecification) {
+  creditSpecification_ = creditSpecification;
+  setParameter(std::string("CreditSpecification"), creditSpecification);
+}
+
 int CreateLaunchTemplateRequest::getSpotDuration() const {
   return spotDuration_;
 }

+ 7 - 0
ecs/src/model/CreateLaunchTemplateResult.cc

@@ -41,9 +41,16 @@ void CreateLaunchTemplateResult::parse(const std::string &payload)
 	setRequestId(value["RequestId"].asString());
 	if(!value["LaunchTemplateId"].isNull())
 		launchTemplateId_ = value["LaunchTemplateId"].asString();
+	if(!value["LaunchTemplateVersionNumber"].isNull())
+		launchTemplateVersionNumber_ = std::stol(value["LaunchTemplateVersionNumber"].asString());
 
 }
 
+long CreateLaunchTemplateResult::getLaunchTemplateVersionNumber()const
+{
+	return launchTemplateVersionNumber_;
+}
+
 std::string CreateLaunchTemplateResult::getLaunchTemplateId()const
 {
 	return launchTemplateId_;

+ 9 - 0
ecs/src/model/CreateLaunchTemplateVersionRequest.cc

@@ -463,6 +463,15 @@ void CreateLaunchTemplateVersionRequest::setAutoReleaseTime(const std::string &a
   setParameter(std::string("AutoReleaseTime"), autoReleaseTime);
 }
 
+std::string CreateLaunchTemplateVersionRequest::getCreditSpecification() const {
+  return creditSpecification_;
+}
+
+void CreateLaunchTemplateVersionRequest::setCreditSpecification(const std::string &creditSpecification) {
+  creditSpecification_ = creditSpecification;
+  setParameter(std::string("CreditSpecification"), creditSpecification);
+}
+
 int CreateLaunchTemplateVersionRequest::getSpotDuration() const {
   return spotDuration_;
 }

+ 9 - 0
ecs/src/model/CreateNetworkInterfaceRequest.cc

@@ -215,6 +215,15 @@ void CreateNetworkInterfaceRequest::setInstanceType(const std::string &instanceT
   setParameter(std::string("InstanceType"), instanceType);
 }
 
+bool CreateNetworkInterfaceRequest::getDeleteOnRelease() const {
+  return deleteOnRelease_;
+}
+
+void CreateNetworkInterfaceRequest::setDeleteOnRelease(bool deleteOnRelease) {
+  deleteOnRelease_ = deleteOnRelease;
+  setParameter(std::string("DeleteOnRelease"), deleteOnRelease ? "true" : "false");
+}
+
 std::string CreateNetworkInterfaceRequest::getResourceOwnerAccount() const {
   return resourceOwnerAccount_;
 }

+ 107 - 0
ecs/src/model/CreateSavingsPlanRequest.cc

@@ -0,0 +1,107 @@
+/*
+ * 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/ecs/model/CreateSavingsPlanRequest.h>
+
+using AlibabaCloud::Ecs::Model::CreateSavingsPlanRequest;
+
+CreateSavingsPlanRequest::CreateSavingsPlanRequest()
+    : RpcServiceRequest("ecs", "2014-05-26", "CreateSavingsPlan") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateSavingsPlanRequest::~CreateSavingsPlanRequest() {}
+
+std::string CreateSavingsPlanRequest::getPeriod() const {
+  return period_;
+}
+
+void CreateSavingsPlanRequest::setPeriod(const std::string &period) {
+  period_ = period;
+  setParameter(std::string("Period"), period);
+}
+
+std::vector<std::string> CreateSavingsPlanRequest::getResourceId() const {
+  return resourceId_;
+}
+
+void CreateSavingsPlanRequest::setResourceId(const std::vector<std::string> &resourceId) {
+  resourceId_ = resourceId;
+}
+
+std::string CreateSavingsPlanRequest::getInstanceTypeFamily() const {
+  return instanceTypeFamily_;
+}
+
+void CreateSavingsPlanRequest::setInstanceTypeFamily(const std::string &instanceTypeFamily) {
+  instanceTypeFamily_ = instanceTypeFamily;
+  setParameter(std::string("InstanceTypeFamily"), instanceTypeFamily);
+}
+
+std::string CreateSavingsPlanRequest::getPlanType() const {
+  return planType_;
+}
+
+void CreateSavingsPlanRequest::setPlanType(const std::string &planType) {
+  planType_ = planType;
+  setParameter(std::string("PlanType"), planType);
+}
+
+std::string CreateSavingsPlanRequest::getPeriodUnit() const {
+  return periodUnit_;
+}
+
+void CreateSavingsPlanRequest::setPeriodUnit(const std::string &periodUnit) {
+  periodUnit_ = periodUnit;
+  setParameter(std::string("PeriodUnit"), periodUnit);
+}
+
+std::string CreateSavingsPlanRequest::getOfferingType() const {
+  return offeringType_;
+}
+
+void CreateSavingsPlanRequest::setOfferingType(const std::string &offeringType) {
+  offeringType_ = offeringType;
+  setParameter(std::string("OfferingType"), offeringType);
+}
+
+std::string CreateSavingsPlanRequest::getRegionId() const {
+  return regionId_;
+}
+
+void CreateSavingsPlanRequest::setRegionId(const std::string &regionId) {
+  regionId_ = regionId;
+  setParameter(std::string("RegionId"), regionId);
+}
+
+std::string CreateSavingsPlanRequest::getChargeType() const {
+  return chargeType_;
+}
+
+void CreateSavingsPlanRequest::setChargeType(const std::string &chargeType) {
+  chargeType_ = chargeType;
+  setParameter(std::string("ChargeType"), chargeType);
+}
+
+std::string CreateSavingsPlanRequest::getCommittedAmount() const {
+  return committedAmount_;
+}
+
+void CreateSavingsPlanRequest::setCommittedAmount(const std::string &committedAmount) {
+  committedAmount_ = committedAmount;
+  setParameter(std::string("CommittedAmount"), committedAmount);
+}
+

+ 13 - 13
ecs/src/model/ImportSnapshotResult.cc → ecs/src/model/CreateSavingsPlanResult.cc

@@ -14,45 +14,45 @@
  * limitations under the License.
  */
 
-#include <alibabacloud/ecs/model/ImportSnapshotResult.h>
+#include <alibabacloud/ecs/model/CreateSavingsPlanResult.h>
 #include <json/json.h>
 
 using namespace AlibabaCloud::Ecs;
 using namespace AlibabaCloud::Ecs::Model;
 
-ImportSnapshotResult::ImportSnapshotResult() :
+CreateSavingsPlanResult::CreateSavingsPlanResult() :
 	ServiceResult()
 {}
 
-ImportSnapshotResult::ImportSnapshotResult(const std::string &payload) :
+CreateSavingsPlanResult::CreateSavingsPlanResult(const std::string &payload) :
 	ServiceResult()
 {
 	parse(payload);
 }
 
-ImportSnapshotResult::~ImportSnapshotResult()
+CreateSavingsPlanResult::~CreateSavingsPlanResult()
 {}
 
-void ImportSnapshotResult::parse(const std::string &payload)
+void CreateSavingsPlanResult::parse(const std::string &payload)
 {
 	Json::Reader reader;
 	Json::Value value;
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
-	if(!value["TaskId"].isNull())
-		taskId_ = value["TaskId"].asString();
-	if(!value["SnapshotId"].isNull())
-		snapshotId_ = value["SnapshotId"].asString();
+	if(!value["SavingsPlanId"].isNull())
+		savingsPlanId_ = value["SavingsPlanId"].asString();
+	if(!value["OrderId"].isNull())
+		orderId_ = value["OrderId"].asString();
 
 }
 
-std::string ImportSnapshotResult::getSnapshotId()const
+std::string CreateSavingsPlanResult::getSavingsPlanId()const
 {
-	return snapshotId_;
+	return savingsPlanId_;
 }
 
-std::string ImportSnapshotResult::getTaskId()const
+std::string CreateSavingsPlanResult::getOrderId()const
 {
-	return taskId_;
+	return orderId_;
 }
 

+ 8 - 0
ecs/src/model/DeleteLaunchTemplateResult.cc

@@ -39,11 +39,19 @@ void DeleteLaunchTemplateResult::parse(const std::string &payload)
 	Json::Value value;
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
+	auto allLaunchTemplateVersionNumbers = value["LaunchTemplateVersionNumbers"]["versionNumbers"];
+	for (const auto &item : allLaunchTemplateVersionNumbers)
+		launchTemplateVersionNumbers_.push_back(item.asString());
 	if(!value["LaunchTemplateId"].isNull())
 		launchTemplateId_ = value["LaunchTemplateId"].asString();
 
 }
 
+std::vector<std::string> DeleteLaunchTemplateResult::getLaunchTemplateVersionNumbers()const
+{
+	return launchTemplateVersionNumbers_;
+}
+
 std::string DeleteLaunchTemplateResult::getLaunchTemplateId()const
 {
 	return launchTemplateId_;

+ 2 - 0
ecs/src/model/DeregisterManagedInstanceResult.cc

@@ -66,6 +66,8 @@ void DeregisterManagedInstanceResult::parse(const std::string &payload)
 		instance_.invocationCount = std::stol(instanceNode["InvocationCount"].asString());
 	if(!instanceNode["MachineId"].isNull())
 		instance_.machineId = instanceNode["MachineId"].asString();
+	if(!instanceNode["ResourceGroupId"].isNull())
+		instance_.resourceGroupId = instanceNode["ResourceGroupId"].asString();
 
 }
 

+ 9 - 0
ecs/src/model/DescribeActivationsRequest.cc

@@ -43,6 +43,15 @@ void DescribeActivationsRequest::setPageNumber(long pageNumber) {
   setParameter(std::string("PageNumber"), std::to_string(pageNumber));
 }
 
+std::string DescribeActivationsRequest::getResourceGroupId() const {
+  return resourceGroupId_;
+}
+
+void DescribeActivationsRequest::setResourceGroupId(const std::string &resourceGroupId) {
+  resourceGroupId_ = resourceGroupId;
+  setParameter(std::string("ResourceGroupId"), resourceGroupId);
+}
+
 std::string DescribeActivationsRequest::getRegionId() const {
   return regionId_;
 }

+ 2 - 0
ecs/src/model/DescribeActivationsResult.cc

@@ -63,6 +63,8 @@ void DescribeActivationsResult::parse(const std::string &payload)
 			activationListObject.timeToLiveInHours = std::stol(valueActivationListActivation["TimeToLiveInHours"].asString());
 		if(!valueActivationListActivation["ActivationId"].isNull())
 			activationListObject.activationId = valueActivationListActivation["ActivationId"].asString();
+		if(!valueActivationListActivation["ResourceGroupId"].isNull())
+			activationListObject.resourceGroupId = valueActivationListActivation["ResourceGroupId"].asString();
 		auto allTagsNode = valueActivationListActivation["Tags"]["Tag"];
 		for (auto valueActivationListActivationTagsTag : allTagsNode)
 		{

+ 16 - 0
ecs/src/model/DescribeCapacityReservationsResult.cc

@@ -75,6 +75,8 @@ void DescribeCapacityReservationsResult::parse(const std::string &payload)
 			capacityReservationSetObject.savingPlanId = valueCapacityReservationSetCapacityReservationItem["SavingPlanId"].asString();
 		if(!valueCapacityReservationSetCapacityReservationItem["ReservedInstanceId"].isNull())
 			capacityReservationSetObject.reservedInstanceId = valueCapacityReservationSetCapacityReservationItem["ReservedInstanceId"].asString();
+		if(!valueCapacityReservationSetCapacityReservationItem["CapacityReservationOwnerId"].isNull())
+			capacityReservationSetObject.capacityReservationOwnerId = valueCapacityReservationSetCapacityReservationItem["CapacityReservationOwnerId"].asString();
 		auto allAllocatedResourcesNode = valueCapacityReservationSetCapacityReservationItem["AllocatedResources"]["AllocatedResource"];
 		for (auto valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResource : allAllocatedResourcesNode)
 		{
@@ -83,10 +85,24 @@ void DescribeCapacityReservationsResult::parse(const std::string &payload)
 				allocatedResourcesObject.usedAmount = std::stoi(valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResource["UsedAmount"].asString());
 			if(!valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResource["TotalAmount"].isNull())
 				allocatedResourcesObject.totalAmount = std::stoi(valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResource["TotalAmount"].asString());
+			if(!valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResource["AvailableAmount"].isNull())
+				allocatedResourcesObject.availableAmount = std::stoi(valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResource["AvailableAmount"].asString());
 			if(!valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResource["zoneId"].isNull())
 				allocatedResourcesObject.zoneId = valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResource["zoneId"].asString();
 			if(!valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResource["InstanceType"].isNull())
 				allocatedResourcesObject.instanceType = valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResource["InstanceType"].asString();
+			auto allCapacityReservationUsagesNode = valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResource["CapacityReservationUsages"]["CapacityReservationUsage"];
+			for (auto valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResourceCapacityReservationUsagesCapacityReservationUsage : allCapacityReservationUsagesNode)
+			{
+				CapacityReservationItem::AllocatedResource::CapacityReservationUsage capacityReservationUsagesObject;
+				if(!valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResourceCapacityReservationUsagesCapacityReservationUsage["AccountId"].isNull())
+					capacityReservationUsagesObject.accountId = valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResourceCapacityReservationUsagesCapacityReservationUsage["AccountId"].asString();
+				if(!valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResourceCapacityReservationUsagesCapacityReservationUsage["ServiceName"].isNull())
+					capacityReservationUsagesObject.serviceName = valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResourceCapacityReservationUsagesCapacityReservationUsage["ServiceName"].asString();
+				if(!valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResourceCapacityReservationUsagesCapacityReservationUsage["UsedAmount"].isNull())
+					capacityReservationUsagesObject.usedAmount = std::stoi(valueCapacityReservationSetCapacityReservationItemAllocatedResourcesAllocatedResourceCapacityReservationUsagesCapacityReservationUsage["UsedAmount"].asString());
+				allocatedResourcesObject.capacityReservationUsages.push_back(capacityReservationUsagesObject);
+			}
 			capacityReservationSetObject.allocatedResources.push_back(allocatedResourcesObject);
 		}
 		auto allTagsNode = valueCapacityReservationSetCapacityReservationItem["Tags"]["Tag"];

+ 9 - 0
ecs/src/model/DescribeCommandsRequest.cc

@@ -70,6 +70,15 @@ void DescribeCommandsRequest::setPageNumber(long pageNumber) {
   setParameter(std::string("PageNumber"), std::to_string(pageNumber));
 }
 
+std::string DescribeCommandsRequest::getResourceGroupId() const {
+  return resourceGroupId_;
+}
+
+void DescribeCommandsRequest::setResourceGroupId(const std::string &resourceGroupId) {
+  resourceGroupId_ = resourceGroupId;
+  setParameter(std::string("ResourceGroupId"), resourceGroupId);
+}
+
 std::string DescribeCommandsRequest::getRegionId() const {
   return regionId_;
 }

+ 2 - 0
ecs/src/model/DescribeCommandsResult.cc

@@ -71,6 +71,8 @@ void DescribeCommandsResult::parse(const std::string &payload)
 			commandsObject.name = valueCommandsCommand["Name"].asString();
 		if(!valueCommandsCommand["EnableParameter"].isNull())
 			commandsObject.enableParameter = valueCommandsCommand["EnableParameter"].asString() == "true";
+		if(!valueCommandsCommand["ResourceGroupId"].isNull())
+			commandsObject.resourceGroupId = valueCommandsCommand["ResourceGroupId"].asString();
 		auto allParameterDefinitionsNode = valueCommandsCommand["ParameterDefinitions"]["ParameterDefinition"];
 		for (auto valueCommandsCommandParameterDefinitionsParameterDefinition : allParameterDefinitionsNode)
 		{

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

@@ -127,6 +127,10 @@ void DescribeDisksResult::parse(const std::string &payload)
 			disksObject.burstingEnabled = valueDisksDisk["BurstingEnabled"].asString() == "true";
 		if(!valueDisksDisk["Throughput"].isNull())
 			disksObject.throughput = std::stoi(valueDisksDisk["Throughput"].asString());
+		if(!valueDisksDisk["ThroughputRead"].isNull())
+			disksObject.throughputRead = std::stoi(valueDisksDisk["ThroughputRead"].asString());
+		if(!valueDisksDisk["ThroughputWrite"].isNull())
+			disksObject.throughputWrite = std::stoi(valueDisksDisk["ThroughputWrite"].asString());
 		auto allOperationLocksNode = valueDisksDisk["OperationLocks"]["OperationLock"];
 		for (auto valueDisksDiskOperationLocksOperationLock : allOperationLocksNode)
 		{

+ 0 - 81
ecs/src/model/DescribeInstanceVncPasswdRequest.cc

@@ -1,81 +0,0 @@
-/*
- * 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/ecs/model/DescribeInstanceVncPasswdRequest.h>
-
-using AlibabaCloud::Ecs::Model::DescribeInstanceVncPasswdRequest;
-
-DescribeInstanceVncPasswdRequest::DescribeInstanceVncPasswdRequest()
-    : RpcServiceRequest("ecs", "2014-05-26", "DescribeInstanceVncPasswd") {
-  setMethod(HttpRequest::Method::Post);
-}
-
-DescribeInstanceVncPasswdRequest::~DescribeInstanceVncPasswdRequest() {}
-
-long DescribeInstanceVncPasswdRequest::getResourceOwnerId() const {
-  return resourceOwnerId_;
-}
-
-void DescribeInstanceVncPasswdRequest::setResourceOwnerId(long resourceOwnerId) {
-  resourceOwnerId_ = resourceOwnerId;
-  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
-}
-
-std::string DescribeInstanceVncPasswdRequest::getRegionId() const {
-  return regionId_;
-}
-
-void DescribeInstanceVncPasswdRequest::setRegionId(const std::string &regionId) {
-  regionId_ = regionId;
-  setParameter(std::string("RegionId"), regionId);
-}
-
-std::string DescribeInstanceVncPasswdRequest::getResourceOwnerAccount() const {
-  return resourceOwnerAccount_;
-}
-
-void DescribeInstanceVncPasswdRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
-  resourceOwnerAccount_ = resourceOwnerAccount;
-  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
-}
-
-std::string DescribeInstanceVncPasswdRequest::getOwnerAccount() const {
-  return ownerAccount_;
-}
-
-void DescribeInstanceVncPasswdRequest::setOwnerAccount(const std::string &ownerAccount) {
-  ownerAccount_ = ownerAccount;
-  setParameter(std::string("OwnerAccount"), ownerAccount);
-}
-
-long DescribeInstanceVncPasswdRequest::getOwnerId() const {
-  return ownerId_;
-}
-
-void DescribeInstanceVncPasswdRequest::setOwnerId(long ownerId) {
-  ownerId_ = ownerId;
-  setParameter(std::string("OwnerId"), std::to_string(ownerId));
-}
-
-std::string DescribeInstanceVncPasswdRequest::getInstanceId() const {
-  return instanceId_;
-}
-
-void DescribeInstanceVncPasswdRequest::setInstanceId(const std::string &instanceId) {
-  instanceId_ = instanceId;
-  setParameter(std::string("InstanceId"), instanceId);
-}
-

+ 0 - 51
ecs/src/model/DescribeInstanceVncPasswdResult.cc

@@ -1,51 +0,0 @@
-/*
- * 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/ecs/model/DescribeInstanceVncPasswdResult.h>
-#include <json/json.h>
-
-using namespace AlibabaCloud::Ecs;
-using namespace AlibabaCloud::Ecs::Model;
-
-DescribeInstanceVncPasswdResult::DescribeInstanceVncPasswdResult() :
-	ServiceResult()
-{}
-
-DescribeInstanceVncPasswdResult::DescribeInstanceVncPasswdResult(const std::string &payload) :
-	ServiceResult()
-{
-	parse(payload);
-}
-
-DescribeInstanceVncPasswdResult::~DescribeInstanceVncPasswdResult()
-{}
-
-void DescribeInstanceVncPasswdResult::parse(const std::string &payload)
-{
-	Json::Reader reader;
-	Json::Value value;
-	reader.parse(payload, value);
-	setRequestId(value["RequestId"].asString());
-	if(!value["VncPasswd"].isNull())
-		vncPasswd_ = value["VncPasswd"].asString();
-
-}
-
-std::string DescribeInstanceVncPasswdResult::getVncPasswd()const
-{
-	return vncPasswd_;
-}
-

+ 2 - 0
ecs/src/model/DescribeLaunchTemplateVersionsResult.cc

@@ -146,6 +146,8 @@ void DescribeLaunchTemplateVersionsResult::parse(const std::string &payload)
 			launchTemplateVersionSetsObject.launchTemplateData.systemDiskEncrypted = launchTemplateDataNode["SystemDisk.Encrypted"].asString();
 		if(!launchTemplateDataNode["DeletionProtection"].isNull())
 			launchTemplateVersionSetsObject.launchTemplateData.deletionProtection = launchTemplateDataNode["DeletionProtection"].asString() == "true";
+		if(!launchTemplateDataNode["CreditSpecification"].isNull())
+			launchTemplateVersionSetsObject.launchTemplateData.creditSpecification = launchTemplateDataNode["CreditSpecification"].asString();
 		auto allDataDisksNode = launchTemplateDataNode["DataDisks"]["DataDisk"];
 		for (auto launchTemplateDataNodeDataDisksDataDisk : allDataDisksNode)
 		{

+ 9 - 0
ecs/src/model/DescribeManagedInstancesRequest.cc

@@ -43,6 +43,15 @@ void DescribeManagedInstancesRequest::setPageNumber(long pageNumber) {
   setParameter(std::string("PageNumber"), std::to_string(pageNumber));
 }
 
+std::string DescribeManagedInstancesRequest::getResourceGroupId() const {
+  return resourceGroupId_;
+}
+
+void DescribeManagedInstancesRequest::setResourceGroupId(const std::string &resourceGroupId) {
+  resourceGroupId_ = resourceGroupId;
+  setParameter(std::string("ResourceGroupId"), resourceGroupId);
+}
+
 std::string DescribeManagedInstancesRequest::getRegionId() const {
   return regionId_;
 }

+ 2 - 0
ecs/src/model/DescribeManagedInstancesResult.cc

@@ -71,6 +71,8 @@ void DescribeManagedInstancesResult::parse(const std::string &payload)
 			instancesObject.invocationCount = std::stol(valueInstancesInstance["InvocationCount"].asString());
 		if(!valueInstancesInstance["MachineId"].isNull())
 			instancesObject.machineId = valueInstancesInstance["MachineId"].asString();
+		if(!valueInstancesInstance["ResourceGroupId"].isNull())
+			instancesObject.resourceGroupId = valueInstancesInstance["ResourceGroupId"].asString();
 		auto allTagsNode = valueInstancesInstance["Tags"]["Tag"];
 		for (auto valueInstancesInstanceTagsTag : allTagsNode)
 		{

+ 7 - 0
ecs/src/model/DescribeNetworkInterfaceAttributeResult.cc

@@ -168,6 +168,8 @@ void DescribeNetworkInterfaceAttributeResult::parse(const std::string &payload)
 		privateIpAddress_ = value["PrivateIpAddress"].asString();
 	if(!value["QueueNumber"].isNull())
 		queueNumber_ = std::stoi(value["QueueNumber"].asString());
+	if(!value["DeleteOnRelease"].isNull())
+		deleteOnRelease_ = value["DeleteOnRelease"].asString() == "true";
 
 }
 
@@ -191,6 +193,11 @@ std::string DescribeNetworkInterfaceAttributeResult::getResourceGroupId()const
 	return resourceGroupId_;
 }
 
+bool DescribeNetworkInterfaceAttributeResult::getDeleteOnRelease()const
+{
+	return deleteOnRelease_;
+}
+
 DescribeNetworkInterfaceAttributeResult::Attachment DescribeNetworkInterfaceAttributeResult::getAttachment()const
 {
 	return attachment_;

+ 2 - 0
ecs/src/model/DescribeNetworkInterfacesResult.cc

@@ -81,6 +81,8 @@ void DescribeNetworkInterfacesResult::parse(const std::string &payload)
 			networkInterfaceSetsObject.privateIpAddress = valueNetworkInterfaceSetsNetworkInterfaceSet["PrivateIpAddress"].asString();
 		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["QueueNumber"].isNull())
 			networkInterfaceSetsObject.queueNumber = std::stoi(valueNetworkInterfaceSetsNetworkInterfaceSet["QueueNumber"].asString());
+		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["DeleteOnRelease"].isNull())
+			networkInterfaceSetsObject.deleteOnRelease = valueNetworkInterfaceSetsNetworkInterfaceSet["DeleteOnRelease"].asString() == "true";
 		auto allPrivateIpSetsNode = valueNetworkInterfaceSetsNetworkInterfaceSet["PrivateIpSets"]["PrivateIpSet"];
 		for (auto valueNetworkInterfaceSetsNetworkInterfaceSetPrivateIpSetsPrivateIpSet : allPrivateIpSetsNode)
 		{

+ 81 - 0
ecs/src/model/DescribeSavingsPlanEstimationRequest.cc

@@ -0,0 +1,81 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ecs/model/DescribeSavingsPlanEstimationRequest.h>
+
+using AlibabaCloud::Ecs::Model::DescribeSavingsPlanEstimationRequest;
+
+DescribeSavingsPlanEstimationRequest::DescribeSavingsPlanEstimationRequest()
+    : RpcServiceRequest("ecs", "2014-05-26", "DescribeSavingsPlanEstimation") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeSavingsPlanEstimationRequest::~DescribeSavingsPlanEstimationRequest() {}
+
+std::string DescribeSavingsPlanEstimationRequest::getResourceId() const {
+  return resourceId_;
+}
+
+void DescribeSavingsPlanEstimationRequest::setResourceId(const std::string &resourceId) {
+  resourceId_ = resourceId;
+  setParameter(std::string("ResourceId"), resourceId);
+}
+
+std::string DescribeSavingsPlanEstimationRequest::getPeriod() const {
+  return period_;
+}
+
+void DescribeSavingsPlanEstimationRequest::setPeriod(const std::string &period) {
+  period_ = period;
+  setParameter(std::string("Period"), period);
+}
+
+std::string DescribeSavingsPlanEstimationRequest::getPlanType() const {
+  return planType_;
+}
+
+void DescribeSavingsPlanEstimationRequest::setPlanType(const std::string &planType) {
+  planType_ = planType;
+  setParameter(std::string("PlanType"), planType);
+}
+
+std::string DescribeSavingsPlanEstimationRequest::getPeriodUnit() const {
+  return periodUnit_;
+}
+
+void DescribeSavingsPlanEstimationRequest::setPeriodUnit(const std::string &periodUnit) {
+  periodUnit_ = periodUnit;
+  setParameter(std::string("PeriodUnit"), periodUnit);
+}
+
+std::string DescribeSavingsPlanEstimationRequest::getOfferingType() const {
+  return offeringType_;
+}
+
+void DescribeSavingsPlanEstimationRequest::setOfferingType(const std::string &offeringType) {
+  offeringType_ = offeringType;
+  setParameter(std::string("OfferingType"), offeringType);
+}
+
+std::string DescribeSavingsPlanEstimationRequest::getRegionId() const {
+  return regionId_;
+}
+
+void DescribeSavingsPlanEstimationRequest::setRegionId(const std::string &regionId) {
+  regionId_ = regionId;
+  setParameter(std::string("RegionId"), regionId);
+}
+

+ 100 - 0
ecs/src/model/DescribeSavingsPlanEstimationResult.cc

@@ -0,0 +1,100 @@
+/*
+ * 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/ecs/model/DescribeSavingsPlanEstimationResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ecs;
+using namespace AlibabaCloud::Ecs::Model;
+
+DescribeSavingsPlanEstimationResult::DescribeSavingsPlanEstimationResult() :
+	ServiceResult()
+{}
+
+DescribeSavingsPlanEstimationResult::DescribeSavingsPlanEstimationResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeSavingsPlanEstimationResult::~DescribeSavingsPlanEstimationResult()
+{}
+
+void DescribeSavingsPlanEstimationResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["ResourceId"].isNull())
+		resourceId_ = value["ResourceId"].asString();
+	if(!value["InstanceTypeFamily"].isNull())
+		instanceTypeFamily_ = value["InstanceTypeFamily"].asString();
+	if(!value["CommittedAmount"].isNull())
+		committedAmount_ = value["CommittedAmount"].asString();
+	if(!value["Currency"].isNull())
+		currency_ = value["Currency"].asString();
+	if(!value["OfferingType"].isNull())
+		offeringType_ = value["OfferingType"].asString();
+	if(!value["PeriodUnit"].isNull())
+		periodUnit_ = value["PeriodUnit"].asString();
+	if(!value["Period"].isNull())
+		period_ = std::stoi(value["Period"].asString());
+	if(!value["PlanType"].isNull())
+		planType_ = value["PlanType"].asString();
+
+}
+
+std::string DescribeSavingsPlanEstimationResult::getOfferingType()const
+{
+	return offeringType_;
+}
+
+std::string DescribeSavingsPlanEstimationResult::getCommittedAmount()const
+{
+	return committedAmount_;
+}
+
+std::string DescribeSavingsPlanEstimationResult::getResourceId()const
+{
+	return resourceId_;
+}
+
+std::string DescribeSavingsPlanEstimationResult::getInstanceTypeFamily()const
+{
+	return instanceTypeFamily_;
+}
+
+std::string DescribeSavingsPlanEstimationResult::getCurrency()const
+{
+	return currency_;
+}
+
+std::string DescribeSavingsPlanEstimationResult::getPlanType()const
+{
+	return planType_;
+}
+
+int DescribeSavingsPlanEstimationResult::getPeriod()const
+{
+	return period_;
+}
+
+std::string DescribeSavingsPlanEstimationResult::getPeriodUnit()const
+{
+	return periodUnit_;
+}
+

+ 98 - 0
ecs/src/model/DescribeSavingsPlanPriceRequest.cc

@@ -0,0 +1,98 @@
+/*
+ * 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/ecs/model/DescribeSavingsPlanPriceRequest.h>
+
+using AlibabaCloud::Ecs::Model::DescribeSavingsPlanPriceRequest;
+
+DescribeSavingsPlanPriceRequest::DescribeSavingsPlanPriceRequest()
+    : RpcServiceRequest("ecs", "2014-05-26", "DescribeSavingsPlanPrice") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeSavingsPlanPriceRequest::~DescribeSavingsPlanPriceRequest() {}
+
+int DescribeSavingsPlanPriceRequest::getPeriod() const {
+  return period_;
+}
+
+void DescribeSavingsPlanPriceRequest::setPeriod(int period) {
+  period_ = period;
+  setParameter(std::string("Period"), std::to_string(period));
+}
+
+std::vector<std::string> DescribeSavingsPlanPriceRequest::getResourceId() const {
+  return resourceId_;
+}
+
+void DescribeSavingsPlanPriceRequest::setResourceId(const std::vector<std::string> &resourceId) {
+  resourceId_ = resourceId;
+}
+
+std::string DescribeSavingsPlanPriceRequest::getInstanceTypeFamily() const {
+  return instanceTypeFamily_;
+}
+
+void DescribeSavingsPlanPriceRequest::setInstanceTypeFamily(const std::string &instanceTypeFamily) {
+  instanceTypeFamily_ = instanceTypeFamily;
+  setParameter(std::string("InstanceTypeFamily"), instanceTypeFamily);
+}
+
+std::string DescribeSavingsPlanPriceRequest::getPlanType() const {
+  return planType_;
+}
+
+void DescribeSavingsPlanPriceRequest::setPlanType(const std::string &planType) {
+  planType_ = planType;
+  setParameter(std::string("PlanType"), planType);
+}
+
+std::string DescribeSavingsPlanPriceRequest::getPeriodUnit() const {
+  return periodUnit_;
+}
+
+void DescribeSavingsPlanPriceRequest::setPeriodUnit(const std::string &periodUnit) {
+  periodUnit_ = periodUnit;
+  setParameter(std::string("PeriodUnit"), periodUnit);
+}
+
+std::string DescribeSavingsPlanPriceRequest::getOfferingType() const {
+  return offeringType_;
+}
+
+void DescribeSavingsPlanPriceRequest::setOfferingType(const std::string &offeringType) {
+  offeringType_ = offeringType;
+  setParameter(std::string("OfferingType"), offeringType);
+}
+
+std::string DescribeSavingsPlanPriceRequest::getRegionId() const {
+  return regionId_;
+}
+
+void DescribeSavingsPlanPriceRequest::setRegionId(const std::string &regionId) {
+  regionId_ = regionId;
+  setParameter(std::string("RegionId"), regionId);
+}
+
+std::string DescribeSavingsPlanPriceRequest::getCommittedAmount() const {
+  return committedAmount_;
+}
+
+void DescribeSavingsPlanPriceRequest::setCommittedAmount(const std::string &committedAmount) {
+  committedAmount_ = committedAmount;
+  setParameter(std::string("CommittedAmount"), committedAmount);
+}
+

+ 69 - 0
ecs/src/model/DescribeSavingsPlanPriceResult.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/ecs/model/DescribeSavingsPlanPriceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ecs;
+using namespace AlibabaCloud::Ecs::Model;
+
+DescribeSavingsPlanPriceResult::DescribeSavingsPlanPriceResult() :
+	ServiceResult()
+{}
+
+DescribeSavingsPlanPriceResult::DescribeSavingsPlanPriceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeSavingsPlanPriceResult::~DescribeSavingsPlanPriceResult()
+{}
+
+void DescribeSavingsPlanPriceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto priceInfoNode = value["PriceInfo"];
+	auto allRulesNode = priceInfoNode["Rules"]["rulesItem"];
+	for (auto priceInfoNodeRulesrulesItem : allRulesNode)
+	{
+		PriceInfo::RulesItem rulesItemObject;
+		if(!priceInfoNodeRulesrulesItem["RuleId"].isNull())
+			rulesItemObject.ruleId = priceInfoNodeRulesrulesItem["RuleId"].asString();
+		if(!priceInfoNodeRulesrulesItem["Description"].isNull())
+			rulesItemObject.description = priceInfoNodeRulesrulesItem["Description"].asString();
+		priceInfo_.rules.push_back(rulesItemObject);
+	}
+	auto priceNode = priceInfoNode["Price"];
+	if(!priceNode["OriginalPrice"].isNull())
+		priceInfo_.price.originalPrice = std::stof(priceNode["OriginalPrice"].asString());
+	if(!priceNode["DiscountPrice"].isNull())
+		priceInfo_.price.discountPrice = std::stof(priceNode["DiscountPrice"].asString());
+	if(!priceNode["TradePrice"].isNull())
+		priceInfo_.price.tradePrice = std::stof(priceNode["TradePrice"].asString());
+	if(!priceNode["Currency"].isNull())
+		priceInfo_.price.currency = priceNode["Currency"].asString();
+
+}
+
+DescribeSavingsPlanPriceResult::PriceInfo DescribeSavingsPlanPriceResult::getPriceInfo()const
+{
+	return priceInfo_;
+}
+

+ 9 - 0
ecs/src/model/DescribeSecurityGroupsRequest.cc

@@ -43,6 +43,15 @@ void DescribeSecurityGroupsRequest::setFuzzyQuery(bool fuzzyQuery) {
   setParameter(std::string("FuzzyQuery"), fuzzyQuery ? "true" : "false");
 }
 
+bool DescribeSecurityGroupsRequest::getServiceManaged() const {
+  return serviceManaged_;
+}
+
+void DescribeSecurityGroupsRequest::setServiceManaged(bool serviceManaged) {
+  serviceManaged_ = serviceManaged;
+  setParameter(std::string("ServiceManaged"), serviceManaged ? "true" : "false");
+}
+
 std::string DescribeSecurityGroupsRequest::getSecurityGroupId() const {
   return securityGroupId_;
 }

+ 9 - 0
ecs/src/model/DescribeSendFileResultsRequest.cc

@@ -129,6 +129,15 @@ void DescribeSendFileResultsRequest::setInstanceId(const std::string &instanceId
   setParameter(std::string("InstanceId"), instanceId);
 }
 
+std::string DescribeSendFileResultsRequest::getInvocationStatus() const {
+  return invocationStatus_;
+}
+
+void DescribeSendFileResultsRequest::setInvocationStatus(const std::string &invocationStatus) {
+  invocationStatus_ = invocationStatus;
+  setParameter(std::string("InvocationStatus"), invocationStatus);
+}
+
 std::string DescribeSendFileResultsRequest::getName() const {
   return name_;
 }

+ 2 - 0
ecs/src/model/DescribeSnapshotGroupsResult.cc

@@ -77,6 +77,8 @@ void DescribeSnapshotGroupsResult::parse(const std::string &payload)
 				snapshotsObject.sourceDiskId = valueSnapshotGroupsSnapshotGroupSnapshotsSnapshot["SourceDiskId"].asString();
 			if(!valueSnapshotGroupsSnapshotGroupSnapshotsSnapshot["Progress"].isNull())
 				snapshotsObject.progress = valueSnapshotGroupsSnapshotGroupSnapshotsSnapshot["Progress"].asString();
+			if(!valueSnapshotGroupsSnapshotGroupSnapshotsSnapshot["Available"].isNull())
+				snapshotsObject.available = valueSnapshotGroupsSnapshotGroupSnapshotsSnapshot["Available"].asString() == "true";
 			if(!valueSnapshotGroupsSnapshotGroupSnapshotsSnapshot["InstantAccessRetentionDays"].isNull())
 				snapshotsObject.instantAccessRetentionDays = std::stoi(valueSnapshotGroupsSnapshotGroupSnapshotsSnapshot["InstantAccessRetentionDays"].asString());
 			if(!valueSnapshotGroupsSnapshotGroupSnapshotsSnapshot["SnapshotId"].isNull())

+ 2 - 0
ecs/src/model/DescribeSnapshotsResult.cc

@@ -51,6 +51,8 @@ void DescribeSnapshotsResult::parse(const std::string &payload)
 			snapshotsObject.progress = valueSnapshotsSnapshot["Progress"].asString();
 		if(!valueSnapshotsSnapshot["InstantAccess"].isNull())
 			snapshotsObject.instantAccess = valueSnapshotsSnapshot["InstantAccess"].asString() == "true";
+		if(!valueSnapshotsSnapshot["Available"].isNull())
+			snapshotsObject.available = valueSnapshotsSnapshot["Available"].asString() == "true";
 		if(!valueSnapshotsSnapshot["RemainTime"].isNull())
 			snapshotsObject.remainTime = std::stoi(valueSnapshotsSnapshot["RemainTime"].asString());
 		if(!valueSnapshotsSnapshot["SourceDiskSize"].isNull())

+ 0 - 99
ecs/src/model/ImportSnapshotRequest.cc

@@ -1,99 +0,0 @@
-/*
- * 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/ecs/model/ImportSnapshotRequest.h>
-
-using AlibabaCloud::Ecs::Model::ImportSnapshotRequest;
-
-ImportSnapshotRequest::ImportSnapshotRequest()
-    : RpcServiceRequest("ecs", "2014-05-26", "ImportSnapshot") {
-  setMethod(HttpRequest::Method::Post);
-}
-
-ImportSnapshotRequest::~ImportSnapshotRequest() {}
-
-long ImportSnapshotRequest::getResourceOwnerId() const {
-  return resourceOwnerId_;
-}
-
-void ImportSnapshotRequest::setResourceOwnerId(long resourceOwnerId) {
-  resourceOwnerId_ = resourceOwnerId;
-  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
-}
-
-std::string ImportSnapshotRequest::getSnapshotName() const {
-  return snapshotName_;
-}
-
-void ImportSnapshotRequest::setSnapshotName(const std::string &snapshotName) {
-  snapshotName_ = snapshotName;
-  setParameter(std::string("SnapshotName"), snapshotName);
-}
-
-std::string ImportSnapshotRequest::getOssObject() const {
-  return ossObject_;
-}
-
-void ImportSnapshotRequest::setOssObject(const std::string &ossObject) {
-  ossObject_ = ossObject;
-  setParameter(std::string("OssObject"), ossObject);
-}
-
-std::string ImportSnapshotRequest::getRegionId() const {
-  return regionId_;
-}
-
-void ImportSnapshotRequest::setRegionId(const std::string &regionId) {
-  regionId_ = regionId;
-  setParameter(std::string("RegionId"), regionId);
-}
-
-std::string ImportSnapshotRequest::getOssBucket() const {
-  return ossBucket_;
-}
-
-void ImportSnapshotRequest::setOssBucket(const std::string &ossBucket) {
-  ossBucket_ = ossBucket;
-  setParameter(std::string("OssBucket"), ossBucket);
-}
-
-std::string ImportSnapshotRequest::getResourceOwnerAccount() const {
-  return resourceOwnerAccount_;
-}
-
-void ImportSnapshotRequest::setResourceOwnerAccount(const std::string &resourceOwnerAccount) {
-  resourceOwnerAccount_ = resourceOwnerAccount;
-  setParameter(std::string("ResourceOwnerAccount"), resourceOwnerAccount);
-}
-
-std::string ImportSnapshotRequest::getRoleName() const {
-  return roleName_;
-}
-
-void ImportSnapshotRequest::setRoleName(const std::string &roleName) {
-  roleName_ = roleName;
-  setParameter(std::string("RoleName"), roleName);
-}
-
-long ImportSnapshotRequest::getOwnerId() const {
-  return ownerId_;
-}
-
-void ImportSnapshotRequest::setOwnerId(long ownerId) {
-  ownerId_ = ownerId;
-  setParameter(std::string("OwnerId"), std::to_string(ownerId));
-}
-

+ 9 - 0
ecs/src/model/ModifyNetworkInterfaceAttributeRequest.cc

@@ -78,6 +78,15 @@ void ModifyNetworkInterfaceAttributeRequest::setNetworkInterfaceName(const std::
   setParameter(std::string("NetworkInterfaceName"), networkInterfaceName);
 }
 
+bool ModifyNetworkInterfaceAttributeRequest::getDeleteOnRelease() const {
+  return deleteOnRelease_;
+}
+
+void ModifyNetworkInterfaceAttributeRequest::setDeleteOnRelease(bool deleteOnRelease) {
+  deleteOnRelease_ = deleteOnRelease;
+  setParameter(std::string("DeleteOnRelease"), deleteOnRelease ? "true" : "false");
+}
+
 std::string ModifyNetworkInterfaceAttributeRequest::getResourceOwnerAccount() const {
   return resourceOwnerAccount_;
 }

+ 9 - 0
ecs/src/model/ModifySnapshotAttributeRequest.cc

@@ -97,3 +97,12 @@ void ModifySnapshotAttributeRequest::setDisableInstantAccess(bool disableInstant
   setParameter(std::string("DisableInstantAccess"), disableInstantAccess ? "true" : "false");
 }
 
+int ModifySnapshotAttributeRequest::getRetentionDays() const {
+  return retentionDays_;
+}
+
+void ModifySnapshotAttributeRequest::setRetentionDays(int retentionDays) {
+  retentionDays_ = retentionDays;
+  setParameter(std::string("RetentionDays"), std::to_string(retentionDays));
+}
+

+ 2 - 0
ecs/src/model/RunInstancesRequest.cc

@@ -748,6 +748,8 @@ void RunInstancesRequest::setNetworkInterface(const std::vector<RunInstancesRequ
     setParameter(networkInterfaceObjStr + ".InstanceType", networkInterfaceObj.instanceType);
     setParameter(networkInterfaceObjStr + ".Ipv6AddressCount", std::to_string(networkInterfaceObj.ipv6AddressCount));
     setParameter(networkInterfaceObjStr + ".NetworkCardIndex", std::to_string(networkInterfaceObj.networkCardIndex));
+    setParameter(networkInterfaceObjStr + ".DeleteOnRelease", networkInterfaceObj.deleteOnRelease ? "true" : "false");
+    setParameter(networkInterfaceObjStr + ".NetworkInterfaceId", networkInterfaceObj.networkInterfaceId);
   }
 }