Bläddra i källkod

Supported Eni Trunking.

sdk-team 6 år sedan
förälder
incheckning
99feb0fdea
53 ändrade filer med 953 tillägg och 6 borttagningar
  1. 3 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 4 0
      ecs/CMakeLists.txt
  4. 8 0
      ecs/include/alibabacloud/ecs/EcsClient.h
  5. 3 0
      ecs/include/alibabacloud/ecs/model/AttachNetworkInterfaceRequest.h
  6. 9 0
      ecs/include/alibabacloud/ecs/model/CreateAutoSnapshotPolicyRequest.h
  7. 3 0
      ecs/include/alibabacloud/ecs/model/CreateNetworkInterfaceRequest.h
  8. 6 3
      ecs/include/alibabacloud/ecs/model/DescribeAutoSnapshotPolicyExResult.h
  9. 1 0
      ecs/include/alibabacloud/ecs/model/DescribeDisksFullStatusResult.h
  10. 3 0
      ecs/include/alibabacloud/ecs/model/DescribeInstanceHistoryEventsRequest.h
  11. 1 0
      ecs/include/alibabacloud/ecs/model/DescribeInstanceHistoryEventsResult.h
  12. 2 0
      ecs/include/alibabacloud/ecs/model/DescribeInstanceTypesResult.h
  13. 1 0
      ecs/include/alibabacloud/ecs/model/DescribeInstancesFullStatusResult.h
  14. 3 0
      ecs/include/alibabacloud/ecs/model/DescribeInvocationResultsRequest.h
  15. 8 2
      ecs/include/alibabacloud/ecs/model/DescribeInvocationResultsResult.h
  16. 1 0
      ecs/include/alibabacloud/ecs/model/DescribeInvocationsResult.h
  17. 75 0
      ecs/include/alibabacloud/ecs/model/DescribeNetworkInterfaceAttributeRequest.h
  18. 127 0
      ecs/include/alibabacloud/ecs/model/DescribeNetworkInterfaceAttributeResult.h
  19. 7 0
      ecs/include/alibabacloud/ecs/model/DescribeNetworkInterfacesResult.h
  20. 3 0
      ecs/include/alibabacloud/ecs/model/DescribeSecurityGroupsRequest.h
  21. 2 0
      ecs/include/alibabacloud/ecs/model/DescribeSecurityGroupsResult.h
  22. 3 0
      ecs/include/alibabacloud/ecs/model/DescribeSnapshotsRequest.h
  23. 3 0
      ecs/include/alibabacloud/ecs/model/DetachNetworkInterfaceRequest.h
  24. 9 0
      ecs/include/alibabacloud/ecs/model/ModifyAutoSnapshotPolicyExRequest.h
  25. 6 0
      ecs/include/alibabacloud/ecs/model/ModifyDiskSpecRequest.h
  26. 2 0
      ecs/include/alibabacloud/ecs/model/ModifyDiskSpecResult.h
  27. 3 0
      ecs/include/alibabacloud/ecs/model/ModifyImageAttributeRequest.h
  28. 6 0
      ecs/include/alibabacloud/ecs/model/ModifyInstanceVpcAttributeRequest.h
  29. 36 0
      ecs/src/EcsClient.cc
  30. 11 0
      ecs/src/model/AttachNetworkInterfaceRequest.cc
  31. 33 0
      ecs/src/model/CreateAutoSnapshotPolicyRequest.cc
  32. 11 0
      ecs/src/model/CreateNetworkInterfaceRequest.cc
  33. 6 0
      ecs/src/model/DescribeAutoSnapshotPolicyExResult.cc
  34. 2 0
      ecs/src/model/DescribeDisksFullStatusResult.cc
  35. 11 0
      ecs/src/model/DescribeInstanceHistoryEventsRequest.cc
  36. 2 0
      ecs/src/model/DescribeInstanceHistoryEventsResult.cc
  37. 4 0
      ecs/src/model/DescribeInstanceTypesResult.cc
  38. 2 0
      ecs/src/model/DescribeInstancesFullStatusResult.cc
  39. 11 0
      ecs/src/model/DescribeInvocationResultsRequest.cc
  40. 12 0
      ecs/src/model/DescribeInvocationResultsResult.cc
  41. 2 0
      ecs/src/model/DescribeInvocationsResult.cc
  42. 122 0
      ecs/src/model/DescribeNetworkInterfaceAttributeRequest.cc
  43. 244 0
      ecs/src/model/DescribeNetworkInterfaceAttributeResult.cc
  44. 7 0
      ecs/src/model/DescribeNetworkInterfacesResult.cc
  45. 11 0
      ecs/src/model/DescribeSecurityGroupsRequest.cc
  46. 4 0
      ecs/src/model/DescribeSecurityGroupsResult.cc
  47. 11 0
      ecs/src/model/DescribeSnapshotsRequest.cc
  48. 11 0
      ecs/src/model/DetachNetworkInterfaceRequest.cc
  49. 33 0
      ecs/src/model/ModifyAutoSnapshotPolicyExRequest.cc
  50. 22 0
      ecs/src/model/ModifyDiskSpecRequest.cc
  51. 7 0
      ecs/src/model/ModifyDiskSpecResult.cc
  52. 11 0
      ecs/src/model/ModifyImageAttributeRequest.cc
  53. 24 0
      ecs/src/model/ModifyInstanceVpcAttributeRequest.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2020-06-04 Version: 1.36.450
+- Supported Eni Trunking.
+
 2020-06-04 Version: 1.36.449
 - Update monitor related API.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.449
+1.36.450

+ 4 - 0
ecs/CMakeLists.txt

@@ -293,6 +293,8 @@ set(ecs_public_header_model
 	include/alibabacloud/ecs/model/DescribeLimitationResult.h
 	include/alibabacloud/ecs/model/DescribeNatGatewaysRequest.h
 	include/alibabacloud/ecs/model/DescribeNatGatewaysResult.h
+	include/alibabacloud/ecs/model/DescribeNetworkInterfaceAttributeRequest.h
+	include/alibabacloud/ecs/model/DescribeNetworkInterfaceAttributeResult.h
 	include/alibabacloud/ecs/model/DescribeNetworkInterfacePermissionsRequest.h
 	include/alibabacloud/ecs/model/DescribeNetworkInterfacePermissionsResult.h
 	include/alibabacloud/ecs/model/DescribeNetworkInterfacesRequest.h
@@ -862,6 +864,8 @@ set(ecs_src
 	src/model/DescribeLimitationResult.cc
 	src/model/DescribeNatGatewaysRequest.cc
 	src/model/DescribeNatGatewaysResult.cc
+	src/model/DescribeNetworkInterfaceAttributeRequest.cc
+	src/model/DescribeNetworkInterfaceAttributeResult.cc
 	src/model/DescribeNetworkInterfacePermissionsRequest.cc
 	src/model/DescribeNetworkInterfacePermissionsResult.cc
 	src/model/DescribeNetworkInterfacesRequest.cc

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

@@ -294,6 +294,8 @@
 #include "model/DescribeLimitationResult.h"
 #include "model/DescribeNatGatewaysRequest.h"
 #include "model/DescribeNatGatewaysResult.h"
+#include "model/DescribeNetworkInterfaceAttributeRequest.h"
+#include "model/DescribeNetworkInterfaceAttributeResult.h"
 #include "model/DescribeNetworkInterfacePermissionsRequest.h"
 #include "model/DescribeNetworkInterfacePermissionsResult.h"
 #include "model/DescribeNetworkInterfacesRequest.h"
@@ -1005,6 +1007,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeNatGatewaysResult> DescribeNatGatewaysOutcome;
 			typedef std::future<DescribeNatGatewaysOutcome> DescribeNatGatewaysOutcomeCallable;
 			typedef std::function<void(const EcsClient*, const Model::DescribeNatGatewaysRequest&, const DescribeNatGatewaysOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeNatGatewaysAsyncHandler;
+			typedef Outcome<Error, Model::DescribeNetworkInterfaceAttributeResult> DescribeNetworkInterfaceAttributeOutcome;
+			typedef std::future<DescribeNetworkInterfaceAttributeOutcome> DescribeNetworkInterfaceAttributeOutcomeCallable;
+			typedef std::function<void(const EcsClient*, const Model::DescribeNetworkInterfaceAttributeRequest&, const DescribeNetworkInterfaceAttributeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeNetworkInterfaceAttributeAsyncHandler;
 			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;
@@ -1859,6 +1864,9 @@ namespace AlibabaCloud
 			DescribeNatGatewaysOutcome describeNatGateways(const Model::DescribeNatGatewaysRequest &request)const;
 			void describeNatGatewaysAsync(const Model::DescribeNatGatewaysRequest& request, const DescribeNatGatewaysAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeNatGatewaysOutcomeCallable describeNatGatewaysCallable(const Model::DescribeNatGatewaysRequest& request) const;
+			DescribeNetworkInterfaceAttributeOutcome describeNetworkInterfaceAttribute(const Model::DescribeNetworkInterfaceAttributeRequest &request)const;
+			void describeNetworkInterfaceAttributeAsync(const Model::DescribeNetworkInterfaceAttributeRequest& request, const DescribeNetworkInterfaceAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeNetworkInterfaceAttributeOutcomeCallable describeNetworkInterfaceAttributeCallable(const Model::DescribeNetworkInterfaceAttributeRequest& 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;

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

@@ -39,6 +39,8 @@ namespace AlibabaCloud
 				void setResourceOwnerId(long resourceOwnerId);
 				std::string getRegionId()const;
 				void setRegionId(const std::string& regionId);
+				std::string getTrunkNetworkInstanceId()const;
+				void setTrunkNetworkInstanceId(const std::string& trunkNetworkInstanceId);
 				std::string getResourceOwnerAccount()const;
 				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
 				std::string getOwnerAccount()const;
@@ -53,6 +55,7 @@ namespace AlibabaCloud
             private:
 				long resourceOwnerId_;
 				std::string regionId_;
+				std::string trunkNetworkInstanceId_;
 				std::string resourceOwnerAccount_;
 				std::string ownerAccount_;
 				long ownerId_;

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

@@ -43,6 +43,8 @@ namespace AlibabaCloud
 
 				long getResourceOwnerId()const;
 				void setResourceOwnerId(long resourceOwnerId);
+				int getCopiedSnapshotsRetentionDays()const;
+				void setCopiedSnapshotsRetentionDays(int copiedSnapshotsRetentionDays);
 				std::string getTimePoints()const;
 				void setTimePoints(const std::string& timePoints);
 				std::string getRepeatWeekdays()const;
@@ -51,6 +53,8 @@ namespace AlibabaCloud
 				void setRegionId(const std::string& regionId);
 				std::vector<Tag> getTag()const;
 				void setTag(const std::vector<Tag>& tag);
+				bool getEnableCrossRegionCopy()const;
+				void setEnableCrossRegionCopy(bool enableCrossRegionCopy);
 				std::string getResourceOwnerAccount()const;
 				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
 				long getOwnerId()const;
@@ -59,17 +63,22 @@ namespace AlibabaCloud
 				void setAutoSnapshotPolicyName(const std::string& autoSnapshotPolicyName);
 				int getRetentionDays()const;
 				void setRetentionDays(int retentionDays);
+				std::string getTargetCopyRegions()const;
+				void setTargetCopyRegions(const std::string& targetCopyRegions);
 
             private:
 				long resourceOwnerId_;
+				int copiedSnapshotsRetentionDays_;
 				std::string timePoints_;
 				std::string repeatWeekdays_;
 				std::string regionId_;
 				std::vector<Tag> tag_;
+				bool enableCrossRegionCopy_;
 				std::string resourceOwnerAccount_;
 				long ownerId_;
 				std::string autoSnapshotPolicyName_;
 				int retentionDays_;
+				std::string targetCopyRegions_;
 
 			};
 		}

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

@@ -57,6 +57,8 @@ namespace AlibabaCloud
 				void setResourceGroupId(const std::string& resourceGroupId);
 				std::string getRegionId()const;
 				void setRegionId(const std::string& regionId);
+				std::string getInstanceType()const;
+				void setInstanceType(const std::string& instanceType);
 				std::vector<Tag> getTag()const;
 				void setTag(const std::vector<Tag>& tag);
 				std::string getNetworkInterfaceName()const;
@@ -87,6 +89,7 @@ namespace AlibabaCloud
 				std::string businessType_;
 				std::string resourceGroupId_;
 				std::string regionId_;
+				std::string instanceType_;
 				std::vector<Tag> tag_;
 				std::string networkInterfaceName_;
 				bool visible_;

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

@@ -42,14 +42,17 @@ namespace AlibabaCloud
 					std::string status;
 					std::string timePoints;
 					int volumeNums;
-					std::string creationTime;
 					std::string autoSnapshotPolicyId;
 					int retentionDays;
-					std::string regionId;
 					std::string repeatWeekdays;
+					int diskNums;
+					int copiedSnapshotsRetentionDays;
+					std::string targetCopyRegions;
+					bool enableCrossRegionCopy;
+					std::string creationTime;
+					std::string regionId;
 					std::string autoSnapshotPolicyName;
 					std::vector<AutoSnapshotPolicy::Tag> tags;
-					int diskNums;
 				};
 
 

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

@@ -53,6 +53,7 @@ namespace AlibabaCloud
 						};
 						EventType eventType;
 						std::string eventTime;
+						std::string impactLevel;
 						std::string eventId;
 						std::string eventEndTime;
 					};

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

@@ -43,6 +43,8 @@ namespace AlibabaCloud
 				void setEventCycleStatus(const std::string& eventCycleStatus);
 				int getPageNumber()const;
 				void setPageNumber(int pageNumber);
+				std::string getImpactLevel()const;
+				void setImpactLevel(const std::string& impactLevel);
 				std::string getRegionId()const;
 				void setRegionId(const std::string& regionId);
 				int getPageSize()const;
@@ -75,6 +77,7 @@ namespace AlibabaCloud
 				long resourceOwnerId_;
 				std::string eventCycleStatus_;
 				int pageNumber_;
+				std::string impactLevel_;
 				std::string regionId_;
 				int pageSize_;
 				std::vector<std::string> instanceEventCycleStatus_;

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

@@ -63,6 +63,7 @@ namespace AlibabaCloud
 					std::string eventPublishTime;
 					EventType eventType;
 					std::string instanceId;
+					std::string impactLevel;
 					ExtendedAttribute extendedAttribute;
 					std::string eventId;
 					std::string notBefore;

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

@@ -40,6 +40,8 @@ namespace AlibabaCloud
 					int cpuCoreCount;
 					long localStorageCapacity;
 					int totalEniQueueQuantity;
+					int eniTotalQuantity;
+					bool eniTrunkSupported;
 					std::string instanceTypeFamily;
 					long instancePpsRx;
 					int initialCredit;

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

@@ -73,6 +73,7 @@ namespace AlibabaCloud
 						EventCycleStatus eventCycleStatus;
 						std::string eventPublishTime;
 						EventType eventType;
+						std::string impactLevel;
 						ExtendedAttribute extendedAttribute;
 						std::string eventId;
 						std::string notBefore;

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

@@ -43,6 +43,8 @@ namespace AlibabaCloud
 				void setPageNumber(long pageNumber);
 				std::string getRegionId()const;
 				void setRegionId(const std::string& regionId);
+				std::string getContentEncoding()const;
+				void setContentEncoding(const std::string& contentEncoding);
 				long getPageSize()const;
 				void setPageSize(long pageSize);
 				std::string getInvokeId()const;
@@ -65,6 +67,7 @@ namespace AlibabaCloud
 				std::string commandId_;
 				long pageNumber_;
 				std::string regionId_;
+				std::string contentEncoding_;
 				long pageSize_;
 				std::string invokeId_;
 				std::string resourceOwnerAccount_;

+ 8 - 2
ecs/include/alibabacloud/ecs/model/DescribeInvocationResultsResult.h

@@ -36,14 +36,20 @@ namespace AlibabaCloud
 				{
 					struct InvocationResult
 					{
+						int dropped;
+						std::string invocationStatus;
 						std::string instanceId;
-						std::string output;
 						long exitCode;
+						std::string errorInfo;
 						std::string startTime;
-						std::string commandId;
+						int repeats;
 						std::string invokeRecordStatus;
 						std::string finishedTime;
+						std::string output;
+						std::string commandId;
+						std::string errorCode;
 						std::string invokeId;
+						std::string stopTime;
 					};
 					std::vector<InvocationResult> invocationResults;
 					long totalCount;

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

@@ -52,6 +52,7 @@ namespace AlibabaCloud
 						std::string stopTime;
 					};
 					std::string commandContent;
+					std::string invocationStatus;
 					std::string invokeStatus;
 					std::string parameters;
 					std::string commandType;

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

@@ -0,0 +1,75 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ECS_MODEL_DESCRIBENETWORKINTERFACEATTRIBUTEREQUEST_H_
+#define ALIBABACLOUD_ECS_MODEL_DESCRIBENETWORKINTERFACEATTRIBUTEREQUEST_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 DescribeNetworkInterfaceAttributeRequest : public RpcServiceRequest
+			{
+			public:
+				struct Tag
+				{
+					std::string key;
+					std::string value;
+				};
+
+			public:
+				DescribeNetworkInterfaceAttributeRequest();
+				~DescribeNetworkInterfaceAttributeRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getRegionId()const;
+				void setRegionId(const std::string& regionId);
+				std::vector<Tag> getTag()const;
+				void setTag(const std::vector<Tag>& tag);
+				std::string getAttribute()const;
+				void setAttribute(const std::string& attribute);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				std::string getOwnerAccount()const;
+				void setOwnerAccount(const std::string& ownerAccount);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				std::string getNetworkInterfaceId()const;
+				void setNetworkInterfaceId(const std::string& networkInterfaceId);
+
+            private:
+				long resourceOwnerId_;
+				std::string regionId_;
+				std::vector<Tag> tag_;
+				std::string attribute_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				long ownerId_;
+				std::string networkInterfaceId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_DESCRIBENETWORKINTERFACEATTRIBUTEREQUEST_H_

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

@@ -0,0 +1,127 @@
+/*
+ * 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_DESCRIBENETWORKINTERFACEATTRIBUTERESULT_H_
+#define ALIBABACLOUD_ECS_MODEL_DESCRIBENETWORKINTERFACEATTRIBUTERESULT_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 DescribeNetworkInterfaceAttributeResult : public ServiceResult
+			{
+			public:
+				struct AssociatedPublicIp
+				{
+					std::string publicIpAddress;
+					std::string allocationId;
+				};
+				struct Attachment
+				{
+					std::string instanceId;
+					int deviceIndex;
+					std::vector<std::string> memberNetworkInterfaceIds;
+					std::string trunkNetworkInterfaceId;
+				};
+				struct PrivateIpSet
+				{
+					struct AssociatedPublicIp1
+					{
+						std::string publicIpAddress;
+						std::string allocationId;
+					};
+					AssociatedPublicIp1 associatedPublicIp1;
+					std::string privateIpAddress;
+					bool primary;
+				};
+				struct Ipv6Set
+				{
+					std::string ipv6Address;
+				};
+				struct Tag
+				{
+					std::string tagKey;
+					std::string tagValue;
+				};
+
+
+				DescribeNetworkInterfaceAttributeResult();
+				explicit DescribeNetworkInterfaceAttributeResult(const std::string &payload);
+				~DescribeNetworkInterfaceAttributeResult();
+				std::string getStatus()const;
+				std::string getPrivateIpAddress()const;
+				std::string getDescription()const;
+				std::string getZoneId()const;
+				std::string getResourceGroupId()const;
+				bool getServiceManaged()const;
+				std::string getInstanceId()const;
+				std::string getVSwitchId()const;
+				std::string getNetworkInterfaceName()const;
+				Attachment getAttachment()const;
+				std::string getNetworkInterfaceId()const;
+				std::string getMacAddress()const;
+				std::vector<std::string> getSecurityGroupIds()const;
+				long getServiceID()const;
+				std::string getType()const;
+				std::vector<Ipv6Set> getIpv6Sets()const;
+				int getQueueNumber()const;
+				std::string getVpcId()const;
+				std::string getOwnerId()const;
+				AssociatedPublicIp getAssociatedPublicIp()const;
+				std::string getCreationTime()const;
+				std::vector<Tag> getTags()const;
+				std::vector<PrivateIpSet> getPrivateIpSets()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string privateIpAddress_;
+				std::string description_;
+				std::string zoneId_;
+				std::string resourceGroupId_;
+				bool serviceManaged_;
+				std::string instanceId_;
+				std::string vSwitchId_;
+				std::string networkInterfaceName_;
+				Attachment attachment_;
+				std::string networkInterfaceId_;
+				std::string macAddress_;
+				std::vector<std::string> securityGroupIds_;
+				long serviceID_;
+				std::string type_;
+				std::vector<Ipv6Set> ipv6Sets_;
+				int queueNumber_;
+				std::string vpcId_;
+				std::string ownerId_;
+				AssociatedPublicIp associatedPublicIp_;
+				std::string creationTime_;
+				std::vector<Tag> tags_;
+				std::vector<PrivateIpSet> privateIpSets_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ECS_MODEL_DESCRIBENETWORKINTERFACEATTRIBUTERESULT_H_

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

@@ -39,6 +39,12 @@ namespace AlibabaCloud
 						std::string publicIpAddress;
 						std::string allocationId;
 					};
+					struct Attachment
+					{
+						std::string instanceId;
+						int deviceIndex;
+						std::string trunkNetworkInterfaceId;
+					};
 					struct PrivateIpSet
 					{
 						struct AssociatedPublicIp1
@@ -68,6 +74,7 @@ namespace AlibabaCloud
 					std::string instanceId;
 					std::string vSwitchId;
 					std::string networkInterfaceName;
+					Attachment attachment;
 					std::string networkInterfaceId;
 					std::string macAddress;
 					std::vector<std::string> securityGroupIds;

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

@@ -73,6 +73,8 @@ namespace AlibabaCloud
 				void setOwnerId(long ownerId);
 				std::string getSecurityGroupIds()const;
 				void setSecurityGroupIds(const std::string& securityGroupIds);
+				std::string getSecurityGroupType()const;
+				void setSecurityGroupType(const std::string& securityGroupType);
 				std::string getVpcId()const;
 				void setVpcId(const std::string& vpcId);
 
@@ -93,6 +95,7 @@ namespace AlibabaCloud
 				std::string ownerAccount_;
 				long ownerId_;
 				std::string securityGroupIds_;
+				std::string securityGroupType_;
 				std::string vpcId_;
 
 			};

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

@@ -44,11 +44,13 @@ namespace AlibabaCloud
 					std::string securityGroupName;
 					std::string vpcId;
 					std::string resourceGroupId;
+					bool serviceManaged;
 					std::string securityGroupId;
 					std::string creationTime;
 					std::string securityGroupType;
 					std::vector<SecurityGroup::Tag> tags;
 					int availableInstanceAmount;
+					long serviceID;
 				};
 
 

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

@@ -89,6 +89,8 @@ namespace AlibabaCloud
 				void setSnapshotType(const std::string& snapshotType);
 				std::string getKMSKeyId()const;
 				void setKMSKeyId(const std::string& kMSKeyId);
+				std::string getCategory()const;
+				void setCategory(const std::string& category);
 				std::string getStatus()const;
 				void setStatus(const std::string& status);
 
@@ -117,6 +119,7 @@ namespace AlibabaCloud
 				bool encrypted_;
 				std::string snapshotType_;
 				std::string kMSKeyId_;
+				std::string category_;
 				std::string status_;
 
 			};

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

@@ -39,6 +39,8 @@ namespace AlibabaCloud
 				void setResourceOwnerId(long resourceOwnerId);
 				std::string getRegionId()const;
 				void setRegionId(const std::string& regionId);
+				std::string getTrunkNetworkInstanceId()const;
+				void setTrunkNetworkInstanceId(const std::string& trunkNetworkInstanceId);
 				std::string getResourceOwnerAccount()const;
 				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
 				std::string getOwnerAccount()const;
@@ -53,6 +55,7 @@ namespace AlibabaCloud
             private:
 				long resourceOwnerId_;
 				std::string regionId_;
+				std::string trunkNetworkInstanceId_;
 				std::string resourceOwnerAccount_;
 				std::string ownerAccount_;
 				long ownerId_;

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

@@ -39,12 +39,16 @@ namespace AlibabaCloud
 				void setResourceOwnerId(long resourceOwnerId);
 				std::string getAutoSnapshotPolicyId()const;
 				void setAutoSnapshotPolicyId(const std::string& autoSnapshotPolicyId);
+				int getCopiedSnapshotsRetentionDays()const;
+				void setCopiedSnapshotsRetentionDays(int copiedSnapshotsRetentionDays);
 				std::string getTimePoints()const;
 				void setTimePoints(const std::string& timePoints);
 				std::string getRepeatWeekdays()const;
 				void setRepeatWeekdays(const std::string& repeatWeekdays);
 				std::string getRegionId()const;
 				void setRegionId(const std::string& regionId);
+				bool getEnableCrossRegionCopy()const;
+				void setEnableCrossRegionCopy(bool enableCrossRegionCopy);
 				std::string getResourceOwnerAccount()const;
 				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
 				long getOwnerId()const;
@@ -53,17 +57,22 @@ namespace AlibabaCloud
 				void setAutoSnapshotPolicyName(const std::string& autoSnapshotPolicyName);
 				int getRetentionDays()const;
 				void setRetentionDays(int retentionDays);
+				std::string getTargetCopyRegions()const;
+				void setTargetCopyRegions(const std::string& targetCopyRegions);
 
             private:
 				long resourceOwnerId_;
 				std::string autoSnapshotPolicyId_;
+				int copiedSnapshotsRetentionDays_;
 				std::string timePoints_;
 				std::string repeatWeekdays_;
 				std::string regionId_;
+				bool enableCrossRegionCopy_;
 				std::string resourceOwnerAccount_;
 				long ownerId_;
 				std::string autoSnapshotPolicyName_;
 				int retentionDays_;
+				std::string targetCopyRegions_;
 
 			};
 		}

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

@@ -37,8 +37,12 @@ namespace AlibabaCloud
 
 				long getResourceOwnerId()const;
 				void setResourceOwnerId(long resourceOwnerId);
+				std::string getDiskCategory()const;
+				void setDiskCategory(const std::string& diskCategory);
 				std::string getDiskId()const;
 				void setDiskId(const std::string& diskId);
+				bool getDryRun()const;
+				void setDryRun(bool dryRun);
 				std::string getResourceOwnerAccount()const;
 				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
 				std::string getPerformanceLevel()const;
@@ -50,7 +54,9 @@ namespace AlibabaCloud
 
             private:
 				long resourceOwnerId_;
+				std::string diskCategory_;
 				std::string diskId_;
+				bool dryRun_;
 				std::string resourceOwnerAccount_;
 				std::string performanceLevel_;
 				std::string ownerAccount_;

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

@@ -37,10 +37,12 @@ namespace AlibabaCloud
 				ModifyDiskSpecResult();
 				explicit ModifyDiskSpecResult(const std::string &payload);
 				~ModifyDiskSpecResult();
+				std::string getTaskId()const;
 
 			protected:
 				void parse(const std::string &payload);
 			private:
+				std::string taskId_;
 
 			};
 		}

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

@@ -41,6 +41,8 @@ namespace AlibabaCloud
 				void setImageId(const std::string& imageId);
 				std::string getDescription()const;
 				void setDescription(const std::string& description);
+				std::string getBootMode()const;
+				void setBootMode(const std::string& bootMode);
 				std::string getRegionId()const;
 				void setRegionId(const std::string& regionId);
 				std::string getImageName()const;
@@ -60,6 +62,7 @@ namespace AlibabaCloud
 				long resourceOwnerId_;
 				std::string imageId_;
 				std::string description_;
+				std::string bootMode_;
 				std::string regionId_;
 				std::string imageName_;
 				std::string resourceOwnerAccount_;

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

@@ -37,6 +37,8 @@ namespace AlibabaCloud
 
 				long getResourceOwnerId()const;
 				void setResourceOwnerId(long resourceOwnerId);
+				std::vector<std::string> getSecurityGroupId()const;
+				void setSecurityGroupId(const std::vector<std::string>& securityGroupId);
 				std::string getResourceOwnerAccount()const;
 				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
 				std::string getOwnerAccount()const;
@@ -49,15 +51,19 @@ namespace AlibabaCloud
 				void setPrivateIpAddress(const std::string& privateIpAddress);
 				std::string getInstanceId()const;
 				void setInstanceId(const std::string& instanceId);
+				std::string getVpcId()const;
+				void setVpcId(const std::string& vpcId);
 
             private:
 				long resourceOwnerId_;
+				std::vector<std::string> securityGroupId_;
 				std::string resourceOwnerAccount_;
 				std::string ownerAccount_;
 				long ownerId_;
 				std::string vSwitchId_;
 				std::string privateIpAddress_;
 				std::string instanceId_;
+				std::string vpcId_;
 
 			};
 		}

+ 36 - 0
ecs/src/EcsClient.cc

@@ -4947,6 +4947,42 @@ EcsClient::DescribeNatGatewaysOutcomeCallable EcsClient::describeNatGatewaysCall
 	return task->get_future();
 }
 
+EcsClient::DescribeNetworkInterfaceAttributeOutcome EcsClient::describeNetworkInterfaceAttribute(const DescribeNetworkInterfaceAttributeRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeNetworkInterfaceAttributeOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeNetworkInterfaceAttributeOutcome(DescribeNetworkInterfaceAttributeResult(outcome.result()));
+	else
+		return DescribeNetworkInterfaceAttributeOutcome(outcome.error());
+}
+
+void EcsClient::describeNetworkInterfaceAttributeAsync(const DescribeNetworkInterfaceAttributeRequest& request, const DescribeNetworkInterfaceAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeNetworkInterfaceAttribute(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EcsClient::DescribeNetworkInterfaceAttributeOutcomeCallable EcsClient::describeNetworkInterfaceAttributeCallable(const DescribeNetworkInterfaceAttributeRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeNetworkInterfaceAttributeOutcome()>>(
+			[this, request]()
+			{
+			return this->describeNetworkInterfaceAttribute(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EcsClient::DescribeNetworkInterfacePermissionsOutcome EcsClient::describeNetworkInterfacePermissions(const DescribeNetworkInterfacePermissionsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

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

@@ -49,6 +49,17 @@ void AttachNetworkInterfaceRequest::setRegionId(const std::string& regionId)
 	setParameter("RegionId", regionId);
 }
 
+std::string AttachNetworkInterfaceRequest::getTrunkNetworkInstanceId()const
+{
+	return trunkNetworkInstanceId_;
+}
+
+void AttachNetworkInterfaceRequest::setTrunkNetworkInstanceId(const std::string& trunkNetworkInstanceId)
+{
+	trunkNetworkInstanceId_ = trunkNetworkInstanceId;
+	setParameter("TrunkNetworkInstanceId", trunkNetworkInstanceId);
+}
+
 std::string AttachNetworkInterfaceRequest::getResourceOwnerAccount()const
 {
 	return resourceOwnerAccount_;

+ 33 - 0
ecs/src/model/CreateAutoSnapshotPolicyRequest.cc

@@ -38,6 +38,17 @@ void CreateAutoSnapshotPolicyRequest::setResourceOwnerId(long resourceOwnerId)
 	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
 }
 
+int CreateAutoSnapshotPolicyRequest::getCopiedSnapshotsRetentionDays()const
+{
+	return copiedSnapshotsRetentionDays_;
+}
+
+void CreateAutoSnapshotPolicyRequest::setCopiedSnapshotsRetentionDays(int copiedSnapshotsRetentionDays)
+{
+	copiedSnapshotsRetentionDays_ = copiedSnapshotsRetentionDays;
+	setParameter("CopiedSnapshotsRetentionDays", std::to_string(copiedSnapshotsRetentionDays));
+}
+
 std::string CreateAutoSnapshotPolicyRequest::getTimePoints()const
 {
 	return timePoints_;
@@ -87,6 +98,17 @@ void CreateAutoSnapshotPolicyRequest::setTag(const std::vector<Tag>& tag)
 	}
 }
 
+bool CreateAutoSnapshotPolicyRequest::getEnableCrossRegionCopy()const
+{
+	return enableCrossRegionCopy_;
+}
+
+void CreateAutoSnapshotPolicyRequest::setEnableCrossRegionCopy(bool enableCrossRegionCopy)
+{
+	enableCrossRegionCopy_ = enableCrossRegionCopy;
+	setParameter("EnableCrossRegionCopy", enableCrossRegionCopy ? "true" : "false");
+}
+
 std::string CreateAutoSnapshotPolicyRequest::getResourceOwnerAccount()const
 {
 	return resourceOwnerAccount_;
@@ -131,3 +153,14 @@ void CreateAutoSnapshotPolicyRequest::setRetentionDays(int retentionDays)
 	setParameter("RetentionDays", std::to_string(retentionDays));
 }
 
+std::string CreateAutoSnapshotPolicyRequest::getTargetCopyRegions()const
+{
+	return targetCopyRegions_;
+}
+
+void CreateAutoSnapshotPolicyRequest::setTargetCopyRegions(const std::string& targetCopyRegions)
+{
+	targetCopyRegions_ = targetCopyRegions;
+	setParameter("TargetCopyRegions", targetCopyRegions);
+}
+

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

@@ -115,6 +115,17 @@ void CreateNetworkInterfaceRequest::setRegionId(const std::string& regionId)
 	setParameter("RegionId", regionId);
 }
 
+std::string CreateNetworkInterfaceRequest::getInstanceType()const
+{
+	return instanceType_;
+}
+
+void CreateNetworkInterfaceRequest::setInstanceType(const std::string& instanceType)
+{
+	instanceType_ = instanceType;
+	setParameter("InstanceType", instanceType);
+}
+
 std::vector<CreateNetworkInterfaceRequest::Tag> CreateNetworkInterfaceRequest::getTag()const
 {
 	return tag_;

+ 6 - 0
ecs/src/model/DescribeAutoSnapshotPolicyExResult.cc

@@ -63,6 +63,12 @@ void DescribeAutoSnapshotPolicyExResult::parse(const std::string &payload)
 			autoSnapshotPoliciesObject.creationTime = valueAutoSnapshotPoliciesAutoSnapshotPolicy["CreationTime"].asString();
 		if(!valueAutoSnapshotPoliciesAutoSnapshotPolicy["Status"].isNull())
 			autoSnapshotPoliciesObject.status = valueAutoSnapshotPoliciesAutoSnapshotPolicy["Status"].asString();
+		if(!valueAutoSnapshotPoliciesAutoSnapshotPolicy["EnableCrossRegionCopy"].isNull())
+			autoSnapshotPoliciesObject.enableCrossRegionCopy = valueAutoSnapshotPoliciesAutoSnapshotPolicy["EnableCrossRegionCopy"].asString() == "true";
+		if(!valueAutoSnapshotPoliciesAutoSnapshotPolicy["TargetCopyRegions"].isNull())
+			autoSnapshotPoliciesObject.targetCopyRegions = valueAutoSnapshotPoliciesAutoSnapshotPolicy["TargetCopyRegions"].asString();
+		if(!valueAutoSnapshotPoliciesAutoSnapshotPolicy["CopiedSnapshotsRetentionDays"].isNull())
+			autoSnapshotPoliciesObject.copiedSnapshotsRetentionDays = std::stoi(valueAutoSnapshotPoliciesAutoSnapshotPolicy["CopiedSnapshotsRetentionDays"].asString());
 		auto allTagsNode = allAutoSnapshotPoliciesNode["Tags"]["Tag"];
 		for (auto allAutoSnapshotPoliciesNodeTagsTag : allTagsNode)
 		{

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

@@ -59,6 +59,8 @@ void DescribeDisksFullStatusResult::parse(const std::string &payload)
 				diskEventSetObject.eventTime = allDiskFullStatusSetNodeDiskEventSetDiskEventType["EventTime"].asString();
 			if(!allDiskFullStatusSetNodeDiskEventSetDiskEventType["EventEndTime"].isNull())
 				diskEventSetObject.eventEndTime = allDiskFullStatusSetNodeDiskEventSetDiskEventType["EventEndTime"].asString();
+			if(!allDiskFullStatusSetNodeDiskEventSetDiskEventType["ImpactLevel"].isNull())
+				diskEventSetObject.impactLevel = allDiskFullStatusSetNodeDiskEventSetDiskEventType["ImpactLevel"].asString();
 			auto eventTypeNode = value["EventType"];
 			if(!eventTypeNode["Code"].isNull())
 				diskEventSetObject.eventType.code = std::stoi(eventTypeNode["Code"].asString());

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

@@ -73,6 +73,17 @@ void DescribeInstanceHistoryEventsRequest::setPageNumber(int pageNumber)
 	setParameter("PageNumber", std::to_string(pageNumber));
 }
 
+std::string DescribeInstanceHistoryEventsRequest::getImpactLevel()const
+{
+	return impactLevel_;
+}
+
+void DescribeInstanceHistoryEventsRequest::setImpactLevel(const std::string& impactLevel)
+{
+	impactLevel_ = impactLevel;
+	setParameter("ImpactLevel", impactLevel);
+}
+
 std::string DescribeInstanceHistoryEventsRequest::getRegionId()const
 {
 	return regionId_;

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

@@ -55,6 +55,8 @@ void DescribeInstanceHistoryEventsResult::parse(const std::string &payload)
 			instanceSystemEventSetObject.eventFinishTime = valueInstanceSystemEventSetInstanceSystemEventType["EventFinishTime"].asString();
 		if(!valueInstanceSystemEventSetInstanceSystemEventType["Reason"].isNull())
 			instanceSystemEventSetObject.reason = valueInstanceSystemEventSetInstanceSystemEventType["Reason"].asString();
+		if(!valueInstanceSystemEventSetInstanceSystemEventType["ImpactLevel"].isNull())
+			instanceSystemEventSetObject.impactLevel = valueInstanceSystemEventSetInstanceSystemEventType["ImpactLevel"].asString();
 		auto eventTypeNode = value["EventType"];
 		if(!eventTypeNode["Code"].isNull())
 			instanceSystemEventSetObject.eventType.code = std::stoi(eventTypeNode["Code"].asString());

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

@@ -83,6 +83,10 @@ void DescribeInstanceTypesResult::parse(const std::string &payload)
 			instanceTypesObject.instanceFamilyLevel = valueInstanceTypesInstanceType["InstanceFamilyLevel"].asString();
 		if(!valueInstanceTypesInstanceType["TotalEniQueueQuantity"].isNull())
 			instanceTypesObject.totalEniQueueQuantity = std::stoi(valueInstanceTypesInstanceType["TotalEniQueueQuantity"].asString());
+		if(!valueInstanceTypesInstanceType["EniTrunkSupported"].isNull())
+			instanceTypesObject.eniTrunkSupported = valueInstanceTypesInstanceType["EniTrunkSupported"].asString() == "true";
+		if(!valueInstanceTypesInstanceType["EniTotalQuantity"].isNull())
+			instanceTypesObject.eniTotalQuantity = std::stoi(valueInstanceTypesInstanceType["EniTotalQuantity"].asString());
 		instanceTypes_.push_back(instanceTypesObject);
 	}
 

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

@@ -57,6 +57,8 @@ void DescribeInstancesFullStatusResult::parse(const std::string &payload)
 				scheduledSystemEventSetObject.notBefore = allInstanceFullStatusSetNodeScheduledSystemEventSetScheduledSystemEventType["NotBefore"].asString();
 			if(!allInstanceFullStatusSetNodeScheduledSystemEventSetScheduledSystemEventType["Reason"].isNull())
 				scheduledSystemEventSetObject.reason = allInstanceFullStatusSetNodeScheduledSystemEventSetScheduledSystemEventType["Reason"].asString();
+			if(!allInstanceFullStatusSetNodeScheduledSystemEventSetScheduledSystemEventType["ImpactLevel"].isNull())
+				scheduledSystemEventSetObject.impactLevel = allInstanceFullStatusSetNodeScheduledSystemEventSetScheduledSystemEventType["ImpactLevel"].asString();
 			auto eventCycleStatusNode = value["EventCycleStatus"];
 			if(!eventCycleStatusNode["Code"].isNull())
 				scheduledSystemEventSetObject.eventCycleStatus.code = std::stoi(eventCycleStatusNode["Code"].asString());

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

@@ -71,6 +71,17 @@ void DescribeInvocationResultsRequest::setRegionId(const std::string& regionId)
 	setParameter("RegionId", regionId);
 }
 
+std::string DescribeInvocationResultsRequest::getContentEncoding()const
+{
+	return contentEncoding_;
+}
+
+void DescribeInvocationResultsRequest::setContentEncoding(const std::string& contentEncoding)
+{
+	contentEncoding_ = contentEncoding;
+	setParameter("ContentEncoding", contentEncoding);
+}
+
 long DescribeInvocationResultsRequest::getPageSize()const
 {
 	return pageSize_;

+ 12 - 0
ecs/src/model/DescribeInvocationResultsResult.cc

@@ -58,14 +58,26 @@ void DescribeInvocationResultsResult::parse(const std::string &payload)
 			invocationResultObject.instanceId = invocationNodeInvocationResultsInvocationResult["InstanceId"].asString();
 		if(!invocationNodeInvocationResultsInvocationResult["StartTime"].isNull())
 			invocationResultObject.startTime = invocationNodeInvocationResultsInvocationResult["StartTime"].asString();
+		if(!invocationNodeInvocationResultsInvocationResult["StopTime"].isNull())
+			invocationResultObject.stopTime = invocationNodeInvocationResultsInvocationResult["StopTime"].asString();
 		if(!invocationNodeInvocationResultsInvocationResult["FinishedTime"].isNull())
 			invocationResultObject.finishedTime = invocationNodeInvocationResultsInvocationResult["FinishedTime"].asString();
+		if(!invocationNodeInvocationResultsInvocationResult["Repeats"].isNull())
+			invocationResultObject.repeats = std::stoi(invocationNodeInvocationResultsInvocationResult["Repeats"].asString());
 		if(!invocationNodeInvocationResultsInvocationResult["Output"].isNull())
 			invocationResultObject.output = invocationNodeInvocationResultsInvocationResult["Output"].asString();
+		if(!invocationNodeInvocationResultsInvocationResult["Dropped"].isNull())
+			invocationResultObject.dropped = std::stoi(invocationNodeInvocationResultsInvocationResult["Dropped"].asString());
 		if(!invocationNodeInvocationResultsInvocationResult["InvokeRecordStatus"].isNull())
 			invocationResultObject.invokeRecordStatus = invocationNodeInvocationResultsInvocationResult["InvokeRecordStatus"].asString();
+		if(!invocationNodeInvocationResultsInvocationResult["InvocationStatus"].isNull())
+			invocationResultObject.invocationStatus = invocationNodeInvocationResultsInvocationResult["InvocationStatus"].asString();
 		if(!invocationNodeInvocationResultsInvocationResult["ExitCode"].isNull())
 			invocationResultObject.exitCode = std::stol(invocationNodeInvocationResultsInvocationResult["ExitCode"].asString());
+		if(!invocationNodeInvocationResultsInvocationResult["ErrorCode"].isNull())
+			invocationResultObject.errorCode = invocationNodeInvocationResultsInvocationResult["ErrorCode"].asString();
+		if(!invocationNodeInvocationResultsInvocationResult["ErrorInfo"].isNull())
+			invocationResultObject.errorInfo = invocationNodeInvocationResultsInvocationResult["ErrorInfo"].asString();
 		invocation_.invocationResults.push_back(invocationResultObject);
 	}
 

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

@@ -61,6 +61,8 @@ void DescribeInvocationsResult::parse(const std::string &payload)
 			invocationsObject.timed = valueInvocationsInvocation["Timed"].asString() == "true";
 		if(!valueInvocationsInvocation["InvokeStatus"].isNull())
 			invocationsObject.invokeStatus = valueInvocationsInvocation["InvokeStatus"].asString();
+		if(!valueInvocationsInvocation["InvocationStatus"].isNull())
+			invocationsObject.invocationStatus = valueInvocationsInvocation["InvocationStatus"].asString();
 		if(!valueInvocationsInvocation["Parameters"].isNull())
 			invocationsObject.parameters = valueInvocationsInvocation["Parameters"].asString();
 		auto allInvokeInstancesNode = allInvocationsNode["InvokeInstances"]["InvokeInstance"];

+ 122 - 0
ecs/src/model/DescribeNetworkInterfaceAttributeRequest.cc

@@ -0,0 +1,122 @@
+/*
+ * 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/DescribeNetworkInterfaceAttributeRequest.h>
+
+using AlibabaCloud::Ecs::Model::DescribeNetworkInterfaceAttributeRequest;
+
+DescribeNetworkInterfaceAttributeRequest::DescribeNetworkInterfaceAttributeRequest() :
+	RpcServiceRequest("ecs", "2014-05-26", "DescribeNetworkInterfaceAttribute")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeNetworkInterfaceAttributeRequest::~DescribeNetworkInterfaceAttributeRequest()
+{}
+
+long DescribeNetworkInterfaceAttributeRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void DescribeNetworkInterfaceAttributeRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string DescribeNetworkInterfaceAttributeRequest::getRegionId()const
+{
+	return regionId_;
+}
+
+void DescribeNetworkInterfaceAttributeRequest::setRegionId(const std::string& regionId)
+{
+	regionId_ = regionId;
+	setParameter("RegionId", regionId);
+}
+
+std::vector<DescribeNetworkInterfaceAttributeRequest::Tag> DescribeNetworkInterfaceAttributeRequest::getTag()const
+{
+	return tag_;
+}
+
+void DescribeNetworkInterfaceAttributeRequest::setTag(const std::vector<Tag>& tag)
+{
+	tag_ = tag;
+	for(int dep1 = 0; dep1!= tag.size(); dep1++) {
+		auto tagObj = tag.at(dep1);
+		std::string tagObjStr = "Tag." + std::to_string(dep1 + 1);
+		setParameter(tagObjStr + ".Key", tagObj.key);
+		setParameter(tagObjStr + ".Value", tagObj.value);
+	}
+}
+
+std::string DescribeNetworkInterfaceAttributeRequest::getAttribute()const
+{
+	return attribute_;
+}
+
+void DescribeNetworkInterfaceAttributeRequest::setAttribute(const std::string& attribute)
+{
+	attribute_ = attribute;
+	setParameter("Attribute", attribute);
+}
+
+std::string DescribeNetworkInterfaceAttributeRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void DescribeNetworkInterfaceAttributeRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string DescribeNetworkInterfaceAttributeRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void DescribeNetworkInterfaceAttributeRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+long DescribeNetworkInterfaceAttributeRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DescribeNetworkInterfaceAttributeRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string DescribeNetworkInterfaceAttributeRequest::getNetworkInterfaceId()const
+{
+	return networkInterfaceId_;
+}
+
+void DescribeNetworkInterfaceAttributeRequest::setNetworkInterfaceId(const std::string& networkInterfaceId)
+{
+	networkInterfaceId_ = networkInterfaceId;
+	setParameter("NetworkInterfaceId", networkInterfaceId);
+}
+

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

@@ -0,0 +1,244 @@
+/*
+ * 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/DescribeNetworkInterfaceAttributeResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ecs;
+using namespace AlibabaCloud::Ecs::Model;
+
+DescribeNetworkInterfaceAttributeResult::DescribeNetworkInterfaceAttributeResult() :
+	ServiceResult()
+{}
+
+DescribeNetworkInterfaceAttributeResult::DescribeNetworkInterfaceAttributeResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeNetworkInterfaceAttributeResult::~DescribeNetworkInterfaceAttributeResult()
+{}
+
+void DescribeNetworkInterfaceAttributeResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allPrivateIpSetsNode = value["PrivateIpSets"]["PrivateIpSet"];
+	for (auto valuePrivateIpSetsPrivateIpSet : allPrivateIpSetsNode)
+	{
+		PrivateIpSet privateIpSetsObject;
+		if(!valuePrivateIpSetsPrivateIpSet["PrivateIpAddress"].isNull())
+			privateIpSetsObject.privateIpAddress = valuePrivateIpSetsPrivateIpSet["PrivateIpAddress"].asString();
+		if(!valuePrivateIpSetsPrivateIpSet["Primary"].isNull())
+			privateIpSetsObject.primary = valuePrivateIpSetsPrivateIpSet["Primary"].asString() == "true";
+		auto associatedPublicIp1Node = value["AssociatedPublicIp"];
+		if(!associatedPublicIp1Node["PublicIpAddress"].isNull())
+			privateIpSetsObject.associatedPublicIp1.publicIpAddress = associatedPublicIp1Node["PublicIpAddress"].asString();
+		if(!associatedPublicIp1Node["AllocationId"].isNull())
+			privateIpSetsObject.associatedPublicIp1.allocationId = associatedPublicIp1Node["AllocationId"].asString();
+		privateIpSets_.push_back(privateIpSetsObject);
+	}
+	auto allIpv6SetsNode = value["Ipv6Sets"]["Ipv6Set"];
+	for (auto valueIpv6SetsIpv6Set : allIpv6SetsNode)
+	{
+		Ipv6Set ipv6SetsObject;
+		if(!valueIpv6SetsIpv6Set["Ipv6Address"].isNull())
+			ipv6SetsObject.ipv6Address = valueIpv6SetsIpv6Set["Ipv6Address"].asString();
+		ipv6Sets_.push_back(ipv6SetsObject);
+	}
+	auto allTagsNode = value["Tags"]["Tag"];
+	for (auto valueTagsTag : allTagsNode)
+	{
+		Tag tagsObject;
+		if(!valueTagsTag["TagKey"].isNull())
+			tagsObject.tagKey = valueTagsTag["TagKey"].asString();
+		if(!valueTagsTag["TagValue"].isNull())
+			tagsObject.tagValue = valueTagsTag["TagValue"].asString();
+		tags_.push_back(tagsObject);
+	}
+	auto associatedPublicIpNode = value["AssociatedPublicIp"];
+	if(!associatedPublicIpNode["PublicIpAddress"].isNull())
+		associatedPublicIp_.publicIpAddress = associatedPublicIpNode["PublicIpAddress"].asString();
+	if(!associatedPublicIpNode["AllocationId"].isNull())
+		associatedPublicIp_.allocationId = associatedPublicIpNode["AllocationId"].asString();
+	auto attachmentNode = value["Attachment"];
+	if(!attachmentNode["InstanceId"].isNull())
+		attachment_.instanceId = attachmentNode["InstanceId"].asString();
+	if(!attachmentNode["TrunkNetworkInterfaceId"].isNull())
+		attachment_.trunkNetworkInterfaceId = attachmentNode["TrunkNetworkInterfaceId"].asString();
+	if(!attachmentNode["DeviceIndex"].isNull())
+		attachment_.deviceIndex = std::stoi(attachmentNode["DeviceIndex"].asString());
+		auto allMemberNetworkInterfaceIds = attachmentNode["MemberNetworkInterfaceIds"]["MemberNetworkInterfaceId"];
+		for (auto value : allMemberNetworkInterfaceIds)
+			attachment_.memberNetworkInterfaceIds.push_back(value.asString());
+	auto allSecurityGroupIds = value["SecurityGroupIds"]["SecurityGroupId"];
+	for (const auto &item : allSecurityGroupIds)
+		securityGroupIds_.push_back(item.asString());
+	if(!value["NetworkInterfaceId"].isNull())
+		networkInterfaceId_ = value["NetworkInterfaceId"].asString();
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["Type"].isNull())
+		type_ = value["Type"].asString();
+	if(!value["VpcId"].isNull())
+		vpcId_ = value["VpcId"].asString();
+	if(!value["VSwitchId"].isNull())
+		vSwitchId_ = value["VSwitchId"].asString();
+	if(!value["ZoneId"].isNull())
+		zoneId_ = value["ZoneId"].asString();
+	if(!value["PrivateIpAddress"].isNull())
+		privateIpAddress_ = value["PrivateIpAddress"].asString();
+	if(!value["MacAddress"].isNull())
+		macAddress_ = value["MacAddress"].asString();
+	if(!value["NetworkInterfaceName"].isNull())
+		networkInterfaceName_ = value["NetworkInterfaceName"].asString();
+	if(!value["Description"].isNull())
+		description_ = value["Description"].asString();
+	if(!value["InstanceId"].isNull())
+		instanceId_ = value["InstanceId"].asString();
+	if(!value["CreationTime"].isNull())
+		creationTime_ = value["CreationTime"].asString();
+	if(!value["ResourceGroupId"].isNull())
+		resourceGroupId_ = value["ResourceGroupId"].asString();
+	if(!value["ServiceID"].isNull())
+		serviceID_ = std::stol(value["ServiceID"].asString());
+	if(!value["ServiceManaged"].isNull())
+		serviceManaged_ = value["ServiceManaged"].asString() == "true";
+	if(!value["QueueNumber"].isNull())
+		queueNumber_ = std::stoi(value["QueueNumber"].asString());
+	if(!value["OwnerId"].isNull())
+		ownerId_ = value["OwnerId"].asString();
+
+}
+
+std::string DescribeNetworkInterfaceAttributeResult::getStatus()const
+{
+	return status_;
+}
+
+std::string DescribeNetworkInterfaceAttributeResult::getPrivateIpAddress()const
+{
+	return privateIpAddress_;
+}
+
+std::string DescribeNetworkInterfaceAttributeResult::getDescription()const
+{
+	return description_;
+}
+
+std::string DescribeNetworkInterfaceAttributeResult::getZoneId()const
+{
+	return zoneId_;
+}
+
+std::string DescribeNetworkInterfaceAttributeResult::getResourceGroupId()const
+{
+	return resourceGroupId_;
+}
+
+bool DescribeNetworkInterfaceAttributeResult::getServiceManaged()const
+{
+	return serviceManaged_;
+}
+
+std::string DescribeNetworkInterfaceAttributeResult::getInstanceId()const
+{
+	return instanceId_;
+}
+
+std::string DescribeNetworkInterfaceAttributeResult::getVSwitchId()const
+{
+	return vSwitchId_;
+}
+
+std::string DescribeNetworkInterfaceAttributeResult::getNetworkInterfaceName()const
+{
+	return networkInterfaceName_;
+}
+
+DescribeNetworkInterfaceAttributeResult::Attachment DescribeNetworkInterfaceAttributeResult::getAttachment()const
+{
+	return attachment_;
+}
+
+std::string DescribeNetworkInterfaceAttributeResult::getNetworkInterfaceId()const
+{
+	return networkInterfaceId_;
+}
+
+std::string DescribeNetworkInterfaceAttributeResult::getMacAddress()const
+{
+	return macAddress_;
+}
+
+std::vector<std::string> DescribeNetworkInterfaceAttributeResult::getSecurityGroupIds()const
+{
+	return securityGroupIds_;
+}
+
+long DescribeNetworkInterfaceAttributeResult::getServiceID()const
+{
+	return serviceID_;
+}
+
+std::string DescribeNetworkInterfaceAttributeResult::getType()const
+{
+	return type_;
+}
+
+std::vector<DescribeNetworkInterfaceAttributeResult::Ipv6Set> DescribeNetworkInterfaceAttributeResult::getIpv6Sets()const
+{
+	return ipv6Sets_;
+}
+
+int DescribeNetworkInterfaceAttributeResult::getQueueNumber()const
+{
+	return queueNumber_;
+}
+
+std::string DescribeNetworkInterfaceAttributeResult::getVpcId()const
+{
+	return vpcId_;
+}
+
+std::string DescribeNetworkInterfaceAttributeResult::getOwnerId()const
+{
+	return ownerId_;
+}
+
+DescribeNetworkInterfaceAttributeResult::AssociatedPublicIp DescribeNetworkInterfaceAttributeResult::getAssociatedPublicIp()const
+{
+	return associatedPublicIp_;
+}
+
+std::string DescribeNetworkInterfaceAttributeResult::getCreationTime()const
+{
+	return creationTime_;
+}
+
+std::vector<DescribeNetworkInterfaceAttributeResult::Tag> DescribeNetworkInterfaceAttributeResult::getTags()const
+{
+	return tags_;
+}
+
+std::vector<DescribeNetworkInterfaceAttributeResult::PrivateIpSet> DescribeNetworkInterfaceAttributeResult::getPrivateIpSets()const
+{
+	return privateIpSets_;
+}
+

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

@@ -115,6 +115,13 @@ void DescribeNetworkInterfacesResult::parse(const std::string &payload)
 			networkInterfaceSetsObject.associatedPublicIp.publicIpAddress = associatedPublicIpNode["PublicIpAddress"].asString();
 		if(!associatedPublicIpNode["AllocationId"].isNull())
 			networkInterfaceSetsObject.associatedPublicIp.allocationId = associatedPublicIpNode["AllocationId"].asString();
+		auto attachmentNode = value["Attachment"];
+		if(!attachmentNode["InstanceId"].isNull())
+			networkInterfaceSetsObject.attachment.instanceId = attachmentNode["InstanceId"].asString();
+		if(!attachmentNode["TrunkNetworkInterfaceId"].isNull())
+			networkInterfaceSetsObject.attachment.trunkNetworkInterfaceId = attachmentNode["TrunkNetworkInterfaceId"].asString();
+		if(!attachmentNode["DeviceIndex"].isNull())
+			networkInterfaceSetsObject.attachment.deviceIndex = std::stoi(attachmentNode["DeviceIndex"].asString());
 		auto allSecurityGroupIds = value["SecurityGroupIds"]["SecurityGroupId"];
 		for (auto value : allSecurityGroupIds)
 			networkInterfaceSetsObject.securityGroupIds.push_back(value.asString());

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

@@ -208,6 +208,17 @@ void DescribeSecurityGroupsRequest::setSecurityGroupIds(const std::string& secur
 	setParameter("SecurityGroupIds", securityGroupIds);
 }
 
+std::string DescribeSecurityGroupsRequest::getSecurityGroupType()const
+{
+	return securityGroupType_;
+}
+
+void DescribeSecurityGroupsRequest::setSecurityGroupType(const std::string& securityGroupType)
+{
+	securityGroupType_ = securityGroupType;
+	setParameter("SecurityGroupType", securityGroupType);
+}
+
 std::string DescribeSecurityGroupsRequest::getVpcId()const
 {
 	return vpcId_;

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

@@ -61,6 +61,10 @@ void DescribeSecurityGroupsResult::parse(const std::string &payload)
 			securityGroupsObject.ecsCount = std::stoi(valueSecurityGroupsSecurityGroup["EcsCount"].asString());
 		if(!valueSecurityGroupsSecurityGroup["ResourceGroupId"].isNull())
 			securityGroupsObject.resourceGroupId = valueSecurityGroupsSecurityGroup["ResourceGroupId"].asString();
+		if(!valueSecurityGroupsSecurityGroup["ServiceID"].isNull())
+			securityGroupsObject.serviceID = std::stol(valueSecurityGroupsSecurityGroup["ServiceID"].asString());
+		if(!valueSecurityGroupsSecurityGroup["ServiceManaged"].isNull())
+			securityGroupsObject.serviceManaged = valueSecurityGroupsSecurityGroup["ServiceManaged"].asString() == "true";
 		auto allTagsNode = allSecurityGroupsNode["Tags"]["Tag"];
 		for (auto allSecurityGroupsNodeTagsTag : allTagsNode)
 		{

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

@@ -296,6 +296,17 @@ void DescribeSnapshotsRequest::setKMSKeyId(const std::string& kMSKeyId)
 	setParameter("KMSKeyId", kMSKeyId);
 }
 
+std::string DescribeSnapshotsRequest::getCategory()const
+{
+	return category_;
+}
+
+void DescribeSnapshotsRequest::setCategory(const std::string& category)
+{
+	category_ = category;
+	setParameter("Category", category);
+}
+
 std::string DescribeSnapshotsRequest::getStatus()const
 {
 	return status_;

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

@@ -49,6 +49,17 @@ void DetachNetworkInterfaceRequest::setRegionId(const std::string& regionId)
 	setParameter("RegionId", regionId);
 }
 
+std::string DetachNetworkInterfaceRequest::getTrunkNetworkInstanceId()const
+{
+	return trunkNetworkInstanceId_;
+}
+
+void DetachNetworkInterfaceRequest::setTrunkNetworkInstanceId(const std::string& trunkNetworkInstanceId)
+{
+	trunkNetworkInstanceId_ = trunkNetworkInstanceId;
+	setParameter("TrunkNetworkInstanceId", trunkNetworkInstanceId);
+}
+
 std::string DetachNetworkInterfaceRequest::getResourceOwnerAccount()const
 {
 	return resourceOwnerAccount_;

+ 33 - 0
ecs/src/model/ModifyAutoSnapshotPolicyExRequest.cc

@@ -49,6 +49,17 @@ void ModifyAutoSnapshotPolicyExRequest::setAutoSnapshotPolicyId(const std::strin
 	setParameter("AutoSnapshotPolicyId", autoSnapshotPolicyId);
 }
 
+int ModifyAutoSnapshotPolicyExRequest::getCopiedSnapshotsRetentionDays()const
+{
+	return copiedSnapshotsRetentionDays_;
+}
+
+void ModifyAutoSnapshotPolicyExRequest::setCopiedSnapshotsRetentionDays(int copiedSnapshotsRetentionDays)
+{
+	copiedSnapshotsRetentionDays_ = copiedSnapshotsRetentionDays;
+	setParameter("CopiedSnapshotsRetentionDays", std::to_string(copiedSnapshotsRetentionDays));
+}
+
 std::string ModifyAutoSnapshotPolicyExRequest::getTimePoints()const
 {
 	return timePoints_;
@@ -82,6 +93,17 @@ void ModifyAutoSnapshotPolicyExRequest::setRegionId(const std::string& regionId)
 	setParameter("RegionId", regionId);
 }
 
+bool ModifyAutoSnapshotPolicyExRequest::getEnableCrossRegionCopy()const
+{
+	return enableCrossRegionCopy_;
+}
+
+void ModifyAutoSnapshotPolicyExRequest::setEnableCrossRegionCopy(bool enableCrossRegionCopy)
+{
+	enableCrossRegionCopy_ = enableCrossRegionCopy;
+	setParameter("EnableCrossRegionCopy", enableCrossRegionCopy ? "true" : "false");
+}
+
 std::string ModifyAutoSnapshotPolicyExRequest::getResourceOwnerAccount()const
 {
 	return resourceOwnerAccount_;
@@ -126,3 +148,14 @@ void ModifyAutoSnapshotPolicyExRequest::setRetentionDays(int retentionDays)
 	setParameter("RetentionDays", std::to_string(retentionDays));
 }
 
+std::string ModifyAutoSnapshotPolicyExRequest::getTargetCopyRegions()const
+{
+	return targetCopyRegions_;
+}
+
+void ModifyAutoSnapshotPolicyExRequest::setTargetCopyRegions(const std::string& targetCopyRegions)
+{
+	targetCopyRegions_ = targetCopyRegions;
+	setParameter("TargetCopyRegions", targetCopyRegions);
+}
+

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

@@ -38,6 +38,17 @@ void ModifyDiskSpecRequest::setResourceOwnerId(long resourceOwnerId)
 	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
 }
 
+std::string ModifyDiskSpecRequest::getDiskCategory()const
+{
+	return diskCategory_;
+}
+
+void ModifyDiskSpecRequest::setDiskCategory(const std::string& diskCategory)
+{
+	diskCategory_ = diskCategory;
+	setParameter("DiskCategory", diskCategory);
+}
+
 std::string ModifyDiskSpecRequest::getDiskId()const
 {
 	return diskId_;
@@ -49,6 +60,17 @@ void ModifyDiskSpecRequest::setDiskId(const std::string& diskId)
 	setParameter("DiskId", diskId);
 }
 
+bool ModifyDiskSpecRequest::getDryRun()const
+{
+	return dryRun_;
+}
+
+void ModifyDiskSpecRequest::setDryRun(bool dryRun)
+{
+	dryRun_ = dryRun;
+	setParameter("DryRun", dryRun ? "true" : "false");
+}
+
 std::string ModifyDiskSpecRequest::getResourceOwnerAccount()const
 {
 	return resourceOwnerAccount_;

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

@@ -39,6 +39,13 @@ void ModifyDiskSpecResult::parse(const std::string &payload)
 	Json::Value value;
 	reader.parse(payload, value);
 	setRequestId(value["RequestId"].asString());
+	if(!value["TaskId"].isNull())
+		taskId_ = value["TaskId"].asString();
 
 }
 
+std::string ModifyDiskSpecResult::getTaskId()const
+{
+	return taskId_;
+}
+

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

@@ -60,6 +60,17 @@ void ModifyImageAttributeRequest::setDescription(const std::string& description)
 	setParameter("Description", description);
 }
 
+std::string ModifyImageAttributeRequest::getBootMode()const
+{
+	return bootMode_;
+}
+
+void ModifyImageAttributeRequest::setBootMode(const std::string& bootMode)
+{
+	bootMode_ = bootMode;
+	setParameter("BootMode", bootMode);
+}
+
 std::string ModifyImageAttributeRequest::getRegionId()const
 {
 	return regionId_;

+ 24 - 0
ecs/src/model/ModifyInstanceVpcAttributeRequest.cc

@@ -38,6 +38,19 @@ void ModifyInstanceVpcAttributeRequest::setResourceOwnerId(long resourceOwnerId)
 	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
 }
 
+std::vector<std::string> ModifyInstanceVpcAttributeRequest::getSecurityGroupId()const
+{
+	return securityGroupId_;
+}
+
+void ModifyInstanceVpcAttributeRequest::setSecurityGroupId(const std::vector<std::string>& securityGroupId)
+{
+	securityGroupId_ = securityGroupId;
+	for(int dep1 = 0; dep1!= securityGroupId.size(); dep1++) {
+		setParameter("SecurityGroupId."+ std::to_string(dep1), securityGroupId.at(dep1));
+	}
+}
+
 std::string ModifyInstanceVpcAttributeRequest::getResourceOwnerAccount()const
 {
 	return resourceOwnerAccount_;
@@ -104,3 +117,14 @@ void ModifyInstanceVpcAttributeRequest::setInstanceId(const std::string& instanc
 	setParameter("InstanceId", instanceId);
 }
 
+std::string ModifyInstanceVpcAttributeRequest::getVpcId()const
+{
+	return vpcId_;
+}
+
+void ModifyInstanceVpcAttributeRequest::setVpcId(const std::string& vpcId)
+{
+	vpcId_ = vpcId;
+	setParameter("VpcId", vpcId);
+}
+