Browse Source

Add BatchOptimization param in Stop and Start Instances.

sdk-team 6 years ago
parent
commit
c9cf723562
43 changed files with 2182 additions and 1 deletions
  1. 8 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 20 0
      ecs/CMakeLists.txt
  4. 40 0
      ecs/include/alibabacloud/ecs/EcsClient.h
  5. 81 0
      ecs/include/alibabacloud/ecs/model/CopySnapshotRequest.h
  6. 51 0
      ecs/include/alibabacloud/ecs/model/CopySnapshotResult.h
  7. 1 0
      ecs/include/alibabacloud/ecs/model/DescribeDedicatedHostsResult.h
  8. 78 0
      ecs/include/alibabacloud/ecs/model/DescribeStorageCapacityUnitsRequest.h
  9. 69 0
      ecs/include/alibabacloud/ecs/model/DescribeStorageCapacityUnitsResult.h
  10. 3 0
      ecs/include/alibabacloud/ecs/model/GetInstanceConsoleOutputRequest.h
  11. 84 0
      ecs/include/alibabacloud/ecs/model/ModifyDedicatedHostsChargeTypeRequest.h
  12. 59 0
      ecs/include/alibabacloud/ecs/model/ModifyDedicatedHostsChargeTypeResult.h
  13. 3 0
      ecs/include/alibabacloud/ecs/model/ModifyImageAttributeRequest.h
  14. 69 0
      ecs/include/alibabacloud/ecs/model/ModifyStorageCapacityUnitAttributeRequest.h
  15. 49 0
      ecs/include/alibabacloud/ecs/model/ModifyStorageCapacityUnitAttributeResult.h
  16. 87 0
      ecs/include/alibabacloud/ecs/model/PurchaseStorageCapacityUnitRequest.h
  17. 53 0
      ecs/include/alibabacloud/ecs/model/PurchaseStorageCapacityUnitResult.h
  18. 3 0
      ecs/include/alibabacloud/ecs/model/RebootInstancesRequest.h
  19. 10 0
      ecs/include/alibabacloud/ecs/model/RebootInstancesResult.h
  20. 3 0
      ecs/include/alibabacloud/ecs/model/StartInstancesRequest.h
  21. 10 0
      ecs/include/alibabacloud/ecs/model/StartInstancesResult.h
  22. 3 0
      ecs/include/alibabacloud/ecs/model/StopInstancesRequest.h
  23. 10 0
      ecs/include/alibabacloud/ecs/model/StopInstancesResult.h
  24. 180 0
      ecs/src/EcsClient.cc
  25. 144 0
      ecs/src/model/CopySnapshotRequest.cc
  26. 51 0
      ecs/src/model/CopySnapshotResult.cc
  27. 3 0
      ecs/src/model/DescribeDedicatedHostsResult.cc
  28. 154 0
      ecs/src/model/DescribeStorageCapacityUnitsRequest.cc
  29. 94 0
      ecs/src/model/DescribeStorageCapacityUnitsResult.cc
  30. 11 0
      ecs/src/model/GetInstanceConsoleOutputRequest.cc
  31. 172 0
      ecs/src/model/ModifyDedicatedHostsChargeTypeRequest.cc
  32. 68 0
      ecs/src/model/ModifyDedicatedHostsChargeTypeResult.cc
  33. 11 0
      ecs/src/model/ModifyImageAttributeRequest.cc
  34. 117 0
      ecs/src/model/ModifyStorageCapacityUnitAttributeRequest.cc
  35. 44 0
      ecs/src/model/ModifyStorageCapacityUnitAttributeResult.cc
  36. 183 0
      ecs/src/model/PurchaseStorageCapacityUnitRequest.cc
  37. 59 0
      ecs/src/model/PurchaseStorageCapacityUnitResult.cc
  38. 11 0
      ecs/src/model/RebootInstancesRequest.cc
  39. 21 0
      ecs/src/model/RebootInstancesResult.cc
  40. 11 0
      ecs/src/model/StartInstancesRequest.cc
  41. 21 0
      ecs/src/model/StartInstancesResult.cc
  42. 11 0
      ecs/src/model/StopInstancesRequest.cc
  43. 21 0
      ecs/src/model/StopInstancesResult.cc

+ 8 - 0
CHANGELOG

@@ -1,3 +1,11 @@
+2020-04-16 Version: 1.36.360
+- Add BatchOptimization param in Stop and Start Instances.
+- Add RemoveSymbols in GetInstanceConsoleOutput.
+- Add ImageFamily in ModifyImageAttribute.
+- Customize InstanceType on DedicatedHosts is supported.
+- Add StorageCapacityUnit interfaces.
+- Add param Tag in CreateAutoSnapshotPolicy.
+
 2020-04-16 Version: 1.36.359
 - Add features for open api.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.359
+1.36.360

+ 20 - 0
ecs/CMakeLists.txt

@@ -75,6 +75,8 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/ConvertNatPublicIpToEipResult.h
 	include/alibabacloud/ecs/model/CopyImageRequest.h
 	include/alibabacloud/ecs/model/CopyImageResult.h
+	include/alibabacloud/ecs/model/CopySnapshotRequest.h
+	include/alibabacloud/ecs/model/CopySnapshotResult.h
 	include/alibabacloud/ecs/model/CreateAutoProvisioningGroupRequest.h
 	include/alibabacloud/ecs/model/CreateAutoProvisioningGroupResult.h
 	include/alibabacloud/ecs/model/CreateAutoSnapshotPolicyRequest.h
@@ -335,6 +337,8 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/DescribeSnapshotsUsageResult.h
 	include/alibabacloud/ecs/model/DescribeSpotPriceHistoryRequest.h
 	include/alibabacloud/ecs/model/DescribeSpotPriceHistoryResult.h
+	include/alibabacloud/ecs/model/DescribeStorageCapacityUnitsRequest.h
+	include/alibabacloud/ecs/model/DescribeStorageCapacityUnitsResult.h
 	include/alibabacloud/ecs/model/DescribeStorageSetDetailsRequest.h
 	include/alibabacloud/ecs/model/DescribeStorageSetDetailsResult.h
 	include/alibabacloud/ecs/model/DescribeStorageSetsRequest.h
@@ -421,6 +425,8 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/ModifyDedicatedHostAutoReleaseTimeResult.h
 	include/alibabacloud/ecs/model/ModifyDedicatedHostAutoRenewAttributeRequest.h
 	include/alibabacloud/ecs/model/ModifyDedicatedHostAutoRenewAttributeResult.h
+	include/alibabacloud/ecs/model/ModifyDedicatedHostsChargeTypeRequest.h
+	include/alibabacloud/ecs/model/ModifyDedicatedHostsChargeTypeResult.h
 	include/alibabacloud/ecs/model/ModifyDemandRequest.h
 	include/alibabacloud/ecs/model/ModifyDemandResult.h
 	include/alibabacloud/ecs/model/ModifyDeploymentSetAttributeRequest.h
@@ -493,6 +499,8 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/ModifySecurityGroupRuleResult.h
 	include/alibabacloud/ecs/model/ModifySnapshotAttributeRequest.h
 	include/alibabacloud/ecs/model/ModifySnapshotAttributeResult.h
+	include/alibabacloud/ecs/model/ModifyStorageCapacityUnitAttributeRequest.h
+	include/alibabacloud/ecs/model/ModifyStorageCapacityUnitAttributeResult.h
 	include/alibabacloud/ecs/model/ModifyStorageSetAttributeRequest.h
 	include/alibabacloud/ecs/model/ModifyStorageSetAttributeResult.h
 	include/alibabacloud/ecs/model/ModifyUserBusinessBehaviorRequest.h
@@ -507,6 +515,8 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/ModifyVpcAttributeResult.h
 	include/alibabacloud/ecs/model/PurchaseReservedInstancesOfferingRequest.h
 	include/alibabacloud/ecs/model/PurchaseReservedInstancesOfferingResult.h
+	include/alibabacloud/ecs/model/PurchaseStorageCapacityUnitRequest.h
+	include/alibabacloud/ecs/model/PurchaseStorageCapacityUnitResult.h
 	include/alibabacloud/ecs/model/ReActivateInstancesRequest.h
 	include/alibabacloud/ecs/model/ReActivateInstancesResult.h
 	include/alibabacloud/ecs/model/ReInitDiskRequest.h
@@ -634,6 +644,8 @@ set(ecs_src
 	src/model/ConvertNatPublicIpToEipResult.cc
 	src/model/CopyImageRequest.cc
 	src/model/CopyImageResult.cc
+	src/model/CopySnapshotRequest.cc
+	src/model/CopySnapshotResult.cc
 	src/model/CreateAutoProvisioningGroupRequest.cc
 	src/model/CreateAutoProvisioningGroupResult.cc
 	src/model/CreateAutoSnapshotPolicyRequest.cc
@@ -894,6 +906,8 @@ set(ecs_src
 	src/model/DescribeSnapshotsUsageResult.cc
 	src/model/DescribeSpotPriceHistoryRequest.cc
 	src/model/DescribeSpotPriceHistoryResult.cc
+	src/model/DescribeStorageCapacityUnitsRequest.cc
+	src/model/DescribeStorageCapacityUnitsResult.cc
 	src/model/DescribeStorageSetDetailsRequest.cc
 	src/model/DescribeStorageSetDetailsResult.cc
 	src/model/DescribeStorageSetsRequest.cc
@@ -980,6 +994,8 @@ set(ecs_src
 	src/model/ModifyDedicatedHostAutoReleaseTimeResult.cc
 	src/model/ModifyDedicatedHostAutoRenewAttributeRequest.cc
 	src/model/ModifyDedicatedHostAutoRenewAttributeResult.cc
+	src/model/ModifyDedicatedHostsChargeTypeRequest.cc
+	src/model/ModifyDedicatedHostsChargeTypeResult.cc
 	src/model/ModifyDemandRequest.cc
 	src/model/ModifyDemandResult.cc
 	src/model/ModifyDeploymentSetAttributeRequest.cc
@@ -1052,6 +1068,8 @@ set(ecs_src
 	src/model/ModifySecurityGroupRuleResult.cc
 	src/model/ModifySnapshotAttributeRequest.cc
 	src/model/ModifySnapshotAttributeResult.cc
+	src/model/ModifyStorageCapacityUnitAttributeRequest.cc
+	src/model/ModifyStorageCapacityUnitAttributeResult.cc
 	src/model/ModifyStorageSetAttributeRequest.cc
 	src/model/ModifyStorageSetAttributeResult.cc
 	src/model/ModifyUserBusinessBehaviorRequest.cc
@@ -1066,6 +1084,8 @@ set(ecs_src
 	src/model/ModifyVpcAttributeResult.cc
 	src/model/PurchaseReservedInstancesOfferingRequest.cc
 	src/model/PurchaseReservedInstancesOfferingResult.cc
+	src/model/PurchaseStorageCapacityUnitRequest.cc
+	src/model/PurchaseStorageCapacityUnitResult.cc
 	src/model/ReActivateInstancesRequest.cc
 	src/model/ReActivateInstancesResult.cc
 	src/model/ReInitDiskRequest.cc

+ 40 - 0
ecs/include/alibabacloud/ecs/EcsClient.h

@@ -76,6 +76,8 @@
 #include "model/ConvertNatPublicIpToEipResult.h"
 #include "model/CopyImageRequest.h"
 #include "model/CopyImageResult.h"
+#include "model/CopySnapshotRequest.h"
+#include "model/CopySnapshotResult.h"
 #include "model/CreateAutoProvisioningGroupRequest.h"
 #include "model/CreateAutoProvisioningGroupResult.h"
 #include "model/CreateAutoSnapshotPolicyRequest.h"
@@ -336,6 +338,8 @@
 #include "model/DescribeSnapshotsUsageResult.h"
 #include "model/DescribeSpotPriceHistoryRequest.h"
 #include "model/DescribeSpotPriceHistoryResult.h"
+#include "model/DescribeStorageCapacityUnitsRequest.h"
+#include "model/DescribeStorageCapacityUnitsResult.h"
 #include "model/DescribeStorageSetDetailsRequest.h"
 #include "model/DescribeStorageSetDetailsResult.h"
 #include "model/DescribeStorageSetsRequest.h"
@@ -422,6 +426,8 @@
 #include "model/ModifyDedicatedHostAutoReleaseTimeResult.h"
 #include "model/ModifyDedicatedHostAutoRenewAttributeRequest.h"
 #include "model/ModifyDedicatedHostAutoRenewAttributeResult.h"
+#include "model/ModifyDedicatedHostsChargeTypeRequest.h"
+#include "model/ModifyDedicatedHostsChargeTypeResult.h"
 #include "model/ModifyDemandRequest.h"
 #include "model/ModifyDemandResult.h"
 #include "model/ModifyDeploymentSetAttributeRequest.h"
@@ -494,6 +500,8 @@
 #include "model/ModifySecurityGroupRuleResult.h"
 #include "model/ModifySnapshotAttributeRequest.h"
 #include "model/ModifySnapshotAttributeResult.h"
+#include "model/ModifyStorageCapacityUnitAttributeRequest.h"
+#include "model/ModifyStorageCapacityUnitAttributeResult.h"
 #include "model/ModifyStorageSetAttributeRequest.h"
 #include "model/ModifyStorageSetAttributeResult.h"
 #include "model/ModifyUserBusinessBehaviorRequest.h"
@@ -508,6 +516,8 @@
 #include "model/ModifyVpcAttributeResult.h"
 #include "model/PurchaseReservedInstancesOfferingRequest.h"
 #include "model/PurchaseReservedInstancesOfferingResult.h"
+#include "model/PurchaseStorageCapacityUnitRequest.h"
+#include "model/PurchaseStorageCapacityUnitResult.h"
 #include "model/ReActivateInstancesRequest.h"
 #include "model/ReActivateInstancesResult.h"
 #include "model/ReInitDiskRequest.h"
@@ -668,6 +678,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CopyImageResult> CopyImageOutcome;
 			typedef std::future<CopyImageOutcome> CopyImageOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::CopyImageRequest&, const CopyImageOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CopyImageAsyncHandler;
+			typedef Outcome<Error, Model::CopySnapshotResult> CopySnapshotOutcome;
+			typedef std::future<CopySnapshotOutcome> CopySnapshotOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::CopySnapshotRequest&, const CopySnapshotOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CopySnapshotAsyncHandler;
 			typedef Outcome<Error, Model::CreateAutoProvisioningGroupResult> CreateAutoProvisioningGroupOutcome;
 			typedef std::future<CreateAutoProvisioningGroupOutcome> CreateAutoProvisioningGroupOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::CreateAutoProvisioningGroupRequest&, const CreateAutoProvisioningGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateAutoProvisioningGroupAsyncHandler;
@@ -1058,6 +1071,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeSpotPriceHistoryResult> DescribeSpotPriceHistoryOutcome;
 			typedef std::future<DescribeSpotPriceHistoryOutcome> DescribeSpotPriceHistoryOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DescribeSpotPriceHistoryRequest&, const DescribeSpotPriceHistoryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeSpotPriceHistoryAsyncHandler;
+			typedef Outcome<Error, Model::DescribeStorageCapacityUnitsResult> DescribeStorageCapacityUnitsOutcome;
+			typedef std::future<DescribeStorageCapacityUnitsOutcome> DescribeStorageCapacityUnitsOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::DescribeStorageCapacityUnitsRequest&, const DescribeStorageCapacityUnitsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeStorageCapacityUnitsAsyncHandler;
 			typedef Outcome<Error, Model::DescribeStorageSetDetailsResult> DescribeStorageSetDetailsOutcome;
 			typedef std::future<DescribeStorageSetDetailsOutcome> DescribeStorageSetDetailsOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DescribeStorageSetDetailsRequest&, const DescribeStorageSetDetailsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeStorageSetDetailsAsyncHandler;
@@ -1187,6 +1203,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ModifyDedicatedHostAutoRenewAttributeResult> ModifyDedicatedHostAutoRenewAttributeOutcome;
 			typedef std::future<ModifyDedicatedHostAutoRenewAttributeOutcome> ModifyDedicatedHostAutoRenewAttributeOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::ModifyDedicatedHostAutoRenewAttributeRequest&, const ModifyDedicatedHostAutoRenewAttributeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyDedicatedHostAutoRenewAttributeAsyncHandler;
+			typedef Outcome<Error, Model::ModifyDedicatedHostsChargeTypeResult> ModifyDedicatedHostsChargeTypeOutcome;
+			typedef std::future<ModifyDedicatedHostsChargeTypeOutcome> ModifyDedicatedHostsChargeTypeOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::ModifyDedicatedHostsChargeTypeRequest&, const ModifyDedicatedHostsChargeTypeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyDedicatedHostsChargeTypeAsyncHandler;
 			typedef Outcome<Error, Model::ModifyDemandResult> ModifyDemandOutcome;
 			typedef std::future<ModifyDemandOutcome> ModifyDemandOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::ModifyDemandRequest&, const ModifyDemandOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyDemandAsyncHandler;
@@ -1295,6 +1314,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ModifySnapshotAttributeResult> ModifySnapshotAttributeOutcome;
 			typedef std::future<ModifySnapshotAttributeOutcome> ModifySnapshotAttributeOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::ModifySnapshotAttributeRequest&, const ModifySnapshotAttributeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifySnapshotAttributeAsyncHandler;
+			typedef Outcome<Error, Model::ModifyStorageCapacityUnitAttributeResult> ModifyStorageCapacityUnitAttributeOutcome;
+			typedef std::future<ModifyStorageCapacityUnitAttributeOutcome> ModifyStorageCapacityUnitAttributeOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::ModifyStorageCapacityUnitAttributeRequest&, const ModifyStorageCapacityUnitAttributeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyStorageCapacityUnitAttributeAsyncHandler;
 			typedef Outcome<Error, Model::ModifyStorageSetAttributeResult> ModifyStorageSetAttributeOutcome;
 			typedef std::future<ModifyStorageSetAttributeOutcome> ModifyStorageSetAttributeOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::ModifyStorageSetAttributeRequest&, const ModifyStorageSetAttributeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyStorageSetAttributeAsyncHandler;
@@ -1316,6 +1338,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::PurchaseReservedInstancesOfferingResult> PurchaseReservedInstancesOfferingOutcome;
 			typedef std::future<PurchaseReservedInstancesOfferingOutcome> PurchaseReservedInstancesOfferingOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::PurchaseReservedInstancesOfferingRequest&, const PurchaseReservedInstancesOfferingOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> PurchaseReservedInstancesOfferingAsyncHandler;
+			typedef Outcome<Error, Model::PurchaseStorageCapacityUnitResult> PurchaseStorageCapacityUnitOutcome;
+			typedef std::future<PurchaseStorageCapacityUnitOutcome> PurchaseStorageCapacityUnitOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::PurchaseStorageCapacityUnitRequest&, const PurchaseStorageCapacityUnitOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> PurchaseStorageCapacityUnitAsyncHandler;
 			typedef Outcome<Error, Model::ReActivateInstancesResult> ReActivateInstancesOutcome;
 			typedef std::future<ReActivateInstancesOutcome> ReActivateInstancesOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::ReActivateInstancesRequest&, const ReActivateInstancesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ReActivateInstancesAsyncHandler;
@@ -1507,6 +1532,9 @@ namespace AlibabaCloud
 			CopyImageOutcome copyImage(const Model::CopyImageRequest &request)const;
 			void copyImageAsync(const Model::CopyImageRequest& request, const CopyImageAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CopyImageOutcomeCallable copyImageCallable(const Model::CopyImageRequest& request) const;
+			CopySnapshotOutcome copySnapshot(const Model::CopySnapshotRequest &request)const;
+			void copySnapshotAsync(const Model::CopySnapshotRequest& request, const CopySnapshotAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CopySnapshotOutcomeCallable copySnapshotCallable(const Model::CopySnapshotRequest& request) const;
 			CreateAutoProvisioningGroupOutcome createAutoProvisioningGroup(const Model::CreateAutoProvisioningGroupRequest &request)const;
 			void createAutoProvisioningGroupAsync(const Model::CreateAutoProvisioningGroupRequest& request, const CreateAutoProvisioningGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateAutoProvisioningGroupOutcomeCallable createAutoProvisioningGroupCallable(const Model::CreateAutoProvisioningGroupRequest& request) const;
@@ -1897,6 +1925,9 @@ namespace AlibabaCloud
 			DescribeSpotPriceHistoryOutcome describeSpotPriceHistory(const Model::DescribeSpotPriceHistoryRequest &request)const;
 			void describeSpotPriceHistoryAsync(const Model::DescribeSpotPriceHistoryRequest& request, const DescribeSpotPriceHistoryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeSpotPriceHistoryOutcomeCallable describeSpotPriceHistoryCallable(const Model::DescribeSpotPriceHistoryRequest& request) const;
+			DescribeStorageCapacityUnitsOutcome describeStorageCapacityUnits(const Model::DescribeStorageCapacityUnitsRequest &request)const;
+			void describeStorageCapacityUnitsAsync(const Model::DescribeStorageCapacityUnitsRequest& request, const DescribeStorageCapacityUnitsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeStorageCapacityUnitsOutcomeCallable describeStorageCapacityUnitsCallable(const Model::DescribeStorageCapacityUnitsRequest& request) const;
 			DescribeStorageSetDetailsOutcome describeStorageSetDetails(const Model::DescribeStorageSetDetailsRequest &request)const;
 			void describeStorageSetDetailsAsync(const Model::DescribeStorageSetDetailsRequest& request, const DescribeStorageSetDetailsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeStorageSetDetailsOutcomeCallable describeStorageSetDetailsCallable(const Model::DescribeStorageSetDetailsRequest& request) const;
@@ -2026,6 +2057,9 @@ namespace AlibabaCloud
 			ModifyDedicatedHostAutoRenewAttributeOutcome modifyDedicatedHostAutoRenewAttribute(const Model::ModifyDedicatedHostAutoRenewAttributeRequest &request)const;
 			void modifyDedicatedHostAutoRenewAttributeAsync(const Model::ModifyDedicatedHostAutoRenewAttributeRequest& request, const ModifyDedicatedHostAutoRenewAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ModifyDedicatedHostAutoRenewAttributeOutcomeCallable modifyDedicatedHostAutoRenewAttributeCallable(const Model::ModifyDedicatedHostAutoRenewAttributeRequest& request) const;
+			ModifyDedicatedHostsChargeTypeOutcome modifyDedicatedHostsChargeType(const Model::ModifyDedicatedHostsChargeTypeRequest &request)const;
+			void modifyDedicatedHostsChargeTypeAsync(const Model::ModifyDedicatedHostsChargeTypeRequest& request, const ModifyDedicatedHostsChargeTypeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ModifyDedicatedHostsChargeTypeOutcomeCallable modifyDedicatedHostsChargeTypeCallable(const Model::ModifyDedicatedHostsChargeTypeRequest& request) const;
 			ModifyDemandOutcome modifyDemand(const Model::ModifyDemandRequest &request)const;
 			void modifyDemandAsync(const Model::ModifyDemandRequest& request, const ModifyDemandAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ModifyDemandOutcomeCallable modifyDemandCallable(const Model::ModifyDemandRequest& request) const;
@@ -2134,6 +2168,9 @@ namespace AlibabaCloud
 			ModifySnapshotAttributeOutcome modifySnapshotAttribute(const Model::ModifySnapshotAttributeRequest &request)const;
 			void modifySnapshotAttributeAsync(const Model::ModifySnapshotAttributeRequest& request, const ModifySnapshotAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ModifySnapshotAttributeOutcomeCallable modifySnapshotAttributeCallable(const Model::ModifySnapshotAttributeRequest& request) const;
+			ModifyStorageCapacityUnitAttributeOutcome modifyStorageCapacityUnitAttribute(const Model::ModifyStorageCapacityUnitAttributeRequest &request)const;
+			void modifyStorageCapacityUnitAttributeAsync(const Model::ModifyStorageCapacityUnitAttributeRequest& request, const ModifyStorageCapacityUnitAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ModifyStorageCapacityUnitAttributeOutcomeCallable modifyStorageCapacityUnitAttributeCallable(const Model::ModifyStorageCapacityUnitAttributeRequest& request) const;
 			ModifyStorageSetAttributeOutcome modifyStorageSetAttribute(const Model::ModifyStorageSetAttributeRequest &request)const;
 			void modifyStorageSetAttributeAsync(const Model::ModifyStorageSetAttributeRequest& request, const ModifyStorageSetAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ModifyStorageSetAttributeOutcomeCallable modifyStorageSetAttributeCallable(const Model::ModifyStorageSetAttributeRequest& request) const;
@@ -2155,6 +2192,9 @@ namespace AlibabaCloud
 			PurchaseReservedInstancesOfferingOutcome purchaseReservedInstancesOffering(const Model::PurchaseReservedInstancesOfferingRequest &request)const;
 			void purchaseReservedInstancesOfferingAsync(const Model::PurchaseReservedInstancesOfferingRequest& request, const PurchaseReservedInstancesOfferingAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			PurchaseReservedInstancesOfferingOutcomeCallable purchaseReservedInstancesOfferingCallable(const Model::PurchaseReservedInstancesOfferingRequest& request) const;
+			PurchaseStorageCapacityUnitOutcome purchaseStorageCapacityUnit(const Model::PurchaseStorageCapacityUnitRequest &request)const;
+			void purchaseStorageCapacityUnitAsync(const Model::PurchaseStorageCapacityUnitRequest& request, const PurchaseStorageCapacityUnitAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			PurchaseStorageCapacityUnitOutcomeCallable purchaseStorageCapacityUnitCallable(const Model::PurchaseStorageCapacityUnitRequest& request) const;
 			ReActivateInstancesOutcome reActivateInstances(const Model::ReActivateInstancesRequest &request)const;
 			void reActivateInstancesAsync(const Model::ReActivateInstancesRequest& request, const ReActivateInstancesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ReActivateInstancesOutcomeCallable reActivateInstancesCallable(const Model::ReActivateInstancesRequest& request) const;

+ 81 - 0
ecs/include/alibabacloud/ecs/model/CopySnapshotRequest.h

@@ -0,0 +1,81 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_COPYSNAPSHOTREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_COPYSNAPSHOTREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/ecs/EcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ecs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ECS_EXPORT CopySnapshotRequest : public RpcServiceRequest
+			{
+			public:
+				struct Tag
+				{
+					std::string key;
+					std::string value;
+				};
+
+			public:
+				CopySnapshotRequest();
+				~CopySnapshotRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getSnapshotId()const;
+				void setSnapshotId(const std::string& snapshotId);
+				std::string getDestinationRegionId()const;
+				void setDestinationRegionId(const std::string& destinationRegionId);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				std::vector<Tag> getTag()const;
+				void setTag(const std::vector<Tag>& tag);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				std::string getDestinationSnapshotName()const;
+				void setDestinationSnapshotName(const std::string& destinationSnapshotName);
+				std::string getDestinationSnapshotDescription()const;
+				void setDestinationSnapshotDescription(const std::string& destinationSnapshotDescription);
+				int getRetentionDays()const;
+				void setRetentionDays(int retentionDays);
+
+            private:
+				long resourceOwnerId_;
+				std::string snapshotId_;
+				std::string destinationRegionId_;
+				std::string regionId_;
+				std::vector<Tag> tag_;
+				std::string resourceOwnerAccount_;
+				long ownerId_;
+				std::string destinationSnapshotName_;
+				std::string destinationSnapshotDescription_;
+				int retentionDays_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_COPYSNAPSHOTREQUEST_H_

+ 51 - 0
ecs/include/alibabacloud/ecs/model/CopySnapshotResult.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_COPYSNAPSHOTRESULT_H_
+#define ALIBABACLOUD_ECS_MODEL_COPYSNAPSHOTRESULT_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 CopySnapshotResult : public ServiceResult
+			{
+			public:
+
+
+				CopySnapshotResult();
+				explicit CopySnapshotResult(const std::string &payload);
+				~CopySnapshotResult();
+				std::string getSnapshotId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string snapshotId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_COPYSNAPSHOTRESULT_H_

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

@@ -70,6 +70,7 @@ namespace AlibabaCloud
 					std::string dedicatedHostId;
 					std::string description;
 					std::string resourceGroupId;
+					std::vector<std::string> supportedCustomInstanceTypeFamilies;
 					NetworkAttributes networkAttributes;
 					std::string gPUSpec;
 					Capacity capacity;

+ 78 - 0
ecs/include/alibabacloud/ecs/model/DescribeStorageCapacityUnitsRequest.h

@@ -0,0 +1,78 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_DESCRIBESTORAGECAPACITYUNITSREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_DESCRIBESTORAGECAPACITYUNITSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/ecs/EcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ecs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ECS_EXPORT DescribeStorageCapacityUnitsRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeStorageCapacityUnitsRequest();
+				~DescribeStorageCapacityUnitsRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				int getPageNumber()const;
+				void setPageNumber(int pageNumber);
+				int getCapacity()const;
+				void setCapacity(int capacity);
+				std::vector<std::string> getStorageCapacityUnitId()const;
+				void setStorageCapacityUnitId(const std::vector<std::string>& storageCapacityUnitId);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				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 getName()const;
+				void setName(const std::string& name);
+				std::vector<std::string> getStatus()const;
+				void setStatus(const std::vector<std::string>& status);
+
+            private:
+				long resourceOwnerId_;
+				int pageNumber_;
+				int capacity_;
+				std::vector<std::string> storageCapacityUnitId_;
+				std::string regionId_;
+				int pageSize_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				long ownerId_;
+				std::string name_;
+				std::vector<std::string> status_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_DESCRIBESTORAGECAPACITYUNITSREQUEST_H_

+ 69 - 0
ecs/include/alibabacloud/ecs/model/DescribeStorageCapacityUnitsResult.h

@@ -0,0 +1,69 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_DESCRIBESTORAGECAPACITYUNITSRESULT_H_
+#define ALIBABACLOUD_ECS_MODEL_DESCRIBESTORAGECAPACITYUNITSRESULT_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 DescribeStorageCapacityUnitsResult : public ServiceResult
+			{
+			public:
+				struct StorageCapacityUnit
+				{
+					std::string status;
+					std::string description;
+					std::string storageCapacityUnitId;
+					int capacity;
+					std::string expiredTime;
+					std::string creationTime;
+					std::string startTime;
+					std::string regionId;
+					std::string name;
+				};
+
+
+				DescribeStorageCapacityUnitsResult();
+				explicit DescribeStorageCapacityUnitsResult(const std::string &payload);
+				~DescribeStorageCapacityUnitsResult();
+				int getTotalCount()const;
+				int getPageSize()const;
+				int getPageNumber()const;
+				std::vector<StorageCapacityUnit> getStorageCapacityUnits()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalCount_;
+				int pageSize_;
+				int pageNumber_;
+				std::vector<StorageCapacityUnit> storageCapacityUnits_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_DESCRIBESTORAGECAPACITYUNITSRESULT_H_

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

@@ -37,6 +37,8 @@ namespace AlibabaCloud
 
 				long getResourceOwnerId()const;
 				void setResourceOwnerId(long resourceOwnerId);
+				bool getRemoveSymbols()const;
+				void setRemoveSymbols(bool removeSymbols);
 				std::string getRegionId()const;
 				void setRegionId(const std::string& regionId);
 				std::string getResourceOwnerAccount()const;
@@ -50,6 +52,7 @@ namespace AlibabaCloud
 
             private:
 				long resourceOwnerId_;
+				bool removeSymbols_;
 				std::string regionId_;
 				std::string resourceOwnerAccount_;
 				std::string ownerAccount_;

+ 84 - 0
ecs/include/alibabacloud/ecs/model/ModifyDedicatedHostsChargeTypeRequest.h

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_MODIFYDEDICATEDHOSTSCHARGETYPEREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_MODIFYDEDICATEDHOSTSCHARGETYPEREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/ecs/EcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ecs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ECS_EXPORT ModifyDedicatedHostsChargeTypeRequest : public RpcServiceRequest
+			{
+
+			public:
+				ModifyDedicatedHostsChargeTypeRequest();
+				~ModifyDedicatedHostsChargeTypeRequest();
+
+				std::string getDedicatedHostIds()const;
+				void setDedicatedHostIds(const std::string& dedicatedHostIds);
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getClientToken()const;
+				void setClientToken(const std::string& clientToken);
+				std::string getDedicatedHostChargeType()const;
+				void setDedicatedHostChargeType(const std::string& dedicatedHostChargeType);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				int getPeriod()const;
+				void setPeriod(int period);
+				bool getDryRun()const;
+				void setDryRun(bool dryRun);
+				bool getAutoPay()const;
+				void setAutoPay(bool autoPay);
+				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);
+				bool getDetailFee()const;
+				void setDetailFee(bool detailFee);
+				std::string getPeriodUnit()const;
+				void setPeriodUnit(const std::string& periodUnit);
+
+            private:
+				std::string dedicatedHostIds_;
+				long resourceOwnerId_;
+				std::string clientToken_;
+				std::string dedicatedHostChargeType_;
+				std::string regionId_;
+				int period_;
+				bool dryRun_;
+				bool autoPay_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				long ownerId_;
+				bool detailFee_;
+				std::string periodUnit_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_MODIFYDEDICATEDHOSTSCHARGETYPEREQUEST_H_

+ 59 - 0
ecs/include/alibabacloud/ecs/model/ModifyDedicatedHostsChargeTypeResult.h

@@ -0,0 +1,59 @@
+/*
+ * 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_MODIFYDEDICATEDHOSTSCHARGETYPERESULT_H_
+#define ALIBABACLOUD_ECS_MODEL_MODIFYDEDICATEDHOSTSCHARGETYPERESULT_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 ModifyDedicatedHostsChargeTypeResult : public ServiceResult
+			{
+			public:
+				struct FeeOfInstance
+				{
+					std::string instanceId;
+					std::string fee;
+					std::string currency;
+				};
+
+
+				ModifyDedicatedHostsChargeTypeResult();
+				explicit ModifyDedicatedHostsChargeTypeResult(const std::string &payload);
+				~ModifyDedicatedHostsChargeTypeResult();
+				std::vector<FeeOfInstance> getFeeOfInstances()const;
+				std::string getOrderId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<FeeOfInstance> feeOfInstances_;
+				std::string orderId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_MODIFYDEDICATEDHOSTSCHARGETYPERESULT_H_

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

@@ -51,6 +51,8 @@ namespace AlibabaCloud
 				void setOwnerAccount(const std::string& ownerAccount);
 				long getOwnerId()const;
 				void setOwnerId(long ownerId);
+				std::string getImageFamily()const;
+				void setImageFamily(const std::string& imageFamily);
 				std::string getStatus()const;
 				void setStatus(const std::string& status);
 
@@ -63,6 +65,7 @@ namespace AlibabaCloud
 				std::string resourceOwnerAccount_;
 				std::string ownerAccount_;
 				long ownerId_;
+				std::string imageFamily_;
 				std::string status_;
 
 			};

+ 69 - 0
ecs/include/alibabacloud/ecs/model/ModifyStorageCapacityUnitAttributeRequest.h

@@ -0,0 +1,69 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_MODIFYSTORAGECAPACITYUNITATTRIBUTEREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_MODIFYSTORAGECAPACITYUNITATTRIBUTEREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/ecs/EcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ecs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ECS_EXPORT ModifyStorageCapacityUnitAttributeRequest : public RpcServiceRequest
+			{
+
+			public:
+				ModifyStorageCapacityUnitAttributeRequest();
+				~ModifyStorageCapacityUnitAttributeRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getDescription()const;
+				void setDescription(const std::string& description);
+				std::string getStorageCapacityUnitId()const;
+				void setStorageCapacityUnitId(const std::string& storageCapacityUnitId);
+				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 getName()const;
+				void setName(const std::string& name);
+
+            private:
+				long resourceOwnerId_;
+				std::string description_;
+				std::string storageCapacityUnitId_;
+				std::string regionId_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				long ownerId_;
+				std::string name_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_MODIFYSTORAGECAPACITYUNITATTRIBUTEREQUEST_H_

+ 49 - 0
ecs/include/alibabacloud/ecs/model/ModifyStorageCapacityUnitAttributeResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_MODIFYSTORAGECAPACITYUNITATTRIBUTERESULT_H_
+#define ALIBABACLOUD_ECS_MODEL_MODIFYSTORAGECAPACITYUNITATTRIBUTERESULT_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 ModifyStorageCapacityUnitAttributeResult : public ServiceResult
+			{
+			public:
+
+
+				ModifyStorageCapacityUnitAttributeResult();
+				explicit ModifyStorageCapacityUnitAttributeResult(const std::string &payload);
+				~ModifyStorageCapacityUnitAttributeResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_MODIFYSTORAGECAPACITYUNITATTRIBUTERESULT_H_

+ 87 - 0
ecs/include/alibabacloud/ecs/model/PurchaseStorageCapacityUnitRequest.h

@@ -0,0 +1,87 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_PURCHASESTORAGECAPACITYUNITREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_PURCHASESTORAGECAPACITYUNITREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/ecs/EcsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ecs
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ECS_EXPORT PurchaseStorageCapacityUnitRequest : public RpcServiceRequest
+			{
+
+			public:
+				PurchaseStorageCapacityUnitRequest();
+				~PurchaseStorageCapacityUnitRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getClientToken()const;
+				void setClientToken(const std::string& clientToken);
+				std::string getDescription()const;
+				void setDescription(const std::string& description);
+				std::string getStartTime()const;
+				void setStartTime(const std::string& startTime);
+				int getCapacity()const;
+				void setCapacity(int capacity);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				int getPeriod()const;
+				void setPeriod(int period);
+				int getAmount()const;
+				void setAmount(int amount);
+				std::string getFromApp()const;
+				void setFromApp(const std::string& fromApp);
+				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 getPeriodUnit()const;
+				void setPeriodUnit(const std::string& periodUnit);
+				std::string getName()const;
+				void setName(const std::string& name);
+
+            private:
+				long resourceOwnerId_;
+				std::string clientToken_;
+				std::string description_;
+				std::string startTime_;
+				int capacity_;
+				std::string regionId_;
+				int period_;
+				int amount_;
+				std::string fromApp_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				long ownerId_;
+				std::string periodUnit_;
+				std::string name_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_PURCHASESTORAGECAPACITYUNITREQUEST_H_

+ 53 - 0
ecs/include/alibabacloud/ecs/model/PurchaseStorageCapacityUnitResult.h

@@ -0,0 +1,53 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_PURCHASESTORAGECAPACITYUNITRESULT_H_
+#define ALIBABACLOUD_ECS_MODEL_PURCHASESTORAGECAPACITYUNITRESULT_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 PurchaseStorageCapacityUnitResult : public ServiceResult
+			{
+			public:
+
+
+				PurchaseStorageCapacityUnitResult();
+				explicit PurchaseStorageCapacityUnitResult(const std::string &payload);
+				~PurchaseStorageCapacityUnitResult();
+				std::vector<std::string> getStorageCapacityUnitIds()const;
+				std::string getOrderId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<std::string> storageCapacityUnitIds_;
+				std::string orderId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_PURCHASESTORAGECAPACITYUNITRESULT_H_

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

@@ -39,6 +39,8 @@ namespace AlibabaCloud
 				void setResourceOwnerId(long resourceOwnerId);
 				std::string getRegionId()const;
 				void setRegionId(const std::string& regionId);
+				std::string getBatchOptimization()const;
+				void setBatchOptimization(const std::string& batchOptimization);
 				bool getDryRun()const;
 				void setDryRun(bool dryRun);
 				std::string getResourceOwnerAccount()const;
@@ -55,6 +57,7 @@ namespace AlibabaCloud
             private:
 				long resourceOwnerId_;
 				std::string regionId_;
+				std::string batchOptimization_;
 				bool dryRun_;
 				std::string resourceOwnerAccount_;
 				std::string ownerAccount_;

+ 10 - 0
ecs/include/alibabacloud/ecs/model/RebootInstancesResult.h

@@ -32,15 +32,25 @@ namespace AlibabaCloud
 			class ALIBABACLOUD_ECS_EXPORT RebootInstancesResult : public ServiceResult
 			{
 			public:
+				struct InstanceResponse
+				{
+					std::string message;
+					std::string instanceId;
+					std::string previousStatus;
+					std::string currentStatus;
+					std::string code;
+				};
 
 
 				RebootInstancesResult();
 				explicit RebootInstancesResult(const std::string &payload);
 				~RebootInstancesResult();
+				std::vector<InstanceResponse> getInstanceResponses()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::vector<InstanceResponse> instanceResponses_;
 
 			};
 		}

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

@@ -39,6 +39,8 @@ namespace AlibabaCloud
 				void setResourceOwnerId(long resourceOwnerId);
 				std::string getRegionId()const;
 				void setRegionId(const std::string& regionId);
+				std::string getBatchOptimization()const;
+				void setBatchOptimization(const std::string& batchOptimization);
 				bool getDryRun()const;
 				void setDryRun(bool dryRun);
 				std::string getResourceOwnerAccount()const;
@@ -53,6 +55,7 @@ namespace AlibabaCloud
             private:
 				long resourceOwnerId_;
 				std::string regionId_;
+				std::string batchOptimization_;
 				bool dryRun_;
 				std::string resourceOwnerAccount_;
 				std::string ownerAccount_;

+ 10 - 0
ecs/include/alibabacloud/ecs/model/StartInstancesResult.h

@@ -32,15 +32,25 @@ namespace AlibabaCloud
 			class ALIBABACLOUD_ECS_EXPORT StartInstancesResult : public ServiceResult
 			{
 			public:
+				struct InstanceResponse
+				{
+					std::string message;
+					std::string instanceId;
+					std::string previousStatus;
+					std::string currentStatus;
+					std::string code;
+				};
 
 
 				StartInstancesResult();
 				explicit StartInstancesResult(const std::string &payload);
 				~StartInstancesResult();
+				std::vector<InstanceResponse> getInstanceResponses()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::vector<InstanceResponse> instanceResponses_;
 
 			};
 		}

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

@@ -43,6 +43,8 @@ namespace AlibabaCloud
 				void setForceStop(bool forceStop);
 				std::string getRegionId()const;
 				void setRegionId(const std::string& regionId);
+				std::string getBatchOptimization()const;
+				void setBatchOptimization(const std::string& batchOptimization);
 				bool getDryRun()const;
 				void setDryRun(bool dryRun);
 				std::string getResourceOwnerAccount()const;
@@ -59,6 +61,7 @@ namespace AlibabaCloud
 				std::string stoppedMode_;
 				bool forceStop_;
 				std::string regionId_;
+				std::string batchOptimization_;
 				bool dryRun_;
 				std::string resourceOwnerAccount_;
 				std::string ownerAccount_;

+ 10 - 0
ecs/include/alibabacloud/ecs/model/StopInstancesResult.h

@@ -32,15 +32,25 @@ namespace AlibabaCloud
 			class ALIBABACLOUD_ECS_EXPORT StopInstancesResult : public ServiceResult
 			{
 			public:
+				struct InstanceResponse
+				{
+					std::string message;
+					std::string instanceId;
+					std::string previousStatus;
+					std::string currentStatus;
+					std::string code;
+				};
 
 
 				StopInstancesResult();
 				explicit StopInstancesResult(const std::string &payload);
 				~StopInstancesResult();
+				std::vector<InstanceResponse> getInstanceResponses()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::vector<InstanceResponse> instanceResponses_;
 
 			};
 		}

+ 180 - 0
ecs/src/EcsClient.cc

@@ -1023,6 +1023,42 @@ EcsClient::CopyImageOutcomeCallable EcsClient::copyImageCallable(const CopyImage
 	return task->get_future();
 }
 
+EcsClient::CopySnapshotOutcome EcsClient::copySnapshot(const CopySnapshotRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CopySnapshotOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CopySnapshotOutcome(CopySnapshotResult(outcome.result()));
+	else
+		return CopySnapshotOutcome(outcome.error());
+}
+
+void EcsClient::copySnapshotAsync(const CopySnapshotRequest& request, const CopySnapshotAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, copySnapshot(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::CopySnapshotOutcomeCallable EcsClient::copySnapshotCallable(const CopySnapshotRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CopySnapshotOutcome()>>(
+			[this, request]()
+			{
+			return this->copySnapshot(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::CreateAutoProvisioningGroupOutcome EcsClient::createAutoProvisioningGroup(const CreateAutoProvisioningGroupRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -5703,6 +5739,42 @@ EcsClient::DescribeSpotPriceHistoryOutcomeCallable EcsClient::describeSpotPriceH
 	return task->get_future();
 }
 
+EcsClient::DescribeStorageCapacityUnitsOutcome EcsClient::describeStorageCapacityUnits(const DescribeStorageCapacityUnitsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeStorageCapacityUnitsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeStorageCapacityUnitsOutcome(DescribeStorageCapacityUnitsResult(outcome.result()));
+	else
+		return DescribeStorageCapacityUnitsOutcome(outcome.error());
+}
+
+void EcsClient::describeStorageCapacityUnitsAsync(const DescribeStorageCapacityUnitsRequest& request, const DescribeStorageCapacityUnitsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeStorageCapacityUnits(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::DescribeStorageCapacityUnitsOutcomeCallable EcsClient::describeStorageCapacityUnitsCallable(const DescribeStorageCapacityUnitsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeStorageCapacityUnitsOutcome()>>(
+			[this, request]()
+			{
+			return this->describeStorageCapacityUnits(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::DescribeStorageSetDetailsOutcome EcsClient::describeStorageSetDetails(const DescribeStorageSetDetailsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -7251,6 +7323,42 @@ EcsClient::ModifyDedicatedHostAutoRenewAttributeOutcomeCallable EcsClient::modif
 	return task->get_future();
 }
 
+EcsClient::ModifyDedicatedHostsChargeTypeOutcome EcsClient::modifyDedicatedHostsChargeType(const ModifyDedicatedHostsChargeTypeRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ModifyDedicatedHostsChargeTypeOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ModifyDedicatedHostsChargeTypeOutcome(ModifyDedicatedHostsChargeTypeResult(outcome.result()));
+	else
+		return ModifyDedicatedHostsChargeTypeOutcome(outcome.error());
+}
+
+void EcsClient::modifyDedicatedHostsChargeTypeAsync(const ModifyDedicatedHostsChargeTypeRequest& request, const ModifyDedicatedHostsChargeTypeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, modifyDedicatedHostsChargeType(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::ModifyDedicatedHostsChargeTypeOutcomeCallable EcsClient::modifyDedicatedHostsChargeTypeCallable(const ModifyDedicatedHostsChargeTypeRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ModifyDedicatedHostsChargeTypeOutcome()>>(
+			[this, request]()
+			{
+			return this->modifyDedicatedHostsChargeType(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::ModifyDemandOutcome EcsClient::modifyDemand(const ModifyDemandRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -8547,6 +8655,42 @@ EcsClient::ModifySnapshotAttributeOutcomeCallable EcsClient::modifySnapshotAttri
 	return task->get_future();
 }
 
+EcsClient::ModifyStorageCapacityUnitAttributeOutcome EcsClient::modifyStorageCapacityUnitAttribute(const ModifyStorageCapacityUnitAttributeRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ModifyStorageCapacityUnitAttributeOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ModifyStorageCapacityUnitAttributeOutcome(ModifyStorageCapacityUnitAttributeResult(outcome.result()));
+	else
+		return ModifyStorageCapacityUnitAttributeOutcome(outcome.error());
+}
+
+void EcsClient::modifyStorageCapacityUnitAttributeAsync(const ModifyStorageCapacityUnitAttributeRequest& request, const ModifyStorageCapacityUnitAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, modifyStorageCapacityUnitAttribute(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::ModifyStorageCapacityUnitAttributeOutcomeCallable EcsClient::modifyStorageCapacityUnitAttributeCallable(const ModifyStorageCapacityUnitAttributeRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ModifyStorageCapacityUnitAttributeOutcome()>>(
+			[this, request]()
+			{
+			return this->modifyStorageCapacityUnitAttribute(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::ModifyStorageSetAttributeOutcome EcsClient::modifyStorageSetAttribute(const ModifyStorageSetAttributeRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -8799,6 +8943,42 @@ EcsClient::PurchaseReservedInstancesOfferingOutcomeCallable EcsClient::purchaseR
 	return task->get_future();
 }
 
+EcsClient::PurchaseStorageCapacityUnitOutcome EcsClient::purchaseStorageCapacityUnit(const PurchaseStorageCapacityUnitRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return PurchaseStorageCapacityUnitOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return PurchaseStorageCapacityUnitOutcome(PurchaseStorageCapacityUnitResult(outcome.result()));
+	else
+		return PurchaseStorageCapacityUnitOutcome(outcome.error());
+}
+
+void EcsClient::purchaseStorageCapacityUnitAsync(const PurchaseStorageCapacityUnitRequest& request, const PurchaseStorageCapacityUnitAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, purchaseStorageCapacityUnit(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::PurchaseStorageCapacityUnitOutcomeCallable EcsClient::purchaseStorageCapacityUnitCallable(const PurchaseStorageCapacityUnitRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<PurchaseStorageCapacityUnitOutcome()>>(
+			[this, request]()
+			{
+			return this->purchaseStorageCapacityUnit(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::ReActivateInstancesOutcome EcsClient::reActivateInstances(const ReActivateInstancesRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 144 - 0
ecs/src/model/CopySnapshotRequest.cc

@@ -0,0 +1,144 @@
+/*
+ * 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/CopySnapshotRequest.h>
+
+using AlibabaCloud::Ecs::Model::CopySnapshotRequest;
+
+CopySnapshotRequest::CopySnapshotRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "CopySnapshot")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CopySnapshotRequest::~CopySnapshotRequest()
+{}
+
+long CopySnapshotRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void CopySnapshotRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string CopySnapshotRequest::getSnapshotId()const
+{
+	return snapshotId_;
+}
+
+void CopySnapshotRequest::setSnapshotId(const std::string& snapshotId)
+{
+	snapshotId_ = snapshotId;
+	setParameter("SnapshotId", snapshotId);
+}
+
+std::string CopySnapshotRequest::getDestinationRegionId()const
+{
+	return destinationRegionId_;
+}
+
+void CopySnapshotRequest::setDestinationRegionId(const std::string& destinationRegionId)
+{
+	destinationRegionId_ = destinationRegionId;
+	setParameter("DestinationRegionId", destinationRegionId);
+}
+
+std::string CopySnapshotRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void CopySnapshotRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+std::vector<CopySnapshotRequest::Tag> CopySnapshotRequest::getTag()const
+{
+	return tag_;
+}
+
+void CopySnapshotRequest::setTag(const std::vector<Tag>& tag)
+{
+	tag_ = tag;
+	for(int dep1 = 0; dep1!= tag.size(); dep1++) {
+		auto tagObj = tag.at(dep1);
+		std::string tagObjStr = "Tag." + std::to_string(dep1 + 1);
+		setParameter(tagObjStr + ".Key", tagObj.key);
+		setParameter(tagObjStr + ".Value", tagObj.value);
+	}
+}
+
+std::string CopySnapshotRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void CopySnapshotRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+long CopySnapshotRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void CopySnapshotRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string CopySnapshotRequest::getDestinationSnapshotName()const
+{
+	return destinationSnapshotName_;
+}
+
+void CopySnapshotRequest::setDestinationSnapshotName(const std::string& destinationSnapshotName)
+{
+	destinationSnapshotName_ = destinationSnapshotName;
+	setParameter("DestinationSnapshotName", destinationSnapshotName);
+}
+
+std::string CopySnapshotRequest::getDestinationSnapshotDescription()const
+{
+	return destinationSnapshotDescription_;
+}
+
+void CopySnapshotRequest::setDestinationSnapshotDescription(const std::string& destinationSnapshotDescription)
+{
+	destinationSnapshotDescription_ = destinationSnapshotDescription;
+	setParameter("DestinationSnapshotDescription", destinationSnapshotDescription);
+}
+
+int CopySnapshotRequest::getRetentionDays()const
+{
+	return retentionDays_;
+}
+
+void CopySnapshotRequest::setRetentionDays(int retentionDays)
+{
+	retentionDays_ = retentionDays;
+	setParameter("RetentionDays", std::to_string(retentionDays));
+}
+

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

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ecs/model/CopySnapshotResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ecs;
+using namespace AlibabaCloud::Ecs::Model;
+
+CopySnapshotResult::CopySnapshotResult() :
+	ServiceResult()
+{}
+
+CopySnapshotResult::CopySnapshotResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CopySnapshotResult::~CopySnapshotResult()
+{}
+
+void CopySnapshotResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["SnapshotId"].isNull())
+		snapshotId_ = value["SnapshotId"].asString();
+
+}
+
+std::string CopySnapshotResult::getSnapshotId()const
+{
+	return snapshotId_;
+}
+

+ 3 - 0
ecs/src/model/DescribeDedicatedHostsResult.cc

@@ -138,6 +138,9 @@ void DescribeDedicatedHostsResult::parse(const std::string &payload)
 		auto allSupportedInstanceTypeFamilies = value["SupportedInstanceTypeFamilies"]["SupportedInstanceTypeFamily"];
 		for (auto value : allSupportedInstanceTypeFamilies)
 			dedicatedHostsObject.supportedInstanceTypeFamilies.push_back(value.asString());
+		auto allSupportedCustomInstanceTypeFamilies = value["SupportedCustomInstanceTypeFamilies"]["SupportedCustomInstanceTypeFamily"];
+		for (auto value : allSupportedCustomInstanceTypeFamilies)
+			dedicatedHostsObject.supportedCustomInstanceTypeFamilies.push_back(value.asString());
 		auto allSupportedInstanceTypesList = value["SupportedInstanceTypesList"]["SupportedInstanceTypesList"];
 		for (auto value : allSupportedInstanceTypesList)
 			dedicatedHostsObject.supportedInstanceTypesList.push_back(value.asString());

+ 154 - 0
ecs/src/model/DescribeStorageCapacityUnitsRequest.cc

@@ -0,0 +1,154 @@
+/*
+ * 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/DescribeStorageCapacityUnitsRequest.h>
+
+using AlibabaCloud::Ecs::Model::DescribeStorageCapacityUnitsRequest;
+
+DescribeStorageCapacityUnitsRequest::DescribeStorageCapacityUnitsRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "DescribeStorageCapacityUnits")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeStorageCapacityUnitsRequest::~DescribeStorageCapacityUnitsRequest()
+{}
+
+long DescribeStorageCapacityUnitsRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void DescribeStorageCapacityUnitsRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+int DescribeStorageCapacityUnitsRequest::getPageNumber()const
+{
+	return pageNumber_;
+}
+
+void DescribeStorageCapacityUnitsRequest::setPageNumber(int pageNumber)
+{
+	pageNumber_ = pageNumber;
+	setParameter("PageNumber", std::to_string(pageNumber));
+}
+
+int DescribeStorageCapacityUnitsRequest::getCapacity()const
+{
+	return capacity_;
+}
+
+void DescribeStorageCapacityUnitsRequest::setCapacity(int capacity)
+{
+	capacity_ = capacity;
+	setParameter("Capacity", std::to_string(capacity));
+}
+
+std::vector<std::string> DescribeStorageCapacityUnitsRequest::getStorageCapacityUnitId()const
+{
+	return storageCapacityUnitId_;
+}
+
+void DescribeStorageCapacityUnitsRequest::setStorageCapacityUnitId(const std::vector<std::string>& storageCapacityUnitId)
+{
+	storageCapacityUnitId_ = storageCapacityUnitId;
+	for(int dep1 = 0; dep1!= storageCapacityUnitId.size(); dep1++) {
+		setParameter("StorageCapacityUnitId."+ std::to_string(dep1), storageCapacityUnitId.at(dep1));
+	}
+}
+
+std::string DescribeStorageCapacityUnitsRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void DescribeStorageCapacityUnitsRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+int DescribeStorageCapacityUnitsRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void DescribeStorageCapacityUnitsRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+std::string DescribeStorageCapacityUnitsRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void DescribeStorageCapacityUnitsRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string DescribeStorageCapacityUnitsRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void DescribeStorageCapacityUnitsRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+long DescribeStorageCapacityUnitsRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DescribeStorageCapacityUnitsRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string DescribeStorageCapacityUnitsRequest::getName()const
+{
+	return name_;
+}
+
+void DescribeStorageCapacityUnitsRequest::setName(const std::string& name)
+{
+	name_ = name;
+	setParameter("Name", name);
+}
+
+std::vector<std::string> DescribeStorageCapacityUnitsRequest::getStatus()const
+{
+	return status_;
+}
+
+void DescribeStorageCapacityUnitsRequest::setStatus(const std::vector<std::string>& status)
+{
+	status_ = status;
+	for(int dep1 = 0; dep1!= status.size(); dep1++) {
+		setParameter("Status."+ std::to_string(dep1), status.at(dep1));
+	}
+}
+

+ 94 - 0
ecs/src/model/DescribeStorageCapacityUnitsResult.cc

@@ -0,0 +1,94 @@
+/*
+ * 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/DescribeStorageCapacityUnitsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ecs;
+using namespace AlibabaCloud::Ecs::Model;
+
+DescribeStorageCapacityUnitsResult::DescribeStorageCapacityUnitsResult() :
+	ServiceResult()
+{}
+
+DescribeStorageCapacityUnitsResult::DescribeStorageCapacityUnitsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeStorageCapacityUnitsResult::~DescribeStorageCapacityUnitsResult()
+{}
+
+void DescribeStorageCapacityUnitsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allStorageCapacityUnitsNode = value["StorageCapacityUnits"]["StorageCapacityUnit"];
+	for (auto valueStorageCapacityUnitsStorageCapacityUnit : allStorageCapacityUnitsNode)
+	{
+		StorageCapacityUnit storageCapacityUnitsObject;
+		if(!valueStorageCapacityUnitsStorageCapacityUnit["RegionId"].isNull())
+			storageCapacityUnitsObject.regionId = valueStorageCapacityUnitsStorageCapacityUnit["RegionId"].asString();
+		if(!valueStorageCapacityUnitsStorageCapacityUnit["StorageCapacityUnitId"].isNull())
+			storageCapacityUnitsObject.storageCapacityUnitId = valueStorageCapacityUnitsStorageCapacityUnit["StorageCapacityUnitId"].asString();
+		if(!valueStorageCapacityUnitsStorageCapacityUnit["Name"].isNull())
+			storageCapacityUnitsObject.name = valueStorageCapacityUnitsStorageCapacityUnit["Name"].asString();
+		if(!valueStorageCapacityUnitsStorageCapacityUnit["Capacity"].isNull())
+			storageCapacityUnitsObject.capacity = std::stoi(valueStorageCapacityUnitsStorageCapacityUnit["Capacity"].asString());
+		if(!valueStorageCapacityUnitsStorageCapacityUnit["Status"].isNull())
+			storageCapacityUnitsObject.status = valueStorageCapacityUnitsStorageCapacityUnit["Status"].asString();
+		if(!valueStorageCapacityUnitsStorageCapacityUnit["CreationTime"].isNull())
+			storageCapacityUnitsObject.creationTime = valueStorageCapacityUnitsStorageCapacityUnit["CreationTime"].asString();
+		if(!valueStorageCapacityUnitsStorageCapacityUnit["ExpiredTime"].isNull())
+			storageCapacityUnitsObject.expiredTime = valueStorageCapacityUnitsStorageCapacityUnit["ExpiredTime"].asString();
+		if(!valueStorageCapacityUnitsStorageCapacityUnit["StartTime"].isNull())
+			storageCapacityUnitsObject.startTime = valueStorageCapacityUnitsStorageCapacityUnit["StartTime"].asString();
+		if(!valueStorageCapacityUnitsStorageCapacityUnit["Description"].isNull())
+			storageCapacityUnitsObject.description = valueStorageCapacityUnitsStorageCapacityUnit["Description"].asString();
+		storageCapacityUnits_.push_back(storageCapacityUnitsObject);
+	}
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stoi(value["PageNumber"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+
+}
+
+int DescribeStorageCapacityUnitsResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+int DescribeStorageCapacityUnitsResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+int DescribeStorageCapacityUnitsResult::getPageNumber()const
+{
+	return pageNumber_;
+}
+
+std::vector<DescribeStorageCapacityUnitsResult::StorageCapacityUnit> DescribeStorageCapacityUnitsResult::getStorageCapacityUnits()const
+{
+	return storageCapacityUnits_;
+}
+

+ 11 - 0
ecs/src/model/GetInstanceConsoleOutputRequest.cc

@@ -38,6 +38,17 @@ void GetInstanceConsoleOutputRequest::setResourceOwnerId(long resourceOwnerId)
 	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
 }
 
+bool GetInstanceConsoleOutputRequest::getRemoveSymbols()const
+{
+	return removeSymbols_;
+}
+
+void GetInstanceConsoleOutputRequest::setRemoveSymbols(bool removeSymbols)
+{
+	removeSymbols_ = removeSymbols;
+	setParameter("RemoveSymbols", removeSymbols ? "true" : "false");
+}
+
 std::string GetInstanceConsoleOutputRequest::getRegionId()const
 {
 	return regionId_;

+ 172 - 0
ecs/src/model/ModifyDedicatedHostsChargeTypeRequest.cc

@@ -0,0 +1,172 @@
+/*
+ * 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/ModifyDedicatedHostsChargeTypeRequest.h>
+
+using AlibabaCloud::Ecs::Model::ModifyDedicatedHostsChargeTypeRequest;
+
+ModifyDedicatedHostsChargeTypeRequest::ModifyDedicatedHostsChargeTypeRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "ModifyDedicatedHostsChargeType")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+ModifyDedicatedHostsChargeTypeRequest::~ModifyDedicatedHostsChargeTypeRequest()
+{}
+
+std::string ModifyDedicatedHostsChargeTypeRequest::getDedicatedHostIds()const
+{
+	return dedicatedHostIds_;
+}
+
+void ModifyDedicatedHostsChargeTypeRequest::setDedicatedHostIds(const std::string& dedicatedHostIds)
+{
+	dedicatedHostIds_ = dedicatedHostIds;
+	setParameter("DedicatedHostIds", dedicatedHostIds);
+}
+
+long ModifyDedicatedHostsChargeTypeRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void ModifyDedicatedHostsChargeTypeRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string ModifyDedicatedHostsChargeTypeRequest::getClientToken()const
+{
+	return clientToken_;
+}
+
+void ModifyDedicatedHostsChargeTypeRequest::setClientToken(const std::string& clientToken)
+{
+	clientToken_ = clientToken;
+	setParameter("ClientToken", clientToken);
+}
+
+std::string ModifyDedicatedHostsChargeTypeRequest::getDedicatedHostChargeType()const
+{
+	return dedicatedHostChargeType_;
+}
+
+void ModifyDedicatedHostsChargeTypeRequest::setDedicatedHostChargeType(const std::string& dedicatedHostChargeType)
+{
+	dedicatedHostChargeType_ = dedicatedHostChargeType;
+	setParameter("DedicatedHostChargeType", dedicatedHostChargeType);
+}
+
+std::string ModifyDedicatedHostsChargeTypeRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void ModifyDedicatedHostsChargeTypeRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+int ModifyDedicatedHostsChargeTypeRequest::getPeriod()const
+{
+	return period_;
+}
+
+void ModifyDedicatedHostsChargeTypeRequest::setPeriod(int period)
+{
+	period_ = period;
+	setParameter("Period", std::to_string(period));
+}
+
+bool ModifyDedicatedHostsChargeTypeRequest::getDryRun()const
+{
+	return dryRun_;
+}
+
+void ModifyDedicatedHostsChargeTypeRequest::setDryRun(bool dryRun)
+{
+	dryRun_ = dryRun;
+	setParameter("DryRun", dryRun ? "true" : "false");
+}
+
+bool ModifyDedicatedHostsChargeTypeRequest::getAutoPay()const
+{
+	return autoPay_;
+}
+
+void ModifyDedicatedHostsChargeTypeRequest::setAutoPay(bool autoPay)
+{
+	autoPay_ = autoPay;
+	setParameter("AutoPay", autoPay ? "true" : "false");
+}
+
+std::string ModifyDedicatedHostsChargeTypeRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void ModifyDedicatedHostsChargeTypeRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string ModifyDedicatedHostsChargeTypeRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void ModifyDedicatedHostsChargeTypeRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+long ModifyDedicatedHostsChargeTypeRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void ModifyDedicatedHostsChargeTypeRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+bool ModifyDedicatedHostsChargeTypeRequest::getDetailFee()const
+{
+	return detailFee_;
+}
+
+void ModifyDedicatedHostsChargeTypeRequest::setDetailFee(bool detailFee)
+{
+	detailFee_ = detailFee;
+	setParameter("DetailFee", detailFee ? "true" : "false");
+}
+
+std::string ModifyDedicatedHostsChargeTypeRequest::getPeriodUnit()const
+{
+	return periodUnit_;
+}
+
+void ModifyDedicatedHostsChargeTypeRequest::setPeriodUnit(const std::string& periodUnit)
+{
+	periodUnit_ = periodUnit;
+	setParameter("PeriodUnit", periodUnit);
+}
+

+ 68 - 0
ecs/src/model/ModifyDedicatedHostsChargeTypeResult.cc

@@ -0,0 +1,68 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ecs/model/ModifyDedicatedHostsChargeTypeResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ecs;
+using namespace AlibabaCloud::Ecs::Model;
+
+ModifyDedicatedHostsChargeTypeResult::ModifyDedicatedHostsChargeTypeResult() :
+	ServiceResult()
+{}
+
+ModifyDedicatedHostsChargeTypeResult::ModifyDedicatedHostsChargeTypeResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ModifyDedicatedHostsChargeTypeResult::~ModifyDedicatedHostsChargeTypeResult()
+{}
+
+void ModifyDedicatedHostsChargeTypeResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allFeeOfInstancesNode = value["FeeOfInstances"]["FeeOfInstance"];
+	for (auto valueFeeOfInstancesFeeOfInstance : allFeeOfInstancesNode)
+	{
+		FeeOfInstance feeOfInstancesObject;
+		if(!valueFeeOfInstancesFeeOfInstance["InstanceId"].isNull())
+			feeOfInstancesObject.instanceId = valueFeeOfInstancesFeeOfInstance["InstanceId"].asString();
+		if(!valueFeeOfInstancesFeeOfInstance["Fee"].isNull())
+			feeOfInstancesObject.fee = valueFeeOfInstancesFeeOfInstance["Fee"].asString();
+		if(!valueFeeOfInstancesFeeOfInstance["Currency"].isNull())
+			feeOfInstancesObject.currency = valueFeeOfInstancesFeeOfInstance["Currency"].asString();
+		feeOfInstances_.push_back(feeOfInstancesObject);
+	}
+	if(!value["OrderId"].isNull())
+		orderId_ = value["OrderId"].asString();
+
+}
+
+std::vector<ModifyDedicatedHostsChargeTypeResult::FeeOfInstance> ModifyDedicatedHostsChargeTypeResult::getFeeOfInstances()const
+{
+	return feeOfInstances_;
+}
+
+std::string ModifyDedicatedHostsChargeTypeResult::getOrderId()const
+{
+	return orderId_;
+}
+

+ 11 - 0
ecs/src/model/ModifyImageAttributeRequest.cc

@@ -115,6 +115,17 @@ void ModifyImageAttributeRequest::setOwnerId(long ownerId)
 	setParameter("OwnerId", std::to_string(ownerId));
 }
 
+std::string ModifyImageAttributeRequest::getImageFamily()const
+{
+	return imageFamily_;
+}
+
+void ModifyImageAttributeRequest::setImageFamily(const std::string& imageFamily)
+{
+	imageFamily_ = imageFamily;
+	setParameter("ImageFamily", imageFamily);
+}
+
 std::string ModifyImageAttributeRequest::getStatus()const
 {
 	return status_;

+ 117 - 0
ecs/src/model/ModifyStorageCapacityUnitAttributeRequest.cc

@@ -0,0 +1,117 @@
+/*
+ * 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/ModifyStorageCapacityUnitAttributeRequest.h>
+
+using AlibabaCloud::Ecs::Model::ModifyStorageCapacityUnitAttributeRequest;
+
+ModifyStorageCapacityUnitAttributeRequest::ModifyStorageCapacityUnitAttributeRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "ModifyStorageCapacityUnitAttribute")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+ModifyStorageCapacityUnitAttributeRequest::~ModifyStorageCapacityUnitAttributeRequest()
+{}
+
+long ModifyStorageCapacityUnitAttributeRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void ModifyStorageCapacityUnitAttributeRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string ModifyStorageCapacityUnitAttributeRequest::getDescription()const
+{
+	return description_;
+}
+
+void ModifyStorageCapacityUnitAttributeRequest::setDescription(const std::string& description)
+{
+	description_ = description;
+	setParameter("Description", description);
+}
+
+std::string ModifyStorageCapacityUnitAttributeRequest::getStorageCapacityUnitId()const
+{
+	return storageCapacityUnitId_;
+}
+
+void ModifyStorageCapacityUnitAttributeRequest::setStorageCapacityUnitId(const std::string& storageCapacityUnitId)
+{
+	storageCapacityUnitId_ = storageCapacityUnitId;
+	setParameter("StorageCapacityUnitId", storageCapacityUnitId);
+}
+
+std::string ModifyStorageCapacityUnitAttributeRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void ModifyStorageCapacityUnitAttributeRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+std::string ModifyStorageCapacityUnitAttributeRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void ModifyStorageCapacityUnitAttributeRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string ModifyStorageCapacityUnitAttributeRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void ModifyStorageCapacityUnitAttributeRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+long ModifyStorageCapacityUnitAttributeRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void ModifyStorageCapacityUnitAttributeRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string ModifyStorageCapacityUnitAttributeRequest::getName()const
+{
+	return name_;
+}
+
+void ModifyStorageCapacityUnitAttributeRequest::setName(const std::string& name)
+{
+	name_ = name;
+	setParameter("Name", name);
+}
+

+ 44 - 0
ecs/src/model/ModifyStorageCapacityUnitAttributeResult.cc

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ecs/model/ModifyStorageCapacityUnitAttributeResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ecs;
+using namespace AlibabaCloud::Ecs::Model;
+
+ModifyStorageCapacityUnitAttributeResult::ModifyStorageCapacityUnitAttributeResult() :
+	ServiceResult()
+{}
+
+ModifyStorageCapacityUnitAttributeResult::ModifyStorageCapacityUnitAttributeResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ModifyStorageCapacityUnitAttributeResult::~ModifyStorageCapacityUnitAttributeResult()
+{}
+
+void ModifyStorageCapacityUnitAttributeResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 183 - 0
ecs/src/model/PurchaseStorageCapacityUnitRequest.cc

@@ -0,0 +1,183 @@
+/*
+ * 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/PurchaseStorageCapacityUnitRequest.h>
+
+using AlibabaCloud::Ecs::Model::PurchaseStorageCapacityUnitRequest;
+
+PurchaseStorageCapacityUnitRequest::PurchaseStorageCapacityUnitRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "PurchaseStorageCapacityUnit")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+PurchaseStorageCapacityUnitRequest::~PurchaseStorageCapacityUnitRequest()
+{}
+
+long PurchaseStorageCapacityUnitRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void PurchaseStorageCapacityUnitRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string PurchaseStorageCapacityUnitRequest::getClientToken()const
+{
+	return clientToken_;
+}
+
+void PurchaseStorageCapacityUnitRequest::setClientToken(const std::string& clientToken)
+{
+	clientToken_ = clientToken;
+	setParameter("ClientToken", clientToken);
+}
+
+std::string PurchaseStorageCapacityUnitRequest::getDescription()const
+{
+	return description_;
+}
+
+void PurchaseStorageCapacityUnitRequest::setDescription(const std::string& description)
+{
+	description_ = description;
+	setParameter("Description", description);
+}
+
+std::string PurchaseStorageCapacityUnitRequest::getStartTime()const
+{
+	return startTime_;
+}
+
+void PurchaseStorageCapacityUnitRequest::setStartTime(const std::string& startTime)
+{
+	startTime_ = startTime;
+	setParameter("StartTime", startTime);
+}
+
+int PurchaseStorageCapacityUnitRequest::getCapacity()const
+{
+	return capacity_;
+}
+
+void PurchaseStorageCapacityUnitRequest::setCapacity(int capacity)
+{
+	capacity_ = capacity;
+	setParameter("Capacity", std::to_string(capacity));
+}
+
+std::string PurchaseStorageCapacityUnitRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void PurchaseStorageCapacityUnitRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+int PurchaseStorageCapacityUnitRequest::getPeriod()const
+{
+	return period_;
+}
+
+void PurchaseStorageCapacityUnitRequest::setPeriod(int period)
+{
+	period_ = period;
+	setParameter("Period", std::to_string(period));
+}
+
+int PurchaseStorageCapacityUnitRequest::getAmount()const
+{
+	return amount_;
+}
+
+void PurchaseStorageCapacityUnitRequest::setAmount(int amount)
+{
+	amount_ = amount;
+	setParameter("Amount", std::to_string(amount));
+}
+
+std::string PurchaseStorageCapacityUnitRequest::getFromApp()const
+{
+	return fromApp_;
+}
+
+void PurchaseStorageCapacityUnitRequest::setFromApp(const std::string& fromApp)
+{
+	fromApp_ = fromApp;
+	setParameter("FromApp", fromApp);
+}
+
+std::string PurchaseStorageCapacityUnitRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void PurchaseStorageCapacityUnitRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string PurchaseStorageCapacityUnitRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void PurchaseStorageCapacityUnitRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+long PurchaseStorageCapacityUnitRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void PurchaseStorageCapacityUnitRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string PurchaseStorageCapacityUnitRequest::getPeriodUnit()const
+{
+	return periodUnit_;
+}
+
+void PurchaseStorageCapacityUnitRequest::setPeriodUnit(const std::string& periodUnit)
+{
+	periodUnit_ = periodUnit;
+	setParameter("PeriodUnit", periodUnit);
+}
+
+std::string PurchaseStorageCapacityUnitRequest::getName()const
+{
+	return name_;
+}
+
+void PurchaseStorageCapacityUnitRequest::setName(const std::string& name)
+{
+	name_ = name;
+	setParameter("Name", name);
+}
+

+ 59 - 0
ecs/src/model/PurchaseStorageCapacityUnitResult.cc

@@ -0,0 +1,59 @@
+/*
+ * 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/PurchaseStorageCapacityUnitResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ecs;
+using namespace AlibabaCloud::Ecs::Model;
+
+PurchaseStorageCapacityUnitResult::PurchaseStorageCapacityUnitResult() :
+	ServiceResult()
+{}
+
+PurchaseStorageCapacityUnitResult::PurchaseStorageCapacityUnitResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+PurchaseStorageCapacityUnitResult::~PurchaseStorageCapacityUnitResult()
+{}
+
+void PurchaseStorageCapacityUnitResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allStorageCapacityUnitIds = value["StorageCapacityUnitIds"]["StorageCapacityUnitId"];
+	for (const auto &item : allStorageCapacityUnitIds)
+		storageCapacityUnitIds_.push_back(item.asString());
+	if(!value["OrderId"].isNull())
+		orderId_ = value["OrderId"].asString();
+
+}
+
+std::vector<std::string> PurchaseStorageCapacityUnitResult::getStorageCapacityUnitIds()const
+{
+	return storageCapacityUnitIds_;
+}
+
+std::string PurchaseStorageCapacityUnitResult::getOrderId()const
+{
+	return orderId_;
+}
+

+ 11 - 0
ecs/src/model/RebootInstancesRequest.cc

@@ -49,6 +49,17 @@ void RebootInstancesRequest::setRegionId(const std::string& regionId)
 	setParameter("RegionId", regionId);
 }
 
+std::string RebootInstancesRequest::getBatchOptimization()const
+{
+	return batchOptimization_;
+}
+
+void RebootInstancesRequest::setBatchOptimization(const std::string& batchOptimization)
+{
+	batchOptimization_ = batchOptimization;
+	setParameter("BatchOptimization", batchOptimization);
+}
+
 bool RebootInstancesRequest::getDryRun()const
 {
 	return dryRun_;

+ 21 - 0
ecs/src/model/RebootInstancesResult.cc

@@ -39,6 +39,27 @@ void RebootInstancesResult::parse(const std::string &payload)
 	Json::Value value;
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
+	auto allInstanceResponsesNode = value["InstanceResponses"]["InstanceResponse"];
+	for (auto valueInstanceResponsesInstanceResponse : allInstanceResponsesNode)
+	{
+		InstanceResponse instanceResponsesObject;
+		if(!valueInstanceResponsesInstanceResponse["InstanceId"].isNull())
+			instanceResponsesObject.instanceId = valueInstanceResponsesInstanceResponse["InstanceId"].asString();
+		if(!valueInstanceResponsesInstanceResponse["PreviousStatus"].isNull())
+			instanceResponsesObject.previousStatus = valueInstanceResponsesInstanceResponse["PreviousStatus"].asString();
+		if(!valueInstanceResponsesInstanceResponse["CurrentStatus"].isNull())
+			instanceResponsesObject.currentStatus = valueInstanceResponsesInstanceResponse["CurrentStatus"].asString();
+		if(!valueInstanceResponsesInstanceResponse["Code"].isNull())
+			instanceResponsesObject.code = valueInstanceResponsesInstanceResponse["Code"].asString();
+		if(!valueInstanceResponsesInstanceResponse["Message"].isNull())
+			instanceResponsesObject.message = valueInstanceResponsesInstanceResponse["Message"].asString();
+		instanceResponses_.push_back(instanceResponsesObject);
+	}
 
 }
 
+std::vector<RebootInstancesResult::InstanceResponse> RebootInstancesResult::getInstanceResponses()const
+{
+	return instanceResponses_;
+}
+

+ 11 - 0
ecs/src/model/StartInstancesRequest.cc

@@ -49,6 +49,17 @@ void StartInstancesRequest::setRegionId(const std::string& regionId)
 	setParameter("RegionId", regionId);
 }
 
+std::string StartInstancesRequest::getBatchOptimization()const
+{
+	return batchOptimization_;
+}
+
+void StartInstancesRequest::setBatchOptimization(const std::string& batchOptimization)
+{
+	batchOptimization_ = batchOptimization;
+	setParameter("BatchOptimization", batchOptimization);
+}
+
 bool StartInstancesRequest::getDryRun()const
 {
 	return dryRun_;

+ 21 - 0
ecs/src/model/StartInstancesResult.cc

@@ -39,6 +39,27 @@ void StartInstancesResult::parse(const std::string &payload)
 	Json::Value value;
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
+	auto allInstanceResponsesNode = value["InstanceResponses"]["InstanceResponse"];
+	for (auto valueInstanceResponsesInstanceResponse : allInstanceResponsesNode)
+	{
+		InstanceResponse instanceResponsesObject;
+		if(!valueInstanceResponsesInstanceResponse["InstanceId"].isNull())
+			instanceResponsesObject.instanceId = valueInstanceResponsesInstanceResponse["InstanceId"].asString();
+		if(!valueInstanceResponsesInstanceResponse["PreviousStatus"].isNull())
+			instanceResponsesObject.previousStatus = valueInstanceResponsesInstanceResponse["PreviousStatus"].asString();
+		if(!valueInstanceResponsesInstanceResponse["CurrentStatus"].isNull())
+			instanceResponsesObject.currentStatus = valueInstanceResponsesInstanceResponse["CurrentStatus"].asString();
+		if(!valueInstanceResponsesInstanceResponse["Code"].isNull())
+			instanceResponsesObject.code = valueInstanceResponsesInstanceResponse["Code"].asString();
+		if(!valueInstanceResponsesInstanceResponse["Message"].isNull())
+			instanceResponsesObject.message = valueInstanceResponsesInstanceResponse["Message"].asString();
+		instanceResponses_.push_back(instanceResponsesObject);
+	}
 
 }
 
+std::vector<StartInstancesResult::InstanceResponse> StartInstancesResult::getInstanceResponses()const
+{
+	return instanceResponses_;
+}
+

+ 11 - 0
ecs/src/model/StopInstancesRequest.cc

@@ -71,6 +71,17 @@ void StopInstancesRequest::setRegionId(const std::string& regionId)
 	setParameter("RegionId", regionId);
 }
 
+std::string StopInstancesRequest::getBatchOptimization()const
+{
+	return batchOptimization_;
+}
+
+void StopInstancesRequest::setBatchOptimization(const std::string& batchOptimization)
+{
+	batchOptimization_ = batchOptimization;
+	setParameter("BatchOptimization", batchOptimization);
+}
+
 bool StopInstancesRequest::getDryRun()const
 {
 	return dryRun_;

+ 21 - 0
ecs/src/model/StopInstancesResult.cc

@@ -39,6 +39,27 @@ void StopInstancesResult::parse(const std::string &payload)
 	Json::Value value;
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
+	auto allInstanceResponsesNode = value["InstanceResponses"]["InstanceResponse"];
+	for (auto valueInstanceResponsesInstanceResponse : allInstanceResponsesNode)
+	{
+		InstanceResponse instanceResponsesObject;
+		if(!valueInstanceResponsesInstanceResponse["InstanceId"].isNull())
+			instanceResponsesObject.instanceId = valueInstanceResponsesInstanceResponse["InstanceId"].asString();
+		if(!valueInstanceResponsesInstanceResponse["PreviousStatus"].isNull())
+			instanceResponsesObject.previousStatus = valueInstanceResponsesInstanceResponse["PreviousStatus"].asString();
+		if(!valueInstanceResponsesInstanceResponse["CurrentStatus"].isNull())
+			instanceResponsesObject.currentStatus = valueInstanceResponsesInstanceResponse["CurrentStatus"].asString();
+		if(!valueInstanceResponsesInstanceResponse["Code"].isNull())
+			instanceResponsesObject.code = valueInstanceResponsesInstanceResponse["Code"].asString();
+		if(!valueInstanceResponsesInstanceResponse["Message"].isNull())
+			instanceResponsesObject.message = valueInstanceResponsesInstanceResponse["Message"].asString();
+		instanceResponses_.push_back(instanceResponsesObject);
+	}
 
 }
 
+std::vector<StopInstancesResult::InstanceResponse> StopInstancesResult::getInstanceResponses()const
+{
+	return instanceResponses_;
+}
+