Jelajahi Sumber

Supported multi attach feature for disk.

sdk-team 5 tahun lalu
induk
melakukan
fe0018aad2
74 mengubah file dengan 2829 tambahan dan 436 penghapusan
  1. 3 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 24 0
      ecs/CMakeLists.txt
  4. 48 0
      ecs/include/alibabacloud/ecs/EcsClient.h
  5. 3 0
      ecs/include/alibabacloud/ecs/model/AuthorizeSecurityGroupEgressRequest.h
  6. 3 0
      ecs/include/alibabacloud/ecs/model/AuthorizeSecurityGroupRequest.h
  7. 6 3
      ecs/include/alibabacloud/ecs/model/CreateDiskRequest.h
  8. 2 2
      ecs/include/alibabacloud/ecs/model/CreateInstanceResult.h
  9. 84 0
      ecs/include/alibabacloud/ecs/model/CreatePrefixListRequest.h
  10. 51 0
      ecs/include/alibabacloud/ecs/model/CreatePrefixListResult.h
  11. 3 3
      ecs/include/alibabacloud/ecs/model/CreateSnapshotGroupRequest.h
  12. 63 0
      ecs/include/alibabacloud/ecs/model/DeletePrefixListRequest.h
  13. 49 0
      ecs/include/alibabacloud/ecs/model/DeletePrefixListResult.h
  14. 3 0
      ecs/include/alibabacloud/ecs/model/DescribeDisksRequest.h
  15. 15 7
      ecs/include/alibabacloud/ecs/model/DescribeDisksResult.h
  16. 3 0
      ecs/include/alibabacloud/ecs/model/DescribeInstancesRequest.h
  17. 7 7
      ecs/include/alibabacloud/ecs/model/DescribeInstancesResult.h
  18. 3 0
      ecs/include/alibabacloud/ecs/model/DescribeInvocationsRequest.h
  19. 3 0
      ecs/include/alibabacloud/ecs/model/DescribeNetworkInterfacesRequest.h
  20. 5 5
      ecs/include/alibabacloud/ecs/model/DescribeNetworkInterfacesResult.h
  21. 69 0
      ecs/include/alibabacloud/ecs/model/DescribePrefixListAssociationsRequest.h
  22. 58 0
      ecs/include/alibabacloud/ecs/model/DescribePrefixListAssociationsResult.h
  23. 63 0
      ecs/include/alibabacloud/ecs/model/DescribePrefixListAttributesRequest.h
  24. 68 0
      ecs/include/alibabacloud/ecs/model/DescribePrefixListAttributesResult.h
  25. 75 0
      ecs/include/alibabacloud/ecs/model/DescribePrefixListsRequest.h
  26. 63 0
      ecs/include/alibabacloud/ecs/model/DescribePrefixListsResult.h
  27. 4 0
      ecs/include/alibabacloud/ecs/model/DescribeSecurityGroupAttributeResult.h
  28. 1 1
      ecs/include/alibabacloud/ecs/model/DescribeVSwitchesResult.h
  29. 85 0
      ecs/include/alibabacloud/ecs/model/ModifyPrefixListRequest.h
  30. 49 0
      ecs/include/alibabacloud/ecs/model/ModifyPrefixListResult.h
  31. 3 0
      ecs/include/alibabacloud/ecs/model/ModifySecurityGroupEgressRuleRequest.h
  32. 3 0
      ecs/include/alibabacloud/ecs/model/ModifySecurityGroupRuleRequest.h
  33. 1 1
      ecs/include/alibabacloud/ecs/model/ResetDisksRequest.h
  34. 3 0
      ecs/include/alibabacloud/ecs/model/RevokeSecurityGroupEgressRequest.h
  35. 3 0
      ecs/include/alibabacloud/ecs/model/RevokeSecurityGroupRequest.h
  36. 22 22
      ecs/include/alibabacloud/ecs/model/RunInstancesRequest.h
  37. 2 2
      ecs/include/alibabacloud/ecs/model/RunInstancesResult.h
  38. 216 0
      ecs/src/EcsClient.cc
  39. 11 0
      ecs/src/model/AuthorizeSecurityGroupEgressRequest.cc
  40. 11 0
      ecs/src/model/AuthorizeSecurityGroupRequest.cc
  41. 22 11
      ecs/src/model/CreateDiskRequest.cc
  42. 6 6
      ecs/src/model/CreateInstanceResult.cc
  43. 155 0
      ecs/src/model/CreatePrefixListRequest.cc
  44. 51 0
      ecs/src/model/CreatePrefixListResult.cc
  45. 11 11
      ecs/src/model/CreateSnapshotGroupRequest.cc
  46. 95 0
      ecs/src/model/DeletePrefixListRequest.cc
  47. 44 0
      ecs/src/model/DeletePrefixListResult.cc
  48. 11 0
      ecs/src/model/DescribeDisksRequest.cc
  49. 88 74
      ecs/src/model/DescribeDisksResult.cc
  50. 13 0
      ecs/src/model/DescribeInstancesRequest.cc
  51. 109 109
      ecs/src/model/DescribeInstancesResult.cc
  52. 11 0
      ecs/src/model/DescribeInvocationsRequest.cc
  53. 40 40
      ecs/src/model/DescribeInvocationsResult.cc
  54. 13 0
      ecs/src/model/DescribeNetworkInterfacesRequest.cc
  55. 42 42
      ecs/src/model/DescribeNetworkInterfacesResult.cc
  56. 117 0
      ecs/src/model/DescribePrefixListAssociationsRequest.cc
  57. 66 0
      ecs/src/model/DescribePrefixListAssociationsResult.cc
  58. 95 0
      ecs/src/model/DescribePrefixListAttributesRequest.cc
  59. 101 0
      ecs/src/model/DescribePrefixListAttributesResult.cc
  60. 141 0
      ecs/src/model/DescribePrefixListsRequest.cc
  61. 76 0
      ecs/src/model/DescribePrefixListsResult.cc
  62. 8 0
      ecs/src/model/DescribeSecurityGroupAttributeResult.cc
  63. 18 18
      ecs/src/model/DescribeVSwitchesResult.cc
  64. 148 0
      ecs/src/model/ModifyPrefixListRequest.cc
  65. 44 0
      ecs/src/model/ModifyPrefixListResult.cc
  66. 11 0
      ecs/src/model/ModifySecurityGroupEgressRuleRequest.cc
  67. 11 0
      ecs/src/model/ModifySecurityGroupRuleRequest.cc
  68. 1 1
      ecs/src/model/ResetDisksRequest.cc
  69. 4 4
      ecs/src/model/ResetDisksResult.cc
  70. 11 0
      ecs/src/model/RevokeSecurityGroupEgressRequest.cc
  71. 11 0
      ecs/src/model/RevokeSecurityGroupRequest.cc
  72. 54 54
      ecs/src/model/RunInstancesRequest.cc
  73. 6 6
      ecs/src/model/RunInstancesResult.cc
  74. 6 6
      ecs/src/model/StartInstancesResult.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2021-06-04 Version: 1.36.766
+- Supported multi attach feature for disk.
+
 2021-06-04 Version: 1.36.765
 - Delete live API.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.765
+1.36.766

+ 24 - 0
ecs/CMakeLists.txt

@@ -131,6 +131,8 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/CreateNetworkInterfacePermissionResult.h
 	include/alibabacloud/ecs/model/CreatePhysicalConnectionRequest.h
 	include/alibabacloud/ecs/model/CreatePhysicalConnectionResult.h
+	include/alibabacloud/ecs/model/CreatePrefixListRequest.h
+	include/alibabacloud/ecs/model/CreatePrefixListResult.h
 	include/alibabacloud/ecs/model/CreateRouteEntryRequest.h
 	include/alibabacloud/ecs/model/CreateRouteEntryResult.h
 	include/alibabacloud/ecs/model/CreateRouterInterfaceRequest.h
@@ -203,6 +205,8 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/DeleteNetworkInterfacePermissionResult.h
 	include/alibabacloud/ecs/model/DeletePhysicalConnectionRequest.h
 	include/alibabacloud/ecs/model/DeletePhysicalConnectionResult.h
+	include/alibabacloud/ecs/model/DeletePrefixListRequest.h
+	include/alibabacloud/ecs/model/DeletePrefixListResult.h
 	include/alibabacloud/ecs/model/DeleteRouteEntryRequest.h
 	include/alibabacloud/ecs/model/DeleteRouteEntryResult.h
 	include/alibabacloud/ecs/model/DeleteRouterInterfaceRequest.h
@@ -367,6 +371,12 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/DescribeNewProjectEipMonitorDataResult.h
 	include/alibabacloud/ecs/model/DescribePhysicalConnectionsRequest.h
 	include/alibabacloud/ecs/model/DescribePhysicalConnectionsResult.h
+	include/alibabacloud/ecs/model/DescribePrefixListAssociationsRequest.h
+	include/alibabacloud/ecs/model/DescribePrefixListAssociationsResult.h
+	include/alibabacloud/ecs/model/DescribePrefixListAttributesRequest.h
+	include/alibabacloud/ecs/model/DescribePrefixListAttributesResult.h
+	include/alibabacloud/ecs/model/DescribePrefixListsRequest.h
+	include/alibabacloud/ecs/model/DescribePrefixListsResult.h
 	include/alibabacloud/ecs/model/DescribePriceRequest.h
 	include/alibabacloud/ecs/model/DescribePriceResult.h
 	include/alibabacloud/ecs/model/DescribeRecommendInstanceTypeRequest.h
@@ -563,6 +573,8 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/ModifyNetworkInterfaceAttributeResult.h
 	include/alibabacloud/ecs/model/ModifyPhysicalConnectionAttributeRequest.h
 	include/alibabacloud/ecs/model/ModifyPhysicalConnectionAttributeResult.h
+	include/alibabacloud/ecs/model/ModifyPrefixListRequest.h
+	include/alibabacloud/ecs/model/ModifyPrefixListResult.h
 	include/alibabacloud/ecs/model/ModifyPrepayInstanceSpecRequest.h
 	include/alibabacloud/ecs/model/ModifyPrepayInstanceSpecResult.h
 	include/alibabacloud/ecs/model/ModifyReservedInstanceAttributeRequest.h
@@ -800,6 +812,8 @@ set(ecs_src
 	src/model/CreateNetworkInterfacePermissionResult.cc
 	src/model/CreatePhysicalConnectionRequest.cc
 	src/model/CreatePhysicalConnectionResult.cc
+	src/model/CreatePrefixListRequest.cc
+	src/model/CreatePrefixListResult.cc
 	src/model/CreateRouteEntryRequest.cc
 	src/model/CreateRouteEntryResult.cc
 	src/model/CreateRouterInterfaceRequest.cc
@@ -872,6 +886,8 @@ set(ecs_src
 	src/model/DeleteNetworkInterfacePermissionResult.cc
 	src/model/DeletePhysicalConnectionRequest.cc
 	src/model/DeletePhysicalConnectionResult.cc
+	src/model/DeletePrefixListRequest.cc
+	src/model/DeletePrefixListResult.cc
 	src/model/DeleteRouteEntryRequest.cc
 	src/model/DeleteRouteEntryResult.cc
 	src/model/DeleteRouterInterfaceRequest.cc
@@ -1036,6 +1052,12 @@ set(ecs_src
 	src/model/DescribeNewProjectEipMonitorDataResult.cc
 	src/model/DescribePhysicalConnectionsRequest.cc
 	src/model/DescribePhysicalConnectionsResult.cc
+	src/model/DescribePrefixListAssociationsRequest.cc
+	src/model/DescribePrefixListAssociationsResult.cc
+	src/model/DescribePrefixListAttributesRequest.cc
+	src/model/DescribePrefixListAttributesResult.cc
+	src/model/DescribePrefixListsRequest.cc
+	src/model/DescribePrefixListsResult.cc
 	src/model/DescribePriceRequest.cc
 	src/model/DescribePriceResult.cc
 	src/model/DescribeRecommendInstanceTypeRequest.cc
@@ -1232,6 +1254,8 @@ set(ecs_src
 	src/model/ModifyNetworkInterfaceAttributeResult.cc
 	src/model/ModifyPhysicalConnectionAttributeRequest.cc
 	src/model/ModifyPhysicalConnectionAttributeResult.cc
+	src/model/ModifyPrefixListRequest.cc
+	src/model/ModifyPrefixListResult.cc
 	src/model/ModifyPrepayInstanceSpecRequest.cc
 	src/model/ModifyPrepayInstanceSpecResult.cc
 	src/model/ModifyReservedInstanceAttributeRequest.cc

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

@@ -132,6 +132,8 @@
 #include "model/CreateNetworkInterfacePermissionResult.h"
 #include "model/CreatePhysicalConnectionRequest.h"
 #include "model/CreatePhysicalConnectionResult.h"
+#include "model/CreatePrefixListRequest.h"
+#include "model/CreatePrefixListResult.h"
 #include "model/CreateRouteEntryRequest.h"
 #include "model/CreateRouteEntryResult.h"
 #include "model/CreateRouterInterfaceRequest.h"
@@ -204,6 +206,8 @@
 #include "model/DeleteNetworkInterfacePermissionResult.h"
 #include "model/DeletePhysicalConnectionRequest.h"
 #include "model/DeletePhysicalConnectionResult.h"
+#include "model/DeletePrefixListRequest.h"
+#include "model/DeletePrefixListResult.h"
 #include "model/DeleteRouteEntryRequest.h"
 #include "model/DeleteRouteEntryResult.h"
 #include "model/DeleteRouterInterfaceRequest.h"
@@ -368,6 +372,12 @@
 #include "model/DescribeNewProjectEipMonitorDataResult.h"
 #include "model/DescribePhysicalConnectionsRequest.h"
 #include "model/DescribePhysicalConnectionsResult.h"
+#include "model/DescribePrefixListAssociationsRequest.h"
+#include "model/DescribePrefixListAssociationsResult.h"
+#include "model/DescribePrefixListAttributesRequest.h"
+#include "model/DescribePrefixListAttributesResult.h"
+#include "model/DescribePrefixListsRequest.h"
+#include "model/DescribePrefixListsResult.h"
 #include "model/DescribePriceRequest.h"
 #include "model/DescribePriceResult.h"
 #include "model/DescribeRecommendInstanceTypeRequest.h"
@@ -564,6 +574,8 @@
 #include "model/ModifyNetworkInterfaceAttributeResult.h"
 #include "model/ModifyPhysicalConnectionAttributeRequest.h"
 #include "model/ModifyPhysicalConnectionAttributeResult.h"
+#include "model/ModifyPrefixListRequest.h"
+#include "model/ModifyPrefixListResult.h"
 #include "model/ModifyPrepayInstanceSpecRequest.h"
 #include "model/ModifyPrepayInstanceSpecResult.h"
 #include "model/ModifyReservedInstanceAttributeRequest.h"
@@ -862,6 +874,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreatePhysicalConnectionResult> CreatePhysicalConnectionOutcome;
 			typedef std::future<CreatePhysicalConnectionOutcome> CreatePhysicalConnectionOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::CreatePhysicalConnectionRequest&, const CreatePhysicalConnectionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreatePhysicalConnectionAsyncHandler;
+			typedef Outcome<Error, Model::CreatePrefixListResult> CreatePrefixListOutcome;
+			typedef std::future<CreatePrefixListOutcome> CreatePrefixListOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::CreatePrefixListRequest&, const CreatePrefixListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreatePrefixListAsyncHandler;
 			typedef Outcome<Error, Model::CreateRouteEntryResult> CreateRouteEntryOutcome;
 			typedef std::future<CreateRouteEntryOutcome> CreateRouteEntryOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::CreateRouteEntryRequest&, const CreateRouteEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateRouteEntryAsyncHandler;
@@ -970,6 +985,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeletePhysicalConnectionResult> DeletePhysicalConnectionOutcome;
 			typedef std::future<DeletePhysicalConnectionOutcome> DeletePhysicalConnectionOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DeletePhysicalConnectionRequest&, const DeletePhysicalConnectionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeletePhysicalConnectionAsyncHandler;
+			typedef Outcome<Error, Model::DeletePrefixListResult> DeletePrefixListOutcome;
+			typedef std::future<DeletePrefixListOutcome> DeletePrefixListOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::DeletePrefixListRequest&, const DeletePrefixListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeletePrefixListAsyncHandler;
 			typedef Outcome<Error, Model::DeleteRouteEntryResult> DeleteRouteEntryOutcome;
 			typedef std::future<DeleteRouteEntryOutcome> DeleteRouteEntryOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DeleteRouteEntryRequest&, const DeleteRouteEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteRouteEntryAsyncHandler;
@@ -1216,6 +1234,15 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribePhysicalConnectionsResult> DescribePhysicalConnectionsOutcome;
 			typedef std::future<DescribePhysicalConnectionsOutcome> DescribePhysicalConnectionsOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DescribePhysicalConnectionsRequest&, const DescribePhysicalConnectionsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribePhysicalConnectionsAsyncHandler;
+			typedef Outcome<Error, Model::DescribePrefixListAssociationsResult> DescribePrefixListAssociationsOutcome;
+			typedef std::future<DescribePrefixListAssociationsOutcome> DescribePrefixListAssociationsOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::DescribePrefixListAssociationsRequest&, const DescribePrefixListAssociationsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribePrefixListAssociationsAsyncHandler;
+			typedef Outcome<Error, Model::DescribePrefixListAttributesResult> DescribePrefixListAttributesOutcome;
+			typedef std::future<DescribePrefixListAttributesOutcome> DescribePrefixListAttributesOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::DescribePrefixListAttributesRequest&, const DescribePrefixListAttributesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribePrefixListAttributesAsyncHandler;
+			typedef Outcome<Error, Model::DescribePrefixListsResult> DescribePrefixListsOutcome;
+			typedef std::future<DescribePrefixListsOutcome> DescribePrefixListsOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::DescribePrefixListsRequest&, const DescribePrefixListsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribePrefixListsAsyncHandler;
 			typedef Outcome<Error, Model::DescribePriceResult> DescribePriceOutcome;
 			typedef std::future<DescribePriceOutcome> DescribePriceOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DescribePriceRequest&, const DescribePriceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribePriceAsyncHandler;
@@ -1510,6 +1537,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ModifyPhysicalConnectionAttributeResult> ModifyPhysicalConnectionAttributeOutcome;
 			typedef std::future<ModifyPhysicalConnectionAttributeOutcome> ModifyPhysicalConnectionAttributeOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::ModifyPhysicalConnectionAttributeRequest&, const ModifyPhysicalConnectionAttributeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyPhysicalConnectionAttributeAsyncHandler;
+			typedef Outcome<Error, Model::ModifyPrefixListResult> ModifyPrefixListOutcome;
+			typedef std::future<ModifyPrefixListOutcome> ModifyPrefixListOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::ModifyPrefixListRequest&, const ModifyPrefixListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyPrefixListAsyncHandler;
 			typedef Outcome<Error, Model::ModifyPrepayInstanceSpecResult> ModifyPrepayInstanceSpecOutcome;
 			typedef std::future<ModifyPrepayInstanceSpecOutcome> ModifyPrepayInstanceSpecOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::ModifyPrepayInstanceSpecRequest&, const ModifyPrepayInstanceSpecOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyPrepayInstanceSpecAsyncHandler;
@@ -1866,6 +1896,9 @@ namespace AlibabaCloud
 			CreatePhysicalConnectionOutcome createPhysicalConnection(const Model::CreatePhysicalConnectionRequest &request)const;
 			void createPhysicalConnectionAsync(const Model::CreatePhysicalConnectionRequest& request, const CreatePhysicalConnectionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreatePhysicalConnectionOutcomeCallable createPhysicalConnectionCallable(const Model::CreatePhysicalConnectionRequest& request) const;
+			CreatePrefixListOutcome createPrefixList(const Model::CreatePrefixListRequest &request)const;
+			void createPrefixListAsync(const Model::CreatePrefixListRequest& request, const CreatePrefixListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreatePrefixListOutcomeCallable createPrefixListCallable(const Model::CreatePrefixListRequest& request) const;
 			CreateRouteEntryOutcome createRouteEntry(const Model::CreateRouteEntryRequest &request)const;
 			void createRouteEntryAsync(const Model::CreateRouteEntryRequest& request, const CreateRouteEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateRouteEntryOutcomeCallable createRouteEntryCallable(const Model::CreateRouteEntryRequest& request) const;
@@ -1974,6 +2007,9 @@ namespace AlibabaCloud
 			DeletePhysicalConnectionOutcome deletePhysicalConnection(const Model::DeletePhysicalConnectionRequest &request)const;
 			void deletePhysicalConnectionAsync(const Model::DeletePhysicalConnectionRequest& request, const DeletePhysicalConnectionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeletePhysicalConnectionOutcomeCallable deletePhysicalConnectionCallable(const Model::DeletePhysicalConnectionRequest& request) const;
+			DeletePrefixListOutcome deletePrefixList(const Model::DeletePrefixListRequest &request)const;
+			void deletePrefixListAsync(const Model::DeletePrefixListRequest& request, const DeletePrefixListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeletePrefixListOutcomeCallable deletePrefixListCallable(const Model::DeletePrefixListRequest& request) const;
 			DeleteRouteEntryOutcome deleteRouteEntry(const Model::DeleteRouteEntryRequest &request)const;
 			void deleteRouteEntryAsync(const Model::DeleteRouteEntryRequest& request, const DeleteRouteEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteRouteEntryOutcomeCallable deleteRouteEntryCallable(const Model::DeleteRouteEntryRequest& request) const;
@@ -2220,6 +2256,15 @@ namespace AlibabaCloud
 			DescribePhysicalConnectionsOutcome describePhysicalConnections(const Model::DescribePhysicalConnectionsRequest &request)const;
 			void describePhysicalConnectionsAsync(const Model::DescribePhysicalConnectionsRequest& request, const DescribePhysicalConnectionsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribePhysicalConnectionsOutcomeCallable describePhysicalConnectionsCallable(const Model::DescribePhysicalConnectionsRequest& request) const;
+			DescribePrefixListAssociationsOutcome describePrefixListAssociations(const Model::DescribePrefixListAssociationsRequest &request)const;
+			void describePrefixListAssociationsAsync(const Model::DescribePrefixListAssociationsRequest& request, const DescribePrefixListAssociationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribePrefixListAssociationsOutcomeCallable describePrefixListAssociationsCallable(const Model::DescribePrefixListAssociationsRequest& request) const;
+			DescribePrefixListAttributesOutcome describePrefixListAttributes(const Model::DescribePrefixListAttributesRequest &request)const;
+			void describePrefixListAttributesAsync(const Model::DescribePrefixListAttributesRequest& request, const DescribePrefixListAttributesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribePrefixListAttributesOutcomeCallable describePrefixListAttributesCallable(const Model::DescribePrefixListAttributesRequest& request) const;
+			DescribePrefixListsOutcome describePrefixLists(const Model::DescribePrefixListsRequest &request)const;
+			void describePrefixListsAsync(const Model::DescribePrefixListsRequest& request, const DescribePrefixListsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribePrefixListsOutcomeCallable describePrefixListsCallable(const Model::DescribePrefixListsRequest& request) const;
 			DescribePriceOutcome describePrice(const Model::DescribePriceRequest &request)const;
 			void describePriceAsync(const Model::DescribePriceRequest& request, const DescribePriceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribePriceOutcomeCallable describePriceCallable(const Model::DescribePriceRequest& request) const;
@@ -2514,6 +2559,9 @@ namespace AlibabaCloud
 			ModifyPhysicalConnectionAttributeOutcome modifyPhysicalConnectionAttribute(const Model::ModifyPhysicalConnectionAttributeRequest &request)const;
 			void modifyPhysicalConnectionAttributeAsync(const Model::ModifyPhysicalConnectionAttributeRequest& request, const ModifyPhysicalConnectionAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ModifyPhysicalConnectionAttributeOutcomeCallable modifyPhysicalConnectionAttributeCallable(const Model::ModifyPhysicalConnectionAttributeRequest& request) const;
+			ModifyPrefixListOutcome modifyPrefixList(const Model::ModifyPrefixListRequest &request)const;
+			void modifyPrefixListAsync(const Model::ModifyPrefixListRequest& request, const ModifyPrefixListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ModifyPrefixListOutcomeCallable modifyPrefixListCallable(const Model::ModifyPrefixListRequest& request) const;
 			ModifyPrepayInstanceSpecOutcome modifyPrepayInstanceSpec(const Model::ModifyPrepayInstanceSpecRequest &request)const;
 			void modifyPrepayInstanceSpecAsync(const Model::ModifyPrepayInstanceSpecRequest& request, const ModifyPrepayInstanceSpecAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ModifyPrepayInstanceSpecOutcomeCallable modifyPrepayInstanceSpecCallable(const Model::ModifyPrepayInstanceSpecRequest& request) const;

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

@@ -43,6 +43,8 @@ namespace AlibabaCloud
 				void setSourcePortRange(const std::string& sourcePortRange);
 				std::string getClientToken()const;
 				void setClientToken(const std::string& clientToken);
+				std::string getDestPrefixListId()const;
+				void setDestPrefixListId(const std::string& destPrefixListId);
 				std::string getSecurityGroupId()const;
 				void setSecurityGroupId(const std::string& securityGroupId);
 				std::string getDescription()const;
@@ -83,6 +85,7 @@ namespace AlibabaCloud
 				long resourceOwnerId_;
 				std::string sourcePortRange_;
 				std::string clientToken_;
+				std::string destPrefixListId_;
 				std::string securityGroupId_;
 				std::string description_;
 				std::string regionId_;

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

@@ -39,6 +39,8 @@ namespace AlibabaCloud
 				void setNicType(const std::string& nicType);
 				long getResourceOwnerId()const;
 				void setResourceOwnerId(long resourceOwnerId);
+				std::string getSourcePrefixListId()const;
+				void setSourcePrefixListId(const std::string& sourcePrefixListId);
 				std::string getSourcePortRange()const;
 				void setSourcePortRange(const std::string& sourcePortRange);
 				std::string getClientToken()const;
@@ -81,6 +83,7 @@ namespace AlibabaCloud
             private:
 				std::string nicType_;
 				long resourceOwnerId_;
+				std::string sourcePrefixListId_;
 				std::string sourcePortRange_;
 				std::string clientToken_;
 				std::string securityGroupId_;

+ 6 - 3
ecs/include/alibabacloud/ecs/model/CreateDiskRequest.h

@@ -67,12 +67,14 @@ namespace AlibabaCloud
 				void setDiskCategory(const std::string& diskCategory);
 				int getStorageSetPartitionNumber()const;
 				void setStorageSetPartitionNumber(int storageSetPartitionNumber);
+				std::string getMultiAttach()const;
+				void setMultiAttach(const std::string& multiAttach);
 				std::vector<Tag> getTag()const;
 				void setTag(const std::vector<Tag>& tag);
-				std::vector<Arn> getArn()const;
-				void setArn(const std::vector<Arn>& arn);
 				std::string getAdvancedFeatures()const;
 				void setAdvancedFeatures(const std::string& advancedFeatures);
+				std::vector<Arn> getArn()const;
+				void setArn(const std::vector<Arn>& arn);
 				std::string getDedicatedBlockStorageClusterId()const;
 				void setDedicatedBlockStorageClusterId(const std::string& dedicatedBlockStorageClusterId);
 				std::string getResourceOwnerAccount()const;
@@ -107,9 +109,10 @@ namespace AlibabaCloud
 				std::string regionId_;
 				std::string diskCategory_;
 				int storageSetPartitionNumber_;
+				std::string multiAttach_;
 				std::vector<Tag> tag_;
-				std::vector<Arn> arn_;
 				std::string advancedFeatures_;
+				std::vector<Arn> arn_;
 				std::string dedicatedBlockStorageClusterId_;
 				std::string resourceOwnerAccount_;
 				std::string performanceLevel_;

+ 2 - 2
ecs/include/alibabacloud/ecs/model/CreateInstanceResult.h

@@ -38,15 +38,15 @@ namespace AlibabaCloud
 				explicit CreateInstanceResult(const std::string &payload);
 				~CreateInstanceResult();
 				std::string getInstanceId()const;
-				float getTradePrice()const;
 				std::string getOrderId()const;
+				float getTradePrice()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
 				std::string instanceId_;
-				float tradePrice_;
 				std::string orderId_;
+				float tradePrice_;
 
 			};
 		}

+ 84 - 0
ecs/include/alibabacloud/ecs/model/CreatePrefixListRequest.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_CREATEPREFIXLISTREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_CREATEPREFIXLISTREQUEST_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 CreatePrefixListRequest : public RpcServiceRequest
+			{
+			public:
+				struct Entry
+				{
+					std::string cidr;
+					std::string description;
+				};
+
+			public:
+				CreatePrefixListRequest();
+				~CreatePrefixListRequest();
+
+				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);
+				int getMaxEntries()const;
+				void setMaxEntries(int maxEntries);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				std::string getAddressFamily()const;
+				void setAddressFamily(const std::string& addressFamily);
+				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 getPrefixListName()const;
+				void setPrefixListName(const std::string& prefixListName);
+				std::vector<Entry> getEntry()const;
+				void setEntry(const std::vector<Entry>& entry);
+
+            private:
+				long resourceOwnerId_;
+				std::string clientToken_;
+				std::string description_;
+				int maxEntries_;
+				std::string regionId_;
+				std::string addressFamily_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				long ownerId_;
+				std::string prefixListName_;
+				std::vector<Entry> entry_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_CREATEPREFIXLISTREQUEST_H_

+ 51 - 0
ecs/include/alibabacloud/ecs/model/CreatePrefixListResult.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_CREATEPREFIXLISTRESULT_H_
+#define ALIBABACLOUD_ECS_MODEL_CREATEPREFIXLISTRESULT_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 CreatePrefixListResult : public ServiceResult
+			{
+			public:
+
+
+				CreatePrefixListResult();
+				explicit CreatePrefixListResult(const std::string &payload);
+				~CreatePrefixListResult();
+				std::string getPrefixListId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string prefixListId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_CREATEPREFIXLISTRESULT_H_

+ 3 - 3
ecs/include/alibabacloud/ecs/model/CreateSnapshotGroupRequest.h

@@ -37,10 +37,10 @@ namespace AlibabaCloud
 
 				long getResourceOwnerId()const;
 				void setResourceOwnerId(long resourceOwnerId);
-				std::vector<std::string> getExcludeDiskId()const;
-				void setExcludeDiskId(const std::vector<std::string>& excludeDiskId);
 				bool getInstantAccess()const;
 				void setInstantAccess(bool instantAccess);
+				std::vector<std::string> getExcludeDiskId()const;
+				void setExcludeDiskId(const std::vector<std::string>& excludeDiskId);
 				std::string getDescription()const;
 				void setDescription(const std::string& description);
 				int getInstantAccessRetentionDays()const;
@@ -60,8 +60,8 @@ namespace AlibabaCloud
 
             private:
 				long resourceOwnerId_;
-				std::vector<std::string> excludeDiskId_;
 				bool instantAccess_;
+				std::vector<std::string> excludeDiskId_;
 				std::string description_;
 				int instantAccessRetentionDays_;
 				std::string regionId_;

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

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_DELETEPREFIXLISTREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_DELETEPREFIXLISTREQUEST_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 DeletePrefixListRequest : public RpcServiceRequest
+			{
+
+			public:
+				DeletePrefixListRequest();
+				~DeletePrefixListRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				std::string getPrefixListId()const;
+				void setPrefixListId(const std::string& prefixListId);
+				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);
+
+            private:
+				long resourceOwnerId_;
+				std::string regionId_;
+				std::string prefixListId_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				long ownerId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_DELETEPREFIXLISTREQUEST_H_

+ 49 - 0
ecs/include/alibabacloud/ecs/model/DeletePrefixListResult.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_DELETEPREFIXLISTRESULT_H_
+#define ALIBABACLOUD_ECS_MODEL_DELETEPREFIXLISTRESULT_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 DeletePrefixListResult : public ServiceResult
+			{
+			public:
+
+
+				DeletePrefixListResult();
+				explicit DeletePrefixListResult(const std::string &payload);
+				~DeletePrefixListResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_DELETEPREFIXLISTRESULT_H_

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

@@ -93,6 +93,8 @@ namespace AlibabaCloud
 				void setPageSize(int pageSize);
 				std::string getDiskIds()const;
 				void setDiskIds(const std::string& diskIds);
+				std::string getMultiAttach()const;
+				void setMultiAttach(const std::string& multiAttach);
 				bool getDeleteWithInstance()const;
 				void setDeleteWithInstance(bool deleteWithInstance);
 				std::string getResourceOwnerAccount()const;
@@ -141,6 +143,7 @@ namespace AlibabaCloud
 				std::string nextToken_;
 				int pageSize_;
 				std::string diskIds_;
+				std::string multiAttach_;
 				bool deleteWithInstance_;
 				std::string resourceOwnerAccount_;
 				std::string ownerAccount_;

+ 15 - 7
ecs/include/alibabacloud/ecs/model/DescribeDisksResult.h

@@ -49,32 +49,40 @@ namespace AlibabaCloud
 						std::string tagKey;
 						std::string tagValue;
 					};
+					struct Attachment
+					{
+						std::string attachedTime;
+						std::string instanceId;
+						std::string device;
+					};
 					std::string detachedTime;
 					std::string description;
-					std::string category;
 					std::string kMSKeyId;
+					std::string category;
 					std::string resourceGroupId;
 					std::string dedicatedBlockStorageClusterId;
-					int size;
 					bool encrypted;
+					int size;
 					bool deleteAutoSnapshot;
 					std::string diskChargeType;
 					int storageSetPartitionNumber;
 					int iOPS;
+					std::vector<Disk::Attachment> attachments;
+					std::string multiAttach;
 					std::string expiredTime;
 					std::string imageId;
 					std::string storageSetId;
 					std::vector<Disk::Tag> tags;
 					std::string status;
-					std::string attachedTime;
 					int iOPSRead;
+					std::string attachedTime;
 					int iOPSWrite;
 					std::string zoneId;
 					std::string sourceSnapshotId;
-					std::string productCode;
 					std::string instanceId;
-					std::string device;
+					std::string productCode;
 					std::string performanceLevel;
+					std::string device;
 					bool deleteWithInstance;
 					bool enableAutomatedSnapshotPolicy;
 					bool enableAutoSnapshot;
@@ -97,8 +105,8 @@ namespace AlibabaCloud
 				explicit DescribeDisksResult(const std::string &payload);
 				~DescribeDisksResult();
 				int getTotalCount()const;
-				int getPageSize()const;
 				std::string getNextToken()const;
+				int getPageSize()const;
 				int getPageNumber()const;
 				std::vector<Disk> getDisks()const;
 
@@ -106,8 +114,8 @@ namespace AlibabaCloud
 				void parse(const std::string &payload);
 			private:
 				int totalCount_;
-				int pageSize_;
 				std::string nextToken_;
+				int pageSize_;
 				int pageNumber_;
 				std::vector<Disk> disks_;
 

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

@@ -89,6 +89,8 @@ namespace AlibabaCloud
 				void setZoneId(const std::string& zoneId);
 				int getMaxResults()const;
 				void setMaxResults(int maxResults);
+				std::vector<std::string> getIpv6Address()const;
+				void setIpv6Address(const std::vector<std::string>& ipv6Address);
 				std::string getInstanceNetworkType()const;
 				void setInstanceNetworkType(const std::string& instanceNetworkType);
 				std::string getStatus()const;
@@ -163,6 +165,7 @@ namespace AlibabaCloud
 				std::string internetChargeType_;
 				std::string zoneId_;
 				int maxResults_;
+				std::vector<std::string> ipv6Address_;
 				std::string instanceNetworkType_;
 				std::string status_;
 				std::string imageId_;

+ 7 - 7
ecs/include/alibabacloud/ecs/model/DescribeInstancesResult.h

@@ -43,8 +43,8 @@ namespace AlibabaCloud
 					};
 					struct EipAddress
 					{
-						std::string allocationId;
 						int bandwidth;
+						std::string allocationId;
 						std::string ipAddress;
 						bool isSupportUnassociate;
 						std::string internetChargeType;
@@ -95,8 +95,8 @@ namespace AlibabaCloud
 						std::string type;
 						std::vector<NetworkInterface::Ipv6Set> ipv6Sets;
 						std::string primaryIpAddress;
-						std::string networkInterfaceId;
 						std::string macAddress;
+						std::string networkInterfaceId;
 						std::vector<NetworkInterface::PrivateIpSet> privateIpSets;
 					};
 					struct LockReason
@@ -120,8 +120,8 @@ namespace AlibabaCloud
 					EipAddress eipAddress;
 					std::string imageId;
 					std::vector<Instance::Tag> tags;
-					std::string hostName;
 					std::string vlanId;
+					std::string hostName;
 					std::string status;
 					HibernationOptions hibernationOptions;
 					MetadataOptions metadataOptions;
@@ -133,8 +133,8 @@ namespace AlibabaCloud
 					VpcAttributes vpcAttributes;
 					std::vector<std::string> securityGroupIds;
 					std::string internetChargeType;
-					std::string instanceName;
 					std::string deploymentSetId;
+					std::string instanceName;
 					int internetMaxBandwidthOut;
 					std::string serialNumber;
 					std::string oSType;
@@ -153,8 +153,8 @@ namespace AlibabaCloud
 					std::string saleCycle;
 					bool deviceAvailable;
 					std::string instanceType;
-					std::string oSNameEn;
 					std::string spotStrategy;
+					std::string oSNameEn;
 					std::string keyPairName;
 					bool ioOptimized;
 					std::string zoneId;
@@ -179,8 +179,8 @@ namespace AlibabaCloud
 				~DescribeInstancesResult();
 				std::vector<Instance> getInstances()const;
 				int getTotalCount()const;
-				int getPageSize()const;
 				std::string getNextToken()const;
+				int getPageSize()const;
 				int getPageNumber()const;
 
 			protected:
@@ -188,8 +188,8 @@ namespace AlibabaCloud
 			private:
 				std::vector<Instance> instances_;
 				int totalCount_;
-				int pageSize_;
 				std::string nextToken_;
+				int pageSize_;
 				int pageNumber_;
 
 			};

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

@@ -49,6 +49,8 @@ namespace AlibabaCloud
 				void setRegionId(const std::string& regionId);
 				std::string getContentEncoding()const;
 				void setContentEncoding(const std::string& contentEncoding);
+				std::string getRepeatMode()const;
+				void setRepeatMode(const std::string& repeatMode);
 				long getPageSize()const;
 				void setPageSize(long pageSize);
 				std::string getInvokeId()const;
@@ -76,6 +78,7 @@ namespace AlibabaCloud
 				long pageNumber_;
 				std::string regionId_;
 				std::string contentEncoding_;
+				std::string repeatMode_;
 				long pageSize_;
 				std::string invokeId_;
 				bool timed_;

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

@@ -83,6 +83,8 @@ namespace AlibabaCloud
 				void setMaxResults(int maxResults);
 				std::vector<std::string> getNetworkInterfaceId()const;
 				void setNetworkInterfaceId(const std::vector<std::string>& networkInterfaceId);
+				std::vector<std::string> getIpv6Address()const;
+				void setIpv6Address(const std::vector<std::string>& ipv6Address);
 				std::string getStatus()const;
 				void setStatus(const std::string& status);
 
@@ -108,6 +110,7 @@ namespace AlibabaCloud
 				std::string primaryIpAddress_;
 				int maxResults_;
 				std::vector<std::string> networkInterfaceId_;
+				std::vector<std::string> ipv6Address_;
 				std::string status_;
 
 			};

+ 5 - 5
ecs/include/alibabacloud/ecs/model/DescribeNetworkInterfacesResult.h

@@ -65,10 +65,10 @@ namespace AlibabaCloud
 						std::string tagKey;
 						std::string tagValue;
 					};
-					std::string privateIpAddress;
 					std::string description;
-					std::string resourceGroupId;
+					std::string privateIpAddress;
 					bool serviceManaged;
+					std::string resourceGroupId;
 					Attachment attachment;
 					std::string networkInterfaceId;
 					std::vector<NetworkInterfaceSet::Ipv6Set> ipv6Sets;
@@ -85,8 +85,8 @@ namespace AlibabaCloud
 					std::vector<std::string> securityGroupIds;
 					long serviceID;
 					std::string type;
-					int queueNumber;
 					int queuePairNumber;
+					int queueNumber;
 					std::string vpcId;
 					std::string creationTime;
 					std::vector<NetworkInterfaceSet::PrivateIpSet> privateIpSets;
@@ -97,8 +97,8 @@ namespace AlibabaCloud
 				explicit DescribeNetworkInterfacesResult(const std::string &payload);
 				~DescribeNetworkInterfacesResult();
 				int getTotalCount()const;
-				int getPageSize()const;
 				std::string getNextToken()const;
+				int getPageSize()const;
 				int getPageNumber()const;
 				std::vector<NetworkInterfaceSet> getNetworkInterfaceSets()const;
 
@@ -106,8 +106,8 @@ namespace AlibabaCloud
 				void parse(const std::string &payload);
 			private:
 				int totalCount_;
-				int pageSize_;
 				std::string nextToken_;
+				int pageSize_;
 				int pageNumber_;
 				std::vector<NetworkInterfaceSet> networkInterfaceSets_;
 

+ 69 - 0
ecs/include/alibabacloud/ecs/model/DescribePrefixListAssociationsRequest.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_DESCRIBEPREFIXLISTASSOCIATIONSREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_DESCRIBEPREFIXLISTASSOCIATIONSREQUEST_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 DescribePrefixListAssociationsRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribePrefixListAssociationsRequest();
+				~DescribePrefixListAssociationsRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				std::string getPrefixListId()const;
+				void setPrefixListId(const std::string& prefixListId);
+				std::string getNextToken()const;
+				void setNextToken(const std::string& nextToken);
+				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);
+				int getMaxResults()const;
+				void setMaxResults(int maxResults);
+
+            private:
+				long resourceOwnerId_;
+				std::string regionId_;
+				std::string prefixListId_;
+				std::string nextToken_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				long ownerId_;
+				int maxResults_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_DESCRIBEPREFIXLISTASSOCIATIONSREQUEST_H_

+ 58 - 0
ecs/include/alibabacloud/ecs/model/DescribePrefixListAssociationsResult.h

@@ -0,0 +1,58 @@
+/*
+ * 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_DESCRIBEPREFIXLISTASSOCIATIONSRESULT_H_
+#define ALIBABACLOUD_ECS_MODEL_DESCRIBEPREFIXLISTASSOCIATIONSRESULT_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 DescribePrefixListAssociationsResult : public ServiceResult
+			{
+			public:
+				struct PrefixListAssociation
+				{
+					std::string resourceId;
+					std::string resourceType;
+				};
+
+
+				DescribePrefixListAssociationsResult();
+				explicit DescribePrefixListAssociationsResult(const std::string &payload);
+				~DescribePrefixListAssociationsResult();
+				std::string getNextToken()const;
+				std::vector<PrefixListAssociation> getPrefixListAssociations()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string nextToken_;
+				std::vector<PrefixListAssociation> prefixListAssociations_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_DESCRIBEPREFIXLISTASSOCIATIONSRESULT_H_

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

@@ -0,0 +1,63 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_DESCRIBEPREFIXLISTATTRIBUTESREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_DESCRIBEPREFIXLISTATTRIBUTESREQUEST_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 DescribePrefixListAttributesRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribePrefixListAttributesRequest();
+				~DescribePrefixListAttributesRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				std::string getPrefixListId()const;
+				void setPrefixListId(const std::string& prefixListId);
+				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);
+
+            private:
+				long resourceOwnerId_;
+				std::string regionId_;
+				std::string prefixListId_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				long ownerId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_DESCRIBEPREFIXLISTATTRIBUTESREQUEST_H_

+ 68 - 0
ecs/include/alibabacloud/ecs/model/DescribePrefixListAttributesResult.h

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

+ 75 - 0
ecs/include/alibabacloud/ecs/model/DescribePrefixListsRequest.h

@@ -0,0 +1,75 @@
+/*
+ * 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_DESCRIBEPREFIXLISTSREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_DESCRIBEPREFIXLISTSREQUEST_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 DescribePrefixListsRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribePrefixListsRequest();
+				~DescribePrefixListsRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				std::vector<std::string> getPrefixListId()const;
+				void setPrefixListId(const std::vector<std::string>& prefixListId);
+				std::string getNextToken()const;
+				void setNextToken(const std::string& nextToken);
+				std::string getAddressFamily()const;
+				void setAddressFamily(const std::string& addressFamily);
+				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 getPrefixListName()const;
+				void setPrefixListName(const std::string& prefixListName);
+				int getMaxResults()const;
+				void setMaxResults(int maxResults);
+
+            private:
+				long resourceOwnerId_;
+				std::string regionId_;
+				std::vector<std::string> prefixListId_;
+				std::string nextToken_;
+				std::string addressFamily_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				long ownerId_;
+				std::string prefixListName_;
+				int maxResults_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_DESCRIBEPREFIXLISTSREQUEST_H_

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

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

+ 4 - 0
ecs/include/alibabacloud/ecs/model/DescribeSecurityGroupAttributeResult.h

@@ -40,6 +40,7 @@ namespace AlibabaCloud
 					std::string sourcePortRange;
 					std::string priority;
 					std::string createTime;
+					std::string destPrefixListName;
 					std::string ipv6SourceCidrIp;
 					std::string nicType;
 					std::string destGroupId;
@@ -47,12 +48,15 @@ namespace AlibabaCloud
 					std::string sourceGroupName;
 					std::string portRange;
 					std::string destGroupOwnerAccount;
+					std::string destPrefixListId;
 					std::string sourceCidrIp;
+					std::string sourcePrefixListName;
 					std::string ipProtocol;
 					std::string destGroupName;
 					std::string destCidrIp;
 					std::string sourceGroupOwnerAccount;
 					std::string ipv6DestCidrIp;
+					std::string sourcePrefixListId;
 				};
 
 

+ 1 - 1
ecs/include/alibabacloud/ecs/model/DescribeVSwitchesResult.h

@@ -38,8 +38,8 @@ namespace AlibabaCloud
 					bool isDefault;
 					std::string description;
 					std::string vpcId;
-					std::string zoneId;
 					std::string resourceGroupId;
+					std::string zoneId;
 					std::string vSwitchId;
 					long availableIpAddressCount;
 					std::string creationTime;

+ 85 - 0
ecs/include/alibabacloud/ecs/model/ModifyPrefixListRequest.h

@@ -0,0 +1,85 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_MODIFYPREFIXLISTREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_MODIFYPREFIXLISTREQUEST_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 ModifyPrefixListRequest : public RpcServiceRequest
+			{
+			public:
+				struct AddEntry
+				{
+					std::string cidr;
+					std::string description;
+				};
+				struct RemoveEntry
+				{
+					std::string cidr;
+				};
+
+			public:
+				ModifyPrefixListRequest();
+				~ModifyPrefixListRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getDescription()const;
+				void setDescription(const std::string& description);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				std::string getPrefixListId()const;
+				void setPrefixListId(const std::string& prefixListId);
+				std::vector<AddEntry> getAddEntry()const;
+				void setAddEntry(const std::vector<AddEntry>& addEntry);
+				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 getPrefixListName()const;
+				void setPrefixListName(const std::string& prefixListName);
+				std::vector<RemoveEntry> getRemoveEntry()const;
+				void setRemoveEntry(const std::vector<RemoveEntry>& removeEntry);
+
+            private:
+				long resourceOwnerId_;
+				std::string description_;
+				std::string regionId_;
+				std::string prefixListId_;
+				std::vector<AddEntry> addEntry_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				long ownerId_;
+				std::string prefixListName_;
+				std::vector<RemoveEntry> removeEntry_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_MODIFYPREFIXLISTREQUEST_H_

+ 49 - 0
ecs/include/alibabacloud/ecs/model/ModifyPrefixListResult.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_MODIFYPREFIXLISTRESULT_H_
+#define ALIBABACLOUD_ECS_MODEL_MODIFYPREFIXLISTRESULT_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 ModifyPrefixListResult : public ServiceResult
+			{
+			public:
+
+
+				ModifyPrefixListResult();
+				explicit ModifyPrefixListResult(const std::string &payload);
+				~ModifyPrefixListResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_MODIFYPREFIXLISTRESULT_H_

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

@@ -43,6 +43,8 @@ namespace AlibabaCloud
 				void setSourcePortRange(const std::string& sourcePortRange);
 				std::string getClientToken()const;
 				void setClientToken(const std::string& clientToken);
+				std::string getDestPrefixListId()const;
+				void setDestPrefixListId(const std::string& destPrefixListId);
 				std::string getSecurityGroupId()const;
 				void setSecurityGroupId(const std::string& securityGroupId);
 				std::string getDescription()const;
@@ -83,6 +85,7 @@ namespace AlibabaCloud
 				long resourceOwnerId_;
 				std::string sourcePortRange_;
 				std::string clientToken_;
+				std::string destPrefixListId_;
 				std::string securityGroupId_;
 				std::string description_;
 				std::string regionId_;

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

@@ -39,6 +39,8 @@ namespace AlibabaCloud
 				void setNicType(const std::string& nicType);
 				long getResourceOwnerId()const;
 				void setResourceOwnerId(long resourceOwnerId);
+				std::string getSourcePrefixListId()const;
+				void setSourcePrefixListId(const std::string& sourcePrefixListId);
 				std::string getSourcePortRange()const;
 				void setSourcePortRange(const std::string& sourcePortRange);
 				std::string getClientToken()const;
@@ -81,6 +83,7 @@ namespace AlibabaCloud
             private:
 				std::string nicType_;
 				long resourceOwnerId_;
+				std::string sourcePrefixListId_;
 				std::string sourcePortRange_;
 				std::string clientToken_;
 				std::string securityGroupId_;

+ 1 - 1
ecs/include/alibabacloud/ecs/model/ResetDisksRequest.h

@@ -33,8 +33,8 @@ namespace AlibabaCloud
 			public:
 				struct Disk
 				{
-					std::string diskId;
 					std::string snapshotId;
+					std::string diskId;
 				};
 
 			public:

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

@@ -43,6 +43,8 @@ namespace AlibabaCloud
 				void setSourcePortRange(const std::string& sourcePortRange);
 				std::string getClientToken()const;
 				void setClientToken(const std::string& clientToken);
+				std::string getDestPrefixListId()const;
+				void setDestPrefixListId(const std::string& destPrefixListId);
 				std::string getSecurityGroupId()const;
 				void setSecurityGroupId(const std::string& securityGroupId);
 				std::string getDescription()const;
@@ -83,6 +85,7 @@ namespace AlibabaCloud
 				long resourceOwnerId_;
 				std::string sourcePortRange_;
 				std::string clientToken_;
+				std::string destPrefixListId_;
 				std::string securityGroupId_;
 				std::string description_;
 				std::string regionId_;

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

@@ -39,6 +39,8 @@ namespace AlibabaCloud
 				void setNicType(const std::string& nicType);
 				long getResourceOwnerId()const;
 				void setResourceOwnerId(long resourceOwnerId);
+				std::string getSourcePrefixListId()const;
+				void setSourcePrefixListId(const std::string& sourcePrefixListId);
 				std::string getSourcePortRange()const;
 				void setSourcePortRange(const std::string& sourcePortRange);
 				std::string getClientToken()const;
@@ -81,6 +83,7 @@ namespace AlibabaCloud
             private:
 				std::string nicType_;
 				long resourceOwnerId_;
+				std::string sourcePrefixListId_;
 				std::string sourcePortRange_;
 				std::string clientToken_;
 				std::string securityGroupId_;

+ 22 - 22
ecs/include/alibabacloud/ecs/model/RunInstancesRequest.h

@@ -33,9 +33,9 @@ namespace AlibabaCloud
 			public:
 				struct Arn
 				{
-					long assumeRoleFor;
-					std::string rolearn;
 					std::string roleType;
+					std::string rolearn;
+					long assumeRoleFor;
 				};
 				struct Tag
 				{
@@ -44,28 +44,28 @@ namespace AlibabaCloud
 				};
 				struct NetworkInterface
 				{
-					std::string primaryIpAddress;
 					std::string vSwitchId;
-					std::string securityGroupId;
-					std::vector<std::string> securityGroupIds;
 					std::string networkInterfaceName;
 					std::string description;
+					std::string securityGroupId;
+					std::string primaryIpAddress;
 					int queueNumber;
+					std::vector<std::string> securityGroupIds;
 				};
 				struct DataDisk
 				{
-					int size;
-					std::string snapshotId;
-					std::string category;
+					std::string performanceLevel;
+					std::string autoSnapshotPolicyId;
 					std::string encrypted;
-					std::string kMSKeyId;
-					std::string diskName;
 					std::string description;
+					std::string snapshotId;
 					std::string device;
-					bool deleteWithInstance;
-					std::string performanceLevel;
-					std::string autoSnapshotPolicyId;
+					int size;
+					std::string diskName;
+					std::string category;
 					std::string encryptAlgorithm;
+					bool deleteWithInstance;
+					std::string kMSKeyId;
 				};
 
 			public:
@@ -144,10 +144,10 @@ namespace AlibabaCloud
 				void setSystemDiskDiskName(const std::string& systemDiskDiskName);
 				std::string getDedicatedHostId()const;
 				void setDedicatedHostId(const std::string& dedicatedHostId);
-				std::vector<std::string> getSecurityGroupIds()const;
-				void setSecurityGroupIds(const std::vector<std::string>& securityGroupIds);
 				int getSpotDuration()const;
 				void setSpotDuration(int spotDuration);
+				std::vector<std::string> getSecurityGroupIds()const;
+				void setSecurityGroupIds(const std::vector<std::string>& securityGroupIds);
 				std::string getSystemDiskSize()const;
 				void setSystemDiskSize(const std::string& systemDiskSize);
 				std::string getImageFamily()const;
@@ -212,10 +212,10 @@ namespace AlibabaCloud
 				void setHttpEndpoint(const std::string& httpEndpoint);
 				std::string getInstanceChargeType()const;
 				void setInstanceChargeType(const std::string& instanceChargeType);
-				std::vector<NetworkInterface> getNetworkInterface()const;
-				void setNetworkInterface(const std::vector<NetworkInterface>& networkInterface);
 				std::string getDeploymentSetId()const;
 				void setDeploymentSetId(const std::string& deploymentSetId);
+				std::vector<NetworkInterface> getNetworkInterface()const;
+				void setNetworkInterface(const std::vector<NetworkInterface>& networkInterface);
 				int getAmount()const;
 				void setAmount(int amount);
 				std::string getOwnerAccount()const;
@@ -228,12 +228,12 @@ namespace AlibabaCloud
 				void setAutoReleaseTime(const std::string& autoReleaseTime);
 				std::string getCreditSpecification()const;
 				void setCreditSpecification(const std::string& creditSpecification);
-				std::vector<DataDisk> getDataDisk()const;
-				void setDataDisk(const std::vector<DataDisk>& dataDisk);
 				long getLaunchTemplateVersion()const;
 				void setLaunchTemplateVersion(long launchTemplateVersion);
 				std::string getSchedulerOptionsManagedPrivateSpaceId()const;
 				void setSchedulerOptionsManagedPrivateSpaceId(const std::string& schedulerOptionsManagedPrivateSpaceId);
+				std::vector<DataDisk> getDataDisk()const;
+				void setDataDisk(const std::vector<DataDisk>& dataDisk);
 				std::string getStorageSetId()const;
 				void setStorageSetId(const std::string& storageSetId);
 				std::string getHttpTokens()const;
@@ -278,8 +278,8 @@ namespace AlibabaCloud
 				std::string schedulerOptionsDedicatedHostClusterId_;
 				std::string systemDiskDiskName_;
 				std::string dedicatedHostId_;
-				std::vector<std::string> securityGroupIds_;
 				int spotDuration_;
+				std::vector<std::string> securityGroupIds_;
 				std::string systemDiskSize_;
 				std::string imageFamily_;
 				std::string launchTemplateName_;
@@ -312,17 +312,17 @@ namespace AlibabaCloud
 				std::string regionId_;
 				std::string httpEndpoint_;
 				std::string instanceChargeType_;
-				std::vector<NetworkInterface> networkInterface_;
 				std::string deploymentSetId_;
+				std::vector<NetworkInterface> networkInterface_;
 				int amount_;
 				std::string ownerAccount_;
 				std::string tenancy_;
 				std::string ramRoleName_;
 				std::string autoReleaseTime_;
 				std::string creditSpecification_;
-				std::vector<DataDisk> dataDisk_;
 				long launchTemplateVersion_;
 				std::string schedulerOptionsManagedPrivateSpaceId_;
+				std::vector<DataDisk> dataDisk_;
 				std::string storageSetId_;
 				std::string httpTokens_;
 				std::string systemDiskDescription_;

+ 2 - 2
ecs/include/alibabacloud/ecs/model/RunInstancesResult.h

@@ -38,15 +38,15 @@ namespace AlibabaCloud
 				explicit RunInstancesResult(const std::string &payload);
 				~RunInstancesResult();
 				std::vector<std::string> getInstanceIdSets()const;
-				float getTradePrice()const;
 				std::string getOrderId()const;
+				float getTradePrice()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
 				std::vector<std::string> instanceIdSets_;
-				float tradePrice_;
 				std::string orderId_;
+				float tradePrice_;
 
 			};
 		}

+ 216 - 0
ecs/src/EcsClient.cc

@@ -2031,6 +2031,42 @@ EcsClient::CreatePhysicalConnectionOutcomeCallable EcsClient::createPhysicalConn
 	return task->get_future();
 }
 
+EcsClient::CreatePrefixListOutcome EcsClient::createPrefixList(const CreatePrefixListRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreatePrefixListOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreatePrefixListOutcome(CreatePrefixListResult(outcome.result()));
+	else
+		return CreatePrefixListOutcome(outcome.error());
+}
+
+void EcsClient::createPrefixListAsync(const CreatePrefixListRequest& request, const CreatePrefixListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createPrefixList(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::CreatePrefixListOutcomeCallable EcsClient::createPrefixListCallable(const CreatePrefixListRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreatePrefixListOutcome()>>(
+			[this, request]()
+			{
+			return this->createPrefixList(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::CreateRouteEntryOutcome EcsClient::createRouteEntry(const CreateRouteEntryRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -3327,6 +3363,42 @@ EcsClient::DeletePhysicalConnectionOutcomeCallable EcsClient::deletePhysicalConn
 	return task->get_future();
 }
 
+EcsClient::DeletePrefixListOutcome EcsClient::deletePrefixList(const DeletePrefixListRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeletePrefixListOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeletePrefixListOutcome(DeletePrefixListResult(outcome.result()));
+	else
+		return DeletePrefixListOutcome(outcome.error());
+}
+
+void EcsClient::deletePrefixListAsync(const DeletePrefixListRequest& request, const DeletePrefixListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deletePrefixList(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::DeletePrefixListOutcomeCallable EcsClient::deletePrefixListCallable(const DeletePrefixListRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeletePrefixListOutcome()>>(
+			[this, request]()
+			{
+			return this->deletePrefixList(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::DeleteRouteEntryOutcome EcsClient::deleteRouteEntry(const DeleteRouteEntryRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -6279,6 +6351,114 @@ EcsClient::DescribePhysicalConnectionsOutcomeCallable EcsClient::describePhysica
 	return task->get_future();
 }
 
+EcsClient::DescribePrefixListAssociationsOutcome EcsClient::describePrefixListAssociations(const DescribePrefixListAssociationsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribePrefixListAssociationsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribePrefixListAssociationsOutcome(DescribePrefixListAssociationsResult(outcome.result()));
+	else
+		return DescribePrefixListAssociationsOutcome(outcome.error());
+}
+
+void EcsClient::describePrefixListAssociationsAsync(const DescribePrefixListAssociationsRequest& request, const DescribePrefixListAssociationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describePrefixListAssociations(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::DescribePrefixListAssociationsOutcomeCallable EcsClient::describePrefixListAssociationsCallable(const DescribePrefixListAssociationsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribePrefixListAssociationsOutcome()>>(
+			[this, request]()
+			{
+			return this->describePrefixListAssociations(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+EcsClient::DescribePrefixListAttributesOutcome EcsClient::describePrefixListAttributes(const DescribePrefixListAttributesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribePrefixListAttributesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribePrefixListAttributesOutcome(DescribePrefixListAttributesResult(outcome.result()));
+	else
+		return DescribePrefixListAttributesOutcome(outcome.error());
+}
+
+void EcsClient::describePrefixListAttributesAsync(const DescribePrefixListAttributesRequest& request, const DescribePrefixListAttributesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describePrefixListAttributes(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::DescribePrefixListAttributesOutcomeCallable EcsClient::describePrefixListAttributesCallable(const DescribePrefixListAttributesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribePrefixListAttributesOutcome()>>(
+			[this, request]()
+			{
+			return this->describePrefixListAttributes(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+EcsClient::DescribePrefixListsOutcome EcsClient::describePrefixLists(const DescribePrefixListsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribePrefixListsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribePrefixListsOutcome(DescribePrefixListsResult(outcome.result()));
+	else
+		return DescribePrefixListsOutcome(outcome.error());
+}
+
+void EcsClient::describePrefixListsAsync(const DescribePrefixListsRequest& request, const DescribePrefixListsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describePrefixLists(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::DescribePrefixListsOutcomeCallable EcsClient::describePrefixListsCallable(const DescribePrefixListsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribePrefixListsOutcome()>>(
+			[this, request]()
+			{
+			return this->describePrefixLists(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::DescribePriceOutcome EcsClient::describePrice(const DescribePriceRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -9807,6 +9987,42 @@ EcsClient::ModifyPhysicalConnectionAttributeOutcomeCallable EcsClient::modifyPhy
 	return task->get_future();
 }
 
+EcsClient::ModifyPrefixListOutcome EcsClient::modifyPrefixList(const ModifyPrefixListRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ModifyPrefixListOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ModifyPrefixListOutcome(ModifyPrefixListResult(outcome.result()));
+	else
+		return ModifyPrefixListOutcome(outcome.error());
+}
+
+void EcsClient::modifyPrefixListAsync(const ModifyPrefixListRequest& request, const ModifyPrefixListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, modifyPrefixList(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::ModifyPrefixListOutcomeCallable EcsClient::modifyPrefixListCallable(const ModifyPrefixListRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ModifyPrefixListOutcome()>>(
+			[this, request]()
+			{
+			return this->modifyPrefixList(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::ModifyPrepayInstanceSpecOutcome EcsClient::modifyPrepayInstanceSpec(const ModifyPrepayInstanceSpecRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

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

@@ -71,6 +71,17 @@ void AuthorizeSecurityGroupEgressRequest::setClientToken(const std::string& clie
 	setParameter("ClientToken", clientToken);
 }
 
+std::string AuthorizeSecurityGroupEgressRequest::getDestPrefixListId()const
+{
+	return destPrefixListId_;
+}
+
+void AuthorizeSecurityGroupEgressRequest::setDestPrefixListId(const std::string& destPrefixListId)
+{
+	destPrefixListId_ = destPrefixListId;
+	setParameter("DestPrefixListId", destPrefixListId);
+}
+
 std::string AuthorizeSecurityGroupEgressRequest::getSecurityGroupId()const
 {
 	return securityGroupId_;

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

@@ -49,6 +49,17 @@ void AuthorizeSecurityGroupRequest::setResourceOwnerId(long resourceOwnerId)
 	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
 }
 
+std::string AuthorizeSecurityGroupRequest::getSourcePrefixListId()const
+{
+	return sourcePrefixListId_;
+}
+
+void AuthorizeSecurityGroupRequest::setSourcePrefixListId(const std::string& sourcePrefixListId)
+{
+	sourcePrefixListId_ = sourcePrefixListId;
+	setParameter("SourcePrefixListId", sourcePrefixListId);
+}
+
 std::string AuthorizeSecurityGroupRequest::getSourcePortRange()const
 {
 	return sourcePortRange_;

+ 22 - 11
ecs/src/model/CreateDiskRequest.cc

@@ -137,6 +137,17 @@ void CreateDiskRequest::setStorageSetPartitionNumber(int storageSetPartitionNumb
 	setParameter("StorageSetPartitionNumber", std::to_string(storageSetPartitionNumber));
 }
 
+std::string CreateDiskRequest::getMultiAttach()const
+{
+	return multiAttach_;
+}
+
+void CreateDiskRequest::setMultiAttach(const std::string& multiAttach)
+{
+	multiAttach_ = multiAttach;
+	setParameter("MultiAttach", multiAttach);
+}
+
 std::vector<CreateDiskRequest::Tag> CreateDiskRequest::getTag()const
 {
 	return tag_;
@@ -153,6 +164,17 @@ void CreateDiskRequest::setTag(const std::vector<Tag>& tag)
 	}
 }
 
+std::string CreateDiskRequest::getAdvancedFeatures()const
+{
+	return advancedFeatures_;
+}
+
+void CreateDiskRequest::setAdvancedFeatures(const std::string& advancedFeatures)
+{
+	advancedFeatures_ = advancedFeatures;
+	setParameter("AdvancedFeatures", advancedFeatures);
+}
+
 std::vector<CreateDiskRequest::Arn> CreateDiskRequest::getArn()const
 {
 	return arn_;
@@ -170,17 +192,6 @@ void CreateDiskRequest::setArn(const std::vector<Arn>& arn)
 	}
 }
 
-std::string CreateDiskRequest::getAdvancedFeatures()const
-{
-	return advancedFeatures_;
-}
-
-void CreateDiskRequest::setAdvancedFeatures(const std::string& advancedFeatures)
-{
-	advancedFeatures_ = advancedFeatures;
-	setParameter("AdvancedFeatures", advancedFeatures);
-}
-
 std::string CreateDiskRequest::getDedicatedBlockStorageClusterId()const
 {
 	return dedicatedBlockStorageClusterId_;

+ 6 - 6
ecs/src/model/CreateInstanceResult.cc

@@ -41,10 +41,10 @@ void CreateInstanceResult::parse(const std::string &payload)
 	setRequestId(value["RequestId"].asString());
 	if(!value["InstanceId"].isNull())
 		instanceId_ = value["InstanceId"].asString();
-	if(!value["TradePrice"].isNull())
-		tradePrice_ = std::stof(value["TradePrice"].asString());
 	if(!value["OrderId"].isNull())
 		orderId_ = value["OrderId"].asString();
+	if(!value["TradePrice"].isNull())
+		tradePrice_ = std::stof(value["TradePrice"].asString());
 
 }
 
@@ -53,13 +53,13 @@ std::string CreateInstanceResult::getInstanceId()const
 	return instanceId_;
 }
 
-float CreateInstanceResult::getTradePrice()const
+std::string CreateInstanceResult::getOrderId()const
 {
-	return tradePrice_;
+	return orderId_;
 }
 
-std::string CreateInstanceResult::getOrderId()const
+float CreateInstanceResult::getTradePrice()const
 {
-	return orderId_;
+	return tradePrice_;
 }
 

+ 155 - 0
ecs/src/model/CreatePrefixListRequest.cc

@@ -0,0 +1,155 @@
+/*
+ * 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/CreatePrefixListRequest.h>
+
+using AlibabaCloud::Ecs::Model::CreatePrefixListRequest;
+
+CreatePrefixListRequest::CreatePrefixListRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "CreatePrefixList")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CreatePrefixListRequest::~CreatePrefixListRequest()
+{}
+
+long CreatePrefixListRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void CreatePrefixListRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string CreatePrefixListRequest::getClientToken()const
+{
+	return clientToken_;
+}
+
+void CreatePrefixListRequest::setClientToken(const std::string& clientToken)
+{
+	clientToken_ = clientToken;
+	setParameter("ClientToken", clientToken);
+}
+
+std::string CreatePrefixListRequest::getDescription()const
+{
+	return description_;
+}
+
+void CreatePrefixListRequest::setDescription(const std::string& description)
+{
+	description_ = description;
+	setParameter("Description", description);
+}
+
+int CreatePrefixListRequest::getMaxEntries()const
+{
+	return maxEntries_;
+}
+
+void CreatePrefixListRequest::setMaxEntries(int maxEntries)
+{
+	maxEntries_ = maxEntries;
+	setParameter("MaxEntries", std::to_string(maxEntries));
+}
+
+std::string CreatePrefixListRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void CreatePrefixListRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+std::string CreatePrefixListRequest::getAddressFamily()const
+{
+	return addressFamily_;
+}
+
+void CreatePrefixListRequest::setAddressFamily(const std::string& addressFamily)
+{
+	addressFamily_ = addressFamily;
+	setParameter("AddressFamily", addressFamily);
+}
+
+std::string CreatePrefixListRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void CreatePrefixListRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string CreatePrefixListRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void CreatePrefixListRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+long CreatePrefixListRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void CreatePrefixListRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string CreatePrefixListRequest::getPrefixListName()const
+{
+	return prefixListName_;
+}
+
+void CreatePrefixListRequest::setPrefixListName(const std::string& prefixListName)
+{
+	prefixListName_ = prefixListName;
+	setParameter("PrefixListName", prefixListName);
+}
+
+std::vector<CreatePrefixListRequest::Entry> CreatePrefixListRequest::getEntry()const
+{
+	return entry_;
+}
+
+void CreatePrefixListRequest::setEntry(const std::vector<Entry>& entry)
+{
+	entry_ = entry;
+	for(int dep1 = 0; dep1!= entry.size(); dep1++) {
+		auto entryObj = entry.at(dep1);
+		std::string entryObjStr = "Entry." + std::to_string(dep1 + 1);
+		setParameter(entryObjStr + ".Cidr", entryObj.cidr);
+		setParameter(entryObjStr + ".Description", entryObj.description);
+	}
+}
+

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

+ 11 - 11
ecs/src/model/CreateSnapshotGroupRequest.cc

@@ -38,6 +38,17 @@ void CreateSnapshotGroupRequest::setResourceOwnerId(long resourceOwnerId)
 	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
 }
 
+bool CreateSnapshotGroupRequest::getInstantAccess()const
+{
+	return instantAccess_;
+}
+
+void CreateSnapshotGroupRequest::setInstantAccess(bool instantAccess)
+{
+	instantAccess_ = instantAccess;
+	setParameter("InstantAccess", instantAccess ? "true" : "false");
+}
+
 std::vector<std::string> CreateSnapshotGroupRequest::getExcludeDiskId()const
 {
 	return excludeDiskId_;
@@ -51,17 +62,6 @@ void CreateSnapshotGroupRequest::setExcludeDiskId(const std::vector<std::string>
 	}
 }
 
-bool CreateSnapshotGroupRequest::getInstantAccess()const
-{
-	return instantAccess_;
-}
-
-void CreateSnapshotGroupRequest::setInstantAccess(bool instantAccess)
-{
-	instantAccess_ = instantAccess;
-	setParameter("InstantAccess", instantAccess ? "true" : "false");
-}
-
 std::string CreateSnapshotGroupRequest::getDescription()const
 {
 	return description_;

+ 95 - 0
ecs/src/model/DeletePrefixListRequest.cc

@@ -0,0 +1,95 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ecs/model/DeletePrefixListRequest.h>
+
+using AlibabaCloud::Ecs::Model::DeletePrefixListRequest;
+
+DeletePrefixListRequest::DeletePrefixListRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "DeletePrefixList")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DeletePrefixListRequest::~DeletePrefixListRequest()
+{}
+
+long DeletePrefixListRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void DeletePrefixListRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string DeletePrefixListRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void DeletePrefixListRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+std::string DeletePrefixListRequest::getPrefixListId()const
+{
+	return prefixListId_;
+}
+
+void DeletePrefixListRequest::setPrefixListId(const std::string& prefixListId)
+{
+	prefixListId_ = prefixListId;
+	setParameter("PrefixListId", prefixListId);
+}
+
+std::string DeletePrefixListRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void DeletePrefixListRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string DeletePrefixListRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void DeletePrefixListRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+long DeletePrefixListRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DeletePrefixListRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+

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

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

@@ -320,6 +320,17 @@ void DescribeDisksRequest::setDiskIds(const std::string& diskIds)
 	setParameter("DiskIds", diskIds);
 }
 
+std::string DescribeDisksRequest::getMultiAttach()const
+{
+	return multiAttach_;
+}
+
+void DescribeDisksRequest::setMultiAttach(const std::string& multiAttach)
+{
+	multiAttach_ = multiAttach;
+	setParameter("MultiAttach", multiAttach);
+}
+
 bool DescribeDisksRequest::getDeleteWithInstance()const
 {
 	return deleteWithInstance_;

+ 88 - 74
ecs/src/model/DescribeDisksResult.cc

@@ -43,82 +43,84 @@ void DescribeDisksResult::parse(const std::string &payload)
 	for (auto valueDisksDisk : allDisksNode)
 	{
 		Disk disksObject;
+		if(!valueDisksDisk["SerialNumber"].isNull())
+			disksObject.serialNumber = valueDisksDisk["SerialNumber"].asString();
+		if(!valueDisksDisk["CreationTime"].isNull())
+			disksObject.creationTime = valueDisksDisk["CreationTime"].asString();
+		if(!valueDisksDisk["Status"].isNull())
+			disksObject.status = valueDisksDisk["Status"].asString();
+		if(!valueDisksDisk["Type"].isNull())
+			disksObject.type = valueDisksDisk["Type"].asString();
+		if(!valueDisksDisk["PerformanceLevel"].isNull())
+			disksObject.performanceLevel = valueDisksDisk["PerformanceLevel"].asString();
+		if(!valueDisksDisk["BdfId"].isNull())
+			disksObject.bdfId = valueDisksDisk["BdfId"].asString();
+		if(!valueDisksDisk["EnableAutoSnapshot"].isNull())
+			disksObject.enableAutoSnapshot = valueDisksDisk["EnableAutoSnapshot"].asString() == "true";
+		if(!valueDisksDisk["StorageSetId"].isNull())
+			disksObject.storageSetId = valueDisksDisk["StorageSetId"].asString();
+		if(!valueDisksDisk["StorageSetPartitionNumber"].isNull())
+			disksObject.storageSetPartitionNumber = std::stoi(valueDisksDisk["StorageSetPartitionNumber"].asString());
 		if(!valueDisksDisk["DiskId"].isNull())
 			disksObject.diskId = valueDisksDisk["DiskId"].asString();
-		if(!valueDisksDisk["RegionId"].isNull())
-			disksObject.regionId = valueDisksDisk["RegionId"].asString();
-		if(!valueDisksDisk["ZoneId"].isNull())
-			disksObject.zoneId = valueDisksDisk["ZoneId"].asString();
-		if(!valueDisksDisk["DiskName"].isNull())
-			disksObject.diskName = valueDisksDisk["DiskName"].asString();
+		if(!valueDisksDisk["DeleteAutoSnapshot"].isNull())
+			disksObject.deleteAutoSnapshot = valueDisksDisk["DeleteAutoSnapshot"].asString() == "true";
+		if(!valueDisksDisk["DedicatedBlockStorageClusterId"].isNull())
+			disksObject.dedicatedBlockStorageClusterId = valueDisksDisk["DedicatedBlockStorageClusterId"].asString();
+		if(!valueDisksDisk["Encrypted"].isNull())
+			disksObject.encrypted = valueDisksDisk["Encrypted"].asString() == "true";
+		if(!valueDisksDisk["IOPSRead"].isNull())
+			disksObject.iOPSRead = std::stoi(valueDisksDisk["IOPSRead"].asString());
+		if(!valueDisksDisk["MountInstanceNum"].isNull())
+			disksObject.mountInstanceNum = std::stoi(valueDisksDisk["MountInstanceNum"].asString());
 		if(!valueDisksDisk["Description"].isNull())
 			disksObject.description = valueDisksDisk["Description"].asString();
-		if(!valueDisksDisk["Type"].isNull())
-			disksObject.type = valueDisksDisk["Type"].asString();
-		if(!valueDisksDisk["Category"].isNull())
-			disksObject.category = valueDisksDisk["Category"].asString();
-		if(!valueDisksDisk["Size"].isNull())
-			disksObject.size = std::stoi(valueDisksDisk["Size"].asString());
+		if(!valueDisksDisk["Device"].isNull())
+			disksObject.device = valueDisksDisk["Device"].asString();
+		if(!valueDisksDisk["DiskName"].isNull())
+			disksObject.diskName = valueDisksDisk["DiskName"].asString();
+		if(!valueDisksDisk["Portable"].isNull())
+			disksObject.portable = valueDisksDisk["Portable"].asString() == "true";
 		if(!valueDisksDisk["ImageId"].isNull())
 			disksObject.imageId = valueDisksDisk["ImageId"].asString();
+		if(!valueDisksDisk["KMSKeyId"].isNull())
+			disksObject.kMSKeyId = valueDisksDisk["KMSKeyId"].asString();
+		if(!valueDisksDisk["DeleteWithInstance"].isNull())
+			disksObject.deleteWithInstance = valueDisksDisk["DeleteWithInstance"].asString() == "true";
+		if(!valueDisksDisk["DetachedTime"].isNull())
+			disksObject.detachedTime = valueDisksDisk["DetachedTime"].asString();
 		if(!valueDisksDisk["SourceSnapshotId"].isNull())
 			disksObject.sourceSnapshotId = valueDisksDisk["SourceSnapshotId"].asString();
 		if(!valueDisksDisk["AutoSnapshotPolicyId"].isNull())
 			disksObject.autoSnapshotPolicyId = valueDisksDisk["AutoSnapshotPolicyId"].asString();
-		if(!valueDisksDisk["ProductCode"].isNull())
-			disksObject.productCode = valueDisksDisk["ProductCode"].asString();
-		if(!valueDisksDisk["Portable"].isNull())
-			disksObject.portable = valueDisksDisk["Portable"].asString() == "true";
-		if(!valueDisksDisk["Status"].isNull())
-			disksObject.status = valueDisksDisk["Status"].asString();
-		if(!valueDisksDisk["InstanceId"].isNull())
-			disksObject.instanceId = valueDisksDisk["InstanceId"].asString();
-		if(!valueDisksDisk["Device"].isNull())
-			disksObject.device = valueDisksDisk["Device"].asString();
-		if(!valueDisksDisk["DeleteWithInstance"].isNull())
-			disksObject.deleteWithInstance = valueDisksDisk["DeleteWithInstance"].asString() == "true";
-		if(!valueDisksDisk["DeleteAutoSnapshot"].isNull())
-			disksObject.deleteAutoSnapshot = valueDisksDisk["DeleteAutoSnapshot"].asString() == "true";
-		if(!valueDisksDisk["EnableAutoSnapshot"].isNull())
-			disksObject.enableAutoSnapshot = valueDisksDisk["EnableAutoSnapshot"].asString() == "true";
 		if(!valueDisksDisk["EnableAutomatedSnapshotPolicy"].isNull())
 			disksObject.enableAutomatedSnapshotPolicy = valueDisksDisk["EnableAutomatedSnapshotPolicy"].asString() == "true";
-		if(!valueDisksDisk["CreationTime"].isNull())
-			disksObject.creationTime = valueDisksDisk["CreationTime"].asString();
-		if(!valueDisksDisk["AttachedTime"].isNull())
-			disksObject.attachedTime = valueDisksDisk["AttachedTime"].asString();
-		if(!valueDisksDisk["DetachedTime"].isNull())
-			disksObject.detachedTime = valueDisksDisk["DetachedTime"].asString();
-		if(!valueDisksDisk["DiskChargeType"].isNull())
-			disksObject.diskChargeType = valueDisksDisk["DiskChargeType"].asString();
+		if(!valueDisksDisk["IOPSWrite"].isNull())
+			disksObject.iOPSWrite = std::stoi(valueDisksDisk["IOPSWrite"].asString());
+		if(!valueDisksDisk["InstanceId"].isNull())
+			disksObject.instanceId = valueDisksDisk["InstanceId"].asString();
+		if(!valueDisksDisk["IOPS"].isNull())
+			disksObject.iOPS = std::stoi(valueDisksDisk["IOPS"].asString());
+		if(!valueDisksDisk["RegionId"].isNull())
+			disksObject.regionId = valueDisksDisk["RegionId"].asString();
 		if(!valueDisksDisk["ExpiredTime"].isNull())
 			disksObject.expiredTime = valueDisksDisk["ExpiredTime"].asString();
+		if(!valueDisksDisk["Size"].isNull())
+			disksObject.size = std::stoi(valueDisksDisk["Size"].asString());
 		if(!valueDisksDisk["ResourceGroupId"].isNull())
 			disksObject.resourceGroupId = valueDisksDisk["ResourceGroupId"].asString();
-		if(!valueDisksDisk["Encrypted"].isNull())
-			disksObject.encrypted = valueDisksDisk["Encrypted"].asString() == "true";
-		if(!valueDisksDisk["StorageSetId"].isNull())
-			disksObject.storageSetId = valueDisksDisk["StorageSetId"].asString();
-		if(!valueDisksDisk["StorageSetPartitionNumber"].isNull())
-			disksObject.storageSetPartitionNumber = std::stoi(valueDisksDisk["StorageSetPartitionNumber"].asString());
-		if(!valueDisksDisk["MountInstanceNum"].isNull())
-			disksObject.mountInstanceNum = std::stoi(valueDisksDisk["MountInstanceNum"].asString());
-		if(!valueDisksDisk["IOPS"].isNull())
-			disksObject.iOPS = std::stoi(valueDisksDisk["IOPS"].asString());
-		if(!valueDisksDisk["IOPSRead"].isNull())
-			disksObject.iOPSRead = std::stoi(valueDisksDisk["IOPSRead"].asString());
-		if(!valueDisksDisk["IOPSWrite"].isNull())
-			disksObject.iOPSWrite = std::stoi(valueDisksDisk["IOPSWrite"].asString());
-		if(!valueDisksDisk["KMSKeyId"].isNull())
-			disksObject.kMSKeyId = valueDisksDisk["KMSKeyId"].asString();
-		if(!valueDisksDisk["PerformanceLevel"].isNull())
-			disksObject.performanceLevel = valueDisksDisk["PerformanceLevel"].asString();
-		if(!valueDisksDisk["BdfId"].isNull())
-			disksObject.bdfId = valueDisksDisk["BdfId"].asString();
-		if(!valueDisksDisk["SerialNumber"].isNull())
-			disksObject.serialNumber = valueDisksDisk["SerialNumber"].asString();
-		if(!valueDisksDisk["DedicatedBlockStorageClusterId"].isNull())
-			disksObject.dedicatedBlockStorageClusterId = valueDisksDisk["DedicatedBlockStorageClusterId"].asString();
+		if(!valueDisksDisk["DiskChargeType"].isNull())
+			disksObject.diskChargeType = valueDisksDisk["DiskChargeType"].asString();
+		if(!valueDisksDisk["ZoneId"].isNull())
+			disksObject.zoneId = valueDisksDisk["ZoneId"].asString();
+		if(!valueDisksDisk["AttachedTime"].isNull())
+			disksObject.attachedTime = valueDisksDisk["AttachedTime"].asString();
+		if(!valueDisksDisk["Category"].isNull())
+			disksObject.category = valueDisksDisk["Category"].asString();
+		if(!valueDisksDisk["ProductCode"].isNull())
+			disksObject.productCode = valueDisksDisk["ProductCode"].asString();
+		if(!valueDisksDisk["MultiAttach"].isNull())
+			disksObject.multiAttach = valueDisksDisk["MultiAttach"].asString();
 		auto allOperationLocksNode = valueDisksDisk["OperationLocks"]["OperationLock"];
 		for (auto valueDisksDiskOperationLocksOperationLock : allOperationLocksNode)
 		{
@@ -131,34 +133,46 @@ void DescribeDisksResult::parse(const std::string &payload)
 		for (auto valueDisksDiskMountInstancesMountInstance : allMountInstancesNode)
 		{
 			Disk::MountInstance mountInstancesObject;
+			if(!valueDisksDiskMountInstancesMountInstance["AttachedTime"].isNull())
+				mountInstancesObject.attachedTime = valueDisksDiskMountInstancesMountInstance["AttachedTime"].asString();
 			if(!valueDisksDiskMountInstancesMountInstance["InstanceId"].isNull())
 				mountInstancesObject.instanceId = valueDisksDiskMountInstancesMountInstance["InstanceId"].asString();
 			if(!valueDisksDiskMountInstancesMountInstance["Device"].isNull())
 				mountInstancesObject.device = valueDisksDiskMountInstancesMountInstance["Device"].asString();
-			if(!valueDisksDiskMountInstancesMountInstance["AttachedTime"].isNull())
-				mountInstancesObject.attachedTime = valueDisksDiskMountInstancesMountInstance["AttachedTime"].asString();
 			disksObject.mountInstances.push_back(mountInstancesObject);
 		}
 		auto allTagsNode = valueDisksDisk["Tags"]["Tag"];
 		for (auto valueDisksDiskTagsTag : allTagsNode)
 		{
 			Disk::Tag tagsObject;
-			if(!valueDisksDiskTagsTag["TagKey"].isNull())
-				tagsObject.tagKey = valueDisksDiskTagsTag["TagKey"].asString();
 			if(!valueDisksDiskTagsTag["TagValue"].isNull())
 				tagsObject.tagValue = valueDisksDiskTagsTag["TagValue"].asString();
+			if(!valueDisksDiskTagsTag["TagKey"].isNull())
+				tagsObject.tagKey = valueDisksDiskTagsTag["TagKey"].asString();
 			disksObject.tags.push_back(tagsObject);
 		}
+		auto allAttachmentsNode = valueDisksDisk["Attachments"]["Attachment"];
+		for (auto valueDisksDiskAttachmentsAttachment : allAttachmentsNode)
+		{
+			Disk::Attachment attachmentsObject;
+			if(!valueDisksDiskAttachmentsAttachment["InstanceId"].isNull())
+				attachmentsObject.instanceId = valueDisksDiskAttachmentsAttachment["InstanceId"].asString();
+			if(!valueDisksDiskAttachmentsAttachment["Device"].isNull())
+				attachmentsObject.device = valueDisksDiskAttachmentsAttachment["Device"].asString();
+			if(!valueDisksDiskAttachmentsAttachment["AttachedTime"].isNull())
+				attachmentsObject.attachedTime = valueDisksDiskAttachmentsAttachment["AttachedTime"].asString();
+			disksObject.attachments.push_back(attachmentsObject);
+		}
 		disks_.push_back(disksObject);
 	}
-	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());
 	if(!value["NextToken"].isNull())
 		nextToken_ = value["NextToken"].asString();
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stoi(value["PageNumber"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
 
 }
 
@@ -167,14 +181,14 @@ int DescribeDisksResult::getTotalCount()const
 	return totalCount_;
 }
 
-int DescribeDisksResult::getPageSize()const
+std::string DescribeDisksResult::getNextToken()const
 {
-	return pageSize_;
+	return nextToken_;
 }
 
-std::string DescribeDisksResult::getNextToken()const
+int DescribeDisksResult::getPageSize()const
 {
-	return nextToken_;
+	return pageSize_;
 }
 
 int DescribeDisksResult::getPageNumber()const

+ 13 - 0
ecs/src/model/DescribeInstancesRequest.cc

@@ -298,6 +298,19 @@ void DescribeInstancesRequest::setMaxResults(int maxResults)
 	setParameter("MaxResults", std::to_string(maxResults));
 }
 
+std::vector<std::string> DescribeInstancesRequest::getIpv6Address()const
+{
+	return ipv6Address_;
+}
+
+void DescribeInstancesRequest::setIpv6Address(const std::vector<std::string>& ipv6Address)
+{
+	ipv6Address_ = ipv6Address;
+	for(int dep1 = 0; dep1!= ipv6Address.size(); dep1++) {
+		setParameter("Ipv6Address."+ std::to_string(dep1), ipv6Address.at(dep1));
+	}
+}
+
 std::string DescribeInstancesRequest::getInstanceNetworkType()const
 {
 	return instanceNetworkType_;

+ 109 - 109
ecs/src/model/DescribeInstancesResult.cc

@@ -43,112 +43,112 @@ void DescribeInstancesResult::parse(const std::string &payload)
 	for (auto valueInstancesInstance : allInstancesNode)
 	{
 		Instance instancesObject;
-		if(!valueInstancesInstance["InstanceId"].isNull())
-			instancesObject.instanceId = valueInstancesInstance["InstanceId"].asString();
-		if(!valueInstancesInstance["InstanceName"].isNull())
-			instancesObject.instanceName = valueInstancesInstance["InstanceName"].asString();
+		if(!valueInstancesInstance["CreationTime"].isNull())
+			instancesObject.creationTime = valueInstancesInstance["CreationTime"].asString();
+		if(!valueInstancesInstance["SerialNumber"].isNull())
+			instancesObject.serialNumber = valueInstancesInstance["SerialNumber"].asString();
+		if(!valueInstancesInstance["Status"].isNull())
+			instancesObject.status = valueInstancesInstance["Status"].asString();
+		if(!valueInstancesInstance["DeploymentSetId"].isNull())
+			instancesObject.deploymentSetId = valueInstancesInstance["DeploymentSetId"].asString();
+		if(!valueInstancesInstance["KeyPairName"].isNull())
+			instancesObject.keyPairName = valueInstancesInstance["KeyPairName"].asString();
+		if(!valueInstancesInstance["SaleCycle"].isNull())
+			instancesObject.saleCycle = valueInstancesInstance["SaleCycle"].asString();
+		if(!valueInstancesInstance["SpotStrategy"].isNull())
+			instancesObject.spotStrategy = valueInstancesInstance["SpotStrategy"].asString();
+		if(!valueInstancesInstance["DeviceAvailable"].isNull())
+			instancesObject.deviceAvailable = valueInstancesInstance["DeviceAvailable"].asString() == "true";
+		if(!valueInstancesInstance["LocalStorageCapacity"].isNull())
+			instancesObject.localStorageCapacity = std::stol(valueInstancesInstance["LocalStorageCapacity"].asString());
 		if(!valueInstancesInstance["Description"].isNull())
 			instancesObject.description = valueInstancesInstance["Description"].asString();
-		if(!valueInstancesInstance["ImageId"].isNull())
-			instancesObject.imageId = valueInstancesInstance["ImageId"].asString();
-		if(!valueInstancesInstance["OSName"].isNull())
-			instancesObject.oSName = valueInstancesInstance["OSName"].asString();
+		if(!valueInstancesInstance["SpotDuration"].isNull())
+			instancesObject.spotDuration = std::stoi(valueInstancesInstance["SpotDuration"].asString());
+		if(!valueInstancesInstance["InstanceNetworkType"].isNull())
+			instancesObject.instanceNetworkType = valueInstancesInstance["InstanceNetworkType"].asString();
+		if(!valueInstancesInstance["InstanceName"].isNull())
+			instancesObject.instanceName = valueInstancesInstance["InstanceName"].asString();
 		if(!valueInstancesInstance["OSNameEn"].isNull())
 			instancesObject.oSNameEn = valueInstancesInstance["OSNameEn"].asString();
-		if(!valueInstancesInstance["OSType"].isNull())
-			instancesObject.oSType = valueInstancesInstance["OSType"].asString();
-		if(!valueInstancesInstance["RegionId"].isNull())
-			instancesObject.regionId = valueInstancesInstance["RegionId"].asString();
-		if(!valueInstancesInstance["ZoneId"].isNull())
-			instancesObject.zoneId = valueInstancesInstance["ZoneId"].asString();
-		if(!valueInstancesInstance["ClusterId"].isNull())
-			instancesObject.clusterId = valueInstancesInstance["ClusterId"].asString();
-		if(!valueInstancesInstance["InstanceType"].isNull())
-			instancesObject.instanceType = valueInstancesInstance["InstanceType"].asString();
-		if(!valueInstancesInstance["Cpu"].isNull())
-			instancesObject.cpu = std::stoi(valueInstancesInstance["Cpu"].asString());
+		if(!valueInstancesInstance["HpcClusterId"].isNull())
+			instancesObject.hpcClusterId = valueInstancesInstance["HpcClusterId"].asString();
+		if(!valueInstancesInstance["SpotPriceLimit"].isNull())
+			instancesObject.spotPriceLimit = std::stof(valueInstancesInstance["SpotPriceLimit"].asString());
 		if(!valueInstancesInstance["Memory"].isNull())
 			instancesObject.memory = std::stoi(valueInstancesInstance["Memory"].asString());
-		if(!valueInstancesInstance["HostName"].isNull())
-			instancesObject.hostName = valueInstancesInstance["HostName"].asString();
-		if(!valueInstancesInstance["DeploymentSetId"].isNull())
-			instancesObject.deploymentSetId = valueInstancesInstance["DeploymentSetId"].asString();
+		if(!valueInstancesInstance["OSName"].isNull())
+			instancesObject.oSName = valueInstancesInstance["OSName"].asString();
 		if(!valueInstancesInstance["DeploymentSetGroupNo"].isNull())
 			instancesObject.deploymentSetGroupNo = std::stoi(valueInstancesInstance["DeploymentSetGroupNo"].asString());
-		if(!valueInstancesInstance["Status"].isNull())
-			instancesObject.status = valueInstancesInstance["Status"].asString();
-		if(!valueInstancesInstance["SerialNumber"].isNull())
-			instancesObject.serialNumber = valueInstancesInstance["SerialNumber"].asString();
-		if(!valueInstancesInstance["InternetChargeType"].isNull())
-			instancesObject.internetChargeType = valueInstancesInstance["InternetChargeType"].asString();
-		if(!valueInstancesInstance["InternetMaxBandwidthIn"].isNull())
-			instancesObject.internetMaxBandwidthIn = std::stoi(valueInstancesInstance["InternetMaxBandwidthIn"].asString());
-		if(!valueInstancesInstance["InternetMaxBandwidthOut"].isNull())
-			instancesObject.internetMaxBandwidthOut = std::stoi(valueInstancesInstance["InternetMaxBandwidthOut"].asString());
+		if(!valueInstancesInstance["ImageId"].isNull())
+			instancesObject.imageId = valueInstancesInstance["ImageId"].asString();
 		if(!valueInstancesInstance["VlanId"].isNull())
 			instancesObject.vlanId = valueInstancesInstance["VlanId"].asString();
-		if(!valueInstancesInstance["CreationTime"].isNull())
-			instancesObject.creationTime = valueInstancesInstance["CreationTime"].asString();
-		if(!valueInstancesInstance["StartTime"].isNull())
-			instancesObject.startTime = valueInstancesInstance["StartTime"].asString();
-		if(!valueInstancesInstance["InstanceNetworkType"].isNull())
-			instancesObject.instanceNetworkType = valueInstancesInstance["InstanceNetworkType"].asString();
-		if(!valueInstancesInstance["InstanceChargeType"].isNull())
-			instancesObject.instanceChargeType = valueInstancesInstance["InstanceChargeType"].asString();
-		if(!valueInstancesInstance["SaleCycle"].isNull())
-			instancesObject.saleCycle = valueInstancesInstance["SaleCycle"].asString();
-		if(!valueInstancesInstance["ExpiredTime"].isNull())
-			instancesObject.expiredTime = valueInstancesInstance["ExpiredTime"].asString();
+		if(!valueInstancesInstance["ClusterId"].isNull())
+			instancesObject.clusterId = valueInstancesInstance["ClusterId"].asString();
+		if(!valueInstancesInstance["GPUSpec"].isNull())
+			instancesObject.gPUSpec = valueInstancesInstance["GPUSpec"].asString();
 		if(!valueInstancesInstance["AutoReleaseTime"].isNull())
 			instancesObject.autoReleaseTime = valueInstancesInstance["AutoReleaseTime"].asString();
+		if(!valueInstancesInstance["DeletionProtection"].isNull())
+			instancesObject.deletionProtection = valueInstancesInstance["DeletionProtection"].asString() == "true";
+		if(!valueInstancesInstance["StoppedMode"].isNull())
+			instancesObject.stoppedMode = valueInstancesInstance["StoppedMode"].asString();
+		if(!valueInstancesInstance["GPUAmount"].isNull())
+			instancesObject.gPUAmount = std::stoi(valueInstancesInstance["GPUAmount"].asString());
+		if(!valueInstancesInstance["HostName"].isNull())
+			instancesObject.hostName = valueInstancesInstance["HostName"].asString();
+		if(!valueInstancesInstance["InstanceId"].isNull())
+			instancesObject.instanceId = valueInstancesInstance["InstanceId"].asString();
+		if(!valueInstancesInstance["InternetMaxBandwidthOut"].isNull())
+			instancesObject.internetMaxBandwidthOut = std::stoi(valueInstancesInstance["InternetMaxBandwidthOut"].asString());
+		if(!valueInstancesInstance["InternetMaxBandwidthIn"].isNull())
+			instancesObject.internetMaxBandwidthIn = std::stoi(valueInstancesInstance["InternetMaxBandwidthIn"].asString());
+		if(!valueInstancesInstance["InstanceType"].isNull())
+			instancesObject.instanceType = valueInstancesInstance["InstanceType"].asString();
+		if(!valueInstancesInstance["InstanceChargeType"].isNull())
+			instancesObject.instanceChargeType = valueInstancesInstance["InstanceChargeType"].asString();
+		if(!valueInstancesInstance["RegionId"].isNull())
+			instancesObject.regionId = valueInstancesInstance["RegionId"].asString();
 		if(!valueInstancesInstance["IoOptimized"].isNull())
 			instancesObject.ioOptimized = valueInstancesInstance["IoOptimized"].asString() == "true";
-		if(!valueInstancesInstance["DeviceAvailable"].isNull())
-			instancesObject.deviceAvailable = valueInstancesInstance["DeviceAvailable"].asString() == "true";
-		if(!valueInstancesInstance["InstanceTypeFamily"].isNull())
-			instancesObject.instanceTypeFamily = valueInstancesInstance["InstanceTypeFamily"].asString();
-		if(!valueInstancesInstance["LocalStorageCapacity"].isNull())
-			instancesObject.localStorageCapacity = std::stol(valueInstancesInstance["LocalStorageCapacity"].asString());
+		if(!valueInstancesInstance["StartTime"].isNull())
+			instancesObject.startTime = valueInstancesInstance["StartTime"].asString();
+		if(!valueInstancesInstance["Cpu"].isNull())
+			instancesObject.cpu = std::stoi(valueInstancesInstance["Cpu"].asString());
 		if(!valueInstancesInstance["LocalStorageAmount"].isNull())
 			instancesObject.localStorageAmount = std::stoi(valueInstancesInstance["LocalStorageAmount"].asString());
-		if(!valueInstancesInstance["GPUAmount"].isNull())
-			instancesObject.gPUAmount = std::stoi(valueInstancesInstance["GPUAmount"].asString());
-		if(!valueInstancesInstance["GPUSpec"].isNull())
-			instancesObject.gPUSpec = valueInstancesInstance["GPUSpec"].asString();
-		if(!valueInstancesInstance["SpotStrategy"].isNull())
-			instancesObject.spotStrategy = valueInstancesInstance["SpotStrategy"].asString();
-		if(!valueInstancesInstance["SpotPriceLimit"].isNull())
-			instancesObject.spotPriceLimit = std::stof(valueInstancesInstance["SpotPriceLimit"].asString());
-		if(!valueInstancesInstance["SpotDuration"].isNull())
-			instancesObject.spotDuration = std::stoi(valueInstancesInstance["SpotDuration"].asString());
+		if(!valueInstancesInstance["ExpiredTime"].isNull())
+			instancesObject.expiredTime = valueInstancesInstance["ExpiredTime"].asString();
 		if(!valueInstancesInstance["ResourceGroupId"].isNull())
 			instancesObject.resourceGroupId = valueInstancesInstance["ResourceGroupId"].asString();
-		if(!valueInstancesInstance["KeyPairName"].isNull())
-			instancesObject.keyPairName = valueInstancesInstance["KeyPairName"].asString();
+		if(!valueInstancesInstance["InternetChargeType"].isNull())
+			instancesObject.internetChargeType = valueInstancesInstance["InternetChargeType"].asString();
+		if(!valueInstancesInstance["ZoneId"].isNull())
+			instancesObject.zoneId = valueInstancesInstance["ZoneId"].asString();
 		if(!valueInstancesInstance["Recyclable"].isNull())
 			instancesObject.recyclable = valueInstancesInstance["Recyclable"].asString() == "true";
-		if(!valueInstancesInstance["HpcClusterId"].isNull())
-			instancesObject.hpcClusterId = valueInstancesInstance["HpcClusterId"].asString();
-		if(!valueInstancesInstance["StoppedMode"].isNull())
-			instancesObject.stoppedMode = valueInstancesInstance["StoppedMode"].asString();
-		if(!valueInstancesInstance["CreditSpecification"].isNull())
-			instancesObject.creditSpecification = valueInstancesInstance["CreditSpecification"].asString();
-		if(!valueInstancesInstance["DeletionProtection"].isNull())
-			instancesObject.deletionProtection = valueInstancesInstance["DeletionProtection"].asString() == "true";
 		if(!valueInstancesInstance["ISP"].isNull())
 			instancesObject.iSP = valueInstancesInstance["ISP"].asString();
+		if(!valueInstancesInstance["CreditSpecification"].isNull())
+			instancesObject.creditSpecification = valueInstancesInstance["CreditSpecification"].asString();
+		if(!valueInstancesInstance["InstanceTypeFamily"].isNull())
+			instancesObject.instanceTypeFamily = valueInstancesInstance["InstanceTypeFamily"].asString();
+		if(!valueInstancesInstance["OSType"].isNull())
+			instancesObject.oSType = valueInstancesInstance["OSType"].asString();
 		auto allNetworkInterfacesNode = valueInstancesInstance["NetworkInterfaces"]["NetworkInterface"];
 		for (auto valueInstancesInstanceNetworkInterfacesNetworkInterface : allNetworkInterfacesNode)
 		{
 			Instance::NetworkInterface networkInterfacesObject;
-			if(!valueInstancesInstanceNetworkInterfacesNetworkInterface["NetworkInterfaceId"].isNull())
-				networkInterfacesObject.networkInterfaceId = valueInstancesInstanceNetworkInterfacesNetworkInterface["NetworkInterfaceId"].asString();
+			if(!valueInstancesInstanceNetworkInterfacesNetworkInterface["Type"].isNull())
+				networkInterfacesObject.type = valueInstancesInstanceNetworkInterfacesNetworkInterface["Type"].asString();
 			if(!valueInstancesInstanceNetworkInterfacesNetworkInterface["MacAddress"].isNull())
 				networkInterfacesObject.macAddress = valueInstancesInstanceNetworkInterfacesNetworkInterface["MacAddress"].asString();
 			if(!valueInstancesInstanceNetworkInterfacesNetworkInterface["PrimaryIpAddress"].isNull())
 				networkInterfacesObject.primaryIpAddress = valueInstancesInstanceNetworkInterfacesNetworkInterface["PrimaryIpAddress"].asString();
-			if(!valueInstancesInstanceNetworkInterfacesNetworkInterface["Type"].isNull())
-				networkInterfacesObject.type = valueInstancesInstanceNetworkInterfacesNetworkInterface["Type"].asString();
+			if(!valueInstancesInstanceNetworkInterfacesNetworkInterface["NetworkInterfaceId"].isNull())
+				networkInterfacesObject.networkInterfaceId = valueInstancesInstanceNetworkInterfacesNetworkInterface["NetworkInterfaceId"].asString();
 			auto allPrivateIpSetsNode = valueInstancesInstanceNetworkInterfacesNetworkInterface["PrivateIpSets"]["PrivateIpSet"];
 			for (auto valueInstancesInstanceNetworkInterfacesNetworkInterfacePrivateIpSetsPrivateIpSet : allPrivateIpSetsNode)
 			{
@@ -173,43 +173,43 @@ void DescribeInstancesResult::parse(const std::string &payload)
 		for (auto valueInstancesInstanceOperationLocksLockReason : allOperationLocksNode)
 		{
 			Instance::LockReason operationLocksObject;
-			if(!valueInstancesInstanceOperationLocksLockReason["LockReason"].isNull())
-				operationLocksObject.lockReason = valueInstancesInstanceOperationLocksLockReason["LockReason"].asString();
 			if(!valueInstancesInstanceOperationLocksLockReason["LockMsg"].isNull())
 				operationLocksObject.lockMsg = valueInstancesInstanceOperationLocksLockReason["LockMsg"].asString();
+			if(!valueInstancesInstanceOperationLocksLockReason["LockReason"].isNull())
+				operationLocksObject.lockReason = valueInstancesInstanceOperationLocksLockReason["LockReason"].asString();
 			instancesObject.operationLocks.push_back(operationLocksObject);
 		}
 		auto allTagsNode = valueInstancesInstance["Tags"]["Tag"];
 		for (auto valueInstancesInstanceTagsTag : allTagsNode)
 		{
 			Instance::Tag tagsObject;
-			if(!valueInstancesInstanceTagsTag["TagKey"].isNull())
-				tagsObject.tagKey = valueInstancesInstanceTagsTag["TagKey"].asString();
 			if(!valueInstancesInstanceTagsTag["TagValue"].isNull())
 				tagsObject.tagValue = valueInstancesInstanceTagsTag["TagValue"].asString();
+			if(!valueInstancesInstanceTagsTag["TagKey"].isNull())
+				tagsObject.tagKey = valueInstancesInstanceTagsTag["TagKey"].asString();
 			instancesObject.tags.push_back(tagsObject);
 		}
 		auto vpcAttributesNode = value["VpcAttributes"];
 		if(!vpcAttributesNode["VpcId"].isNull())
 			instancesObject.vpcAttributes.vpcId = vpcAttributesNode["VpcId"].asString();
-		if(!vpcAttributesNode["VSwitchId"].isNull())
-			instancesObject.vpcAttributes.vSwitchId = vpcAttributesNode["VSwitchId"].asString();
 		if(!vpcAttributesNode["NatIpAddress"].isNull())
 			instancesObject.vpcAttributes.natIpAddress = vpcAttributesNode["NatIpAddress"].asString();
+		if(!vpcAttributesNode["VSwitchId"].isNull())
+			instancesObject.vpcAttributes.vSwitchId = vpcAttributesNode["VSwitchId"].asString();
 			auto allPrivateIpAddress = vpcAttributesNode["PrivateIpAddress"]["IpAddress"];
 			for (auto value : allPrivateIpAddress)
 				instancesObject.vpcAttributes.privateIpAddress.push_back(value.asString());
 		auto eipAddressNode = value["EipAddress"];
-		if(!eipAddressNode["AllocationId"].isNull())
-			instancesObject.eipAddress.allocationId = eipAddressNode["AllocationId"].asString();
+		if(!eipAddressNode["IsSupportUnassociate"].isNull())
+			instancesObject.eipAddress.isSupportUnassociate = eipAddressNode["IsSupportUnassociate"].asString() == "true";
+		if(!eipAddressNode["InternetChargeType"].isNull())
+			instancesObject.eipAddress.internetChargeType = eipAddressNode["InternetChargeType"].asString();
 		if(!eipAddressNode["IpAddress"].isNull())
 			instancesObject.eipAddress.ipAddress = eipAddressNode["IpAddress"].asString();
 		if(!eipAddressNode["Bandwidth"].isNull())
 			instancesObject.eipAddress.bandwidth = std::stoi(eipAddressNode["Bandwidth"].asString());
-		if(!eipAddressNode["InternetChargeType"].isNull())
-			instancesObject.eipAddress.internetChargeType = eipAddressNode["InternetChargeType"].asString();
-		if(!eipAddressNode["IsSupportUnassociate"].isNull())
-			instancesObject.eipAddress.isSupportUnassociate = eipAddressNode["IsSupportUnassociate"].asString() == "true";
+		if(!eipAddressNode["AllocationId"].isNull())
+			instancesObject.eipAddress.allocationId = eipAddressNode["AllocationId"].asString();
 		auto hibernationOptionsNode = value["HibernationOptions"];
 		if(!hibernationOptionsNode["Configured"].isNull())
 			instancesObject.hibernationOptions.configured = hibernationOptionsNode["Configured"].asString() == "true";
@@ -221,29 +221,32 @@ void DescribeInstancesResult::parse(const std::string &payload)
 		if(!dedicatedHostAttributeNode["DedicatedHostClusterId"].isNull())
 			instancesObject.dedicatedHostAttribute.dedicatedHostClusterId = dedicatedHostAttributeNode["DedicatedHostClusterId"].asString();
 		auto ecsCapacityReservationAttrNode = value["EcsCapacityReservationAttr"];
-		if(!ecsCapacityReservationAttrNode["CapacityReservationId"].isNull())
-			instancesObject.ecsCapacityReservationAttr.capacityReservationId = ecsCapacityReservationAttrNode["CapacityReservationId"].asString();
 		if(!ecsCapacityReservationAttrNode["CapacityReservationPreference"].isNull())
 			instancesObject.ecsCapacityReservationAttr.capacityReservationPreference = ecsCapacityReservationAttrNode["CapacityReservationPreference"].asString();
+		if(!ecsCapacityReservationAttrNode["CapacityReservationId"].isNull())
+			instancesObject.ecsCapacityReservationAttr.capacityReservationId = ecsCapacityReservationAttrNode["CapacityReservationId"].asString();
 		auto dedicatedInstanceAttributeNode = value["DedicatedInstanceAttribute"];
-		if(!dedicatedInstanceAttributeNode["Tenancy"].isNull())
-			instancesObject.dedicatedInstanceAttribute.tenancy = dedicatedInstanceAttributeNode["Tenancy"].asString();
 		if(!dedicatedInstanceAttributeNode["Affinity"].isNull())
 			instancesObject.dedicatedInstanceAttribute.affinity = dedicatedInstanceAttributeNode["Affinity"].asString();
+		if(!dedicatedInstanceAttributeNode["Tenancy"].isNull())
+			instancesObject.dedicatedInstanceAttribute.tenancy = dedicatedInstanceAttributeNode["Tenancy"].asString();
 		auto cpuOptionsNode = value["CpuOptions"];
+		if(!cpuOptionsNode["Numa"].isNull())
+			instancesObject.cpuOptions.numa = cpuOptionsNode["Numa"].asString();
 		if(!cpuOptionsNode["CoreCount"].isNull())
 			instancesObject.cpuOptions.coreCount = std::stoi(cpuOptionsNode["CoreCount"].asString());
 		if(!cpuOptionsNode["ThreadsPerCore"].isNull())
 			instancesObject.cpuOptions.threadsPerCore = std::stoi(cpuOptionsNode["ThreadsPerCore"].asString());
-		if(!cpuOptionsNode["Numa"].isNull())
-			instancesObject.cpuOptions.numa = cpuOptionsNode["Numa"].asString();
 		auto metadataOptionsNode = value["MetadataOptions"];
 		if(!metadataOptionsNode["HttpEndpoint"].isNull())
 			instancesObject.metadataOptions.httpEndpoint = metadataOptionsNode["HttpEndpoint"].asString();
-		if(!metadataOptionsNode["HttpTokens"].isNull())
-			instancesObject.metadataOptions.httpTokens = metadataOptionsNode["HttpTokens"].asString();
 		if(!metadataOptionsNode["HttpPutResponseHopLimit"].isNull())
 			instancesObject.metadataOptions.httpPutResponseHopLimit = std::stoi(metadataOptionsNode["HttpPutResponseHopLimit"].asString());
+		if(!metadataOptionsNode["HttpTokens"].isNull())
+			instancesObject.metadataOptions.httpTokens = metadataOptionsNode["HttpTokens"].asString();
+		auto allRdmaIpAddress = value["RdmaIpAddress"]["IpAddress"];
+		for (auto value : allRdmaIpAddress)
+			instancesObject.rdmaIpAddress.push_back(value.asString());
 		auto allSecurityGroupIds = value["SecurityGroupIds"]["SecurityGroupId"];
 		for (auto value : allSecurityGroupIds)
 			instancesObject.securityGroupIds.push_back(value.asString());
@@ -253,19 +256,16 @@ void DescribeInstancesResult::parse(const std::string &payload)
 		auto allInnerIpAddress = value["InnerIpAddress"]["IpAddress"];
 		for (auto value : allInnerIpAddress)
 			instancesObject.innerIpAddress.push_back(value.asString());
-		auto allRdmaIpAddress = value["RdmaIpAddress"]["IpAddress"];
-		for (auto value : allRdmaIpAddress)
-			instancesObject.rdmaIpAddress.push_back(value.asString());
 		instances_.push_back(instancesObject);
 	}
-	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());
 	if(!value["NextToken"].isNull())
 		nextToken_ = value["NextToken"].asString();
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stoi(value["PageNumber"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
 
 }
 
@@ -279,14 +279,14 @@ int DescribeInstancesResult::getTotalCount()const
 	return totalCount_;
 }
 
-int DescribeInstancesResult::getPageSize()const
+std::string DescribeInstancesResult::getNextToken()const
 {
-	return pageSize_;
+	return nextToken_;
 }
 
-std::string DescribeInstancesResult::getNextToken()const
+int DescribeInstancesResult::getPageSize()const
 {
-	return nextToken_;
+	return pageSize_;
 }
 
 int DescribeInstancesResult::getPageNumber()const

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

@@ -104,6 +104,17 @@ void DescribeInvocationsRequest::setContentEncoding(const std::string& contentEn
 	setParameter("ContentEncoding", contentEncoding);
 }
 
+std::string DescribeInvocationsRequest::getRepeatMode()const
+{
+	return repeatMode_;
+}
+
+void DescribeInvocationsRequest::setRepeatMode(const std::string& repeatMode)
+{
+	repeatMode_ = repeatMode;
+	setParameter("RepeatMode", repeatMode);
+}
+
 long DescribeInvocationsRequest::getPageSize()const
 {
 	return pageSize_;

+ 40 - 40
ecs/src/model/DescribeInvocationsResult.cc

@@ -43,76 +43,76 @@ void DescribeInvocationsResult::parse(const std::string &payload)
 	for (auto valueInvocationsInvocation : allInvocationsNode)
 	{
 		Invocation invocationsObject;
-		if(!valueInvocationsInvocation["InvokeId"].isNull())
-			invocationsObject.invokeId = valueInvocationsInvocation["InvokeId"].asString();
 		if(!valueInvocationsInvocation["CreationTime"].isNull())
 			invocationsObject.creationTime = valueInvocationsInvocation["CreationTime"].asString();
-		if(!valueInvocationsInvocation["CommandId"].isNull())
-			invocationsObject.commandId = valueInvocationsInvocation["CommandId"].asString();
-		if(!valueInvocationsInvocation["CommandType"].isNull())
-			invocationsObject.commandType = valueInvocationsInvocation["CommandType"].asString();
-		if(!valueInvocationsInvocation["CommandName"].isNull())
-			invocationsObject.commandName = valueInvocationsInvocation["CommandName"].asString();
-		if(!valueInvocationsInvocation["CommandContent"].isNull())
-			invocationsObject.commandContent = valueInvocationsInvocation["CommandContent"].asString();
 		if(!valueInvocationsInvocation["Frequency"].isNull())
 			invocationsObject.frequency = valueInvocationsInvocation["Frequency"].asString();
-		if(!valueInvocationsInvocation["Timed"].isNull())
-			invocationsObject.timed = valueInvocationsInvocation["Timed"].asString() == "true";
+		if(!valueInvocationsInvocation["InvocationStatus"].isNull())
+			invocationsObject.invocationStatus = valueInvocationsInvocation["InvocationStatus"].asString();
 		if(!valueInvocationsInvocation["RepeatMode"].isNull())
 			invocationsObject.repeatMode = valueInvocationsInvocation["RepeatMode"].asString();
+		if(!valueInvocationsInvocation["CommandId"].isNull())
+			invocationsObject.commandId = valueInvocationsInvocation["CommandId"].asString();
+		if(!valueInvocationsInvocation["CommandType"].isNull())
+			invocationsObject.commandType = valueInvocationsInvocation["CommandType"].asString();
 		if(!valueInvocationsInvocation["InvokeStatus"].isNull())
 			invocationsObject.invokeStatus = valueInvocationsInvocation["InvokeStatus"].asString();
-		if(!valueInvocationsInvocation["InvocationStatus"].isNull())
-			invocationsObject.invocationStatus = valueInvocationsInvocation["InvocationStatus"].asString();
 		if(!valueInvocationsInvocation["Parameters"].isNull())
 			invocationsObject.parameters = valueInvocationsInvocation["Parameters"].asString();
+		if(!valueInvocationsInvocation["Timed"].isNull())
+			invocationsObject.timed = valueInvocationsInvocation["Timed"].asString() == "true";
+		if(!valueInvocationsInvocation["CommandContent"].isNull())
+			invocationsObject.commandContent = valueInvocationsInvocation["CommandContent"].asString();
+		if(!valueInvocationsInvocation["CommandName"].isNull())
+			invocationsObject.commandName = valueInvocationsInvocation["CommandName"].asString();
+		if(!valueInvocationsInvocation["InvokeId"].isNull())
+			invocationsObject.invokeId = valueInvocationsInvocation["InvokeId"].asString();
 		if(!valueInvocationsInvocation["Username"].isNull())
 			invocationsObject.username = valueInvocationsInvocation["Username"].asString();
 		auto allInvokeInstancesNode = valueInvocationsInvocation["InvokeInstances"]["InvokeInstance"];
 		for (auto valueInvocationsInvocationInvokeInstancesInvokeInstance : allInvokeInstancesNode)
 		{
 			Invocation::InvokeInstance invokeInstancesObject;
-			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["InstanceId"].isNull())
-				invokeInstancesObject.instanceId = valueInvocationsInvocationInvokeInstancesInvokeInstance["InstanceId"].asString();
-			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["Repeats"].isNull())
-				invokeInstancesObject.repeats = std::stoi(valueInvocationsInvocationInvokeInstancesInvokeInstance["Repeats"].asString());
-			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["Timed"].isNull())
-				invokeInstancesObject.timed = valueInvocationsInvocationInvokeInstancesInvokeInstance["Timed"].asString() == "true";
-			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["InstanceInvokeStatus"].isNull())
-				invokeInstancesObject.instanceInvokeStatus = valueInvocationsInvocationInvokeInstancesInvokeInstance["InstanceInvokeStatus"].asString();
+			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["CreationTime"].isNull())
+				invokeInstancesObject.creationTime = valueInvocationsInvocationInvokeInstancesInvokeInstance["CreationTime"].asString();
+			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["UpdateTime"].isNull())
+				invokeInstancesObject.updateTime = valueInvocationsInvocationInvokeInstancesInvokeInstance["UpdateTime"].asString();
+			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["FinishTime"].isNull())
+				invokeInstancesObject.finishTime = valueInvocationsInvocationInvokeInstancesInvokeInstance["FinishTime"].asString();
 			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["InvocationStatus"].isNull())
 				invokeInstancesObject.invocationStatus = valueInvocationsInvocationInvokeInstancesInvokeInstance["InvocationStatus"].asString();
+			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["Repeats"].isNull())
+				invokeInstancesObject.repeats = std::stoi(valueInvocationsInvocationInvokeInstancesInvokeInstance["Repeats"].asString());
+			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["InstanceId"].isNull())
+				invokeInstancesObject.instanceId = valueInvocationsInvocationInvokeInstancesInvokeInstance["InstanceId"].asString();
 			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["Output"].isNull())
 				invokeInstancesObject.output = valueInvocationsInvocationInvokeInstancesInvokeInstance["Output"].asString();
-			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["ExitCode"].isNull())
-				invokeInstancesObject.exitCode = std::stol(valueInvocationsInvocationInvokeInstancesInvokeInstance["ExitCode"].asString());
 			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["Dropped"].isNull())
 				invokeInstancesObject.dropped = std::stoi(valueInvocationsInvocationInvokeInstancesInvokeInstance["Dropped"].asString());
-			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["ErrorCode"].isNull())
-				invokeInstancesObject.errorCode = valueInvocationsInvocationInvokeInstancesInvokeInstance["ErrorCode"].asString();
-			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["ErrorInfo"].isNull())
-				invokeInstancesObject.errorInfo = valueInvocationsInvocationInvokeInstancesInvokeInstance["ErrorInfo"].asString();
-			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["CreationTime"].isNull())
-				invokeInstancesObject.creationTime = valueInvocationsInvocationInvokeInstancesInvokeInstance["CreationTime"].asString();
-			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["StartTime"].isNull())
-				invokeInstancesObject.startTime = valueInvocationsInvocationInvokeInstancesInvokeInstance["StartTime"].asString();
 			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["StopTime"].isNull())
 				invokeInstancesObject.stopTime = valueInvocationsInvocationInvokeInstancesInvokeInstance["StopTime"].asString();
-			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["FinishTime"].isNull())
-				invokeInstancesObject.finishTime = valueInvocationsInvocationInvokeInstancesInvokeInstance["FinishTime"].asString();
-			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["UpdateTime"].isNull())
-				invokeInstancesObject.updateTime = valueInvocationsInvocationInvokeInstancesInvokeInstance["UpdateTime"].asString();
+			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["ExitCode"].isNull())
+				invokeInstancesObject.exitCode = std::stol(valueInvocationsInvocationInvokeInstancesInvokeInstance["ExitCode"].asString());
+			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["StartTime"].isNull())
+				invokeInstancesObject.startTime = valueInvocationsInvocationInvokeInstancesInvokeInstance["StartTime"].asString();
+			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["ErrorInfo"].isNull())
+				invokeInstancesObject.errorInfo = valueInvocationsInvocationInvokeInstancesInvokeInstance["ErrorInfo"].asString();
+			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["Timed"].isNull())
+				invokeInstancesObject.timed = valueInvocationsInvocationInvokeInstancesInvokeInstance["Timed"].asString() == "true";
+			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["ErrorCode"].isNull())
+				invokeInstancesObject.errorCode = valueInvocationsInvocationInvokeInstancesInvokeInstance["ErrorCode"].asString();
+			if(!valueInvocationsInvocationInvokeInstancesInvokeInstance["InstanceInvokeStatus"].isNull())
+				invokeInstancesObject.instanceInvokeStatus = valueInvocationsInvocationInvokeInstancesInvokeInstance["InstanceInvokeStatus"].asString();
 			invocationsObject.invokeInstances.push_back(invokeInstancesObject);
 		}
 		invocations_.push_back(invocationsObject);
 	}
-	if(!value["TotalCount"].isNull())
-		totalCount_ = std::stol(value["TotalCount"].asString());
-	if(!value["PageNumber"].isNull())
-		pageNumber_ = std::stol(value["PageNumber"].asString());
 	if(!value["PageSize"].isNull())
 		pageSize_ = std::stol(value["PageSize"].asString());
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stol(value["PageNumber"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stol(value["TotalCount"].asString());
 
 }
 

+ 13 - 0
ecs/src/model/DescribeNetworkInterfacesRequest.cc

@@ -267,6 +267,19 @@ void DescribeNetworkInterfacesRequest::setNetworkInterfaceId(const std::vector<s
 	}
 }
 
+std::vector<std::string> DescribeNetworkInterfacesRequest::getIpv6Address()const
+{
+	return ipv6Address_;
+}
+
+void DescribeNetworkInterfacesRequest::setIpv6Address(const std::vector<std::string>& ipv6Address)
+{
+	ipv6Address_ = ipv6Address;
+	for(int dep1 = 0; dep1!= ipv6Address.size(); dep1++) {
+		setParameter("Ipv6Address."+ std::to_string(dep1), ipv6Address.at(dep1));
+	}
+}
+
 std::string DescribeNetworkInterfacesRequest::getStatus()const
 {
 	return status_;

+ 42 - 42
ecs/src/model/DescribeNetworkInterfacesResult.cc

@@ -43,44 +43,44 @@ void DescribeNetworkInterfacesResult::parse(const std::string &payload)
 	for (auto valueNetworkInterfaceSetsNetworkInterfaceSet : allNetworkInterfaceSetsNode)
 	{
 		NetworkInterfaceSet networkInterfaceSetsObject;
-		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["NetworkInterfaceId"].isNull())
-			networkInterfaceSetsObject.networkInterfaceId = valueNetworkInterfaceSetsNetworkInterfaceSet["NetworkInterfaceId"].asString();
-		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["Status"].isNull())
-			networkInterfaceSetsObject.status = valueNetworkInterfaceSetsNetworkInterfaceSet["Status"].asString();
-		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["Type"].isNull())
-			networkInterfaceSetsObject.type = valueNetworkInterfaceSetsNetworkInterfaceSet["Type"].asString();
+		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["CreationTime"].isNull())
+			networkInterfaceSetsObject.creationTime = valueNetworkInterfaceSetsNetworkInterfaceSet["CreationTime"].asString();
 		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["VpcId"].isNull())
 			networkInterfaceSetsObject.vpcId = valueNetworkInterfaceSetsNetworkInterfaceSet["VpcId"].asString();
-		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["VSwitchId"].isNull())
-			networkInterfaceSetsObject.vSwitchId = valueNetworkInterfaceSetsNetworkInterfaceSet["VSwitchId"].asString();
-		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["ZoneId"].isNull())
-			networkInterfaceSetsObject.zoneId = valueNetworkInterfaceSetsNetworkInterfaceSet["ZoneId"].asString();
-		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["PrivateIpAddress"].isNull())
-			networkInterfaceSetsObject.privateIpAddress = valueNetworkInterfaceSetsNetworkInterfaceSet["PrivateIpAddress"].asString();
-		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["MacAddress"].isNull())
-			networkInterfaceSetsObject.macAddress = valueNetworkInterfaceSetsNetworkInterfaceSet["MacAddress"].asString();
+		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["Type"].isNull())
+			networkInterfaceSetsObject.type = valueNetworkInterfaceSetsNetworkInterfaceSet["Type"].asString();
+		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["Status"].isNull())
+			networkInterfaceSetsObject.status = valueNetworkInterfaceSetsNetworkInterfaceSet["Status"].asString();
+		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["NetworkInterfaceTrafficMode"].isNull())
+			networkInterfaceSetsObject.networkInterfaceTrafficMode = valueNetworkInterfaceSetsNetworkInterfaceSet["NetworkInterfaceTrafficMode"].asString();
 		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["NetworkInterfaceName"].isNull())
 			networkInterfaceSetsObject.networkInterfaceName = valueNetworkInterfaceSetsNetworkInterfaceSet["NetworkInterfaceName"].asString();
-		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["Description"].isNull())
-			networkInterfaceSetsObject.description = valueNetworkInterfaceSetsNetworkInterfaceSet["Description"].asString();
-		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["InstanceId"].isNull())
-			networkInterfaceSetsObject.instanceId = valueNetworkInterfaceSetsNetworkInterfaceSet["InstanceId"].asString();
-		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["CreationTime"].isNull())
-			networkInterfaceSetsObject.creationTime = valueNetworkInterfaceSetsNetworkInterfaceSet["CreationTime"].asString();
-		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["ResourceGroupId"].isNull())
-			networkInterfaceSetsObject.resourceGroupId = valueNetworkInterfaceSetsNetworkInterfaceSet["ResourceGroupId"].asString();
+		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["MacAddress"].isNull())
+			networkInterfaceSetsObject.macAddress = valueNetworkInterfaceSetsNetworkInterfaceSet["MacAddress"].asString();
+		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["QueuePairNumber"].isNull())
+			networkInterfaceSetsObject.queuePairNumber = std::stoi(valueNetworkInterfaceSetsNetworkInterfaceSet["QueuePairNumber"].asString());
+		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["NetworkInterfaceId"].isNull())
+			networkInterfaceSetsObject.networkInterfaceId = valueNetworkInterfaceSetsNetworkInterfaceSet["NetworkInterfaceId"].asString();
 		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["ServiceID"].isNull())
 			networkInterfaceSetsObject.serviceID = std::stol(valueNetworkInterfaceSetsNetworkInterfaceSet["ServiceID"].asString());
+		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["InstanceId"].isNull())
+			networkInterfaceSetsObject.instanceId = valueNetworkInterfaceSetsNetworkInterfaceSet["InstanceId"].asString();
+		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["OwnerId"].isNull())
+			networkInterfaceSetsObject.ownerId = valueNetworkInterfaceSetsNetworkInterfaceSet["OwnerId"].asString();
 		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["ServiceManaged"].isNull())
 			networkInterfaceSetsObject.serviceManaged = valueNetworkInterfaceSetsNetworkInterfaceSet["ServiceManaged"].asString() == "true";
+		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["VSwitchId"].isNull())
+			networkInterfaceSetsObject.vSwitchId = valueNetworkInterfaceSetsNetworkInterfaceSet["VSwitchId"].asString();
+		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["Description"].isNull())
+			networkInterfaceSetsObject.description = valueNetworkInterfaceSetsNetworkInterfaceSet["Description"].asString();
+		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["ResourceGroupId"].isNull())
+			networkInterfaceSetsObject.resourceGroupId = valueNetworkInterfaceSetsNetworkInterfaceSet["ResourceGroupId"].asString();
+		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["ZoneId"].isNull())
+			networkInterfaceSetsObject.zoneId = valueNetworkInterfaceSetsNetworkInterfaceSet["ZoneId"].asString();
+		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["PrivateIpAddress"].isNull())
+			networkInterfaceSetsObject.privateIpAddress = valueNetworkInterfaceSetsNetworkInterfaceSet["PrivateIpAddress"].asString();
 		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["QueueNumber"].isNull())
 			networkInterfaceSetsObject.queueNumber = std::stoi(valueNetworkInterfaceSetsNetworkInterfaceSet["QueueNumber"].asString());
-		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["OwnerId"].isNull())
-			networkInterfaceSetsObject.ownerId = valueNetworkInterfaceSetsNetworkInterfaceSet["OwnerId"].asString();
-		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["NetworkInterfaceTrafficMode"].isNull())
-			networkInterfaceSetsObject.networkInterfaceTrafficMode = valueNetworkInterfaceSetsNetworkInterfaceSet["NetworkInterfaceTrafficMode"].asString();
-		if(!valueNetworkInterfaceSetsNetworkInterfaceSet["QueuePairNumber"].isNull())
-			networkInterfaceSetsObject.queuePairNumber = std::stoi(valueNetworkInterfaceSetsNetworkInterfaceSet["QueuePairNumber"].asString());
 		auto allPrivateIpSetsNode = valueNetworkInterfaceSetsNetworkInterfaceSet["PrivateIpSets"]["PrivateIpSet"];
 		for (auto valueNetworkInterfaceSetsNetworkInterfaceSetPrivateIpSetsPrivateIpSet : allPrivateIpSetsNode)
 		{
@@ -108,10 +108,10 @@ void DescribeNetworkInterfacesResult::parse(const std::string &payload)
 		for (auto valueNetworkInterfaceSetsNetworkInterfaceSetTagsTag : allTagsNode)
 		{
 			NetworkInterfaceSet::Tag tagsObject;
-			if(!valueNetworkInterfaceSetsNetworkInterfaceSetTagsTag["TagKey"].isNull())
-				tagsObject.tagKey = valueNetworkInterfaceSetsNetworkInterfaceSetTagsTag["TagKey"].asString();
 			if(!valueNetworkInterfaceSetsNetworkInterfaceSetTagsTag["TagValue"].isNull())
 				tagsObject.tagValue = valueNetworkInterfaceSetsNetworkInterfaceSetTagsTag["TagValue"].asString();
+			if(!valueNetworkInterfaceSetsNetworkInterfaceSetTagsTag["TagKey"].isNull())
+				tagsObject.tagKey = valueNetworkInterfaceSetsNetworkInterfaceSetTagsTag["TagKey"].asString();
 			networkInterfaceSetsObject.tags.push_back(tagsObject);
 		}
 		auto associatedPublicIpNode = value["AssociatedPublicIp"];
@@ -120,25 +120,25 @@ void DescribeNetworkInterfacesResult::parse(const std::string &payload)
 		if(!associatedPublicIpNode["AllocationId"].isNull())
 			networkInterfaceSetsObject.associatedPublicIp.allocationId = associatedPublicIpNode["AllocationId"].asString();
 		auto attachmentNode = value["Attachment"];
+		if(!attachmentNode["DeviceIndex"].isNull())
+			networkInterfaceSetsObject.attachment.deviceIndex = std::stoi(attachmentNode["DeviceIndex"].asString());
 		if(!attachmentNode["InstanceId"].isNull())
 			networkInterfaceSetsObject.attachment.instanceId = attachmentNode["InstanceId"].asString();
 		if(!attachmentNode["TrunkNetworkInterfaceId"].isNull())
 			networkInterfaceSetsObject.attachment.trunkNetworkInterfaceId = attachmentNode["TrunkNetworkInterfaceId"].asString();
-		if(!attachmentNode["DeviceIndex"].isNull())
-			networkInterfaceSetsObject.attachment.deviceIndex = std::stoi(attachmentNode["DeviceIndex"].asString());
 		auto allSecurityGroupIds = value["SecurityGroupIds"]["SecurityGroupId"];
 		for (auto value : allSecurityGroupIds)
 			networkInterfaceSetsObject.securityGroupIds.push_back(value.asString());
 		networkInterfaceSets_.push_back(networkInterfaceSetsObject);
 	}
-	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());
 	if(!value["NextToken"].isNull())
 		nextToken_ = value["NextToken"].asString();
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stoi(value["PageNumber"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
 
 }
 
@@ -147,14 +147,14 @@ int DescribeNetworkInterfacesResult::getTotalCount()const
 	return totalCount_;
 }
 
-int DescribeNetworkInterfacesResult::getPageSize()const
+std::string DescribeNetworkInterfacesResult::getNextToken()const
 {
-	return pageSize_;
+	return nextToken_;
 }
 
-std::string DescribeNetworkInterfacesResult::getNextToken()const
+int DescribeNetworkInterfacesResult::getPageSize()const
 {
-	return nextToken_;
+	return pageSize_;
 }
 
 int DescribeNetworkInterfacesResult::getPageNumber()const

+ 117 - 0
ecs/src/model/DescribePrefixListAssociationsRequest.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/DescribePrefixListAssociationsRequest.h>
+
+using AlibabaCloud::Ecs::Model::DescribePrefixListAssociationsRequest;
+
+DescribePrefixListAssociationsRequest::DescribePrefixListAssociationsRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "DescribePrefixListAssociations")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribePrefixListAssociationsRequest::~DescribePrefixListAssociationsRequest()
+{}
+
+long DescribePrefixListAssociationsRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void DescribePrefixListAssociationsRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string DescribePrefixListAssociationsRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void DescribePrefixListAssociationsRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+std::string DescribePrefixListAssociationsRequest::getPrefixListId()const
+{
+	return prefixListId_;
+}
+
+void DescribePrefixListAssociationsRequest::setPrefixListId(const std::string& prefixListId)
+{
+	prefixListId_ = prefixListId;
+	setParameter("PrefixListId", prefixListId);
+}
+
+std::string DescribePrefixListAssociationsRequest::getNextToken()const
+{
+	return nextToken_;
+}
+
+void DescribePrefixListAssociationsRequest::setNextToken(const std::string& nextToken)
+{
+	nextToken_ = nextToken;
+	setParameter("NextToken", nextToken);
+}
+
+std::string DescribePrefixListAssociationsRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void DescribePrefixListAssociationsRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string DescribePrefixListAssociationsRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void DescribePrefixListAssociationsRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+long DescribePrefixListAssociationsRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DescribePrefixListAssociationsRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+int DescribePrefixListAssociationsRequest::getMaxResults()const
+{
+	return maxResults_;
+}
+
+void DescribePrefixListAssociationsRequest::setMaxResults(int maxResults)
+{
+	maxResults_ = maxResults;
+	setParameter("MaxResults", std::to_string(maxResults));
+}
+

+ 66 - 0
ecs/src/model/DescribePrefixListAssociationsResult.cc

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

+ 95 - 0
ecs/src/model/DescribePrefixListAttributesRequest.cc

@@ -0,0 +1,95 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ecs/model/DescribePrefixListAttributesRequest.h>
+
+using AlibabaCloud::Ecs::Model::DescribePrefixListAttributesRequest;
+
+DescribePrefixListAttributesRequest::DescribePrefixListAttributesRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "DescribePrefixListAttributes")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribePrefixListAttributesRequest::~DescribePrefixListAttributesRequest()
+{}
+
+long DescribePrefixListAttributesRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void DescribePrefixListAttributesRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string DescribePrefixListAttributesRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void DescribePrefixListAttributesRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+std::string DescribePrefixListAttributesRequest::getPrefixListId()const
+{
+	return prefixListId_;
+}
+
+void DescribePrefixListAttributesRequest::setPrefixListId(const std::string& prefixListId)
+{
+	prefixListId_ = prefixListId;
+	setParameter("PrefixListId", prefixListId);
+}
+
+std::string DescribePrefixListAttributesRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void DescribePrefixListAttributesRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string DescribePrefixListAttributesRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void DescribePrefixListAttributesRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+long DescribePrefixListAttributesRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DescribePrefixListAttributesRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+

+ 101 - 0
ecs/src/model/DescribePrefixListAttributesResult.cc

@@ -0,0 +1,101 @@
+/*
+ * 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/DescribePrefixListAttributesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ecs;
+using namespace AlibabaCloud::Ecs::Model;
+
+DescribePrefixListAttributesResult::DescribePrefixListAttributesResult() :
+	ServiceResult()
+{}
+
+DescribePrefixListAttributesResult::DescribePrefixListAttributesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribePrefixListAttributesResult::~DescribePrefixListAttributesResult()
+{}
+
+void DescribePrefixListAttributesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allEntriesNode = value["Entries"]["Entry"];
+	for (auto valueEntriesEntry : allEntriesNode)
+	{
+		Entry entriesObject;
+		if(!valueEntriesEntry["Cidr"].isNull())
+			entriesObject.cidr = valueEntriesEntry["Cidr"].asString();
+		if(!valueEntriesEntry["Description"].isNull())
+			entriesObject.description = valueEntriesEntry["Description"].asString();
+		entries_.push_back(entriesObject);
+	}
+	if(!value["PrefixListId"].isNull())
+		prefixListId_ = value["PrefixListId"].asString();
+	if(!value["PrefixListName"].isNull())
+		prefixListName_ = value["PrefixListName"].asString();
+	if(!value["AddressFamily"].isNull())
+		addressFamily_ = value["AddressFamily"].asString();
+	if(!value["MaxEntries"].isNull())
+		maxEntries_ = std::stoi(value["MaxEntries"].asString());
+	if(!value["Description"].isNull())
+		description_ = value["Description"].asString();
+	if(!value["CreationTime"].isNull())
+		creationTime_ = value["CreationTime"].asString();
+
+}
+
+int DescribePrefixListAttributesResult::getMaxEntries()const
+{
+	return maxEntries_;
+}
+
+std::string DescribePrefixListAttributesResult::getDescription()const
+{
+	return description_;
+}
+
+std::string DescribePrefixListAttributesResult::getPrefixListId()const
+{
+	return prefixListId_;
+}
+
+std::string DescribePrefixListAttributesResult::getPrefixListName()const
+{
+	return prefixListName_;
+}
+
+std::string DescribePrefixListAttributesResult::getCreationTime()const
+{
+	return creationTime_;
+}
+
+std::vector<DescribePrefixListAttributesResult::Entry> DescribePrefixListAttributesResult::getEntries()const
+{
+	return entries_;
+}
+
+std::string DescribePrefixListAttributesResult::getAddressFamily()const
+{
+	return addressFamily_;
+}
+

+ 141 - 0
ecs/src/model/DescribePrefixListsRequest.cc

@@ -0,0 +1,141 @@
+/*
+ * 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/DescribePrefixListsRequest.h>
+
+using AlibabaCloud::Ecs::Model::DescribePrefixListsRequest;
+
+DescribePrefixListsRequest::DescribePrefixListsRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "DescribePrefixLists")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribePrefixListsRequest::~DescribePrefixListsRequest()
+{}
+
+long DescribePrefixListsRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void DescribePrefixListsRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string DescribePrefixListsRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void DescribePrefixListsRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+std::vector<std::string> DescribePrefixListsRequest::getPrefixListId()const
+{
+	return prefixListId_;
+}
+
+void DescribePrefixListsRequest::setPrefixListId(const std::vector<std::string>& prefixListId)
+{
+	prefixListId_ = prefixListId;
+	for(int dep1 = 0; dep1!= prefixListId.size(); dep1++) {
+		setParameter("PrefixListId."+ std::to_string(dep1), prefixListId.at(dep1));
+	}
+}
+
+std::string DescribePrefixListsRequest::getNextToken()const
+{
+	return nextToken_;
+}
+
+void DescribePrefixListsRequest::setNextToken(const std::string& nextToken)
+{
+	nextToken_ = nextToken;
+	setParameter("NextToken", nextToken);
+}
+
+std::string DescribePrefixListsRequest::getAddressFamily()const
+{
+	return addressFamily_;
+}
+
+void DescribePrefixListsRequest::setAddressFamily(const std::string& addressFamily)
+{
+	addressFamily_ = addressFamily;
+	setParameter("AddressFamily", addressFamily);
+}
+
+std::string DescribePrefixListsRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void DescribePrefixListsRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string DescribePrefixListsRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void DescribePrefixListsRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+long DescribePrefixListsRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DescribePrefixListsRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string DescribePrefixListsRequest::getPrefixListName()const
+{
+	return prefixListName_;
+}
+
+void DescribePrefixListsRequest::setPrefixListName(const std::string& prefixListName)
+{
+	prefixListName_ = prefixListName;
+	setParameter("PrefixListName", prefixListName);
+}
+
+int DescribePrefixListsRequest::getMaxResults()const
+{
+	return maxResults_;
+}
+
+void DescribePrefixListsRequest::setMaxResults(int maxResults)
+{
+	maxResults_ = maxResults;
+	setParameter("MaxResults", std::to_string(maxResults));
+}
+

+ 76 - 0
ecs/src/model/DescribePrefixListsResult.cc

@@ -0,0 +1,76 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ecs/model/DescribePrefixListsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ecs;
+using namespace AlibabaCloud::Ecs::Model;
+
+DescribePrefixListsResult::DescribePrefixListsResult() :
+	ServiceResult()
+{}
+
+DescribePrefixListsResult::DescribePrefixListsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribePrefixListsResult::~DescribePrefixListsResult()
+{}
+
+void DescribePrefixListsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allPrefixListsNode = value["PrefixLists"]["PrefixList"];
+	for (auto valuePrefixListsPrefixList : allPrefixListsNode)
+	{
+		PrefixList prefixListsObject;
+		if(!valuePrefixListsPrefixList["PrefixListId"].isNull())
+			prefixListsObject.prefixListId = valuePrefixListsPrefixList["PrefixListId"].asString();
+		if(!valuePrefixListsPrefixList["PrefixListName"].isNull())
+			prefixListsObject.prefixListName = valuePrefixListsPrefixList["PrefixListName"].asString();
+		if(!valuePrefixListsPrefixList["AddressFamily"].isNull())
+			prefixListsObject.addressFamily = valuePrefixListsPrefixList["AddressFamily"].asString();
+		if(!valuePrefixListsPrefixList["MaxEntries"].isNull())
+			prefixListsObject.maxEntries = std::stoi(valuePrefixListsPrefixList["MaxEntries"].asString());
+		if(!valuePrefixListsPrefixList["Description"].isNull())
+			prefixListsObject.description = valuePrefixListsPrefixList["Description"].asString();
+		if(!valuePrefixListsPrefixList["CreationTime"].isNull())
+			prefixListsObject.creationTime = valuePrefixListsPrefixList["CreationTime"].asString();
+		if(!valuePrefixListsPrefixList["AssociationCount"].isNull())
+			prefixListsObject.associationCount = std::stoi(valuePrefixListsPrefixList["AssociationCount"].asString());
+		prefixLists_.push_back(prefixListsObject);
+	}
+	if(!value["NextToken"].isNull())
+		nextToken_ = value["NextToken"].asString();
+
+}
+
+std::string DescribePrefixListsResult::getNextToken()const
+{
+	return nextToken_;
+}
+
+std::vector<DescribePrefixListsResult::PrefixList> DescribePrefixListsResult::getPrefixLists()const
+{
+	return prefixLists_;
+}
+

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

@@ -57,6 +57,10 @@ void DescribeSecurityGroupAttributeResult::parse(const std::string &payload)
 			permissionsObject.sourceCidrIp = valuePermissionsPermission["SourceCidrIp"].asString();
 		if(!valuePermissionsPermission["Ipv6SourceCidrIp"].isNull())
 			permissionsObject.ipv6SourceCidrIp = valuePermissionsPermission["Ipv6SourceCidrIp"].asString();
+		if(!valuePermissionsPermission["SourcePrefixListId"].isNull())
+			permissionsObject.sourcePrefixListId = valuePermissionsPermission["SourcePrefixListId"].asString();
+		if(!valuePermissionsPermission["SourcePrefixListName"].isNull())
+			permissionsObject.sourcePrefixListName = valuePermissionsPermission["SourcePrefixListName"].asString();
 		if(!valuePermissionsPermission["Policy"].isNull())
 			permissionsObject.policy = valuePermissionsPermission["Policy"].asString();
 		if(!valuePermissionsPermission["NicType"].isNull())
@@ -71,6 +75,10 @@ void DescribeSecurityGroupAttributeResult::parse(const std::string &payload)
 			permissionsObject.destCidrIp = valuePermissionsPermission["DestCidrIp"].asString();
 		if(!valuePermissionsPermission["Ipv6DestCidrIp"].isNull())
 			permissionsObject.ipv6DestCidrIp = valuePermissionsPermission["Ipv6DestCidrIp"].asString();
+		if(!valuePermissionsPermission["DestPrefixListId"].isNull())
+			permissionsObject.destPrefixListId = valuePermissionsPermission["DestPrefixListId"].asString();
+		if(!valuePermissionsPermission["DestPrefixListName"].isNull())
+			permissionsObject.destPrefixListName = valuePermissionsPermission["DestPrefixListName"].asString();
 		if(!valuePermissionsPermission["DestGroupOwnerAccount"].isNull())
 			permissionsObject.destGroupOwnerAccount = valuePermissionsPermission["DestGroupOwnerAccount"].asString();
 		if(!valuePermissionsPermission["Priority"].isNull())

+ 18 - 18
ecs/src/model/DescribeVSwitchesResult.cc

@@ -43,36 +43,36 @@ void DescribeVSwitchesResult::parse(const std::string &payload)
 	for (auto valueVSwitchesVSwitch : allVSwitchesNode)
 	{
 		VSwitch vSwitchesObject;
-		if(!valueVSwitchesVSwitch["VSwitchId"].isNull())
-			vSwitchesObject.vSwitchId = valueVSwitchesVSwitch["VSwitchId"].asString();
-		if(!valueVSwitchesVSwitch["VpcId"].isNull())
-			vSwitchesObject.vpcId = valueVSwitchesVSwitch["VpcId"].asString();
+		if(!valueVSwitchesVSwitch["CreationTime"].isNull())
+			vSwitchesObject.creationTime = valueVSwitchesVSwitch["CreationTime"].asString();
 		if(!valueVSwitchesVSwitch["Status"].isNull())
 			vSwitchesObject.status = valueVSwitchesVSwitch["Status"].asString();
+		if(!valueVSwitchesVSwitch["VpcId"].isNull())
+			vSwitchesObject.vpcId = valueVSwitchesVSwitch["VpcId"].asString();
+		if(!valueVSwitchesVSwitch["IsDefault"].isNull())
+			vSwitchesObject.isDefault = valueVSwitchesVSwitch["IsDefault"].asString() == "true";
+		if(!valueVSwitchesVSwitch["VSwitchId"].isNull())
+			vSwitchesObject.vSwitchId = valueVSwitchesVSwitch["VSwitchId"].asString();
 		if(!valueVSwitchesVSwitch["CidrBlock"].isNull())
 			vSwitchesObject.cidrBlock = valueVSwitchesVSwitch["CidrBlock"].asString();
-		if(!valueVSwitchesVSwitch["ZoneId"].isNull())
-			vSwitchesObject.zoneId = valueVSwitchesVSwitch["ZoneId"].asString();
-		if(!valueVSwitchesVSwitch["AvailableIpAddressCount"].isNull())
-			vSwitchesObject.availableIpAddressCount = std::stol(valueVSwitchesVSwitch["AvailableIpAddressCount"].asString());
 		if(!valueVSwitchesVSwitch["Description"].isNull())
 			vSwitchesObject.description = valueVSwitchesVSwitch["Description"].asString();
-		if(!valueVSwitchesVSwitch["VSwitchName"].isNull())
-			vSwitchesObject.vSwitchName = valueVSwitchesVSwitch["VSwitchName"].asString();
-		if(!valueVSwitchesVSwitch["CreationTime"].isNull())
-			vSwitchesObject.creationTime = valueVSwitchesVSwitch["CreationTime"].asString();
-		if(!valueVSwitchesVSwitch["IsDefault"].isNull())
-			vSwitchesObject.isDefault = valueVSwitchesVSwitch["IsDefault"].asString() == "true";
+		if(!valueVSwitchesVSwitch["AvailableIpAddressCount"].isNull())
+			vSwitchesObject.availableIpAddressCount = std::stol(valueVSwitchesVSwitch["AvailableIpAddressCount"].asString());
 		if(!valueVSwitchesVSwitch["ResourceGroupId"].isNull())
 			vSwitchesObject.resourceGroupId = valueVSwitchesVSwitch["ResourceGroupId"].asString();
+		if(!valueVSwitchesVSwitch["ZoneId"].isNull())
+			vSwitchesObject.zoneId = valueVSwitchesVSwitch["ZoneId"].asString();
+		if(!valueVSwitchesVSwitch["VSwitchName"].isNull())
+			vSwitchesObject.vSwitchName = valueVSwitchesVSwitch["VSwitchName"].asString();
 		vSwitches_.push_back(vSwitchesObject);
 	}
-	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());
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stoi(value["PageNumber"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
 
 }
 

+ 148 - 0
ecs/src/model/ModifyPrefixListRequest.cc

@@ -0,0 +1,148 @@
+/*
+ * 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/ModifyPrefixListRequest.h>
+
+using AlibabaCloud::Ecs::Model::ModifyPrefixListRequest;
+
+ModifyPrefixListRequest::ModifyPrefixListRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "ModifyPrefixList")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+ModifyPrefixListRequest::~ModifyPrefixListRequest()
+{}
+
+long ModifyPrefixListRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void ModifyPrefixListRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string ModifyPrefixListRequest::getDescription()const
+{
+	return description_;
+}
+
+void ModifyPrefixListRequest::setDescription(const std::string& description)
+{
+	description_ = description;
+	setParameter("Description", description);
+}
+
+std::string ModifyPrefixListRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void ModifyPrefixListRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+std::string ModifyPrefixListRequest::getPrefixListId()const
+{
+	return prefixListId_;
+}
+
+void ModifyPrefixListRequest::setPrefixListId(const std::string& prefixListId)
+{
+	prefixListId_ = prefixListId;
+	setParameter("PrefixListId", prefixListId);
+}
+
+std::vector<ModifyPrefixListRequest::AddEntry> ModifyPrefixListRequest::getAddEntry()const
+{
+	return addEntry_;
+}
+
+void ModifyPrefixListRequest::setAddEntry(const std::vector<AddEntry>& addEntry)
+{
+	addEntry_ = addEntry;
+	for(int dep1 = 0; dep1!= addEntry.size(); dep1++) {
+		auto addEntryObj = addEntry.at(dep1);
+		std::string addEntryObjStr = "AddEntry." + std::to_string(dep1 + 1);
+		setParameter(addEntryObjStr + ".Cidr", addEntryObj.cidr);
+		setParameter(addEntryObjStr + ".Description", addEntryObj.description);
+	}
+}
+
+std::string ModifyPrefixListRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void ModifyPrefixListRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string ModifyPrefixListRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void ModifyPrefixListRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+long ModifyPrefixListRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void ModifyPrefixListRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string ModifyPrefixListRequest::getPrefixListName()const
+{
+	return prefixListName_;
+}
+
+void ModifyPrefixListRequest::setPrefixListName(const std::string& prefixListName)
+{
+	prefixListName_ = prefixListName;
+	setParameter("PrefixListName", prefixListName);
+}
+
+std::vector<ModifyPrefixListRequest::RemoveEntry> ModifyPrefixListRequest::getRemoveEntry()const
+{
+	return removeEntry_;
+}
+
+void ModifyPrefixListRequest::setRemoveEntry(const std::vector<RemoveEntry>& removeEntry)
+{
+	removeEntry_ = removeEntry;
+	for(int dep1 = 0; dep1!= removeEntry.size(); dep1++) {
+		auto removeEntryObj = removeEntry.at(dep1);
+		std::string removeEntryObjStr = "RemoveEntry." + std::to_string(dep1 + 1);
+		setParameter(removeEntryObjStr + ".Cidr", removeEntryObj.cidr);
+	}
+}
+

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

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

@@ -71,6 +71,17 @@ void ModifySecurityGroupEgressRuleRequest::setClientToken(const std::string& cli
 	setParameter("ClientToken", clientToken);
 }
 
+std::string ModifySecurityGroupEgressRuleRequest::getDestPrefixListId()const
+{
+	return destPrefixListId_;
+}
+
+void ModifySecurityGroupEgressRuleRequest::setDestPrefixListId(const std::string& destPrefixListId)
+{
+	destPrefixListId_ = destPrefixListId;
+	setParameter("DestPrefixListId", destPrefixListId);
+}
+
 std::string ModifySecurityGroupEgressRuleRequest::getSecurityGroupId()const
 {
 	return securityGroupId_;

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

@@ -49,6 +49,17 @@ void ModifySecurityGroupRuleRequest::setResourceOwnerId(long resourceOwnerId)
 	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
 }
 
+std::string ModifySecurityGroupRuleRequest::getSourcePrefixListId()const
+{
+	return sourcePrefixListId_;
+}
+
+void ModifySecurityGroupRuleRequest::setSourcePrefixListId(const std::string& sourcePrefixListId)
+{
+	sourcePrefixListId_ = sourcePrefixListId;
+	setParameter("SourcePrefixListId", sourcePrefixListId);
+}
+
 std::string ModifySecurityGroupRuleRequest::getSourcePortRange()const
 {
 	return sourcePortRange_;

+ 1 - 1
ecs/src/model/ResetDisksRequest.cc

@@ -93,8 +93,8 @@ void ResetDisksRequest::setDisk(const std::vector<Disk>& disk)
 	for(int dep1 = 0; dep1!= disk.size(); dep1++) {
 		auto diskObj = disk.at(dep1);
 		std::string diskObjStr = "Disk." + std::to_string(dep1 + 1);
-		setParameter(diskObjStr + ".DiskId", diskObj.diskId);
 		setParameter(diskObjStr + ".SnapshotId", diskObj.snapshotId);
+		setParameter(diskObjStr + ".DiskId", diskObj.diskId);
 	}
 }
 

+ 4 - 4
ecs/src/model/ResetDisksResult.cc

@@ -43,12 +43,12 @@ void ResetDisksResult::parse(const std::string &payload)
 	for (auto valueOperationProgressSetOperationProgress : allOperationProgressSetNode)
 	{
 		OperationProgress operationProgressSetObject;
-		if(!valueOperationProgressSetOperationProgress["OperationStatus"].isNull())
-			operationProgressSetObject.operationStatus = valueOperationProgressSetOperationProgress["OperationStatus"].asString();
-		if(!valueOperationProgressSetOperationProgress["ErrorCode"].isNull())
-			operationProgressSetObject.errorCode = valueOperationProgressSetOperationProgress["ErrorCode"].asString();
 		if(!valueOperationProgressSetOperationProgress["ErrorMsg"].isNull())
 			operationProgressSetObject.errorMsg = valueOperationProgressSetOperationProgress["ErrorMsg"].asString();
+		if(!valueOperationProgressSetOperationProgress["ErrorCode"].isNull())
+			operationProgressSetObject.errorCode = valueOperationProgressSetOperationProgress["ErrorCode"].asString();
+		if(!valueOperationProgressSetOperationProgress["OperationStatus"].isNull())
+			operationProgressSetObject.operationStatus = valueOperationProgressSetOperationProgress["OperationStatus"].asString();
 		auto allRelatedItemSetNode = valueOperationProgressSetOperationProgress["RelatedItemSet"]["RelatedItem"];
 		for (auto valueOperationProgressSetOperationProgressRelatedItemSetRelatedItem : allRelatedItemSetNode)
 		{

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

@@ -71,6 +71,17 @@ void RevokeSecurityGroupEgressRequest::setClientToken(const std::string& clientT
 	setParameter("ClientToken", clientToken);
 }
 
+std::string RevokeSecurityGroupEgressRequest::getDestPrefixListId()const
+{
+	return destPrefixListId_;
+}
+
+void RevokeSecurityGroupEgressRequest::setDestPrefixListId(const std::string& destPrefixListId)
+{
+	destPrefixListId_ = destPrefixListId;
+	setParameter("DestPrefixListId", destPrefixListId);
+}
+
 std::string RevokeSecurityGroupEgressRequest::getSecurityGroupId()const
 {
 	return securityGroupId_;

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

@@ -49,6 +49,17 @@ void RevokeSecurityGroupRequest::setResourceOwnerId(long resourceOwnerId)
 	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
 }
 
+std::string RevokeSecurityGroupRequest::getSourcePrefixListId()const
+{
+	return sourcePrefixListId_;
+}
+
+void RevokeSecurityGroupRequest::setSourcePrefixListId(const std::string& sourcePrefixListId)
+{
+	sourcePrefixListId_ = sourcePrefixListId;
+	setParameter("SourcePrefixListId", sourcePrefixListId);
+}
+
 std::string RevokeSecurityGroupRequest::getSourcePortRange()const
 {
 	return sourcePortRange_;

+ 54 - 54
ecs/src/model/RunInstancesRequest.cc

@@ -379,9 +379,9 @@ void RunInstancesRequest::setArn(const std::vector<Arn>& arn)
 	for(int dep1 = 0; dep1!= arn.size(); dep1++) {
 		auto arnObj = arn.at(dep1);
 		std::string arnObjStr = "Arn." + std::to_string(dep1 + 1);
-		setParameter(arnObjStr + ".AssumeRoleFor", std::to_string(arnObj.assumeRoleFor));
-		setParameter(arnObjStr + ".Rolearn", arnObj.rolearn);
 		setParameter(arnObjStr + ".RoleType", arnObj.roleType);
+		setParameter(arnObjStr + ".Rolearn", arnObj.rolearn);
+		setParameter(arnObjStr + ".AssumeRoleFor", std::to_string(arnObj.assumeRoleFor));
 	}
 }
 
@@ -429,6 +429,17 @@ void RunInstancesRequest::setDedicatedHostId(const std::string& dedicatedHostId)
 	setParameter("DedicatedHostId", dedicatedHostId);
 }
 
+int RunInstancesRequest::getSpotDuration()const
+{
+	return spotDuration_;
+}
+
+void RunInstancesRequest::setSpotDuration(int spotDuration)
+{
+	spotDuration_ = spotDuration;
+	setParameter("SpotDuration", std::to_string(spotDuration));
+}
+
 std::vector<std::string> RunInstancesRequest::getSecurityGroupIds()const
 {
 	return securityGroupIds_;
@@ -442,17 +453,6 @@ void RunInstancesRequest::setSecurityGroupIds(const std::vector<std::string>& se
 	}
 }
 
-int RunInstancesRequest::getSpotDuration()const
-{
-	return spotDuration_;
-}
-
-void RunInstancesRequest::setSpotDuration(int spotDuration)
-{
-	spotDuration_ = spotDuration;
-	setParameter("SpotDuration", std::to_string(spotDuration));
-}
-
 std::string RunInstancesRequest::getSystemDiskSize()const
 {
 	return systemDiskSize_;
@@ -814,6 +814,17 @@ void RunInstancesRequest::setInstanceChargeType(const std::string& instanceCharg
 	setParameter("InstanceChargeType", instanceChargeType);
 }
 
+std::string RunInstancesRequest::getDeploymentSetId()const
+{
+	return deploymentSetId_;
+}
+
+void RunInstancesRequest::setDeploymentSetId(const std::string& deploymentSetId)
+{
+	deploymentSetId_ = deploymentSetId;
+	setParameter("DeploymentSetId", deploymentSetId);
+}
+
 std::vector<RunInstancesRequest::NetworkInterface> RunInstancesRequest::getNetworkInterface()const
 {
 	return networkInterface_;
@@ -825,29 +836,18 @@ void RunInstancesRequest::setNetworkInterface(const std::vector<NetworkInterface
 	for(int dep1 = 0; dep1!= networkInterface.size(); dep1++) {
 		auto networkInterfaceObj = networkInterface.at(dep1);
 		std::string networkInterfaceObjStr = "NetworkInterface." + std::to_string(dep1 + 1);
-		setParameter(networkInterfaceObjStr + ".PrimaryIpAddress", networkInterfaceObj.primaryIpAddress);
 		setParameter(networkInterfaceObjStr + ".VSwitchId", networkInterfaceObj.vSwitchId);
+		setParameter(networkInterfaceObjStr + ".NetworkInterfaceName", networkInterfaceObj.networkInterfaceName);
+		setParameter(networkInterfaceObjStr + ".Description", networkInterfaceObj.description);
 		setParameter(networkInterfaceObjStr + ".SecurityGroupId", networkInterfaceObj.securityGroupId);
+		setParameter(networkInterfaceObjStr + ".PrimaryIpAddress", networkInterfaceObj.primaryIpAddress);
+		setParameter(networkInterfaceObjStr + ".QueueNumber", std::to_string(networkInterfaceObj.queueNumber));
 		for(int dep2 = 0; dep2!= networkInterfaceObj.securityGroupIds.size(); dep2++) {
 			setParameter(networkInterfaceObjStr + ".SecurityGroupIds."+ std::to_string(dep2), networkInterfaceObj.securityGroupIds.at(dep2));
 		}
-		setParameter(networkInterfaceObjStr + ".NetworkInterfaceName", networkInterfaceObj.networkInterfaceName);
-		setParameter(networkInterfaceObjStr + ".Description", networkInterfaceObj.description);
-		setParameter(networkInterfaceObjStr + ".QueueNumber", std::to_string(networkInterfaceObj.queueNumber));
 	}
 }
 
-std::string RunInstancesRequest::getDeploymentSetId()const
-{
-	return deploymentSetId_;
-}
-
-void RunInstancesRequest::setDeploymentSetId(const std::string& deploymentSetId)
-{
-	deploymentSetId_ = deploymentSetId;
-	setParameter("DeploymentSetId", deploymentSetId);
-}
-
 int RunInstancesRequest::getAmount()const
 {
 	return amount_;
@@ -914,32 +914,6 @@ void RunInstancesRequest::setCreditSpecification(const std::string& creditSpecif
 	setParameter("CreditSpecification", creditSpecification);
 }
 
-std::vector<RunInstancesRequest::DataDisk> RunInstancesRequest::getDataDisk()const
-{
-	return dataDisk_;
-}
-
-void RunInstancesRequest::setDataDisk(const std::vector<DataDisk>& dataDisk)
-{
-	dataDisk_ = dataDisk;
-	for(int dep1 = 0; dep1!= dataDisk.size(); dep1++) {
-		auto dataDiskObj = dataDisk.at(dep1);
-		std::string dataDiskObjStr = "DataDisk." + std::to_string(dep1 + 1);
-		setParameter(dataDiskObjStr + ".Size", std::to_string(dataDiskObj.size));
-		setParameter(dataDiskObjStr + ".SnapshotId", dataDiskObj.snapshotId);
-		setParameter(dataDiskObjStr + ".Category", dataDiskObj.category);
-		setParameter(dataDiskObjStr + ".Encrypted", dataDiskObj.encrypted);
-		setParameter(dataDiskObjStr + ".KMSKeyId", dataDiskObj.kMSKeyId);
-		setParameter(dataDiskObjStr + ".DiskName", dataDiskObj.diskName);
-		setParameter(dataDiskObjStr + ".Description", dataDiskObj.description);
-		setParameter(dataDiskObjStr + ".Device", dataDiskObj.device);
-		setParameter(dataDiskObjStr + ".DeleteWithInstance", dataDiskObj.deleteWithInstance ? "true" : "false");
-		setParameter(dataDiskObjStr + ".PerformanceLevel", dataDiskObj.performanceLevel);
-		setParameter(dataDiskObjStr + ".AutoSnapshotPolicyId", dataDiskObj.autoSnapshotPolicyId);
-		setParameter(dataDiskObjStr + ".EncryptAlgorithm", dataDiskObj.encryptAlgorithm);
-	}
-}
-
 long RunInstancesRequest::getLaunchTemplateVersion()const
 {
 	return launchTemplateVersion_;
@@ -962,6 +936,32 @@ void RunInstancesRequest::setSchedulerOptionsManagedPrivateSpaceId(const std::st
 	setParameter("SchedulerOptionsManagedPrivateSpaceId", schedulerOptionsManagedPrivateSpaceId);
 }
 
+std::vector<RunInstancesRequest::DataDisk> RunInstancesRequest::getDataDisk()const
+{
+	return dataDisk_;
+}
+
+void RunInstancesRequest::setDataDisk(const std::vector<DataDisk>& dataDisk)
+{
+	dataDisk_ = dataDisk;
+	for(int dep1 = 0; dep1!= dataDisk.size(); dep1++) {
+		auto dataDiskObj = dataDisk.at(dep1);
+		std::string dataDiskObjStr = "DataDisk." + std::to_string(dep1 + 1);
+		setParameter(dataDiskObjStr + ".PerformanceLevel", dataDiskObj.performanceLevel);
+		setParameter(dataDiskObjStr + ".AutoSnapshotPolicyId", dataDiskObj.autoSnapshotPolicyId);
+		setParameter(dataDiskObjStr + ".Encrypted", dataDiskObj.encrypted);
+		setParameter(dataDiskObjStr + ".Description", dataDiskObj.description);
+		setParameter(dataDiskObjStr + ".SnapshotId", dataDiskObj.snapshotId);
+		setParameter(dataDiskObjStr + ".Device", dataDiskObj.device);
+		setParameter(dataDiskObjStr + ".Size", std::to_string(dataDiskObj.size));
+		setParameter(dataDiskObjStr + ".DiskName", dataDiskObj.diskName);
+		setParameter(dataDiskObjStr + ".Category", dataDiskObj.category);
+		setParameter(dataDiskObjStr + ".EncryptAlgorithm", dataDiskObj.encryptAlgorithm);
+		setParameter(dataDiskObjStr + ".DeleteWithInstance", dataDiskObj.deleteWithInstance ? "true" : "false");
+		setParameter(dataDiskObjStr + ".KMSKeyId", dataDiskObj.kMSKeyId);
+	}
+}
+
 std::string RunInstancesRequest::getStorageSetId()const
 {
 	return storageSetId_;

+ 6 - 6
ecs/src/model/RunInstancesResult.cc

@@ -42,10 +42,10 @@ void RunInstancesResult::parse(const std::string &payload)
 	auto allInstanceIdSets = value["InstanceIdSets"]["InstanceIdSet"];
 	for (const auto &item : allInstanceIdSets)
 		instanceIdSets_.push_back(item.asString());
-	if(!value["TradePrice"].isNull())
-		tradePrice_ = std::stof(value["TradePrice"].asString());
 	if(!value["OrderId"].isNull())
 		orderId_ = value["OrderId"].asString();
+	if(!value["TradePrice"].isNull())
+		tradePrice_ = std::stof(value["TradePrice"].asString());
 
 }
 
@@ -54,13 +54,13 @@ std::vector<std::string> RunInstancesResult::getInstanceIdSets()const
 	return instanceIdSets_;
 }
 
-float RunInstancesResult::getTradePrice()const
+std::string RunInstancesResult::getOrderId()const
 {
-	return tradePrice_;
+	return orderId_;
 }
 
-std::string RunInstancesResult::getOrderId()const
+float RunInstancesResult::getTradePrice()const
 {
-	return orderId_;
+	return tradePrice_;
 }
 

+ 6 - 6
ecs/src/model/StartInstancesResult.cc

@@ -43,16 +43,16 @@ void StartInstancesResult::parse(const std::string &payload)
 	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();
+		if(!valueInstanceResponsesInstanceResponse["InstanceId"].isNull())
+			instanceResponsesObject.instanceId = valueInstanceResponsesInstanceResponse["InstanceId"].asString();
+		if(!valueInstanceResponsesInstanceResponse["CurrentStatus"].isNull())
+			instanceResponsesObject.currentStatus = valueInstanceResponsesInstanceResponse["CurrentStatus"].asString();
+		if(!valueInstanceResponsesInstanceResponse["PreviousStatus"].isNull())
+			instanceResponsesObject.previousStatus = valueInstanceResponsesInstanceResponse["PreviousStatus"].asString();
 		instanceResponses_.push_back(instanceResponsesObject);
 	}