Parcourir la source

由楚俊发起的ECS SDK自动发布, 版本号:1.6.0

Signed-off-by: haowei.yao <haowei.yao@alibaba-inc.com>
haowei.yao il y a 8 ans
Parent
commit
3ea4f50703
33 fichiers modifiés avec 3137 ajouts et 38 suppressions
  1. 3 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 20 0
      ecs/CMakeLists.txt
  4. 40 0
      ecs/include/alibabacloud/ecs/EcsClient.h
  5. 3 0
      ecs/include/alibabacloud/ecs/model/CreateInstanceRequest.h
  6. 126 0
      ecs/include/alibabacloud/ecs/model/CreateNetworkInterfacePermissionRequest.h
  7. 60 0
      ecs/include/alibabacloud/ecs/model/CreateNetworkInterfacePermissionResult.h
  8. 123 0
      ecs/include/alibabacloud/ecs/model/DeleteNetworkInterfacePermissionRequest.h
  9. 49 0
      ecs/include/alibabacloud/ecs/model/DeleteNetworkInterfacePermissionResult.h
  10. 3 3
      ecs/include/alibabacloud/ecs/model/DescribeDisksRequest.h
  11. 7 7
      ecs/include/alibabacloud/ecs/model/DescribeEventsResult.h
  12. 129 0
      ecs/include/alibabacloud/ecs/model/DescribeNetworkInterfacePermissionsRequest.h
  13. 66 0
      ecs/include/alibabacloud/ecs/model/DescribeNetworkInterfacePermissionsResult.h
  14. 120 0
      ecs/include/alibabacloud/ecs/model/GetInstanceConsoleOutputRequest.h
  15. 55 0
      ecs/include/alibabacloud/ecs/model/GetInstanceConsoleOutputResult.h
  16. 123 0
      ecs/include/alibabacloud/ecs/model/GetInstanceScreenshotRequest.h
  17. 53 0
      ecs/include/alibabacloud/ecs/model/GetInstanceScreenshotResult.h
  18. 6 0
      ecs/include/alibabacloud/ecs/model/RunInstancesRequest.h
  19. 180 0
      ecs/src/EcsClient.cc
  20. 11 0
      ecs/src/model/CreateInstanceRequest.cc
  21. 324 0
      ecs/src/model/CreateNetworkInterfacePermissionRequest.cc
  22. 63 0
      ecs/src/model/CreateNetworkInterfacePermissionResult.cc
  23. 313 0
      ecs/src/model/DeleteNetworkInterfacePermissionRequest.cc
  24. 45 0
      ecs/src/model/DeleteNetworkInterfacePermissionResult.cc
  25. 3 3
      ecs/src/model/DescribeDisksRequest.cc
  26. 24 24
      ecs/src/model/DescribeEventsResult.cc
  27. 336 0
      ecs/src/model/DescribeNetworkInterfacePermissionsRequest.cc
  28. 89 0
      ecs/src/model/DescribeNetworkInterfacePermissionsResult.cc
  29. 302 0
      ecs/src/model/GetInstanceConsoleOutputRequest.cc
  30. 66 0
      ecs/src/model/GetInstanceConsoleOutputResult.cc
  31. 313 0
      ecs/src/model/GetInstanceScreenshotRequest.cc
  32. 59 0
      ecs/src/model/GetInstanceScreenshotResult.cc
  33. 22 0
      ecs/src/model/RunInstancesRequest.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2018-04-10 Version: 1.6.0
+1, Add three interfaces CreateNetworkInterfacePermission DeleteNetworkInterfacePermission DescribeNetworkInterfacePermissions.
+
 2018-04-10 Version: 1.5.1
 1, publish Project API.
 2, publish Service API.

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.5.1
+1.6.0

+ 20 - 0
ecs/CMakeLists.txt

@@ -107,6 +107,8 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/ConnectRouterInterfaceResult.h
 	include/alibabacloud/ecs/model/AddIpRangeRequest.h
 	include/alibabacloud/ecs/model/AddIpRangeResult.h
+	include/alibabacloud/ecs/model/GetInstanceConsoleOutputRequest.h
+	include/alibabacloud/ecs/model/GetInstanceConsoleOutputResult.h
 	include/alibabacloud/ecs/model/CancelTaskRequest.h
 	include/alibabacloud/ecs/model/CancelTaskResult.h
 	include/alibabacloud/ecs/model/ModifyPhysicalConnectionAttributeRequest.h
@@ -245,6 +247,8 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/DescribeCommandsResult.h
 	include/alibabacloud/ecs/model/DeleteImageRequest.h
 	include/alibabacloud/ecs/model/DeleteImageResult.h
+	include/alibabacloud/ecs/model/DescribeNetworkInterfacePermissionsRequest.h
+	include/alibabacloud/ecs/model/DescribeNetworkInterfacePermissionsResult.h
 	include/alibabacloud/ecs/model/DescribeDisksRequest.h
 	include/alibabacloud/ecs/model/DescribeDisksResult.h
 	include/alibabacloud/ecs/model/DeleteVpcRequest.h
@@ -369,6 +373,8 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/DeleteInstanceResult.h
 	include/alibabacloud/ecs/model/DescribeIntranetAttributeKbRequest.h
 	include/alibabacloud/ecs/model/DescribeIntranetAttributeKbResult.h
+	include/alibabacloud/ecs/model/CreateNetworkInterfacePermissionRequest.h
+	include/alibabacloud/ecs/model/CreateNetworkInterfacePermissionResult.h
 	include/alibabacloud/ecs/model/RemoveBandwidthPackageIpsRequest.h
 	include/alibabacloud/ecs/model/RemoveBandwidthPackageIpsResult.h
 	include/alibabacloud/ecs/model/ModifyVpcAttributeRequest.h
@@ -465,6 +471,8 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/CreateNetworkInterfaceResult.h
 	include/alibabacloud/ecs/model/DescribeIpRangesRequest.h
 	include/alibabacloud/ecs/model/DescribeIpRangesResult.h
+	include/alibabacloud/ecs/model/DeleteNetworkInterfacePermissionRequest.h
+	include/alibabacloud/ecs/model/DeleteNetworkInterfacePermissionResult.h
 	include/alibabacloud/ecs/model/CancelPhysicalConnectionRequest.h
 	include/alibabacloud/ecs/model/CancelPhysicalConnectionResult.h
 	include/alibabacloud/ecs/model/DescribeVRoutersRequest.h
@@ -491,6 +499,8 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/AttachClassicLinkVpcResult.h
 	include/alibabacloud/ecs/model/DescribeDeploymentSetsRequest.h
 	include/alibabacloud/ecs/model/DescribeDeploymentSetsResult.h
+	include/alibabacloud/ecs/model/GetInstanceScreenshotRequest.h
+	include/alibabacloud/ecs/model/GetInstanceScreenshotResult.h
 	include/alibabacloud/ecs/model/AttachInstanceRamRoleRequest.h
 	include/alibabacloud/ecs/model/AttachInstanceRamRoleResult.h
 	include/alibabacloud/ecs/model/ModifyVRouterAttributeRequest.h
@@ -584,6 +594,8 @@ set(ecs_src
 	src/model/ConnectRouterInterfaceResult.cc
 	src/model/AddIpRangeRequest.cc
 	src/model/AddIpRangeResult.cc
+	src/model/GetInstanceConsoleOutputRequest.cc
+	src/model/GetInstanceConsoleOutputResult.cc
 	src/model/CancelTaskRequest.cc
 	src/model/CancelTaskResult.cc
 	src/model/ModifyPhysicalConnectionAttributeRequest.cc
@@ -722,6 +734,8 @@ set(ecs_src
 	src/model/DescribeCommandsResult.cc
 	src/model/DeleteImageRequest.cc
 	src/model/DeleteImageResult.cc
+	src/model/DescribeNetworkInterfacePermissionsRequest.cc
+	src/model/DescribeNetworkInterfacePermissionsResult.cc
 	src/model/DescribeDisksRequest.cc
 	src/model/DescribeDisksResult.cc
 	src/model/DeleteVpcRequest.cc
@@ -846,6 +860,8 @@ set(ecs_src
 	src/model/DeleteInstanceResult.cc
 	src/model/DescribeIntranetAttributeKbRequest.cc
 	src/model/DescribeIntranetAttributeKbResult.cc
+	src/model/CreateNetworkInterfacePermissionRequest.cc
+	src/model/CreateNetworkInterfacePermissionResult.cc
 	src/model/RemoveBandwidthPackageIpsRequest.cc
 	src/model/RemoveBandwidthPackageIpsResult.cc
 	src/model/ModifyVpcAttributeRequest.cc
@@ -942,6 +958,8 @@ set(ecs_src
 	src/model/CreateNetworkInterfaceResult.cc
 	src/model/DescribeIpRangesRequest.cc
 	src/model/DescribeIpRangesResult.cc
+	src/model/DeleteNetworkInterfacePermissionRequest.cc
+	src/model/DeleteNetworkInterfacePermissionResult.cc
 	src/model/CancelPhysicalConnectionRequest.cc
 	src/model/CancelPhysicalConnectionResult.cc
 	src/model/DescribeVRoutersRequest.cc
@@ -968,6 +986,8 @@ set(ecs_src
 	src/model/AttachClassicLinkVpcResult.cc
 	src/model/DescribeDeploymentSetsRequest.cc
 	src/model/DescribeDeploymentSetsResult.cc
+	src/model/GetInstanceScreenshotRequest.cc
+	src/model/GetInstanceScreenshotResult.cc
 	src/model/AttachInstanceRamRoleRequest.cc
 	src/model/AttachInstanceRamRoleResult.cc
 	src/model/ModifyVRouterAttributeRequest.cc

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

@@ -108,6 +108,8 @@
 #include "model/ConnectRouterInterfaceResult.h"
 #include "model/AddIpRangeRequest.h"
 #include "model/AddIpRangeResult.h"
+#include "model/GetInstanceConsoleOutputRequest.h"
+#include "model/GetInstanceConsoleOutputResult.h"
 #include "model/CancelTaskRequest.h"
 #include "model/CancelTaskResult.h"
 #include "model/ModifyPhysicalConnectionAttributeRequest.h"
@@ -246,6 +248,8 @@
 #include "model/DescribeCommandsResult.h"
 #include "model/DeleteImageRequest.h"
 #include "model/DeleteImageResult.h"
+#include "model/DescribeNetworkInterfacePermissionsRequest.h"
+#include "model/DescribeNetworkInterfacePermissionsResult.h"
 #include "model/DescribeDisksRequest.h"
 #include "model/DescribeDisksResult.h"
 #include "model/DeleteVpcRequest.h"
@@ -370,6 +374,8 @@
 #include "model/DeleteInstanceResult.h"
 #include "model/DescribeIntranetAttributeKbRequest.h"
 #include "model/DescribeIntranetAttributeKbResult.h"
+#include "model/CreateNetworkInterfacePermissionRequest.h"
+#include "model/CreateNetworkInterfacePermissionResult.h"
 #include "model/RemoveBandwidthPackageIpsRequest.h"
 #include "model/RemoveBandwidthPackageIpsResult.h"
 #include "model/ModifyVpcAttributeRequest.h"
@@ -466,6 +472,8 @@
 #include "model/CreateNetworkInterfaceResult.h"
 #include "model/DescribeIpRangesRequest.h"
 #include "model/DescribeIpRangesResult.h"
+#include "model/DeleteNetworkInterfacePermissionRequest.h"
+#include "model/DeleteNetworkInterfacePermissionResult.h"
 #include "model/CancelPhysicalConnectionRequest.h"
 #include "model/CancelPhysicalConnectionResult.h"
 #include "model/DescribeVRoutersRequest.h"
@@ -492,6 +500,8 @@
 #include "model/AttachClassicLinkVpcResult.h"
 #include "model/DescribeDeploymentSetsRequest.h"
 #include "model/DescribeDeploymentSetsResult.h"
+#include "model/GetInstanceScreenshotRequest.h"
+#include "model/GetInstanceScreenshotResult.h"
 #include "model/AttachInstanceRamRoleRequest.h"
 #include "model/AttachInstanceRamRoleResult.h"
 #include "model/ModifyVRouterAttributeRequest.h"
@@ -634,6 +644,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::AddIpRangeResult> AddIpRangeOutcome;
 			typedef std::future<AddIpRangeOutcome> AddIpRangeOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::AddIpRangeRequest&, const AddIpRangeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddIpRangeAsyncHandler;
+			typedef Outcome<Error, Model::GetInstanceConsoleOutputResult> GetInstanceConsoleOutputOutcome;
+			typedef std::future<GetInstanceConsoleOutputOutcome> GetInstanceConsoleOutputOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::GetInstanceConsoleOutputRequest&, const GetInstanceConsoleOutputOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetInstanceConsoleOutputAsyncHandler;
 			typedef Outcome<Error, Model::CancelTaskResult> CancelTaskOutcome;
 			typedef std::future<CancelTaskOutcome> CancelTaskOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::CancelTaskRequest&, const CancelTaskOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CancelTaskAsyncHandler;
@@ -841,6 +854,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteImageResult> DeleteImageOutcome;
 			typedef std::future<DeleteImageOutcome> DeleteImageOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DeleteImageRequest&, const DeleteImageOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteImageAsyncHandler;
+			typedef Outcome<Error, Model::DescribeNetworkInterfacePermissionsResult> DescribeNetworkInterfacePermissionsOutcome;
+			typedef std::future<DescribeNetworkInterfacePermissionsOutcome> DescribeNetworkInterfacePermissionsOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::DescribeNetworkInterfacePermissionsRequest&, const DescribeNetworkInterfacePermissionsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeNetworkInterfacePermissionsAsyncHandler;
 			typedef Outcome<Error, Model::DescribeDisksResult> DescribeDisksOutcome;
 			typedef std::future<DescribeDisksOutcome> DescribeDisksOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DescribeDisksRequest&, const DescribeDisksOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDisksAsyncHandler;
@@ -1027,6 +1043,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeIntranetAttributeKbResult> DescribeIntranetAttributeKbOutcome;
 			typedef std::future<DescribeIntranetAttributeKbOutcome> DescribeIntranetAttributeKbOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DescribeIntranetAttributeKbRequest&, const DescribeIntranetAttributeKbOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeIntranetAttributeKbAsyncHandler;
+			typedef Outcome<Error, Model::CreateNetworkInterfacePermissionResult> CreateNetworkInterfacePermissionOutcome;
+			typedef std::future<CreateNetworkInterfacePermissionOutcome> CreateNetworkInterfacePermissionOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::CreateNetworkInterfacePermissionRequest&, const CreateNetworkInterfacePermissionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateNetworkInterfacePermissionAsyncHandler;
 			typedef Outcome<Error, Model::RemoveBandwidthPackageIpsResult> RemoveBandwidthPackageIpsOutcome;
 			typedef std::future<RemoveBandwidthPackageIpsOutcome> RemoveBandwidthPackageIpsOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::RemoveBandwidthPackageIpsRequest&, const RemoveBandwidthPackageIpsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> RemoveBandwidthPackageIpsAsyncHandler;
@@ -1171,6 +1190,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeIpRangesResult> DescribeIpRangesOutcome;
 			typedef std::future<DescribeIpRangesOutcome> DescribeIpRangesOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DescribeIpRangesRequest&, const DescribeIpRangesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeIpRangesAsyncHandler;
+			typedef Outcome<Error, Model::DeleteNetworkInterfacePermissionResult> DeleteNetworkInterfacePermissionOutcome;
+			typedef std::future<DeleteNetworkInterfacePermissionOutcome> DeleteNetworkInterfacePermissionOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::DeleteNetworkInterfacePermissionRequest&, const DeleteNetworkInterfacePermissionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteNetworkInterfacePermissionAsyncHandler;
 			typedef Outcome<Error, Model::CancelPhysicalConnectionResult> CancelPhysicalConnectionOutcome;
 			typedef std::future<CancelPhysicalConnectionOutcome> CancelPhysicalConnectionOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::CancelPhysicalConnectionRequest&, const CancelPhysicalConnectionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CancelPhysicalConnectionAsyncHandler;
@@ -1210,6 +1232,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeDeploymentSetsResult> DescribeDeploymentSetsOutcome;
 			typedef std::future<DescribeDeploymentSetsOutcome> DescribeDeploymentSetsOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DescribeDeploymentSetsRequest&, const DescribeDeploymentSetsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDeploymentSetsAsyncHandler;
+			typedef Outcome<Error, Model::GetInstanceScreenshotResult> GetInstanceScreenshotOutcome;
+			typedef std::future<GetInstanceScreenshotOutcome> GetInstanceScreenshotOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::GetInstanceScreenshotRequest&, const GetInstanceScreenshotOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetInstanceScreenshotAsyncHandler;
 			typedef Outcome<Error, Model::AttachInstanceRamRoleResult> AttachInstanceRamRoleOutcome;
 			typedef std::future<AttachInstanceRamRoleOutcome> AttachInstanceRamRoleOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::AttachInstanceRamRoleRequest&, const AttachInstanceRamRoleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AttachInstanceRamRoleAsyncHandler;
@@ -1350,6 +1375,9 @@ namespace AlibabaCloud
 			AddIpRangeOutcome addIpRange(const Model::AddIpRangeRequest &request)const;
 			void addIpRangeAsync(const Model::AddIpRangeRequest& request, const AddIpRangeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AddIpRangeOutcomeCallable addIpRangeCallable(const Model::AddIpRangeRequest& request) const;
+			GetInstanceConsoleOutputOutcome getInstanceConsoleOutput(const Model::GetInstanceConsoleOutputRequest &request)const;
+			void getInstanceConsoleOutputAsync(const Model::GetInstanceConsoleOutputRequest& request, const GetInstanceConsoleOutputAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetInstanceConsoleOutputOutcomeCallable getInstanceConsoleOutputCallable(const Model::GetInstanceConsoleOutputRequest& request) const;
 			CancelTaskOutcome cancelTask(const Model::CancelTaskRequest &request)const;
 			void cancelTaskAsync(const Model::CancelTaskRequest& request, const CancelTaskAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CancelTaskOutcomeCallable cancelTaskCallable(const Model::CancelTaskRequest& request) const;
@@ -1557,6 +1585,9 @@ namespace AlibabaCloud
 			DeleteImageOutcome deleteImage(const Model::DeleteImageRequest &request)const;
 			void deleteImageAsync(const Model::DeleteImageRequest& request, const DeleteImageAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteImageOutcomeCallable deleteImageCallable(const Model::DeleteImageRequest& request) const;
+			DescribeNetworkInterfacePermissionsOutcome describeNetworkInterfacePermissions(const Model::DescribeNetworkInterfacePermissionsRequest &request)const;
+			void describeNetworkInterfacePermissionsAsync(const Model::DescribeNetworkInterfacePermissionsRequest& request, const DescribeNetworkInterfacePermissionsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeNetworkInterfacePermissionsOutcomeCallable describeNetworkInterfacePermissionsCallable(const Model::DescribeNetworkInterfacePermissionsRequest& request) const;
 			DescribeDisksOutcome describeDisks(const Model::DescribeDisksRequest &request)const;
 			void describeDisksAsync(const Model::DescribeDisksRequest& request, const DescribeDisksAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeDisksOutcomeCallable describeDisksCallable(const Model::DescribeDisksRequest& request) const;
@@ -1743,6 +1774,9 @@ namespace AlibabaCloud
 			DescribeIntranetAttributeKbOutcome describeIntranetAttributeKb(const Model::DescribeIntranetAttributeKbRequest &request)const;
 			void describeIntranetAttributeKbAsync(const Model::DescribeIntranetAttributeKbRequest& request, const DescribeIntranetAttributeKbAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeIntranetAttributeKbOutcomeCallable describeIntranetAttributeKbCallable(const Model::DescribeIntranetAttributeKbRequest& request) const;
+			CreateNetworkInterfacePermissionOutcome createNetworkInterfacePermission(const Model::CreateNetworkInterfacePermissionRequest &request)const;
+			void createNetworkInterfacePermissionAsync(const Model::CreateNetworkInterfacePermissionRequest& request, const CreateNetworkInterfacePermissionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateNetworkInterfacePermissionOutcomeCallable createNetworkInterfacePermissionCallable(const Model::CreateNetworkInterfacePermissionRequest& request) const;
 			RemoveBandwidthPackageIpsOutcome removeBandwidthPackageIps(const Model::RemoveBandwidthPackageIpsRequest &request)const;
 			void removeBandwidthPackageIpsAsync(const Model::RemoveBandwidthPackageIpsRequest& request, const RemoveBandwidthPackageIpsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			RemoveBandwidthPackageIpsOutcomeCallable removeBandwidthPackageIpsCallable(const Model::RemoveBandwidthPackageIpsRequest& request) const;
@@ -1887,6 +1921,9 @@ namespace AlibabaCloud
 			DescribeIpRangesOutcome describeIpRanges(const Model::DescribeIpRangesRequest &request)const;
 			void describeIpRangesAsync(const Model::DescribeIpRangesRequest& request, const DescribeIpRangesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeIpRangesOutcomeCallable describeIpRangesCallable(const Model::DescribeIpRangesRequest& request) const;
+			DeleteNetworkInterfacePermissionOutcome deleteNetworkInterfacePermission(const Model::DeleteNetworkInterfacePermissionRequest &request)const;
+			void deleteNetworkInterfacePermissionAsync(const Model::DeleteNetworkInterfacePermissionRequest& request, const DeleteNetworkInterfacePermissionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteNetworkInterfacePermissionOutcomeCallable deleteNetworkInterfacePermissionCallable(const Model::DeleteNetworkInterfacePermissionRequest& request) const;
 			CancelPhysicalConnectionOutcome cancelPhysicalConnection(const Model::CancelPhysicalConnectionRequest &request)const;
 			void cancelPhysicalConnectionAsync(const Model::CancelPhysicalConnectionRequest& request, const CancelPhysicalConnectionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CancelPhysicalConnectionOutcomeCallable cancelPhysicalConnectionCallable(const Model::CancelPhysicalConnectionRequest& request) const;
@@ -1926,6 +1963,9 @@ namespace AlibabaCloud
 			DescribeDeploymentSetsOutcome describeDeploymentSets(const Model::DescribeDeploymentSetsRequest &request)const;
 			void describeDeploymentSetsAsync(const Model::DescribeDeploymentSetsRequest& request, const DescribeDeploymentSetsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeDeploymentSetsOutcomeCallable describeDeploymentSetsCallable(const Model::DescribeDeploymentSetsRequest& request) const;
+			GetInstanceScreenshotOutcome getInstanceScreenshot(const Model::GetInstanceScreenshotRequest &request)const;
+			void getInstanceScreenshotAsync(const Model::GetInstanceScreenshotRequest& request, const GetInstanceScreenshotAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetInstanceScreenshotOutcomeCallable getInstanceScreenshotCallable(const Model::GetInstanceScreenshotRequest& request) const;
 			AttachInstanceRamRoleOutcome attachInstanceRamRole(const Model::AttachInstanceRamRoleRequest &request)const;
 			void attachInstanceRamRoleAsync(const Model::AttachInstanceRamRoleRequest& request, const AttachInstanceRamRoleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AttachInstanceRamRoleOutcomeCallable attachInstanceRamRoleCallable(const Model::AttachInstanceRamRoleRequest& request) const;

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

@@ -110,6 +110,8 @@ namespace AlibabaCloud
 				void setClientToken(const std::string& clientToken);
 				std::string getVlanId()const;
 				void setVlanId(const std::string& vlanId);
+				std::string getSpotInterruptionBehavior()const;
+				void setSpotInterruptionBehavior(const std::string& spotInterruptionBehavior);
 				std::string getIoOptimized()const;
 				void setIoOptimized(const std::string& ioOptimized);
 				std::string getSecurityGroupId()const;
@@ -190,6 +192,7 @@ namespace AlibabaCloud
 				std::string imageId_;
 				std::string clientToken_;
 				std::string vlanId_;
+				std::string spotInterruptionBehavior_;
 				std::string ioOptimized_;
 				std::string securityGroupId_;
 				int internetMaxBandwidthOut_;

+ 126 - 0
ecs/include/alibabacloud/ecs/model/CreateNetworkInterfacePermissionRequest.h

@@ -0,0 +1,126 @@
+/*
+ * 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_CREATENETWORKINTERFACEPERMISSIONREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_CREATENETWORKINTERFACEPERMISSIONREQUEST_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 CreateNetworkInterfacePermissionRequest : public RpcServiceRequest
+			{
+
+			public:
+				CreateNetworkInterfacePermissionRequest();
+				~CreateNetworkInterfacePermissionRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				long getCallerParentId()const;
+				void setCallerParentId(long callerParentId);
+				bool getProxy_original_security_transport()const;
+				void setProxy_original_security_transport(bool proxy_original_security_transport);
+				std::string getProxy_original_source_ip()const;
+				void setProxy_original_source_ip(const std::string& proxy_original_source_ip);
+				std::string getOwnerIdLoginEmail()const;
+				void setOwnerIdLoginEmail(const std::string& ownerIdLoginEmail);
+				std::string getCallerType()const;
+				void setCallerType(const std::string& callerType);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				long getAccountId()const;
+				void setAccountId(long accountId);
+				std::string getSecurityToken()const;
+				void setSecurityToken(const std::string& securityToken);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				bool getEnable()const;
+				void setEnable(bool enable);
+				std::string getRequestContent()const;
+				void setRequestContent(const std::string& requestContent);
+				std::string getCallerBidEmail()const;
+				void setCallerBidEmail(const std::string& callerBidEmail);
+				std::string getCallerUidEmail()const;
+				void setCallerUidEmail(const std::string& callerUidEmail);
+				long getCallerUid()const;
+				void setCallerUid(long callerUid);
+				std::string getApp_ip()const;
+				void setApp_ip(const std::string& app_ip);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				std::string getOwnerAccount()const;
+				void setOwnerAccount(const std::string& ownerAccount);
+				std::string getPermission()const;
+				void setPermission(const std::string& permission);
+				std::string getCallerBid()const;
+				void setCallerBid(const std::string& callerBid);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				bool getProxy_trust_transport_info()const;
+				void setProxy_trust_transport_info(bool proxy_trust_transport_info);
+				bool getAk_mfa_present()const;
+				void setAk_mfa_present(bool ak_mfa_present);
+				bool getSecurity_transport()const;
+				void setSecurity_transport(bool security_transport);
+				std::string getRequestId()const;
+				void setRequestId(const std::string& requestId);
+				std::string getNetworkInterfaceId()const;
+				void setNetworkInterfaceId(const std::string& networkInterfaceId);
+
+            private:
+				long resourceOwnerId_;
+				long callerParentId_;
+				bool proxy_original_security_transport_;
+				std::string proxy_original_source_ip_;
+				std::string ownerIdLoginEmail_;
+				std::string callerType_;
+				std::string accessKeyId_;
+				std::string resourceGroupId_;
+				long accountId_;
+				std::string securityToken_;
+				std::string regionId_;
+				bool enable_;
+				std::string requestContent_;
+				std::string callerBidEmail_;
+				std::string callerUidEmail_;
+				long callerUid_;
+				std::string app_ip_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				std::string permission_;
+				std::string callerBid_;
+				long ownerId_;
+				bool proxy_trust_transport_info_;
+				bool ak_mfa_present_;
+				bool security_transport_;
+				std::string requestId_;
+				std::string networkInterfaceId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_CREATENETWORKINTERFACEPERMISSIONREQUEST_H_

+ 60 - 0
ecs/include/alibabacloud/ecs/model/CreateNetworkInterfacePermissionResult.h

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

+ 123 - 0
ecs/include/alibabacloud/ecs/model/DeleteNetworkInterfacePermissionRequest.h

@@ -0,0 +1,123 @@
+/*
+ * 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_DELETENETWORKINTERFACEPERMISSIONREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_DELETENETWORKINTERFACEPERMISSIONREQUEST_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 DeleteNetworkInterfacePermissionRequest : public RpcServiceRequest
+			{
+
+			public:
+				DeleteNetworkInterfacePermissionRequest();
+				~DeleteNetworkInterfacePermissionRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				long getCallerParentId()const;
+				void setCallerParentId(long callerParentId);
+				bool getProxy_original_security_transport()const;
+				void setProxy_original_security_transport(bool proxy_original_security_transport);
+				std::string getProxy_original_source_ip()const;
+				void setProxy_original_source_ip(const std::string& proxy_original_source_ip);
+				std::string getOwnerIdLoginEmail()const;
+				void setOwnerIdLoginEmail(const std::string& ownerIdLoginEmail);
+				std::string getCallerType()const;
+				void setCallerType(const std::string& callerType);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getSecurityToken()const;
+				void setSecurityToken(const std::string& securityToken);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				bool getEnable()const;
+				void setEnable(bool enable);
+				std::string getRequestContent()const;
+				void setRequestContent(const std::string& requestContent);
+				std::string getCallerBidEmail()const;
+				void setCallerBidEmail(const std::string& callerBidEmail);
+				std::string getCallerUidEmail()const;
+				void setCallerUidEmail(const std::string& callerUidEmail);
+				long getCallerUid()const;
+				void setCallerUid(long callerUid);
+				std::string getApp_ip()const;
+				void setApp_ip(const std::string& app_ip);
+				std::string getNetworkInterfacePermissionId()const;
+				void setNetworkInterfacePermissionId(const std::string& networkInterfacePermissionId);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				std::string getOwnerAccount()const;
+				void setOwnerAccount(const std::string& ownerAccount);
+				std::string getCallerBid()const;
+				void setCallerBid(const std::string& callerBid);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				bool getProxy_trust_transport_info()const;
+				void setProxy_trust_transport_info(bool proxy_trust_transport_info);
+				bool getAk_mfa_present()const;
+				void setAk_mfa_present(bool ak_mfa_present);
+				bool getSecurity_transport()const;
+				void setSecurity_transport(bool security_transport);
+				std::string getRequestId()const;
+				void setRequestId(const std::string& requestId);
+				bool getForce()const;
+				void setForce(bool force);
+
+            private:
+				long resourceOwnerId_;
+				long callerParentId_;
+				bool proxy_original_security_transport_;
+				std::string proxy_original_source_ip_;
+				std::string ownerIdLoginEmail_;
+				std::string callerType_;
+				std::string accessKeyId_;
+				std::string resourceGroupId_;
+				std::string securityToken_;
+				std::string regionId_;
+				bool enable_;
+				std::string requestContent_;
+				std::string callerBidEmail_;
+				std::string callerUidEmail_;
+				long callerUid_;
+				std::string app_ip_;
+				std::string networkInterfacePermissionId_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				std::string callerBid_;
+				long ownerId_;
+				bool proxy_trust_transport_info_;
+				bool ak_mfa_present_;
+				bool security_transport_;
+				std::string requestId_;
+				bool force_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_DELETENETWORKINTERFACEPERMISSIONREQUEST_H_

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

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

@@ -101,8 +101,8 @@ namespace AlibabaCloud
 				void setTag5Value(const std::string& tag5Value);
 				std::string getTag1Key()const;
 				void setTag1Key(const std::string& tag1Key);
-				std::vector<long> getAdditionalAttributes()const;
-				void setAdditionalAttributes(const std::vector<long>& additionalAttributes);
+				std::vector<std::string> getAdditionalAttributes()const;
+				void setAdditionalAttributes(const std::vector<std::string>& additionalAttributes);
 				bool getEnableShared()const;
 				void setEnableShared(bool enableShared);
 				std::string getInstanceId()const;
@@ -154,7 +154,7 @@ namespace AlibabaCloud
 				std::string diskType_;
 				std::string tag5Value_;
 				std::string tag1Key_;
-				std::vector<long> additionalAttributes_;
+				std::vector<std::string> additionalAttributes_;
 				bool enableShared_;
 				std::string instanceId_;
 				bool encrypted_;

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

@@ -32,7 +32,7 @@ namespace AlibabaCloud
 			class ALIBABACLOUD_ECS_EXPORT DescribeEventsResult : public ServiceResult
 			{
 			public:
-				struct Events
+				struct Event
 				{
 					std::string status;
 					std::string eventCategory;
@@ -48,18 +48,18 @@ namespace AlibabaCloud
 				DescribeEventsResult();
 				explicit DescribeEventsResult(const std::string &payload);
 				~DescribeEventsResult();
+				int getTotalCount()const;
 				int getPageSize()const;
-				int getTotal()const;
-				std::vector<Events> getData()const;
-				int getPageNo()const;
+				std::vector<Event> getEvents()const;
+				int getPageNumber()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				int totalCount_;
 				int pageSize_;
-				int total_;
-				std::vector<Events> data_;
-				int pageNo_;
+				std::vector<Event> events_;
+				int pageNumber_;
 
 			};
 		}

+ 129 - 0
ecs/include/alibabacloud/ecs/model/DescribeNetworkInterfacePermissionsRequest.h

@@ -0,0 +1,129 @@
+/*
+ * 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_DESCRIBENETWORKINTERFACEPERMISSIONSREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_DESCRIBENETWORKINTERFACEPERMISSIONSREQUEST_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 DescribeNetworkInterfacePermissionsRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeNetworkInterfacePermissionsRequest();
+				~DescribeNetworkInterfacePermissionsRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				long getCallerParentId()const;
+				void setCallerParentId(long callerParentId);
+				bool getProxy_original_security_transport()const;
+				void setProxy_original_security_transport(bool proxy_original_security_transport);
+				std::string getProxy_original_source_ip()const;
+				void setProxy_original_source_ip(const std::string& proxy_original_source_ip);
+				std::string getOwnerIdLoginEmail()const;
+				void setOwnerIdLoginEmail(const std::string& ownerIdLoginEmail);
+				std::string getCallerType()const;
+				void setCallerType(const std::string& callerType);
+				int getPageNumber()const;
+				void setPageNumber(int pageNumber);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getSecurityToken()const;
+				void setSecurityToken(const std::string& securityToken);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				bool getEnable()const;
+				void setEnable(bool enable);
+				std::string getRequestContent()const;
+				void setRequestContent(const std::string& requestContent);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				std::string getCallerBidEmail()const;
+				void setCallerBidEmail(const std::string& callerBidEmail);
+				std::string getCallerUidEmail()const;
+				void setCallerUidEmail(const std::string& callerUidEmail);
+				long getCallerUid()const;
+				void setCallerUid(long callerUid);
+				std::string getApp_ip()const;
+				void setApp_ip(const std::string& app_ip);
+				std::vector<std::string> getNetworkInterfacePermissionId()const;
+				void setNetworkInterfacePermissionId(const std::vector<std::string>& networkInterfacePermissionId);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				std::string getOwnerAccount()const;
+				void setOwnerAccount(const std::string& ownerAccount);
+				std::string getCallerBid()const;
+				void setCallerBid(const std::string& callerBid);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				bool getProxy_trust_transport_info()const;
+				void setProxy_trust_transport_info(bool proxy_trust_transport_info);
+				bool getAk_mfa_present()const;
+				void setAk_mfa_present(bool ak_mfa_present);
+				bool getSecurity_transport()const;
+				void setSecurity_transport(bool security_transport);
+				std::string getRequestId()const;
+				void setRequestId(const std::string& requestId);
+				std::string getNetworkInterfaceId()const;
+				void setNetworkInterfaceId(const std::string& networkInterfaceId);
+
+            private:
+				long resourceOwnerId_;
+				long callerParentId_;
+				bool proxy_original_security_transport_;
+				std::string proxy_original_source_ip_;
+				std::string ownerIdLoginEmail_;
+				std::string callerType_;
+				int pageNumber_;
+				std::string accessKeyId_;
+				std::string resourceGroupId_;
+				std::string securityToken_;
+				std::string regionId_;
+				bool enable_;
+				std::string requestContent_;
+				int pageSize_;
+				std::string callerBidEmail_;
+				std::string callerUidEmail_;
+				long callerUid_;
+				std::string app_ip_;
+				std::vector<std::string> networkInterfacePermissionId_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				std::string callerBid_;
+				long ownerId_;
+				bool proxy_trust_transport_info_;
+				bool ak_mfa_present_;
+				bool security_transport_;
+				std::string requestId_;
+				std::string networkInterfaceId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_DESCRIBENETWORKINTERFACEPERMISSIONSREQUEST_H_

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

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

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

@@ -0,0 +1,120 @@
+/*
+ * 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_GETINSTANCECONSOLEOUTPUTREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_GETINSTANCECONSOLEOUTPUTREQUEST_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 GetInstanceConsoleOutputRequest : public RpcServiceRequest
+			{
+
+			public:
+				GetInstanceConsoleOutputRequest();
+				~GetInstanceConsoleOutputRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				long getCallerParentId()const;
+				void setCallerParentId(long callerParentId);
+				bool getProxy_original_security_transport()const;
+				void setProxy_original_security_transport(bool proxy_original_security_transport);
+				std::string getProxy_original_source_ip()const;
+				void setProxy_original_source_ip(const std::string& proxy_original_source_ip);
+				std::string getOwnerIdLoginEmail()const;
+				void setOwnerIdLoginEmail(const std::string& ownerIdLoginEmail);
+				std::string getCallerType()const;
+				void setCallerType(const std::string& callerType);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getSecurityToken()const;
+				void setSecurityToken(const std::string& securityToken);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				bool getEnable()const;
+				void setEnable(bool enable);
+				std::string getRequestContent()const;
+				void setRequestContent(const std::string& requestContent);
+				std::string getCallerBidEmail()const;
+				void setCallerBidEmail(const std::string& callerBidEmail);
+				std::string getCallerUidEmail()const;
+				void setCallerUidEmail(const std::string& callerUidEmail);
+				long getCallerUid()const;
+				void setCallerUid(long callerUid);
+				std::string getApp_ip()const;
+				void setApp_ip(const std::string& app_ip);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				std::string getOwnerAccount()const;
+				void setOwnerAccount(const std::string& ownerAccount);
+				std::string getCallerBid()const;
+				void setCallerBid(const std::string& callerBid);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				bool getProxy_trust_transport_info()const;
+				void setProxy_trust_transport_info(bool proxy_trust_transport_info);
+				bool getAk_mfa_present()const;
+				void setAk_mfa_present(bool ak_mfa_present);
+				bool getSecurity_transport()const;
+				void setSecurity_transport(bool security_transport);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getRequestId()const;
+				void setRequestId(const std::string& requestId);
+
+            private:
+				long resourceOwnerId_;
+				long callerParentId_;
+				bool proxy_original_security_transport_;
+				std::string proxy_original_source_ip_;
+				std::string ownerIdLoginEmail_;
+				std::string callerType_;
+				std::string accessKeyId_;
+				std::string resourceGroupId_;
+				std::string securityToken_;
+				std::string regionId_;
+				bool enable_;
+				std::string requestContent_;
+				std::string callerBidEmail_;
+				std::string callerUidEmail_;
+				long callerUid_;
+				std::string app_ip_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				std::string callerBid_;
+				long ownerId_;
+				bool proxy_trust_transport_info_;
+				bool ak_mfa_present_;
+				bool security_transport_;
+				std::string instanceId_;
+				std::string requestId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_GETINSTANCECONSOLEOUTPUTREQUEST_H_

+ 55 - 0
ecs/include/alibabacloud/ecs/model/GetInstanceConsoleOutputResult.h

@@ -0,0 +1,55 @@
+/*
+ * 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_GETINSTANCECONSOLEOUTPUTRESULT_H_
+#define ALIBABACLOUD_ECS_MODEL_GETINSTANCECONSOLEOUTPUTRESULT_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 GetInstanceConsoleOutputResult : public ServiceResult
+			{
+			public:
+
+
+				GetInstanceConsoleOutputResult();
+				explicit GetInstanceConsoleOutputResult(const std::string &payload);
+				~GetInstanceConsoleOutputResult();
+				std::string getConsoleOutput()const;
+				std::string getInstanceId()const;
+				std::string getLastUpdateTime()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string consoleOutput_;
+				std::string instanceId_;
+				std::string lastUpdateTime_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_GETINSTANCECONSOLEOUTPUTRESULT_H_

+ 123 - 0
ecs/include/alibabacloud/ecs/model/GetInstanceScreenshotRequest.h

@@ -0,0 +1,123 @@
+/*
+ * 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_GETINSTANCESCREENSHOTREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_GETINSTANCESCREENSHOTREQUEST_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 GetInstanceScreenshotRequest : public RpcServiceRequest
+			{
+
+			public:
+				GetInstanceScreenshotRequest();
+				~GetInstanceScreenshotRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				long getCallerParentId()const;
+				void setCallerParentId(long callerParentId);
+				bool getProxy_original_security_transport()const;
+				void setProxy_original_security_transport(bool proxy_original_security_transport);
+				std::string getProxy_original_source_ip()const;
+				void setProxy_original_source_ip(const std::string& proxy_original_source_ip);
+				std::string getOwnerIdLoginEmail()const;
+				void setOwnerIdLoginEmail(const std::string& ownerIdLoginEmail);
+				std::string getCallerType()const;
+				void setCallerType(const std::string& callerType);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getSecurityToken()const;
+				void setSecurityToken(const std::string& securityToken);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				bool getEnable()const;
+				void setEnable(bool enable);
+				std::string getRequestContent()const;
+				void setRequestContent(const std::string& requestContent);
+				std::string getCallerBidEmail()const;
+				void setCallerBidEmail(const std::string& callerBidEmail);
+				std::string getCallerUidEmail()const;
+				void setCallerUidEmail(const std::string& callerUidEmail);
+				long getCallerUid()const;
+				void setCallerUid(long callerUid);
+				std::string getApp_ip()const;
+				void setApp_ip(const std::string& app_ip);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				bool getWakeup()const;
+				void setWakeup(bool wakeup);
+				std::string getOwnerAccount()const;
+				void setOwnerAccount(const std::string& ownerAccount);
+				std::string getCallerBid()const;
+				void setCallerBid(const std::string& callerBid);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				bool getProxy_trust_transport_info()const;
+				void setProxy_trust_transport_info(bool proxy_trust_transport_info);
+				bool getAk_mfa_present()const;
+				void setAk_mfa_present(bool ak_mfa_present);
+				bool getSecurity_transport()const;
+				void setSecurity_transport(bool security_transport);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getRequestId()const;
+				void setRequestId(const std::string& requestId);
+
+            private:
+				long resourceOwnerId_;
+				long callerParentId_;
+				bool proxy_original_security_transport_;
+				std::string proxy_original_source_ip_;
+				std::string ownerIdLoginEmail_;
+				std::string callerType_;
+				std::string accessKeyId_;
+				std::string resourceGroupId_;
+				std::string securityToken_;
+				std::string regionId_;
+				bool enable_;
+				std::string requestContent_;
+				std::string callerBidEmail_;
+				std::string callerUidEmail_;
+				long callerUid_;
+				std::string app_ip_;
+				std::string resourceOwnerAccount_;
+				bool wakeup_;
+				std::string ownerAccount_;
+				std::string callerBid_;
+				long ownerId_;
+				bool proxy_trust_transport_info_;
+				bool ak_mfa_present_;
+				bool security_transport_;
+				std::string instanceId_;
+				std::string requestId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_GETINSTANCESCREENSHOTREQUEST_H_

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

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

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

@@ -60,6 +60,8 @@ namespace AlibabaCloud
 
 				long getResourceOwnerId()const;
 				void setResourceOwnerId(long resourceOwnerId);
+				std::string getHpcClusterId()const;
+				void setHpcClusterId(const std::string& hpcClusterId);
 				long getCallerParentId()const;
 				void setCallerParentId(long callerParentId);
 				std::string getSecurityEnhancementStrategy()const;
@@ -114,6 +116,8 @@ namespace AlibabaCloud
 				void setInternetMaxBandwidthIn(int internetMaxBandwidthIn);
 				std::string getImageId()const;
 				void setImageId(const std::string& imageId);
+				std::string getSpotInterruptionBehavior()const;
+				void setSpotInterruptionBehavior(const std::string& spotInterruptionBehavior);
 				std::string getClientToken()const;
 				void setClientToken(const std::string& clientToken);
 				std::string getIoOptimized()const;
@@ -169,6 +173,7 @@ namespace AlibabaCloud
 
             private:
 				long resourceOwnerId_;
+				std::string hpcClusterId_;
 				long callerParentId_;
 				std::string securityEnhancementStrategy_;
 				std::string keyPairName_;
@@ -196,6 +201,7 @@ namespace AlibabaCloud
 				std::string zoneId_;
 				int internetMaxBandwidthIn_;
 				std::string imageId_;
+				std::string spotInterruptionBehavior_;
 				std::string clientToken_;
 				std::string ioOptimized_;
 				std::string securityGroupId_;

+ 180 - 0
ecs/src/EcsClient.cc

@@ -1599,6 +1599,42 @@ EcsClient::AddIpRangeOutcomeCallable EcsClient::addIpRangeCallable(const AddIpRa
 	return task->get_future();
 }
 
+EcsClient::GetInstanceConsoleOutputOutcome EcsClient::getInstanceConsoleOutput(const GetInstanceConsoleOutputRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetInstanceConsoleOutputOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetInstanceConsoleOutputOutcome(GetInstanceConsoleOutputResult(outcome.result()));
+	else
+		return GetInstanceConsoleOutputOutcome(outcome.error());
+}
+
+void EcsClient::getInstanceConsoleOutputAsync(const GetInstanceConsoleOutputRequest& request, const GetInstanceConsoleOutputAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getInstanceConsoleOutput(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::GetInstanceConsoleOutputOutcomeCallable EcsClient::getInstanceConsoleOutputCallable(const GetInstanceConsoleOutputRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetInstanceConsoleOutputOutcome()>>(
+			[this, request]()
+			{
+			return this->getInstanceConsoleOutput(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::CancelTaskOutcome EcsClient::cancelTask(const CancelTaskRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -4083,6 +4119,42 @@ EcsClient::DeleteImageOutcomeCallable EcsClient::deleteImageCallable(const Delet
 	return task->get_future();
 }
 
+EcsClient::DescribeNetworkInterfacePermissionsOutcome EcsClient::describeNetworkInterfacePermissions(const DescribeNetworkInterfacePermissionsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeNetworkInterfacePermissionsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeNetworkInterfacePermissionsOutcome(DescribeNetworkInterfacePermissionsResult(outcome.result()));
+	else
+		return DescribeNetworkInterfacePermissionsOutcome(outcome.error());
+}
+
+void EcsClient::describeNetworkInterfacePermissionsAsync(const DescribeNetworkInterfacePermissionsRequest& request, const DescribeNetworkInterfacePermissionsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeNetworkInterfacePermissions(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::DescribeNetworkInterfacePermissionsOutcomeCallable EcsClient::describeNetworkInterfacePermissionsCallable(const DescribeNetworkInterfacePermissionsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeNetworkInterfacePermissionsOutcome()>>(
+			[this, request]()
+			{
+			return this->describeNetworkInterfacePermissions(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::DescribeDisksOutcome EcsClient::describeDisks(const DescribeDisksRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -6315,6 +6387,42 @@ EcsClient::DescribeIntranetAttributeKbOutcomeCallable EcsClient::describeIntrane
 	return task->get_future();
 }
 
+EcsClient::CreateNetworkInterfacePermissionOutcome EcsClient::createNetworkInterfacePermission(const CreateNetworkInterfacePermissionRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateNetworkInterfacePermissionOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateNetworkInterfacePermissionOutcome(CreateNetworkInterfacePermissionResult(outcome.result()));
+	else
+		return CreateNetworkInterfacePermissionOutcome(outcome.error());
+}
+
+void EcsClient::createNetworkInterfacePermissionAsync(const CreateNetworkInterfacePermissionRequest& request, const CreateNetworkInterfacePermissionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createNetworkInterfacePermission(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::CreateNetworkInterfacePermissionOutcomeCallable EcsClient::createNetworkInterfacePermissionCallable(const CreateNetworkInterfacePermissionRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateNetworkInterfacePermissionOutcome()>>(
+			[this, request]()
+			{
+			return this->createNetworkInterfacePermission(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::RemoveBandwidthPackageIpsOutcome EcsClient::removeBandwidthPackageIps(const RemoveBandwidthPackageIpsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -8043,6 +8151,42 @@ EcsClient::DescribeIpRangesOutcomeCallable EcsClient::describeIpRangesCallable(c
 	return task->get_future();
 }
 
+EcsClient::DeleteNetworkInterfacePermissionOutcome EcsClient::deleteNetworkInterfacePermission(const DeleteNetworkInterfacePermissionRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteNetworkInterfacePermissionOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteNetworkInterfacePermissionOutcome(DeleteNetworkInterfacePermissionResult(outcome.result()));
+	else
+		return DeleteNetworkInterfacePermissionOutcome(outcome.error());
+}
+
+void EcsClient::deleteNetworkInterfacePermissionAsync(const DeleteNetworkInterfacePermissionRequest& request, const DeleteNetworkInterfacePermissionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteNetworkInterfacePermission(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::DeleteNetworkInterfacePermissionOutcomeCallable EcsClient::deleteNetworkInterfacePermissionCallable(const DeleteNetworkInterfacePermissionRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteNetworkInterfacePermissionOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteNetworkInterfacePermission(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::CancelPhysicalConnectionOutcome EcsClient::cancelPhysicalConnection(const CancelPhysicalConnectionRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -8511,6 +8655,42 @@ EcsClient::DescribeDeploymentSetsOutcomeCallable EcsClient::describeDeploymentSe
 	return task->get_future();
 }
 
+EcsClient::GetInstanceScreenshotOutcome EcsClient::getInstanceScreenshot(const GetInstanceScreenshotRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetInstanceScreenshotOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetInstanceScreenshotOutcome(GetInstanceScreenshotResult(outcome.result()));
+	else
+		return GetInstanceScreenshotOutcome(outcome.error());
+}
+
+void EcsClient::getInstanceScreenshotAsync(const GetInstanceScreenshotRequest& request, const GetInstanceScreenshotAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getInstanceScreenshot(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::GetInstanceScreenshotOutcomeCallable EcsClient::getInstanceScreenshotCallable(const GetInstanceScreenshotRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetInstanceScreenshotOutcome()>>(
+			[this, request]()
+			{
+			return this->getInstanceScreenshot(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::AttachInstanceRamRoleOutcome EcsClient::attachInstanceRamRole(const AttachInstanceRamRoleRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

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

@@ -377,6 +377,17 @@ void CreateInstanceRequest::setVlanId(const std::string& vlanId)
 	setParameter("VlanId", vlanId);
 }
 
+std::string CreateInstanceRequest::getSpotInterruptionBehavior()const
+{
+	return spotInterruptionBehavior_;
+}
+
+void CreateInstanceRequest::setSpotInterruptionBehavior(const std::string& spotInterruptionBehavior)
+{
+	spotInterruptionBehavior_ = spotInterruptionBehavior;
+	setParameter("SpotInterruptionBehavior", spotInterruptionBehavior);
+}
+
 std::string CreateInstanceRequest::getIoOptimized()const
 {
 	return ioOptimized_;

+ 324 - 0
ecs/src/model/CreateNetworkInterfacePermissionRequest.cc

@@ -0,0 +1,324 @@
+/*
+ * 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/CreateNetworkInterfacePermissionRequest.h>
+
+using AlibabaCloud::Ecs::Model::CreateNetworkInterfacePermissionRequest;
+
+CreateNetworkInterfacePermissionRequest::CreateNetworkInterfacePermissionRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "CreateNetworkInterfacePermission")
+{}
+
+CreateNetworkInterfacePermissionRequest::~CreateNetworkInterfacePermissionRequest()
+{}
+
+long CreateNetworkInterfacePermissionRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+long CreateNetworkInterfacePermissionRequest::getCallerParentId()const
+{
+	return callerParentId_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setCallerParentId(long callerParentId)
+{
+	callerParentId_ = callerParentId;
+	setParameter("CallerParentId", std::to_string(callerParentId));
+}
+
+bool CreateNetworkInterfacePermissionRequest::getProxy_original_security_transport()const
+{
+	return proxy_original_security_transport_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setProxy_original_security_transport(bool proxy_original_security_transport)
+{
+	proxy_original_security_transport_ = proxy_original_security_transport;
+	setParameter("Proxy_original_security_transport", std::to_string(proxy_original_security_transport));
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getProxy_original_source_ip()const
+{
+	return proxy_original_source_ip_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setProxy_original_source_ip(const std::string& proxy_original_source_ip)
+{
+	proxy_original_source_ip_ = proxy_original_source_ip;
+	setParameter("Proxy_original_source_ip", proxy_original_source_ip);
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getOwnerIdLoginEmail()const
+{
+	return ownerIdLoginEmail_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setOwnerIdLoginEmail(const std::string& ownerIdLoginEmail)
+{
+	ownerIdLoginEmail_ = ownerIdLoginEmail;
+	setParameter("OwnerIdLoginEmail", ownerIdLoginEmail);
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getCallerType()const
+{
+	return callerType_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setCallerType(const std::string& callerType)
+{
+	callerType_ = callerType;
+	setParameter("CallerType", callerType);
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getResourceGroupId()const
+{
+	return resourceGroupId_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setResourceGroupId(const std::string& resourceGroupId)
+{
+	resourceGroupId_ = resourceGroupId;
+	setParameter("ResourceGroupId", resourceGroupId);
+}
+
+long CreateNetworkInterfacePermissionRequest::getAccountId()const
+{
+	return accountId_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setAccountId(long accountId)
+{
+	accountId_ = accountId;
+	setParameter("AccountId", std::to_string(accountId));
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getSecurityToken()const
+{
+	return securityToken_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setSecurityToken(const std::string& securityToken)
+{
+	securityToken_ = securityToken;
+	setParameter("SecurityToken", securityToken);
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+bool CreateNetworkInterfacePermissionRequest::getEnable()const
+{
+	return enable_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setEnable(bool enable)
+{
+	enable_ = enable;
+	setParameter("Enable", std::to_string(enable));
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getRequestContent()const
+{
+	return requestContent_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setRequestContent(const std::string& requestContent)
+{
+	requestContent_ = requestContent;
+	setParameter("RequestContent", requestContent);
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getCallerBidEmail()const
+{
+	return callerBidEmail_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setCallerBidEmail(const std::string& callerBidEmail)
+{
+	callerBidEmail_ = callerBidEmail;
+	setParameter("CallerBidEmail", callerBidEmail);
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getCallerUidEmail()const
+{
+	return callerUidEmail_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setCallerUidEmail(const std::string& callerUidEmail)
+{
+	callerUidEmail_ = callerUidEmail;
+	setParameter("CallerUidEmail", callerUidEmail);
+}
+
+long CreateNetworkInterfacePermissionRequest::getCallerUid()const
+{
+	return callerUid_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setCallerUid(long callerUid)
+{
+	callerUid_ = callerUid;
+	setParameter("CallerUid", std::to_string(callerUid));
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getApp_ip()const
+{
+	return app_ip_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setApp_ip(const std::string& app_ip)
+{
+	app_ip_ = app_ip;
+	setParameter("App_ip", app_ip);
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getPermission()const
+{
+	return permission_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setPermission(const std::string& permission)
+{
+	permission_ = permission;
+	setParameter("Permission", permission);
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getCallerBid()const
+{
+	return callerBid_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setCallerBid(const std::string& callerBid)
+{
+	callerBid_ = callerBid;
+	setParameter("CallerBid", callerBid);
+}
+
+long CreateNetworkInterfacePermissionRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+bool CreateNetworkInterfacePermissionRequest::getProxy_trust_transport_info()const
+{
+	return proxy_trust_transport_info_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setProxy_trust_transport_info(bool proxy_trust_transport_info)
+{
+	proxy_trust_transport_info_ = proxy_trust_transport_info;
+	setParameter("Proxy_trust_transport_info", std::to_string(proxy_trust_transport_info));
+}
+
+bool CreateNetworkInterfacePermissionRequest::getAk_mfa_present()const
+{
+	return ak_mfa_present_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setAk_mfa_present(bool ak_mfa_present)
+{
+	ak_mfa_present_ = ak_mfa_present;
+	setParameter("Ak_mfa_present", std::to_string(ak_mfa_present));
+}
+
+bool CreateNetworkInterfacePermissionRequest::getSecurity_transport()const
+{
+	return security_transport_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setSecurity_transport(bool security_transport)
+{
+	security_transport_ = security_transport;
+	setParameter("Security_transport", std::to_string(security_transport));
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getRequestId()const
+{
+	return requestId_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setRequestId(const std::string& requestId)
+{
+	requestId_ = requestId;
+	setParameter("RequestId", requestId);
+}
+
+std::string CreateNetworkInterfacePermissionRequest::getNetworkInterfaceId()const
+{
+	return networkInterfaceId_;
+}
+
+void CreateNetworkInterfacePermissionRequest::setNetworkInterfaceId(const std::string& networkInterfaceId)
+{
+	networkInterfaceId_ = networkInterfaceId;
+	setParameter("NetworkInterfaceId", networkInterfaceId);
+}
+

+ 63 - 0
ecs/src/model/CreateNetworkInterfacePermissionResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/ecs/model/CreateNetworkInterfacePermissionResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ecs;
+using namespace AlibabaCloud::Ecs::Model;
+
+CreateNetworkInterfacePermissionResult::CreateNetworkInterfacePermissionResult() :
+	ServiceResult()
+{}
+
+CreateNetworkInterfacePermissionResult::CreateNetworkInterfacePermissionResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateNetworkInterfacePermissionResult::~CreateNetworkInterfacePermissionResult()
+{}
+
+void CreateNetworkInterfacePermissionResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	auto networkInterfacePermissionNode = value["NetworkInterfacePermission"];
+	if(!networkInterfacePermissionNode["AccountId"].isNull())
+		networkInterfacePermission_.accountId = std::stol(networkInterfacePermissionNode["AccountId"].asString());
+	if(!networkInterfacePermissionNode["ServiceName"].isNull())
+		networkInterfacePermission_.serviceName = networkInterfacePermissionNode["ServiceName"].asString();
+	if(!networkInterfacePermissionNode["NetworkInterfaceId"].isNull())
+		networkInterfacePermission_.networkInterfaceId = networkInterfacePermissionNode["NetworkInterfaceId"].asString();
+	if(!networkInterfacePermissionNode["NetworkInterfacePermissionId"].isNull())
+		networkInterfacePermission_.networkInterfacePermissionId = networkInterfacePermissionNode["NetworkInterfacePermissionId"].asString();
+	if(!networkInterfacePermissionNode["Permission"].isNull())
+		networkInterfacePermission_.permission = networkInterfacePermissionNode["Permission"].asString();
+	if(!networkInterfacePermissionNode["PermissionState"].isNull())
+		networkInterfacePermission_.permissionState = networkInterfacePermissionNode["PermissionState"].asString();
+
+}
+
+CreateNetworkInterfacePermissionResult::NetworkInterfacePermission CreateNetworkInterfacePermissionResult::getNetworkInterfacePermission()const
+{
+	return networkInterfacePermission_;
+}
+

+ 313 - 0
ecs/src/model/DeleteNetworkInterfacePermissionRequest.cc

@@ -0,0 +1,313 @@
+/*
+ * 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/DeleteNetworkInterfacePermissionRequest.h>
+
+using AlibabaCloud::Ecs::Model::DeleteNetworkInterfacePermissionRequest;
+
+DeleteNetworkInterfacePermissionRequest::DeleteNetworkInterfacePermissionRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "DeleteNetworkInterfacePermission")
+{}
+
+DeleteNetworkInterfacePermissionRequest::~DeleteNetworkInterfacePermissionRequest()
+{}
+
+long DeleteNetworkInterfacePermissionRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+long DeleteNetworkInterfacePermissionRequest::getCallerParentId()const
+{
+	return callerParentId_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setCallerParentId(long callerParentId)
+{
+	callerParentId_ = callerParentId;
+	setParameter("CallerParentId", std::to_string(callerParentId));
+}
+
+bool DeleteNetworkInterfacePermissionRequest::getProxy_original_security_transport()const
+{
+	return proxy_original_security_transport_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setProxy_original_security_transport(bool proxy_original_security_transport)
+{
+	proxy_original_security_transport_ = proxy_original_security_transport;
+	setParameter("Proxy_original_security_transport", std::to_string(proxy_original_security_transport));
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getProxy_original_source_ip()const
+{
+	return proxy_original_source_ip_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setProxy_original_source_ip(const std::string& proxy_original_source_ip)
+{
+	proxy_original_source_ip_ = proxy_original_source_ip;
+	setParameter("Proxy_original_source_ip", proxy_original_source_ip);
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getOwnerIdLoginEmail()const
+{
+	return ownerIdLoginEmail_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setOwnerIdLoginEmail(const std::string& ownerIdLoginEmail)
+{
+	ownerIdLoginEmail_ = ownerIdLoginEmail;
+	setParameter("OwnerIdLoginEmail", ownerIdLoginEmail);
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getCallerType()const
+{
+	return callerType_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setCallerType(const std::string& callerType)
+{
+	callerType_ = callerType;
+	setParameter("CallerType", callerType);
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getResourceGroupId()const
+{
+	return resourceGroupId_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setResourceGroupId(const std::string& resourceGroupId)
+{
+	resourceGroupId_ = resourceGroupId;
+	setParameter("ResourceGroupId", resourceGroupId);
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getSecurityToken()const
+{
+	return securityToken_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setSecurityToken(const std::string& securityToken)
+{
+	securityToken_ = securityToken;
+	setParameter("SecurityToken", securityToken);
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+bool DeleteNetworkInterfacePermissionRequest::getEnable()const
+{
+	return enable_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setEnable(bool enable)
+{
+	enable_ = enable;
+	setParameter("Enable", std::to_string(enable));
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getRequestContent()const
+{
+	return requestContent_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setRequestContent(const std::string& requestContent)
+{
+	requestContent_ = requestContent;
+	setParameter("RequestContent", requestContent);
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getCallerBidEmail()const
+{
+	return callerBidEmail_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setCallerBidEmail(const std::string& callerBidEmail)
+{
+	callerBidEmail_ = callerBidEmail;
+	setParameter("CallerBidEmail", callerBidEmail);
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getCallerUidEmail()const
+{
+	return callerUidEmail_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setCallerUidEmail(const std::string& callerUidEmail)
+{
+	callerUidEmail_ = callerUidEmail;
+	setParameter("CallerUidEmail", callerUidEmail);
+}
+
+long DeleteNetworkInterfacePermissionRequest::getCallerUid()const
+{
+	return callerUid_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setCallerUid(long callerUid)
+{
+	callerUid_ = callerUid;
+	setParameter("CallerUid", std::to_string(callerUid));
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getApp_ip()const
+{
+	return app_ip_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setApp_ip(const std::string& app_ip)
+{
+	app_ip_ = app_ip;
+	setParameter("App_ip", app_ip);
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getNetworkInterfacePermissionId()const
+{
+	return networkInterfacePermissionId_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setNetworkInterfacePermissionId(const std::string& networkInterfacePermissionId)
+{
+	networkInterfacePermissionId_ = networkInterfacePermissionId;
+	setParameter("NetworkInterfacePermissionId", networkInterfacePermissionId);
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getCallerBid()const
+{
+	return callerBid_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setCallerBid(const std::string& callerBid)
+{
+	callerBid_ = callerBid;
+	setParameter("CallerBid", callerBid);
+}
+
+long DeleteNetworkInterfacePermissionRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+bool DeleteNetworkInterfacePermissionRequest::getProxy_trust_transport_info()const
+{
+	return proxy_trust_transport_info_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setProxy_trust_transport_info(bool proxy_trust_transport_info)
+{
+	proxy_trust_transport_info_ = proxy_trust_transport_info;
+	setParameter("Proxy_trust_transport_info", std::to_string(proxy_trust_transport_info));
+}
+
+bool DeleteNetworkInterfacePermissionRequest::getAk_mfa_present()const
+{
+	return ak_mfa_present_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setAk_mfa_present(bool ak_mfa_present)
+{
+	ak_mfa_present_ = ak_mfa_present;
+	setParameter("Ak_mfa_present", std::to_string(ak_mfa_present));
+}
+
+bool DeleteNetworkInterfacePermissionRequest::getSecurity_transport()const
+{
+	return security_transport_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setSecurity_transport(bool security_transport)
+{
+	security_transport_ = security_transport;
+	setParameter("Security_transport", std::to_string(security_transport));
+}
+
+std::string DeleteNetworkInterfacePermissionRequest::getRequestId()const
+{
+	return requestId_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setRequestId(const std::string& requestId)
+{
+	requestId_ = requestId;
+	setParameter("RequestId", requestId);
+}
+
+bool DeleteNetworkInterfacePermissionRequest::getForce()const
+{
+	return force_;
+}
+
+void DeleteNetworkInterfacePermissionRequest::setForce(bool force)
+{
+	force_ = force;
+	setParameter("Force", std::to_string(force));
+}
+

+ 45 - 0
ecs/src/model/DeleteNetworkInterfacePermissionResult.cc

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

+ 3 - 3
ecs/src/model/DescribeDisksRequest.cc

@@ -388,16 +388,16 @@ void DescribeDisksRequest::setTag1Key(const std::string& tag1Key)
 	setParameter("Tag1Key", tag1Key);
 }
 
-std::vector<long> DescribeDisksRequest::getAdditionalAttributes()const
+std::vector<std::string> DescribeDisksRequest::getAdditionalAttributes()const
 {
 	return additionalAttributes_;
 }
 
-void DescribeDisksRequest::setAdditionalAttributes(const std::vector<long>& additionalAttributes)
+void DescribeDisksRequest::setAdditionalAttributes(const std::vector<std::string>& additionalAttributes)
 {
 	additionalAttributes_ = additionalAttributes;
 	for(int i = 0; i!= additionalAttributes.size(); i++)
-		setParameter("AdditionalAttributes."+ std::to_string(i), std::to_string(additionalAttributes.at(i)));
+		setParameter("AdditionalAttributes."+ std::to_string(i), additionalAttributes.at(i));
 }
 
 bool DescribeDisksRequest::getEnableShared()const

+ 24 - 24
ecs/src/model/DescribeEventsResult.cc

@@ -40,54 +40,54 @@ void DescribeEventsResult::parse(const std::string &payload)
 	reader.parse(payload, value);
 
 	setRequestId(value["RequestId"].asString());
-	auto allData = value["Data"]["Events"];
-	for (auto value : allData)
+	auto allEvents = value["Events"]["Event"];
+	for (auto value : allEvents)
 	{
-		Events dataObject;
+		Event eventsObject;
 		if(!value["ResourceId"].isNull())
-			dataObject.resourceId = value["ResourceId"].asString();
+			eventsObject.resourceId = value["ResourceId"].asString();
 		if(!value["EventType"].isNull())
-			dataObject.eventType = value["EventType"].asString();
+			eventsObject.eventType = value["EventType"].asString();
 		if(!value["EventCategory"].isNull())
-			dataObject.eventCategory = value["EventCategory"].asString();
+			eventsObject.eventCategory = value["EventCategory"].asString();
 		if(!value["Status"].isNull())
-			dataObject.status = value["Status"].asString();
+			eventsObject.status = value["Status"].asString();
 		if(!value["SupportModify"].isNull())
-			dataObject.supportModify = value["SupportModify"].asString();
+			eventsObject.supportModify = value["SupportModify"].asString();
 		if(!value["PlanTime"].isNull())
-			dataObject.planTime = value["PlanTime"].asString();
+			eventsObject.planTime = value["PlanTime"].asString();
 		if(!value["ExpireTime"].isNull())
-			dataObject.expireTime = value["ExpireTime"].asString();
+			eventsObject.expireTime = value["ExpireTime"].asString();
 		if(!value["EventId"].isNull())
-			dataObject.eventId = value["EventId"].asString();
-		data_.push_back(dataObject);
+			eventsObject.eventId = value["EventId"].asString();
+		events_.push_back(eventsObject);
 	}
-	if(!value["PageNo"].isNull())
-		pageNo_ = std::stoi(value["PageNo"].asString());
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stoi(value["PageNumber"].asString());
 	if(!value["PageSize"].isNull())
 		pageSize_ = std::stoi(value["PageSize"].asString());
-	if(!value["Total"].isNull())
-		total_ = std::stoi(value["Total"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
 
 }
 
-int DescribeEventsResult::getPageSize()const
+int DescribeEventsResult::getTotalCount()const
 {
-	return pageSize_;
+	return totalCount_;
 }
 
-int DescribeEventsResult::getTotal()const
+int DescribeEventsResult::getPageSize()const
 {
-	return total_;
+	return pageSize_;
 }
 
-std::vector<DescribeEventsResult::Events> DescribeEventsResult::getData()const
+std::vector<DescribeEventsResult::Event> DescribeEventsResult::getEvents()const
 {
-	return data_;
+	return events_;
 }
 
-int DescribeEventsResult::getPageNo()const
+int DescribeEventsResult::getPageNumber()const
 {
-	return pageNo_;
+	return pageNumber_;
 }
 

+ 336 - 0
ecs/src/model/DescribeNetworkInterfacePermissionsRequest.cc

@@ -0,0 +1,336 @@
+/*
+ * 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/DescribeNetworkInterfacePermissionsRequest.h>
+
+using AlibabaCloud::Ecs::Model::DescribeNetworkInterfacePermissionsRequest;
+
+DescribeNetworkInterfacePermissionsRequest::DescribeNetworkInterfacePermissionsRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "DescribeNetworkInterfacePermissions")
+{}
+
+DescribeNetworkInterfacePermissionsRequest::~DescribeNetworkInterfacePermissionsRequest()
+{}
+
+long DescribeNetworkInterfacePermissionsRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+long DescribeNetworkInterfacePermissionsRequest::getCallerParentId()const
+{
+	return callerParentId_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setCallerParentId(long callerParentId)
+{
+	callerParentId_ = callerParentId;
+	setParameter("CallerParentId", std::to_string(callerParentId));
+}
+
+bool DescribeNetworkInterfacePermissionsRequest::getProxy_original_security_transport()const
+{
+	return proxy_original_security_transport_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setProxy_original_security_transport(bool proxy_original_security_transport)
+{
+	proxy_original_security_transport_ = proxy_original_security_transport;
+	setParameter("Proxy_original_security_transport", std::to_string(proxy_original_security_transport));
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getProxy_original_source_ip()const
+{
+	return proxy_original_source_ip_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setProxy_original_source_ip(const std::string& proxy_original_source_ip)
+{
+	proxy_original_source_ip_ = proxy_original_source_ip;
+	setParameter("Proxy_original_source_ip", proxy_original_source_ip);
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getOwnerIdLoginEmail()const
+{
+	return ownerIdLoginEmail_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setOwnerIdLoginEmail(const std::string& ownerIdLoginEmail)
+{
+	ownerIdLoginEmail_ = ownerIdLoginEmail;
+	setParameter("OwnerIdLoginEmail", ownerIdLoginEmail);
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getCallerType()const
+{
+	return callerType_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setCallerType(const std::string& callerType)
+{
+	callerType_ = callerType;
+	setParameter("CallerType", callerType);
+}
+
+int DescribeNetworkInterfacePermissionsRequest::getPageNumber()const
+{
+	return pageNumber_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setPageNumber(int pageNumber)
+{
+	pageNumber_ = pageNumber;
+	setParameter("PageNumber", std::to_string(pageNumber));
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getResourceGroupId()const
+{
+	return resourceGroupId_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setResourceGroupId(const std::string& resourceGroupId)
+{
+	resourceGroupId_ = resourceGroupId;
+	setParameter("ResourceGroupId", resourceGroupId);
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getSecurityToken()const
+{
+	return securityToken_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setSecurityToken(const std::string& securityToken)
+{
+	securityToken_ = securityToken;
+	setParameter("SecurityToken", securityToken);
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+bool DescribeNetworkInterfacePermissionsRequest::getEnable()const
+{
+	return enable_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setEnable(bool enable)
+{
+	enable_ = enable;
+	setParameter("Enable", std::to_string(enable));
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getRequestContent()const
+{
+	return requestContent_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setRequestContent(const std::string& requestContent)
+{
+	requestContent_ = requestContent;
+	setParameter("RequestContent", requestContent);
+}
+
+int DescribeNetworkInterfacePermissionsRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getCallerBidEmail()const
+{
+	return callerBidEmail_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setCallerBidEmail(const std::string& callerBidEmail)
+{
+	callerBidEmail_ = callerBidEmail;
+	setParameter("CallerBidEmail", callerBidEmail);
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getCallerUidEmail()const
+{
+	return callerUidEmail_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setCallerUidEmail(const std::string& callerUidEmail)
+{
+	callerUidEmail_ = callerUidEmail;
+	setParameter("CallerUidEmail", callerUidEmail);
+}
+
+long DescribeNetworkInterfacePermissionsRequest::getCallerUid()const
+{
+	return callerUid_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setCallerUid(long callerUid)
+{
+	callerUid_ = callerUid;
+	setParameter("CallerUid", std::to_string(callerUid));
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getApp_ip()const
+{
+	return app_ip_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setApp_ip(const std::string& app_ip)
+{
+	app_ip_ = app_ip;
+	setParameter("App_ip", app_ip);
+}
+
+std::vector<std::string> DescribeNetworkInterfacePermissionsRequest::getNetworkInterfacePermissionId()const
+{
+	return networkInterfacePermissionId_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setNetworkInterfacePermissionId(const std::vector<std::string>& networkInterfacePermissionId)
+{
+	networkInterfacePermissionId_ = networkInterfacePermissionId;
+	for(int i = 0; i!= networkInterfacePermissionId.size(); i++)
+		setParameter("NetworkInterfacePermissionId."+ std::to_string(i), networkInterfacePermissionId.at(i));
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getCallerBid()const
+{
+	return callerBid_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setCallerBid(const std::string& callerBid)
+{
+	callerBid_ = callerBid;
+	setParameter("CallerBid", callerBid);
+}
+
+long DescribeNetworkInterfacePermissionsRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+bool DescribeNetworkInterfacePermissionsRequest::getProxy_trust_transport_info()const
+{
+	return proxy_trust_transport_info_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setProxy_trust_transport_info(bool proxy_trust_transport_info)
+{
+	proxy_trust_transport_info_ = proxy_trust_transport_info;
+	setParameter("Proxy_trust_transport_info", std::to_string(proxy_trust_transport_info));
+}
+
+bool DescribeNetworkInterfacePermissionsRequest::getAk_mfa_present()const
+{
+	return ak_mfa_present_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setAk_mfa_present(bool ak_mfa_present)
+{
+	ak_mfa_present_ = ak_mfa_present;
+	setParameter("Ak_mfa_present", std::to_string(ak_mfa_present));
+}
+
+bool DescribeNetworkInterfacePermissionsRequest::getSecurity_transport()const
+{
+	return security_transport_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setSecurity_transport(bool security_transport)
+{
+	security_transport_ = security_transport;
+	setParameter("Security_transport", std::to_string(security_transport));
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getRequestId()const
+{
+	return requestId_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setRequestId(const std::string& requestId)
+{
+	requestId_ = requestId;
+	setParameter("RequestId", requestId);
+}
+
+std::string DescribeNetworkInterfacePermissionsRequest::getNetworkInterfaceId()const
+{
+	return networkInterfaceId_;
+}
+
+void DescribeNetworkInterfacePermissionsRequest::setNetworkInterfaceId(const std::string& networkInterfaceId)
+{
+	networkInterfaceId_ = networkInterfaceId;
+	setParameter("NetworkInterfaceId", networkInterfaceId);
+}
+

+ 89 - 0
ecs/src/model/DescribeNetworkInterfacePermissionsResult.cc

@@ -0,0 +1,89 @@
+/*
+ * 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/DescribeNetworkInterfacePermissionsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ecs;
+using namespace AlibabaCloud::Ecs::Model;
+
+DescribeNetworkInterfacePermissionsResult::DescribeNetworkInterfacePermissionsResult() :
+	ServiceResult()
+{}
+
+DescribeNetworkInterfacePermissionsResult::DescribeNetworkInterfacePermissionsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeNetworkInterfacePermissionsResult::~DescribeNetworkInterfacePermissionsResult()
+{}
+
+void DescribeNetworkInterfacePermissionsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	auto allNetworkInterfacePermissions = value["NetworkInterfacePermissions"]["NetworkInterfacePermission"];
+	for (auto value : allNetworkInterfacePermissions)
+	{
+		NetworkInterfacePermission networkInterfacePermissionsObject;
+		if(!value["AccountId"].isNull())
+			networkInterfacePermissionsObject.accountId = std::stol(value["AccountId"].asString());
+		if(!value["ServiceName"].isNull())
+			networkInterfacePermissionsObject.serviceName = value["ServiceName"].asString();
+		if(!value["NetworkInterfaceId"].isNull())
+			networkInterfacePermissionsObject.networkInterfaceId = value["NetworkInterfaceId"].asString();
+		if(!value["NetworkInterfacePermissionId"].isNull())
+			networkInterfacePermissionsObject.networkInterfacePermissionId = value["NetworkInterfacePermissionId"].asString();
+		if(!value["Permission"].isNull())
+			networkInterfacePermissionsObject.permission = value["Permission"].asString();
+		if(!value["PermissionState"].isNull())
+			networkInterfacePermissionsObject.permissionState = value["PermissionState"].asString();
+		networkInterfacePermissions_.push_back(networkInterfacePermissionsObject);
+	}
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stoi(value["PageNumber"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+
+}
+
+int DescribeNetworkInterfacePermissionsResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+int DescribeNetworkInterfacePermissionsResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+int DescribeNetworkInterfacePermissionsResult::getPageNumber()const
+{
+	return pageNumber_;
+}
+
+std::vector<DescribeNetworkInterfacePermissionsResult::NetworkInterfacePermission> DescribeNetworkInterfacePermissionsResult::getNetworkInterfacePermissions()const
+{
+	return networkInterfacePermissions_;
+}
+

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

@@ -0,0 +1,302 @@
+/*
+ * 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/GetInstanceConsoleOutputRequest.h>
+
+using AlibabaCloud::Ecs::Model::GetInstanceConsoleOutputRequest;
+
+GetInstanceConsoleOutputRequest::GetInstanceConsoleOutputRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "GetInstanceConsoleOutput")
+{}
+
+GetInstanceConsoleOutputRequest::~GetInstanceConsoleOutputRequest()
+{}
+
+long GetInstanceConsoleOutputRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void GetInstanceConsoleOutputRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+long GetInstanceConsoleOutputRequest::getCallerParentId()const
+{
+	return callerParentId_;
+}
+
+void GetInstanceConsoleOutputRequest::setCallerParentId(long callerParentId)
+{
+	callerParentId_ = callerParentId;
+	setParameter("CallerParentId", std::to_string(callerParentId));
+}
+
+bool GetInstanceConsoleOutputRequest::getProxy_original_security_transport()const
+{
+	return proxy_original_security_transport_;
+}
+
+void GetInstanceConsoleOutputRequest::setProxy_original_security_transport(bool proxy_original_security_transport)
+{
+	proxy_original_security_transport_ = proxy_original_security_transport;
+	setParameter("Proxy_original_security_transport", std::to_string(proxy_original_security_transport));
+}
+
+std::string GetInstanceConsoleOutputRequest::getProxy_original_source_ip()const
+{
+	return proxy_original_source_ip_;
+}
+
+void GetInstanceConsoleOutputRequest::setProxy_original_source_ip(const std::string& proxy_original_source_ip)
+{
+	proxy_original_source_ip_ = proxy_original_source_ip;
+	setParameter("Proxy_original_source_ip", proxy_original_source_ip);
+}
+
+std::string GetInstanceConsoleOutputRequest::getOwnerIdLoginEmail()const
+{
+	return ownerIdLoginEmail_;
+}
+
+void GetInstanceConsoleOutputRequest::setOwnerIdLoginEmail(const std::string& ownerIdLoginEmail)
+{
+	ownerIdLoginEmail_ = ownerIdLoginEmail;
+	setParameter("OwnerIdLoginEmail", ownerIdLoginEmail);
+}
+
+std::string GetInstanceConsoleOutputRequest::getCallerType()const
+{
+	return callerType_;
+}
+
+void GetInstanceConsoleOutputRequest::setCallerType(const std::string& callerType)
+{
+	callerType_ = callerType;
+	setParameter("CallerType", callerType);
+}
+
+std::string GetInstanceConsoleOutputRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void GetInstanceConsoleOutputRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string GetInstanceConsoleOutputRequest::getResourceGroupId()const
+{
+	return resourceGroupId_;
+}
+
+void GetInstanceConsoleOutputRequest::setResourceGroupId(const std::string& resourceGroupId)
+{
+	resourceGroupId_ = resourceGroupId;
+	setParameter("ResourceGroupId", resourceGroupId);
+}
+
+std::string GetInstanceConsoleOutputRequest::getSecurityToken()const
+{
+	return securityToken_;
+}
+
+void GetInstanceConsoleOutputRequest::setSecurityToken(const std::string& securityToken)
+{
+	securityToken_ = securityToken;
+	setParameter("SecurityToken", securityToken);
+}
+
+std::string GetInstanceConsoleOutputRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void GetInstanceConsoleOutputRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+bool GetInstanceConsoleOutputRequest::getEnable()const
+{
+	return enable_;
+}
+
+void GetInstanceConsoleOutputRequest::setEnable(bool enable)
+{
+	enable_ = enable;
+	setParameter("Enable", std::to_string(enable));
+}
+
+std::string GetInstanceConsoleOutputRequest::getRequestContent()const
+{
+	return requestContent_;
+}
+
+void GetInstanceConsoleOutputRequest::setRequestContent(const std::string& requestContent)
+{
+	requestContent_ = requestContent;
+	setParameter("RequestContent", requestContent);
+}
+
+std::string GetInstanceConsoleOutputRequest::getCallerBidEmail()const
+{
+	return callerBidEmail_;
+}
+
+void GetInstanceConsoleOutputRequest::setCallerBidEmail(const std::string& callerBidEmail)
+{
+	callerBidEmail_ = callerBidEmail;
+	setParameter("CallerBidEmail", callerBidEmail);
+}
+
+std::string GetInstanceConsoleOutputRequest::getCallerUidEmail()const
+{
+	return callerUidEmail_;
+}
+
+void GetInstanceConsoleOutputRequest::setCallerUidEmail(const std::string& callerUidEmail)
+{
+	callerUidEmail_ = callerUidEmail;
+	setParameter("CallerUidEmail", callerUidEmail);
+}
+
+long GetInstanceConsoleOutputRequest::getCallerUid()const
+{
+	return callerUid_;
+}
+
+void GetInstanceConsoleOutputRequest::setCallerUid(long callerUid)
+{
+	callerUid_ = callerUid;
+	setParameter("CallerUid", std::to_string(callerUid));
+}
+
+std::string GetInstanceConsoleOutputRequest::getApp_ip()const
+{
+	return app_ip_;
+}
+
+void GetInstanceConsoleOutputRequest::setApp_ip(const std::string& app_ip)
+{
+	app_ip_ = app_ip;
+	setParameter("App_ip", app_ip);
+}
+
+std::string GetInstanceConsoleOutputRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void GetInstanceConsoleOutputRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string GetInstanceConsoleOutputRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void GetInstanceConsoleOutputRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+std::string GetInstanceConsoleOutputRequest::getCallerBid()const
+{
+	return callerBid_;
+}
+
+void GetInstanceConsoleOutputRequest::setCallerBid(const std::string& callerBid)
+{
+	callerBid_ = callerBid;
+	setParameter("CallerBid", callerBid);
+}
+
+long GetInstanceConsoleOutputRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void GetInstanceConsoleOutputRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+bool GetInstanceConsoleOutputRequest::getProxy_trust_transport_info()const
+{
+	return proxy_trust_transport_info_;
+}
+
+void GetInstanceConsoleOutputRequest::setProxy_trust_transport_info(bool proxy_trust_transport_info)
+{
+	proxy_trust_transport_info_ = proxy_trust_transport_info;
+	setParameter("Proxy_trust_transport_info", std::to_string(proxy_trust_transport_info));
+}
+
+bool GetInstanceConsoleOutputRequest::getAk_mfa_present()const
+{
+	return ak_mfa_present_;
+}
+
+void GetInstanceConsoleOutputRequest::setAk_mfa_present(bool ak_mfa_present)
+{
+	ak_mfa_present_ = ak_mfa_present;
+	setParameter("Ak_mfa_present", std::to_string(ak_mfa_present));
+}
+
+bool GetInstanceConsoleOutputRequest::getSecurity_transport()const
+{
+	return security_transport_;
+}
+
+void GetInstanceConsoleOutputRequest::setSecurity_transport(bool security_transport)
+{
+	security_transport_ = security_transport;
+	setParameter("Security_transport", std::to_string(security_transport));
+}
+
+std::string GetInstanceConsoleOutputRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void GetInstanceConsoleOutputRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string GetInstanceConsoleOutputRequest::getRequestId()const
+{
+	return requestId_;
+}
+
+void GetInstanceConsoleOutputRequest::setRequestId(const std::string& requestId)
+{
+	requestId_ = requestId;
+	setParameter("RequestId", requestId);
+}
+

+ 66 - 0
ecs/src/model/GetInstanceConsoleOutputResult.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/GetInstanceConsoleOutputResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ecs;
+using namespace AlibabaCloud::Ecs::Model;
+
+GetInstanceConsoleOutputResult::GetInstanceConsoleOutputResult() :
+	ServiceResult()
+{}
+
+GetInstanceConsoleOutputResult::GetInstanceConsoleOutputResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetInstanceConsoleOutputResult::~GetInstanceConsoleOutputResult()
+{}
+
+void GetInstanceConsoleOutputResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+
+	setRequestId(value["RequestId"].asString());
+	if(!value["InstanceId"].isNull())
+		instanceId_ = value["InstanceId"].asString();
+	if(!value["ConsoleOutput"].isNull())
+		consoleOutput_ = value["ConsoleOutput"].asString();
+	if(!value["LastUpdateTime"].isNull())
+		lastUpdateTime_ = value["LastUpdateTime"].asString();
+
+}
+
+std::string GetInstanceConsoleOutputResult::getConsoleOutput()const
+{
+	return consoleOutput_;
+}
+
+std::string GetInstanceConsoleOutputResult::getInstanceId()const
+{
+	return instanceId_;
+}
+
+std::string GetInstanceConsoleOutputResult::getLastUpdateTime()const
+{
+	return lastUpdateTime_;
+}
+

+ 313 - 0
ecs/src/model/GetInstanceScreenshotRequest.cc

@@ -0,0 +1,313 @@
+/*
+ * 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/GetInstanceScreenshotRequest.h>
+
+using AlibabaCloud::Ecs::Model::GetInstanceScreenshotRequest;
+
+GetInstanceScreenshotRequest::GetInstanceScreenshotRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "GetInstanceScreenshot")
+{}
+
+GetInstanceScreenshotRequest::~GetInstanceScreenshotRequest()
+{}
+
+long GetInstanceScreenshotRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void GetInstanceScreenshotRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+long GetInstanceScreenshotRequest::getCallerParentId()const
+{
+	return callerParentId_;
+}
+
+void GetInstanceScreenshotRequest::setCallerParentId(long callerParentId)
+{
+	callerParentId_ = callerParentId;
+	setParameter("CallerParentId", std::to_string(callerParentId));
+}
+
+bool GetInstanceScreenshotRequest::getProxy_original_security_transport()const
+{
+	return proxy_original_security_transport_;
+}
+
+void GetInstanceScreenshotRequest::setProxy_original_security_transport(bool proxy_original_security_transport)
+{
+	proxy_original_security_transport_ = proxy_original_security_transport;
+	setParameter("Proxy_original_security_transport", std::to_string(proxy_original_security_transport));
+}
+
+std::string GetInstanceScreenshotRequest::getProxy_original_source_ip()const
+{
+	return proxy_original_source_ip_;
+}
+
+void GetInstanceScreenshotRequest::setProxy_original_source_ip(const std::string& proxy_original_source_ip)
+{
+	proxy_original_source_ip_ = proxy_original_source_ip;
+	setParameter("Proxy_original_source_ip", proxy_original_source_ip);
+}
+
+std::string GetInstanceScreenshotRequest::getOwnerIdLoginEmail()const
+{
+	return ownerIdLoginEmail_;
+}
+
+void GetInstanceScreenshotRequest::setOwnerIdLoginEmail(const std::string& ownerIdLoginEmail)
+{
+	ownerIdLoginEmail_ = ownerIdLoginEmail;
+	setParameter("OwnerIdLoginEmail", ownerIdLoginEmail);
+}
+
+std::string GetInstanceScreenshotRequest::getCallerType()const
+{
+	return callerType_;
+}
+
+void GetInstanceScreenshotRequest::setCallerType(const std::string& callerType)
+{
+	callerType_ = callerType;
+	setParameter("CallerType", callerType);
+}
+
+std::string GetInstanceScreenshotRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void GetInstanceScreenshotRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string GetInstanceScreenshotRequest::getResourceGroupId()const
+{
+	return resourceGroupId_;
+}
+
+void GetInstanceScreenshotRequest::setResourceGroupId(const std::string& resourceGroupId)
+{
+	resourceGroupId_ = resourceGroupId;
+	setParameter("ResourceGroupId", resourceGroupId);
+}
+
+std::string GetInstanceScreenshotRequest::getSecurityToken()const
+{
+	return securityToken_;
+}
+
+void GetInstanceScreenshotRequest::setSecurityToken(const std::string& securityToken)
+{
+	securityToken_ = securityToken;
+	setParameter("SecurityToken", securityToken);
+}
+
+std::string GetInstanceScreenshotRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void GetInstanceScreenshotRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+bool GetInstanceScreenshotRequest::getEnable()const
+{
+	return enable_;
+}
+
+void GetInstanceScreenshotRequest::setEnable(bool enable)
+{
+	enable_ = enable;
+	setParameter("Enable", std::to_string(enable));
+}
+
+std::string GetInstanceScreenshotRequest::getRequestContent()const
+{
+	return requestContent_;
+}
+
+void GetInstanceScreenshotRequest::setRequestContent(const std::string& requestContent)
+{
+	requestContent_ = requestContent;
+	setParameter("RequestContent", requestContent);
+}
+
+std::string GetInstanceScreenshotRequest::getCallerBidEmail()const
+{
+	return callerBidEmail_;
+}
+
+void GetInstanceScreenshotRequest::setCallerBidEmail(const std::string& callerBidEmail)
+{
+	callerBidEmail_ = callerBidEmail;
+	setParameter("CallerBidEmail", callerBidEmail);
+}
+
+std::string GetInstanceScreenshotRequest::getCallerUidEmail()const
+{
+	return callerUidEmail_;
+}
+
+void GetInstanceScreenshotRequest::setCallerUidEmail(const std::string& callerUidEmail)
+{
+	callerUidEmail_ = callerUidEmail;
+	setParameter("CallerUidEmail", callerUidEmail);
+}
+
+long GetInstanceScreenshotRequest::getCallerUid()const
+{
+	return callerUid_;
+}
+
+void GetInstanceScreenshotRequest::setCallerUid(long callerUid)
+{
+	callerUid_ = callerUid;
+	setParameter("CallerUid", std::to_string(callerUid));
+}
+
+std::string GetInstanceScreenshotRequest::getApp_ip()const
+{
+	return app_ip_;
+}
+
+void GetInstanceScreenshotRequest::setApp_ip(const std::string& app_ip)
+{
+	app_ip_ = app_ip;
+	setParameter("App_ip", app_ip);
+}
+
+std::string GetInstanceScreenshotRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void GetInstanceScreenshotRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+bool GetInstanceScreenshotRequest::getWakeup()const
+{
+	return wakeup_;
+}
+
+void GetInstanceScreenshotRequest::setWakeup(bool wakeup)
+{
+	wakeup_ = wakeup;
+	setParameter("Wakeup", std::to_string(wakeup));
+}
+
+std::string GetInstanceScreenshotRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void GetInstanceScreenshotRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+std::string GetInstanceScreenshotRequest::getCallerBid()const
+{
+	return callerBid_;
+}
+
+void GetInstanceScreenshotRequest::setCallerBid(const std::string& callerBid)
+{
+	callerBid_ = callerBid;
+	setParameter("CallerBid", callerBid);
+}
+
+long GetInstanceScreenshotRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void GetInstanceScreenshotRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+bool GetInstanceScreenshotRequest::getProxy_trust_transport_info()const
+{
+	return proxy_trust_transport_info_;
+}
+
+void GetInstanceScreenshotRequest::setProxy_trust_transport_info(bool proxy_trust_transport_info)
+{
+	proxy_trust_transport_info_ = proxy_trust_transport_info;
+	setParameter("Proxy_trust_transport_info", std::to_string(proxy_trust_transport_info));
+}
+
+bool GetInstanceScreenshotRequest::getAk_mfa_present()const
+{
+	return ak_mfa_present_;
+}
+
+void GetInstanceScreenshotRequest::setAk_mfa_present(bool ak_mfa_present)
+{
+	ak_mfa_present_ = ak_mfa_present;
+	setParameter("Ak_mfa_present", std::to_string(ak_mfa_present));
+}
+
+bool GetInstanceScreenshotRequest::getSecurity_transport()const
+{
+	return security_transport_;
+}
+
+void GetInstanceScreenshotRequest::setSecurity_transport(bool security_transport)
+{
+	security_transport_ = security_transport;
+	setParameter("Security_transport", std::to_string(security_transport));
+}
+
+std::string GetInstanceScreenshotRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void GetInstanceScreenshotRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string GetInstanceScreenshotRequest::getRequestId()const
+{
+	return requestId_;
+}
+
+void GetInstanceScreenshotRequest::setRequestId(const std::string& requestId)
+{
+	requestId_ = requestId;
+	setParameter("RequestId", requestId);
+}
+

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

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

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

@@ -36,6 +36,17 @@ void RunInstancesRequest::setResourceOwnerId(long resourceOwnerId)
 	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
 }
 
+std::string RunInstancesRequest::getHpcClusterId()const
+{
+	return hpcClusterId_;
+}
+
+void RunInstancesRequest::setHpcClusterId(const std::string& hpcClusterId)
+{
+	hpcClusterId_ = hpcClusterId;
+	setParameter("HpcClusterId", hpcClusterId);
+}
+
 long RunInstancesRequest::getCallerParentId()const
 {
 	return callerParentId_;
@@ -339,6 +350,17 @@ void RunInstancesRequest::setImageId(const std::string& imageId)
 	setParameter("ImageId", imageId);
 }
 
+std::string RunInstancesRequest::getSpotInterruptionBehavior()const
+{
+	return spotInterruptionBehavior_;
+}
+
+void RunInstancesRequest::setSpotInterruptionBehavior(const std::string& spotInterruptionBehavior)
+{
+	spotInterruptionBehavior_ = spotInterruptionBehavior;
+	setParameter("SpotInterruptionBehavior", spotInterruptionBehavior);
+}
+
 std::string RunInstancesRequest::getClientToken()const
 {
 	return clientToken_;