Parcourir la source

Support SNAT API.

sdk-team il y a 3 ans
Parent
commit
31d841f554
82 fichiers modifiés avec 4328 ajouts et 11 suppressions
  1. 1 1
      VERSION
  2. 60 0
      ens/CMakeLists.txt
  3. 120 0
      ens/include/alibabacloud/ens/EnsClient.h
  4. 45 0
      ens/include/alibabacloud/ens/model/AddSnatIpForSnatEntryRequest.h
  5. 49 0
      ens/include/alibabacloud/ens/model/AddSnatIpForSnatEntryResult.h
  6. 3 0
      ens/include/alibabacloud/ens/model/CreateARMServerInstancesRequest.h
  7. 67 0
      ens/include/alibabacloud/ens/model/CreateEnsSaleControlRequest.h
  8. 49 0
      ens/include/alibabacloud/ens/model/CreateEnsSaleControlResult.h
  9. 58 0
      ens/include/alibabacloud/ens/model/DeleteEnsSaleConditionControlRequest.h
  10. 49 0
      ens/include/alibabacloud/ens/model/DeleteEnsSaleConditionControlResult.h
  11. 52 0
      ens/include/alibabacloud/ens/model/DeleteEnsSaleControlRequest.h
  12. 49 0
      ens/include/alibabacloud/ens/model/DeleteEnsSaleControlResult.h
  13. 45 0
      ens/include/alibabacloud/ens/model/DeleteSnatIpForSnatEntryRequest.h
  14. 49 0
      ens/include/alibabacloud/ens/model/DeleteSnatIpForSnatEntryResult.h
  15. 15 0
      ens/include/alibabacloud/ens/model/DescribeAICImagesRequest.h
  16. 7 0
      ens/include/alibabacloud/ens/model/DescribeAICImagesResult.h
  17. 33 3
      ens/include/alibabacloud/ens/model/DescribeARMServerInstancesRequest.h
  18. 6 0
      ens/include/alibabacloud/ens/model/DescribeARMServerInstancesResult.h
  19. 42 0
      ens/include/alibabacloud/ens/model/DescribeEnsCommodityCodeRequest.h
  20. 56 0
      ens/include/alibabacloud/ens/model/DescribeEnsCommodityCodeResult.h
  21. 45 0
      ens/include/alibabacloud/ens/model/DescribeEnsCommodityModuleCodeRequest.h
  22. 61 0
      ens/include/alibabacloud/ens/model/DescribeEnsCommodityModuleCodeResult.h
  23. 45 0
      ens/include/alibabacloud/ens/model/DescribeEnsSaleControlAvailableResourceRequest.h
  24. 49 0
      ens/include/alibabacloud/ens/model/DescribeEnsSaleControlAvailableResourceResult.h
  25. 51 0
      ens/include/alibabacloud/ens/model/DescribeEnsSaleControlRequest.h
  26. 97 0
      ens/include/alibabacloud/ens/model/DescribeEnsSaleControlResult.h
  27. 51 0
      ens/include/alibabacloud/ens/model/DescribeEnsSaleControlStockRequest.h
  28. 93 0
      ens/include/alibabacloud/ens/model/DescribeEnsSaleControlStockResult.h
  29. 42 0
      ens/include/alibabacloud/ens/model/DescribeRegionBandwidthQuotaRequest.h
  30. 70 0
      ens/include/alibabacloud/ens/model/DescribeRegionBandwidthQuotaResult.h
  31. 42 0
      ens/include/alibabacloud/ens/model/DescribeSnatAttributeRequest.h
  32. 71 0
      ens/include/alibabacloud/ens/model/DescribeSnatAttributeResult.h
  33. 3 0
      ens/include/alibabacloud/ens/model/RebootAICInstanceRequest.h
  34. 3 0
      ens/include/alibabacloud/ens/model/RebootARMServerInstanceRequest.h
  35. 3 0
      ens/include/alibabacloud/ens/model/ResetAICInstanceRequest.h
  36. 3 0
      ens/include/alibabacloud/ens/model/RunInstancesRequest.h
  37. 45 0
      ens/include/alibabacloud/ens/model/StartSnatIpForSnatEntryRequest.h
  38. 49 0
      ens/include/alibabacloud/ens/model/StartSnatIpForSnatEntryResult.h
  39. 45 0
      ens/include/alibabacloud/ens/model/StopSnatIpForSnatEntryRequest.h
  40. 49 0
      ens/include/alibabacloud/ens/model/StopSnatIpForSnatEntryResult.h
  41. 67 0
      ens/include/alibabacloud/ens/model/UpdateEnsSaleControlRequest.h
  42. 49 0
      ens/include/alibabacloud/ens/model/UpdateEnsSaleControlResult.h
  43. 540 0
      ens/src/EnsClient.cc
  44. 45 0
      ens/src/model/AddSnatIpForSnatEntryRequest.cc
  45. 44 0
      ens/src/model/AddSnatIpForSnatEntryResult.cc
  46. 9 0
      ens/src/model/CreateARMServerInstancesRequest.cc
  47. 68 0
      ens/src/model/CreateEnsSaleControlRequest.cc
  48. 44 0
      ens/src/model/CreateEnsSaleControlResult.cc
  49. 61 0
      ens/src/model/DeleteEnsSaleConditionControlRequest.cc
  50. 44 0
      ens/src/model/DeleteEnsSaleConditionControlResult.cc
  51. 57 0
      ens/src/model/DeleteEnsSaleControlRequest.cc
  52. 44 0
      ens/src/model/DeleteEnsSaleControlResult.cc
  53. 45 0
      ens/src/model/DeleteSnatIpForSnatEntryRequest.cc
  54. 44 0
      ens/src/model/DeleteSnatIpForSnatEntryResult.cc
  55. 45 0
      ens/src/model/DescribeAICImagesRequest.cc
  56. 23 0
      ens/src/model/DescribeAICImagesResult.cc
  57. 103 7
      ens/src/model/DescribeARMServerInstancesRequest.cc
  58. 12 0
      ens/src/model/DescribeARMServerInstancesResult.cc
  59. 36 0
      ens/src/model/DescribeEnsCommodityCodeRequest.cc
  60. 59 0
      ens/src/model/DescribeEnsCommodityCodeResult.cc
  61. 45 0
      ens/src/model/DescribeEnsCommodityModuleCodeRequest.cc
  62. 67 0
      ens/src/model/DescribeEnsCommodityModuleCodeResult.cc
  63. 45 0
      ens/src/model/DescribeEnsSaleControlAvailableResourceRequest.cc
  64. 44 0
      ens/src/model/DescribeEnsSaleControlAvailableResourceResult.cc
  65. 63 0
      ens/src/model/DescribeEnsSaleControlRequest.cc
  66. 104 0
      ens/src/model/DescribeEnsSaleControlResult.cc
  67. 63 0
      ens/src/model/DescribeEnsSaleControlStockRequest.cc
  68. 94 0
      ens/src/model/DescribeEnsSaleControlStockResult.cc
  69. 36 0
      ens/src/model/DescribeRegionBandwidthQuotaRequest.cc
  70. 78 0
      ens/src/model/DescribeRegionBandwidthQuotaResult.cc
  71. 36 0
      ens/src/model/DescribeSnatAttributeRequest.cc
  72. 110 0
      ens/src/model/DescribeSnatAttributeResult.cc
  73. 11 0
      ens/src/model/RebootAICInstanceRequest.cc
  74. 11 0
      ens/src/model/RebootARMServerInstanceRequest.cc
  75. 11 0
      ens/src/model/ResetAICInstanceRequest.cc
  76. 9 0
      ens/src/model/RunInstancesRequest.cc
  77. 45 0
      ens/src/model/StartSnatIpForSnatEntryRequest.cc
  78. 44 0
      ens/src/model/StartSnatIpForSnatEntryResult.cc
  79. 45 0
      ens/src/model/StopSnatIpForSnatEntryRequest.cc
  80. 44 0
      ens/src/model/StopSnatIpForSnatEntryResult.cc
  81. 68 0
      ens/src/model/UpdateEnsSaleControlRequest.cc
  82. 44 0
      ens/src/model/UpdateEnsSaleControlResult.cc

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1587
+1.36.1588

+ 60 - 0
ens/CMakeLists.txt

@@ -29,6 +29,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/AddDeviceInternetPortResult.h
 	include/alibabacloud/ens/model/AddDeviceInternetPortResult.h
 	include/alibabacloud/ens/model/AddNetworkInterfaceToInstanceRequest.h
 	include/alibabacloud/ens/model/AddNetworkInterfaceToInstanceRequest.h
 	include/alibabacloud/ens/model/AddNetworkInterfaceToInstanceResult.h
 	include/alibabacloud/ens/model/AddNetworkInterfaceToInstanceResult.h
+	include/alibabacloud/ens/model/AddSnatIpForSnatEntryRequest.h
+	include/alibabacloud/ens/model/AddSnatIpForSnatEntryResult.h
 	include/alibabacloud/ens/model/AssignPrivateIpAddressesRequest.h
 	include/alibabacloud/ens/model/AssignPrivateIpAddressesRequest.h
 	include/alibabacloud/ens/model/AssignPrivateIpAddressesResult.h
 	include/alibabacloud/ens/model/AssignPrivateIpAddressesResult.h
 	include/alibabacloud/ens/model/AssociateEnsEipAddressRequest.h
 	include/alibabacloud/ens/model/AssociateEnsEipAddressRequest.h
@@ -55,6 +57,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/CreateEipInstanceResult.h
 	include/alibabacloud/ens/model/CreateEipInstanceResult.h
 	include/alibabacloud/ens/model/CreateEnsRouteEntryRequest.h
 	include/alibabacloud/ens/model/CreateEnsRouteEntryRequest.h
 	include/alibabacloud/ens/model/CreateEnsRouteEntryResult.h
 	include/alibabacloud/ens/model/CreateEnsRouteEntryResult.h
+	include/alibabacloud/ens/model/CreateEnsSaleControlRequest.h
+	include/alibabacloud/ens/model/CreateEnsSaleControlResult.h
 	include/alibabacloud/ens/model/CreateEnsServiceRequest.h
 	include/alibabacloud/ens/model/CreateEnsServiceRequest.h
 	include/alibabacloud/ens/model/CreateEnsServiceResult.h
 	include/alibabacloud/ens/model/CreateEnsServiceResult.h
 	include/alibabacloud/ens/model/CreateEpnInstanceRequest.h
 	include/alibabacloud/ens/model/CreateEpnInstanceRequest.h
@@ -105,6 +109,10 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/DeleteDiskResult.h
 	include/alibabacloud/ens/model/DeleteDiskResult.h
 	include/alibabacloud/ens/model/DeleteEnsRouteEntryRequest.h
 	include/alibabacloud/ens/model/DeleteEnsRouteEntryRequest.h
 	include/alibabacloud/ens/model/DeleteEnsRouteEntryResult.h
 	include/alibabacloud/ens/model/DeleteEnsRouteEntryResult.h
+	include/alibabacloud/ens/model/DeleteEnsSaleConditionControlRequest.h
+	include/alibabacloud/ens/model/DeleteEnsSaleConditionControlResult.h
+	include/alibabacloud/ens/model/DeleteEnsSaleControlRequest.h
+	include/alibabacloud/ens/model/DeleteEnsSaleControlResult.h
 	include/alibabacloud/ens/model/DeleteEpnInstanceRequest.h
 	include/alibabacloud/ens/model/DeleteEpnInstanceRequest.h
 	include/alibabacloud/ens/model/DeleteEpnInstanceResult.h
 	include/alibabacloud/ens/model/DeleteEpnInstanceResult.h
 	include/alibabacloud/ens/model/DeleteFileSystemRequest.h
 	include/alibabacloud/ens/model/DeleteFileSystemRequest.h
@@ -131,6 +139,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/DeleteSecurityGroupResult.h
 	include/alibabacloud/ens/model/DeleteSecurityGroupResult.h
 	include/alibabacloud/ens/model/DeleteSnatEntryRequest.h
 	include/alibabacloud/ens/model/DeleteSnatEntryRequest.h
 	include/alibabacloud/ens/model/DeleteSnatEntryResult.h
 	include/alibabacloud/ens/model/DeleteSnatEntryResult.h
+	include/alibabacloud/ens/model/DeleteSnatIpForSnatEntryRequest.h
+	include/alibabacloud/ens/model/DeleteSnatIpForSnatEntryResult.h
 	include/alibabacloud/ens/model/DeleteVSwitchRequest.h
 	include/alibabacloud/ens/model/DeleteVSwitchRequest.h
 	include/alibabacloud/ens/model/DeleteVSwitchResult.h
 	include/alibabacloud/ens/model/DeleteVSwitchResult.h
 	include/alibabacloud/ens/model/DescribeAICImagesRequest.h
 	include/alibabacloud/ens/model/DescribeAICImagesRequest.h
@@ -169,6 +179,10 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/DescribeEipAddressesResult.h
 	include/alibabacloud/ens/model/DescribeEipAddressesResult.h
 	include/alibabacloud/ens/model/DescribeElbAvailableResourceInfoRequest.h
 	include/alibabacloud/ens/model/DescribeElbAvailableResourceInfoRequest.h
 	include/alibabacloud/ens/model/DescribeElbAvailableResourceInfoResult.h
 	include/alibabacloud/ens/model/DescribeElbAvailableResourceInfoResult.h
+	include/alibabacloud/ens/model/DescribeEnsCommodityCodeRequest.h
+	include/alibabacloud/ens/model/DescribeEnsCommodityCodeResult.h
+	include/alibabacloud/ens/model/DescribeEnsCommodityModuleCodeRequest.h
+	include/alibabacloud/ens/model/DescribeEnsCommodityModuleCodeResult.h
 	include/alibabacloud/ens/model/DescribeEnsEipAddressesRequest.h
 	include/alibabacloud/ens/model/DescribeEnsEipAddressesRequest.h
 	include/alibabacloud/ens/model/DescribeEnsEipAddressesResult.h
 	include/alibabacloud/ens/model/DescribeEnsEipAddressesResult.h
 	include/alibabacloud/ens/model/DescribeEnsNetDistrictRequest.h
 	include/alibabacloud/ens/model/DescribeEnsNetDistrictRequest.h
@@ -187,6 +201,12 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/DescribeEnsResourceUsageResult.h
 	include/alibabacloud/ens/model/DescribeEnsResourceUsageResult.h
 	include/alibabacloud/ens/model/DescribeEnsRouteEntryListRequest.h
 	include/alibabacloud/ens/model/DescribeEnsRouteEntryListRequest.h
 	include/alibabacloud/ens/model/DescribeEnsRouteEntryListResult.h
 	include/alibabacloud/ens/model/DescribeEnsRouteEntryListResult.h
+	include/alibabacloud/ens/model/DescribeEnsSaleControlRequest.h
+	include/alibabacloud/ens/model/DescribeEnsSaleControlResult.h
+	include/alibabacloud/ens/model/DescribeEnsSaleControlAvailableResourceRequest.h
+	include/alibabacloud/ens/model/DescribeEnsSaleControlAvailableResourceResult.h
+	include/alibabacloud/ens/model/DescribeEnsSaleControlStockRequest.h
+	include/alibabacloud/ens/model/DescribeEnsSaleControlStockResult.h
 	include/alibabacloud/ens/model/DescribeEpnBandWidthDataRequest.h
 	include/alibabacloud/ens/model/DescribeEpnBandWidthDataRequest.h
 	include/alibabacloud/ens/model/DescribeEpnBandWidthDataResult.h
 	include/alibabacloud/ens/model/DescribeEpnBandWidthDataResult.h
 	include/alibabacloud/ens/model/DescribeEpnBandwitdhByInternetChargeTypeRequest.h
 	include/alibabacloud/ens/model/DescribeEpnBandwitdhByInternetChargeTypeRequest.h
@@ -259,6 +279,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/DescribePrePaidInstanceStockResult.h
 	include/alibabacloud/ens/model/DescribePrePaidInstanceStockResult.h
 	include/alibabacloud/ens/model/DescribePriceRequest.h
 	include/alibabacloud/ens/model/DescribePriceRequest.h
 	include/alibabacloud/ens/model/DescribePriceResult.h
 	include/alibabacloud/ens/model/DescribePriceResult.h
+	include/alibabacloud/ens/model/DescribeRegionBandwidthQuotaRequest.h
+	include/alibabacloud/ens/model/DescribeRegionBandwidthQuotaResult.h
 	include/alibabacloud/ens/model/DescribeRegionIspsRequest.h
 	include/alibabacloud/ens/model/DescribeRegionIspsRequest.h
 	include/alibabacloud/ens/model/DescribeRegionIspsResult.h
 	include/alibabacloud/ens/model/DescribeRegionIspsResult.h
 	include/alibabacloud/ens/model/DescribeRegionResourceRequest.h
 	include/alibabacloud/ens/model/DescribeRegionResourceRequest.h
@@ -275,6 +297,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/DescribeSelfImagesResult.h
 	include/alibabacloud/ens/model/DescribeSelfImagesResult.h
 	include/alibabacloud/ens/model/DescribeServcieScheduleRequest.h
 	include/alibabacloud/ens/model/DescribeServcieScheduleRequest.h
 	include/alibabacloud/ens/model/DescribeServcieScheduleResult.h
 	include/alibabacloud/ens/model/DescribeServcieScheduleResult.h
+	include/alibabacloud/ens/model/DescribeSnatAttributeRequest.h
+	include/alibabacloud/ens/model/DescribeSnatAttributeResult.h
 	include/alibabacloud/ens/model/DescribeSnatTableEntriesRequest.h
 	include/alibabacloud/ens/model/DescribeSnatTableEntriesRequest.h
 	include/alibabacloud/ens/model/DescribeSnatTableEntriesResult.h
 	include/alibabacloud/ens/model/DescribeSnatTableEntriesResult.h
 	include/alibabacloud/ens/model/DescribeUserBandWidthDataRequest.h
 	include/alibabacloud/ens/model/DescribeUserBandWidthDataRequest.h
@@ -417,6 +441,8 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/StartInstancesResult.h
 	include/alibabacloud/ens/model/StartInstancesResult.h
 	include/alibabacloud/ens/model/StartLoadBalancerListenerRequest.h
 	include/alibabacloud/ens/model/StartLoadBalancerListenerRequest.h
 	include/alibabacloud/ens/model/StartLoadBalancerListenerResult.h
 	include/alibabacloud/ens/model/StartLoadBalancerListenerResult.h
+	include/alibabacloud/ens/model/StartSnatIpForSnatEntryRequest.h
+	include/alibabacloud/ens/model/StartSnatIpForSnatEntryResult.h
 	include/alibabacloud/ens/model/StopEpnInstanceRequest.h
 	include/alibabacloud/ens/model/StopEpnInstanceRequest.h
 	include/alibabacloud/ens/model/StopEpnInstanceResult.h
 	include/alibabacloud/ens/model/StopEpnInstanceResult.h
 	include/alibabacloud/ens/model/StopInstanceRequest.h
 	include/alibabacloud/ens/model/StopInstanceRequest.h
@@ -425,12 +451,16 @@ set(ens_public_header_model
 	include/alibabacloud/ens/model/StopInstancesResult.h
 	include/alibabacloud/ens/model/StopInstancesResult.h
 	include/alibabacloud/ens/model/StopLoadBalancerListenerRequest.h
 	include/alibabacloud/ens/model/StopLoadBalancerListenerRequest.h
 	include/alibabacloud/ens/model/StopLoadBalancerListenerResult.h
 	include/alibabacloud/ens/model/StopLoadBalancerListenerResult.h
+	include/alibabacloud/ens/model/StopSnatIpForSnatEntryRequest.h
+	include/alibabacloud/ens/model/StopSnatIpForSnatEntryResult.h
 	include/alibabacloud/ens/model/UnAssociateEnsEipAddressRequest.h
 	include/alibabacloud/ens/model/UnAssociateEnsEipAddressRequest.h
 	include/alibabacloud/ens/model/UnAssociateEnsEipAddressResult.h
 	include/alibabacloud/ens/model/UnAssociateEnsEipAddressResult.h
 	include/alibabacloud/ens/model/UnassignPrivateIpAddressesRequest.h
 	include/alibabacloud/ens/model/UnassignPrivateIpAddressesRequest.h
 	include/alibabacloud/ens/model/UnassignPrivateIpAddressesResult.h
 	include/alibabacloud/ens/model/UnassignPrivateIpAddressesResult.h
 	include/alibabacloud/ens/model/UnassociateNetworkAclRequest.h
 	include/alibabacloud/ens/model/UnassociateNetworkAclRequest.h
 	include/alibabacloud/ens/model/UnassociateNetworkAclResult.h
 	include/alibabacloud/ens/model/UnassociateNetworkAclResult.h
+	include/alibabacloud/ens/model/UpdateEnsSaleControlRequest.h
+	include/alibabacloud/ens/model/UpdateEnsSaleControlResult.h
 	include/alibabacloud/ens/model/UpgradeAICInstanceImageRequest.h
 	include/alibabacloud/ens/model/UpgradeAICInstanceImageRequest.h
 	include/alibabacloud/ens/model/UpgradeAICInstanceImageResult.h
 	include/alibabacloud/ens/model/UpgradeAICInstanceImageResult.h
 	include/alibabacloud/ens/model/UpgradeApplicationRequest.h
 	include/alibabacloud/ens/model/UpgradeApplicationRequest.h
@@ -446,6 +476,8 @@ set(ens_src
 	src/model/AddDeviceInternetPortResult.cc
 	src/model/AddDeviceInternetPortResult.cc
 	src/model/AddNetworkInterfaceToInstanceRequest.cc
 	src/model/AddNetworkInterfaceToInstanceRequest.cc
 	src/model/AddNetworkInterfaceToInstanceResult.cc
 	src/model/AddNetworkInterfaceToInstanceResult.cc
+	src/model/AddSnatIpForSnatEntryRequest.cc
+	src/model/AddSnatIpForSnatEntryResult.cc
 	src/model/AssignPrivateIpAddressesRequest.cc
 	src/model/AssignPrivateIpAddressesRequest.cc
 	src/model/AssignPrivateIpAddressesResult.cc
 	src/model/AssignPrivateIpAddressesResult.cc
 	src/model/AssociateEnsEipAddressRequest.cc
 	src/model/AssociateEnsEipAddressRequest.cc
@@ -472,6 +504,8 @@ set(ens_src
 	src/model/CreateEipInstanceResult.cc
 	src/model/CreateEipInstanceResult.cc
 	src/model/CreateEnsRouteEntryRequest.cc
 	src/model/CreateEnsRouteEntryRequest.cc
 	src/model/CreateEnsRouteEntryResult.cc
 	src/model/CreateEnsRouteEntryResult.cc
+	src/model/CreateEnsSaleControlRequest.cc
+	src/model/CreateEnsSaleControlResult.cc
 	src/model/CreateEnsServiceRequest.cc
 	src/model/CreateEnsServiceRequest.cc
 	src/model/CreateEnsServiceResult.cc
 	src/model/CreateEnsServiceResult.cc
 	src/model/CreateEpnInstanceRequest.cc
 	src/model/CreateEpnInstanceRequest.cc
@@ -522,6 +556,10 @@ set(ens_src
 	src/model/DeleteDiskResult.cc
 	src/model/DeleteDiskResult.cc
 	src/model/DeleteEnsRouteEntryRequest.cc
 	src/model/DeleteEnsRouteEntryRequest.cc
 	src/model/DeleteEnsRouteEntryResult.cc
 	src/model/DeleteEnsRouteEntryResult.cc
+	src/model/DeleteEnsSaleConditionControlRequest.cc
+	src/model/DeleteEnsSaleConditionControlResult.cc
+	src/model/DeleteEnsSaleControlRequest.cc
+	src/model/DeleteEnsSaleControlResult.cc
 	src/model/DeleteEpnInstanceRequest.cc
 	src/model/DeleteEpnInstanceRequest.cc
 	src/model/DeleteEpnInstanceResult.cc
 	src/model/DeleteEpnInstanceResult.cc
 	src/model/DeleteFileSystemRequest.cc
 	src/model/DeleteFileSystemRequest.cc
@@ -548,6 +586,8 @@ set(ens_src
 	src/model/DeleteSecurityGroupResult.cc
 	src/model/DeleteSecurityGroupResult.cc
 	src/model/DeleteSnatEntryRequest.cc
 	src/model/DeleteSnatEntryRequest.cc
 	src/model/DeleteSnatEntryResult.cc
 	src/model/DeleteSnatEntryResult.cc
+	src/model/DeleteSnatIpForSnatEntryRequest.cc
+	src/model/DeleteSnatIpForSnatEntryResult.cc
 	src/model/DeleteVSwitchRequest.cc
 	src/model/DeleteVSwitchRequest.cc
 	src/model/DeleteVSwitchResult.cc
 	src/model/DeleteVSwitchResult.cc
 	src/model/DescribeAICImagesRequest.cc
 	src/model/DescribeAICImagesRequest.cc
@@ -586,6 +626,10 @@ set(ens_src
 	src/model/DescribeEipAddressesResult.cc
 	src/model/DescribeEipAddressesResult.cc
 	src/model/DescribeElbAvailableResourceInfoRequest.cc
 	src/model/DescribeElbAvailableResourceInfoRequest.cc
 	src/model/DescribeElbAvailableResourceInfoResult.cc
 	src/model/DescribeElbAvailableResourceInfoResult.cc
+	src/model/DescribeEnsCommodityCodeRequest.cc
+	src/model/DescribeEnsCommodityCodeResult.cc
+	src/model/DescribeEnsCommodityModuleCodeRequest.cc
+	src/model/DescribeEnsCommodityModuleCodeResult.cc
 	src/model/DescribeEnsEipAddressesRequest.cc
 	src/model/DescribeEnsEipAddressesRequest.cc
 	src/model/DescribeEnsEipAddressesResult.cc
 	src/model/DescribeEnsEipAddressesResult.cc
 	src/model/DescribeEnsNetDistrictRequest.cc
 	src/model/DescribeEnsNetDistrictRequest.cc
@@ -604,6 +648,12 @@ set(ens_src
 	src/model/DescribeEnsResourceUsageResult.cc
 	src/model/DescribeEnsResourceUsageResult.cc
 	src/model/DescribeEnsRouteEntryListRequest.cc
 	src/model/DescribeEnsRouteEntryListRequest.cc
 	src/model/DescribeEnsRouteEntryListResult.cc
 	src/model/DescribeEnsRouteEntryListResult.cc
+	src/model/DescribeEnsSaleControlRequest.cc
+	src/model/DescribeEnsSaleControlResult.cc
+	src/model/DescribeEnsSaleControlAvailableResourceRequest.cc
+	src/model/DescribeEnsSaleControlAvailableResourceResult.cc
+	src/model/DescribeEnsSaleControlStockRequest.cc
+	src/model/DescribeEnsSaleControlStockResult.cc
 	src/model/DescribeEpnBandWidthDataRequest.cc
 	src/model/DescribeEpnBandWidthDataRequest.cc
 	src/model/DescribeEpnBandWidthDataResult.cc
 	src/model/DescribeEpnBandWidthDataResult.cc
 	src/model/DescribeEpnBandwitdhByInternetChargeTypeRequest.cc
 	src/model/DescribeEpnBandwitdhByInternetChargeTypeRequest.cc
@@ -676,6 +726,8 @@ set(ens_src
 	src/model/DescribePrePaidInstanceStockResult.cc
 	src/model/DescribePrePaidInstanceStockResult.cc
 	src/model/DescribePriceRequest.cc
 	src/model/DescribePriceRequest.cc
 	src/model/DescribePriceResult.cc
 	src/model/DescribePriceResult.cc
+	src/model/DescribeRegionBandwidthQuotaRequest.cc
+	src/model/DescribeRegionBandwidthQuotaResult.cc
 	src/model/DescribeRegionIspsRequest.cc
 	src/model/DescribeRegionIspsRequest.cc
 	src/model/DescribeRegionIspsResult.cc
 	src/model/DescribeRegionIspsResult.cc
 	src/model/DescribeRegionResourceRequest.cc
 	src/model/DescribeRegionResourceRequest.cc
@@ -692,6 +744,8 @@ set(ens_src
 	src/model/DescribeSelfImagesResult.cc
 	src/model/DescribeSelfImagesResult.cc
 	src/model/DescribeServcieScheduleRequest.cc
 	src/model/DescribeServcieScheduleRequest.cc
 	src/model/DescribeServcieScheduleResult.cc
 	src/model/DescribeServcieScheduleResult.cc
+	src/model/DescribeSnatAttributeRequest.cc
+	src/model/DescribeSnatAttributeResult.cc
 	src/model/DescribeSnatTableEntriesRequest.cc
 	src/model/DescribeSnatTableEntriesRequest.cc
 	src/model/DescribeSnatTableEntriesResult.cc
 	src/model/DescribeSnatTableEntriesResult.cc
 	src/model/DescribeUserBandWidthDataRequest.cc
 	src/model/DescribeUserBandWidthDataRequest.cc
@@ -834,6 +888,8 @@ set(ens_src
 	src/model/StartInstancesResult.cc
 	src/model/StartInstancesResult.cc
 	src/model/StartLoadBalancerListenerRequest.cc
 	src/model/StartLoadBalancerListenerRequest.cc
 	src/model/StartLoadBalancerListenerResult.cc
 	src/model/StartLoadBalancerListenerResult.cc
+	src/model/StartSnatIpForSnatEntryRequest.cc
+	src/model/StartSnatIpForSnatEntryResult.cc
 	src/model/StopEpnInstanceRequest.cc
 	src/model/StopEpnInstanceRequest.cc
 	src/model/StopEpnInstanceResult.cc
 	src/model/StopEpnInstanceResult.cc
 	src/model/StopInstanceRequest.cc
 	src/model/StopInstanceRequest.cc
@@ -842,12 +898,16 @@ set(ens_src
 	src/model/StopInstancesResult.cc
 	src/model/StopInstancesResult.cc
 	src/model/StopLoadBalancerListenerRequest.cc
 	src/model/StopLoadBalancerListenerRequest.cc
 	src/model/StopLoadBalancerListenerResult.cc
 	src/model/StopLoadBalancerListenerResult.cc
+	src/model/StopSnatIpForSnatEntryRequest.cc
+	src/model/StopSnatIpForSnatEntryResult.cc
 	src/model/UnAssociateEnsEipAddressRequest.cc
 	src/model/UnAssociateEnsEipAddressRequest.cc
 	src/model/UnAssociateEnsEipAddressResult.cc
 	src/model/UnAssociateEnsEipAddressResult.cc
 	src/model/UnassignPrivateIpAddressesRequest.cc
 	src/model/UnassignPrivateIpAddressesRequest.cc
 	src/model/UnassignPrivateIpAddressesResult.cc
 	src/model/UnassignPrivateIpAddressesResult.cc
 	src/model/UnassociateNetworkAclRequest.cc
 	src/model/UnassociateNetworkAclRequest.cc
 	src/model/UnassociateNetworkAclResult.cc
 	src/model/UnassociateNetworkAclResult.cc
+	src/model/UpdateEnsSaleControlRequest.cc
+	src/model/UpdateEnsSaleControlResult.cc
 	src/model/UpgradeAICInstanceImageRequest.cc
 	src/model/UpgradeAICInstanceImageRequest.cc
 	src/model/UpgradeAICInstanceImageResult.cc
 	src/model/UpgradeAICInstanceImageResult.cc
 	src/model/UpgradeApplicationRequest.cc
 	src/model/UpgradeApplicationRequest.cc

+ 120 - 0
ens/include/alibabacloud/ens/EnsClient.h

@@ -30,6 +30,8 @@
 #include "model/AddDeviceInternetPortResult.h"
 #include "model/AddDeviceInternetPortResult.h"
 #include "model/AddNetworkInterfaceToInstanceRequest.h"
 #include "model/AddNetworkInterfaceToInstanceRequest.h"
 #include "model/AddNetworkInterfaceToInstanceResult.h"
 #include "model/AddNetworkInterfaceToInstanceResult.h"
+#include "model/AddSnatIpForSnatEntryRequest.h"
+#include "model/AddSnatIpForSnatEntryResult.h"
 #include "model/AssignPrivateIpAddressesRequest.h"
 #include "model/AssignPrivateIpAddressesRequest.h"
 #include "model/AssignPrivateIpAddressesResult.h"
 #include "model/AssignPrivateIpAddressesResult.h"
 #include "model/AssociateEnsEipAddressRequest.h"
 #include "model/AssociateEnsEipAddressRequest.h"
@@ -56,6 +58,8 @@
 #include "model/CreateEipInstanceResult.h"
 #include "model/CreateEipInstanceResult.h"
 #include "model/CreateEnsRouteEntryRequest.h"
 #include "model/CreateEnsRouteEntryRequest.h"
 #include "model/CreateEnsRouteEntryResult.h"
 #include "model/CreateEnsRouteEntryResult.h"
+#include "model/CreateEnsSaleControlRequest.h"
+#include "model/CreateEnsSaleControlResult.h"
 #include "model/CreateEnsServiceRequest.h"
 #include "model/CreateEnsServiceRequest.h"
 #include "model/CreateEnsServiceResult.h"
 #include "model/CreateEnsServiceResult.h"
 #include "model/CreateEpnInstanceRequest.h"
 #include "model/CreateEpnInstanceRequest.h"
@@ -106,6 +110,10 @@
 #include "model/DeleteDiskResult.h"
 #include "model/DeleteDiskResult.h"
 #include "model/DeleteEnsRouteEntryRequest.h"
 #include "model/DeleteEnsRouteEntryRequest.h"
 #include "model/DeleteEnsRouteEntryResult.h"
 #include "model/DeleteEnsRouteEntryResult.h"
+#include "model/DeleteEnsSaleConditionControlRequest.h"
+#include "model/DeleteEnsSaleConditionControlResult.h"
+#include "model/DeleteEnsSaleControlRequest.h"
+#include "model/DeleteEnsSaleControlResult.h"
 #include "model/DeleteEpnInstanceRequest.h"
 #include "model/DeleteEpnInstanceRequest.h"
 #include "model/DeleteEpnInstanceResult.h"
 #include "model/DeleteEpnInstanceResult.h"
 #include "model/DeleteFileSystemRequest.h"
 #include "model/DeleteFileSystemRequest.h"
@@ -132,6 +140,8 @@
 #include "model/DeleteSecurityGroupResult.h"
 #include "model/DeleteSecurityGroupResult.h"
 #include "model/DeleteSnatEntryRequest.h"
 #include "model/DeleteSnatEntryRequest.h"
 #include "model/DeleteSnatEntryResult.h"
 #include "model/DeleteSnatEntryResult.h"
+#include "model/DeleteSnatIpForSnatEntryRequest.h"
+#include "model/DeleteSnatIpForSnatEntryResult.h"
 #include "model/DeleteVSwitchRequest.h"
 #include "model/DeleteVSwitchRequest.h"
 #include "model/DeleteVSwitchResult.h"
 #include "model/DeleteVSwitchResult.h"
 #include "model/DescribeAICImagesRequest.h"
 #include "model/DescribeAICImagesRequest.h"
@@ -170,6 +180,10 @@
 #include "model/DescribeEipAddressesResult.h"
 #include "model/DescribeEipAddressesResult.h"
 #include "model/DescribeElbAvailableResourceInfoRequest.h"
 #include "model/DescribeElbAvailableResourceInfoRequest.h"
 #include "model/DescribeElbAvailableResourceInfoResult.h"
 #include "model/DescribeElbAvailableResourceInfoResult.h"
+#include "model/DescribeEnsCommodityCodeRequest.h"
+#include "model/DescribeEnsCommodityCodeResult.h"
+#include "model/DescribeEnsCommodityModuleCodeRequest.h"
+#include "model/DescribeEnsCommodityModuleCodeResult.h"
 #include "model/DescribeEnsEipAddressesRequest.h"
 #include "model/DescribeEnsEipAddressesRequest.h"
 #include "model/DescribeEnsEipAddressesResult.h"
 #include "model/DescribeEnsEipAddressesResult.h"
 #include "model/DescribeEnsNetDistrictRequest.h"
 #include "model/DescribeEnsNetDistrictRequest.h"
@@ -188,6 +202,12 @@
 #include "model/DescribeEnsResourceUsageResult.h"
 #include "model/DescribeEnsResourceUsageResult.h"
 #include "model/DescribeEnsRouteEntryListRequest.h"
 #include "model/DescribeEnsRouteEntryListRequest.h"
 #include "model/DescribeEnsRouteEntryListResult.h"
 #include "model/DescribeEnsRouteEntryListResult.h"
+#include "model/DescribeEnsSaleControlRequest.h"
+#include "model/DescribeEnsSaleControlResult.h"
+#include "model/DescribeEnsSaleControlAvailableResourceRequest.h"
+#include "model/DescribeEnsSaleControlAvailableResourceResult.h"
+#include "model/DescribeEnsSaleControlStockRequest.h"
+#include "model/DescribeEnsSaleControlStockResult.h"
 #include "model/DescribeEpnBandWidthDataRequest.h"
 #include "model/DescribeEpnBandWidthDataRequest.h"
 #include "model/DescribeEpnBandWidthDataResult.h"
 #include "model/DescribeEpnBandWidthDataResult.h"
 #include "model/DescribeEpnBandwitdhByInternetChargeTypeRequest.h"
 #include "model/DescribeEpnBandwitdhByInternetChargeTypeRequest.h"
@@ -260,6 +280,8 @@
 #include "model/DescribePrePaidInstanceStockResult.h"
 #include "model/DescribePrePaidInstanceStockResult.h"
 #include "model/DescribePriceRequest.h"
 #include "model/DescribePriceRequest.h"
 #include "model/DescribePriceResult.h"
 #include "model/DescribePriceResult.h"
+#include "model/DescribeRegionBandwidthQuotaRequest.h"
+#include "model/DescribeRegionBandwidthQuotaResult.h"
 #include "model/DescribeRegionIspsRequest.h"
 #include "model/DescribeRegionIspsRequest.h"
 #include "model/DescribeRegionIspsResult.h"
 #include "model/DescribeRegionIspsResult.h"
 #include "model/DescribeRegionResourceRequest.h"
 #include "model/DescribeRegionResourceRequest.h"
@@ -276,6 +298,8 @@
 #include "model/DescribeSelfImagesResult.h"
 #include "model/DescribeSelfImagesResult.h"
 #include "model/DescribeServcieScheduleRequest.h"
 #include "model/DescribeServcieScheduleRequest.h"
 #include "model/DescribeServcieScheduleResult.h"
 #include "model/DescribeServcieScheduleResult.h"
+#include "model/DescribeSnatAttributeRequest.h"
+#include "model/DescribeSnatAttributeResult.h"
 #include "model/DescribeSnatTableEntriesRequest.h"
 #include "model/DescribeSnatTableEntriesRequest.h"
 #include "model/DescribeSnatTableEntriesResult.h"
 #include "model/DescribeSnatTableEntriesResult.h"
 #include "model/DescribeUserBandWidthDataRequest.h"
 #include "model/DescribeUserBandWidthDataRequest.h"
@@ -418,6 +442,8 @@
 #include "model/StartInstancesResult.h"
 #include "model/StartInstancesResult.h"
 #include "model/StartLoadBalancerListenerRequest.h"
 #include "model/StartLoadBalancerListenerRequest.h"
 #include "model/StartLoadBalancerListenerResult.h"
 #include "model/StartLoadBalancerListenerResult.h"
+#include "model/StartSnatIpForSnatEntryRequest.h"
+#include "model/StartSnatIpForSnatEntryResult.h"
 #include "model/StopEpnInstanceRequest.h"
 #include "model/StopEpnInstanceRequest.h"
 #include "model/StopEpnInstanceResult.h"
 #include "model/StopEpnInstanceResult.h"
 #include "model/StopInstanceRequest.h"
 #include "model/StopInstanceRequest.h"
@@ -426,12 +452,16 @@
 #include "model/StopInstancesResult.h"
 #include "model/StopInstancesResult.h"
 #include "model/StopLoadBalancerListenerRequest.h"
 #include "model/StopLoadBalancerListenerRequest.h"
 #include "model/StopLoadBalancerListenerResult.h"
 #include "model/StopLoadBalancerListenerResult.h"
+#include "model/StopSnatIpForSnatEntryRequest.h"
+#include "model/StopSnatIpForSnatEntryResult.h"
 #include "model/UnAssociateEnsEipAddressRequest.h"
 #include "model/UnAssociateEnsEipAddressRequest.h"
 #include "model/UnAssociateEnsEipAddressResult.h"
 #include "model/UnAssociateEnsEipAddressResult.h"
 #include "model/UnassignPrivateIpAddressesRequest.h"
 #include "model/UnassignPrivateIpAddressesRequest.h"
 #include "model/UnassignPrivateIpAddressesResult.h"
 #include "model/UnassignPrivateIpAddressesResult.h"
 #include "model/UnassociateNetworkAclRequest.h"
 #include "model/UnassociateNetworkAclRequest.h"
 #include "model/UnassociateNetworkAclResult.h"
 #include "model/UnassociateNetworkAclResult.h"
+#include "model/UpdateEnsSaleControlRequest.h"
+#include "model/UpdateEnsSaleControlResult.h"
 #include "model/UpgradeAICInstanceImageRequest.h"
 #include "model/UpgradeAICInstanceImageRequest.h"
 #include "model/UpgradeAICInstanceImageResult.h"
 #include "model/UpgradeAICInstanceImageResult.h"
 #include "model/UpgradeApplicationRequest.h"
 #include "model/UpgradeApplicationRequest.h"
@@ -457,6 +487,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::AddNetworkInterfaceToInstanceResult> AddNetworkInterfaceToInstanceOutcome;
 			typedef Outcome<Error, Model::AddNetworkInterfaceToInstanceResult> AddNetworkInterfaceToInstanceOutcome;
 			typedef std::future<AddNetworkInterfaceToInstanceOutcome> AddNetworkInterfaceToInstanceOutcomeCallable;
 			typedef std::future<AddNetworkInterfaceToInstanceOutcome> AddNetworkInterfaceToInstanceOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::AddNetworkInterfaceToInstanceRequest&, const AddNetworkInterfaceToInstanceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddNetworkInterfaceToInstanceAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::AddNetworkInterfaceToInstanceRequest&, const AddNetworkInterfaceToInstanceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddNetworkInterfaceToInstanceAsyncHandler;
+			typedef Outcome<Error, Model::AddSnatIpForSnatEntryResult> AddSnatIpForSnatEntryOutcome;
+			typedef std::future<AddSnatIpForSnatEntryOutcome> AddSnatIpForSnatEntryOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::AddSnatIpForSnatEntryRequest&, const AddSnatIpForSnatEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddSnatIpForSnatEntryAsyncHandler;
 			typedef Outcome<Error, Model::AssignPrivateIpAddressesResult> AssignPrivateIpAddressesOutcome;
 			typedef Outcome<Error, Model::AssignPrivateIpAddressesResult> AssignPrivateIpAddressesOutcome;
 			typedef std::future<AssignPrivateIpAddressesOutcome> AssignPrivateIpAddressesOutcomeCallable;
 			typedef std::future<AssignPrivateIpAddressesOutcome> AssignPrivateIpAddressesOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::AssignPrivateIpAddressesRequest&, const AssignPrivateIpAddressesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AssignPrivateIpAddressesAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::AssignPrivateIpAddressesRequest&, const AssignPrivateIpAddressesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AssignPrivateIpAddressesAsyncHandler;
@@ -496,6 +529,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateEnsRouteEntryResult> CreateEnsRouteEntryOutcome;
 			typedef Outcome<Error, Model::CreateEnsRouteEntryResult> CreateEnsRouteEntryOutcome;
 			typedef std::future<CreateEnsRouteEntryOutcome> CreateEnsRouteEntryOutcomeCallable;
 			typedef std::future<CreateEnsRouteEntryOutcome> CreateEnsRouteEntryOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::CreateEnsRouteEntryRequest&, const CreateEnsRouteEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateEnsRouteEntryAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::CreateEnsRouteEntryRequest&, const CreateEnsRouteEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateEnsRouteEntryAsyncHandler;
+			typedef Outcome<Error, Model::CreateEnsSaleControlResult> CreateEnsSaleControlOutcome;
+			typedef std::future<CreateEnsSaleControlOutcome> CreateEnsSaleControlOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::CreateEnsSaleControlRequest&, const CreateEnsSaleControlOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateEnsSaleControlAsyncHandler;
 			typedef Outcome<Error, Model::CreateEnsServiceResult> CreateEnsServiceOutcome;
 			typedef Outcome<Error, Model::CreateEnsServiceResult> CreateEnsServiceOutcome;
 			typedef std::future<CreateEnsServiceOutcome> CreateEnsServiceOutcomeCallable;
 			typedef std::future<CreateEnsServiceOutcome> CreateEnsServiceOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::CreateEnsServiceRequest&, const CreateEnsServiceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateEnsServiceAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::CreateEnsServiceRequest&, const CreateEnsServiceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateEnsServiceAsyncHandler;
@@ -571,6 +607,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteEnsRouteEntryResult> DeleteEnsRouteEntryOutcome;
 			typedef Outcome<Error, Model::DeleteEnsRouteEntryResult> DeleteEnsRouteEntryOutcome;
 			typedef std::future<DeleteEnsRouteEntryOutcome> DeleteEnsRouteEntryOutcomeCallable;
 			typedef std::future<DeleteEnsRouteEntryOutcome> DeleteEnsRouteEntryOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DeleteEnsRouteEntryRequest&, const DeleteEnsRouteEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteEnsRouteEntryAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::DeleteEnsRouteEntryRequest&, const DeleteEnsRouteEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteEnsRouteEntryAsyncHandler;
+			typedef Outcome<Error, Model::DeleteEnsSaleConditionControlResult> DeleteEnsSaleConditionControlOutcome;
+			typedef std::future<DeleteEnsSaleConditionControlOutcome> DeleteEnsSaleConditionControlOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::DeleteEnsSaleConditionControlRequest&, const DeleteEnsSaleConditionControlOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteEnsSaleConditionControlAsyncHandler;
+			typedef Outcome<Error, Model::DeleteEnsSaleControlResult> DeleteEnsSaleControlOutcome;
+			typedef std::future<DeleteEnsSaleControlOutcome> DeleteEnsSaleControlOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::DeleteEnsSaleControlRequest&, const DeleteEnsSaleControlOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteEnsSaleControlAsyncHandler;
 			typedef Outcome<Error, Model::DeleteEpnInstanceResult> DeleteEpnInstanceOutcome;
 			typedef Outcome<Error, Model::DeleteEpnInstanceResult> DeleteEpnInstanceOutcome;
 			typedef std::future<DeleteEpnInstanceOutcome> DeleteEpnInstanceOutcomeCallable;
 			typedef std::future<DeleteEpnInstanceOutcome> DeleteEpnInstanceOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DeleteEpnInstanceRequest&, const DeleteEpnInstanceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteEpnInstanceAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::DeleteEpnInstanceRequest&, const DeleteEpnInstanceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteEpnInstanceAsyncHandler;
@@ -610,6 +652,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteSnatEntryResult> DeleteSnatEntryOutcome;
 			typedef Outcome<Error, Model::DeleteSnatEntryResult> DeleteSnatEntryOutcome;
 			typedef std::future<DeleteSnatEntryOutcome> DeleteSnatEntryOutcomeCallable;
 			typedef std::future<DeleteSnatEntryOutcome> DeleteSnatEntryOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DeleteSnatEntryRequest&, const DeleteSnatEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteSnatEntryAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::DeleteSnatEntryRequest&, const DeleteSnatEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteSnatEntryAsyncHandler;
+			typedef Outcome<Error, Model::DeleteSnatIpForSnatEntryResult> DeleteSnatIpForSnatEntryOutcome;
+			typedef std::future<DeleteSnatIpForSnatEntryOutcome> DeleteSnatIpForSnatEntryOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::DeleteSnatIpForSnatEntryRequest&, const DeleteSnatIpForSnatEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteSnatIpForSnatEntryAsyncHandler;
 			typedef Outcome<Error, Model::DeleteVSwitchResult> DeleteVSwitchOutcome;
 			typedef Outcome<Error, Model::DeleteVSwitchResult> DeleteVSwitchOutcome;
 			typedef std::future<DeleteVSwitchOutcome> DeleteVSwitchOutcomeCallable;
 			typedef std::future<DeleteVSwitchOutcome> DeleteVSwitchOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DeleteVSwitchRequest&, const DeleteVSwitchOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteVSwitchAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::DeleteVSwitchRequest&, const DeleteVSwitchOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteVSwitchAsyncHandler;
@@ -667,6 +712,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeElbAvailableResourceInfoResult> DescribeElbAvailableResourceInfoOutcome;
 			typedef Outcome<Error, Model::DescribeElbAvailableResourceInfoResult> DescribeElbAvailableResourceInfoOutcome;
 			typedef std::future<DescribeElbAvailableResourceInfoOutcome> DescribeElbAvailableResourceInfoOutcomeCallable;
 			typedef std::future<DescribeElbAvailableResourceInfoOutcome> DescribeElbAvailableResourceInfoOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DescribeElbAvailableResourceInfoRequest&, const DescribeElbAvailableResourceInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeElbAvailableResourceInfoAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::DescribeElbAvailableResourceInfoRequest&, const DescribeElbAvailableResourceInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeElbAvailableResourceInfoAsyncHandler;
+			typedef Outcome<Error, Model::DescribeEnsCommodityCodeResult> DescribeEnsCommodityCodeOutcome;
+			typedef std::future<DescribeEnsCommodityCodeOutcome> DescribeEnsCommodityCodeOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::DescribeEnsCommodityCodeRequest&, const DescribeEnsCommodityCodeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeEnsCommodityCodeAsyncHandler;
+			typedef Outcome<Error, Model::DescribeEnsCommodityModuleCodeResult> DescribeEnsCommodityModuleCodeOutcome;
+			typedef std::future<DescribeEnsCommodityModuleCodeOutcome> DescribeEnsCommodityModuleCodeOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::DescribeEnsCommodityModuleCodeRequest&, const DescribeEnsCommodityModuleCodeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeEnsCommodityModuleCodeAsyncHandler;
 			typedef Outcome<Error, Model::DescribeEnsEipAddressesResult> DescribeEnsEipAddressesOutcome;
 			typedef Outcome<Error, Model::DescribeEnsEipAddressesResult> DescribeEnsEipAddressesOutcome;
 			typedef std::future<DescribeEnsEipAddressesOutcome> DescribeEnsEipAddressesOutcomeCallable;
 			typedef std::future<DescribeEnsEipAddressesOutcome> DescribeEnsEipAddressesOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DescribeEnsEipAddressesRequest&, const DescribeEnsEipAddressesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeEnsEipAddressesAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::DescribeEnsEipAddressesRequest&, const DescribeEnsEipAddressesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeEnsEipAddressesAsyncHandler;
@@ -694,6 +745,15 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeEnsRouteEntryListResult> DescribeEnsRouteEntryListOutcome;
 			typedef Outcome<Error, Model::DescribeEnsRouteEntryListResult> DescribeEnsRouteEntryListOutcome;
 			typedef std::future<DescribeEnsRouteEntryListOutcome> DescribeEnsRouteEntryListOutcomeCallable;
 			typedef std::future<DescribeEnsRouteEntryListOutcome> DescribeEnsRouteEntryListOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DescribeEnsRouteEntryListRequest&, const DescribeEnsRouteEntryListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeEnsRouteEntryListAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::DescribeEnsRouteEntryListRequest&, const DescribeEnsRouteEntryListOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeEnsRouteEntryListAsyncHandler;
+			typedef Outcome<Error, Model::DescribeEnsSaleControlResult> DescribeEnsSaleControlOutcome;
+			typedef std::future<DescribeEnsSaleControlOutcome> DescribeEnsSaleControlOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::DescribeEnsSaleControlRequest&, const DescribeEnsSaleControlOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeEnsSaleControlAsyncHandler;
+			typedef Outcome<Error, Model::DescribeEnsSaleControlAvailableResourceResult> DescribeEnsSaleControlAvailableResourceOutcome;
+			typedef std::future<DescribeEnsSaleControlAvailableResourceOutcome> DescribeEnsSaleControlAvailableResourceOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::DescribeEnsSaleControlAvailableResourceRequest&, const DescribeEnsSaleControlAvailableResourceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeEnsSaleControlAvailableResourceAsyncHandler;
+			typedef Outcome<Error, Model::DescribeEnsSaleControlStockResult> DescribeEnsSaleControlStockOutcome;
+			typedef std::future<DescribeEnsSaleControlStockOutcome> DescribeEnsSaleControlStockOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::DescribeEnsSaleControlStockRequest&, const DescribeEnsSaleControlStockOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeEnsSaleControlStockAsyncHandler;
 			typedef Outcome<Error, Model::DescribeEpnBandWidthDataResult> DescribeEpnBandWidthDataOutcome;
 			typedef Outcome<Error, Model::DescribeEpnBandWidthDataResult> DescribeEpnBandWidthDataOutcome;
 			typedef std::future<DescribeEpnBandWidthDataOutcome> DescribeEpnBandWidthDataOutcomeCallable;
 			typedef std::future<DescribeEpnBandWidthDataOutcome> DescribeEpnBandWidthDataOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DescribeEpnBandWidthDataRequest&, const DescribeEpnBandWidthDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeEpnBandWidthDataAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::DescribeEpnBandWidthDataRequest&, const DescribeEpnBandWidthDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeEpnBandWidthDataAsyncHandler;
@@ -802,6 +862,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribePriceResult> DescribePriceOutcome;
 			typedef Outcome<Error, Model::DescribePriceResult> DescribePriceOutcome;
 			typedef std::future<DescribePriceOutcome> DescribePriceOutcomeCallable;
 			typedef std::future<DescribePriceOutcome> DescribePriceOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DescribePriceRequest&, const DescribePriceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribePriceAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::DescribePriceRequest&, const DescribePriceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribePriceAsyncHandler;
+			typedef Outcome<Error, Model::DescribeRegionBandwidthQuotaResult> DescribeRegionBandwidthQuotaOutcome;
+			typedef std::future<DescribeRegionBandwidthQuotaOutcome> DescribeRegionBandwidthQuotaOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::DescribeRegionBandwidthQuotaRequest&, const DescribeRegionBandwidthQuotaOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRegionBandwidthQuotaAsyncHandler;
 			typedef Outcome<Error, Model::DescribeRegionIspsResult> DescribeRegionIspsOutcome;
 			typedef Outcome<Error, Model::DescribeRegionIspsResult> DescribeRegionIspsOutcome;
 			typedef std::future<DescribeRegionIspsOutcome> DescribeRegionIspsOutcomeCallable;
 			typedef std::future<DescribeRegionIspsOutcome> DescribeRegionIspsOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DescribeRegionIspsRequest&, const DescribeRegionIspsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRegionIspsAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::DescribeRegionIspsRequest&, const DescribeRegionIspsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRegionIspsAsyncHandler;
@@ -826,6 +889,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeServcieScheduleResult> DescribeServcieScheduleOutcome;
 			typedef Outcome<Error, Model::DescribeServcieScheduleResult> DescribeServcieScheduleOutcome;
 			typedef std::future<DescribeServcieScheduleOutcome> DescribeServcieScheduleOutcomeCallable;
 			typedef std::future<DescribeServcieScheduleOutcome> DescribeServcieScheduleOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DescribeServcieScheduleRequest&, const DescribeServcieScheduleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeServcieScheduleAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::DescribeServcieScheduleRequest&, const DescribeServcieScheduleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeServcieScheduleAsyncHandler;
+			typedef Outcome<Error, Model::DescribeSnatAttributeResult> DescribeSnatAttributeOutcome;
+			typedef std::future<DescribeSnatAttributeOutcome> DescribeSnatAttributeOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::DescribeSnatAttributeRequest&, const DescribeSnatAttributeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeSnatAttributeAsyncHandler;
 			typedef Outcome<Error, Model::DescribeSnatTableEntriesResult> DescribeSnatTableEntriesOutcome;
 			typedef Outcome<Error, Model::DescribeSnatTableEntriesResult> DescribeSnatTableEntriesOutcome;
 			typedef std::future<DescribeSnatTableEntriesOutcome> DescribeSnatTableEntriesOutcomeCallable;
 			typedef std::future<DescribeSnatTableEntriesOutcome> DescribeSnatTableEntriesOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::DescribeSnatTableEntriesRequest&, const DescribeSnatTableEntriesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeSnatTableEntriesAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::DescribeSnatTableEntriesRequest&, const DescribeSnatTableEntriesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeSnatTableEntriesAsyncHandler;
@@ -1039,6 +1105,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::StartLoadBalancerListenerResult> StartLoadBalancerListenerOutcome;
 			typedef Outcome<Error, Model::StartLoadBalancerListenerResult> StartLoadBalancerListenerOutcome;
 			typedef std::future<StartLoadBalancerListenerOutcome> StartLoadBalancerListenerOutcomeCallable;
 			typedef std::future<StartLoadBalancerListenerOutcome> StartLoadBalancerListenerOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::StartLoadBalancerListenerRequest&, const StartLoadBalancerListenerOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> StartLoadBalancerListenerAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::StartLoadBalancerListenerRequest&, const StartLoadBalancerListenerOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> StartLoadBalancerListenerAsyncHandler;
+			typedef Outcome<Error, Model::StartSnatIpForSnatEntryResult> StartSnatIpForSnatEntryOutcome;
+			typedef std::future<StartSnatIpForSnatEntryOutcome> StartSnatIpForSnatEntryOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::StartSnatIpForSnatEntryRequest&, const StartSnatIpForSnatEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> StartSnatIpForSnatEntryAsyncHandler;
 			typedef Outcome<Error, Model::StopEpnInstanceResult> StopEpnInstanceOutcome;
 			typedef Outcome<Error, Model::StopEpnInstanceResult> StopEpnInstanceOutcome;
 			typedef std::future<StopEpnInstanceOutcome> StopEpnInstanceOutcomeCallable;
 			typedef std::future<StopEpnInstanceOutcome> StopEpnInstanceOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::StopEpnInstanceRequest&, const StopEpnInstanceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> StopEpnInstanceAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::StopEpnInstanceRequest&, const StopEpnInstanceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> StopEpnInstanceAsyncHandler;
@@ -1051,6 +1120,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::StopLoadBalancerListenerResult> StopLoadBalancerListenerOutcome;
 			typedef Outcome<Error, Model::StopLoadBalancerListenerResult> StopLoadBalancerListenerOutcome;
 			typedef std::future<StopLoadBalancerListenerOutcome> StopLoadBalancerListenerOutcomeCallable;
 			typedef std::future<StopLoadBalancerListenerOutcome> StopLoadBalancerListenerOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::StopLoadBalancerListenerRequest&, const StopLoadBalancerListenerOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> StopLoadBalancerListenerAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::StopLoadBalancerListenerRequest&, const StopLoadBalancerListenerOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> StopLoadBalancerListenerAsyncHandler;
+			typedef Outcome<Error, Model::StopSnatIpForSnatEntryResult> StopSnatIpForSnatEntryOutcome;
+			typedef std::future<StopSnatIpForSnatEntryOutcome> StopSnatIpForSnatEntryOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::StopSnatIpForSnatEntryRequest&, const StopSnatIpForSnatEntryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> StopSnatIpForSnatEntryAsyncHandler;
 			typedef Outcome<Error, Model::UnAssociateEnsEipAddressResult> UnAssociateEnsEipAddressOutcome;
 			typedef Outcome<Error, Model::UnAssociateEnsEipAddressResult> UnAssociateEnsEipAddressOutcome;
 			typedef std::future<UnAssociateEnsEipAddressOutcome> UnAssociateEnsEipAddressOutcomeCallable;
 			typedef std::future<UnAssociateEnsEipAddressOutcome> UnAssociateEnsEipAddressOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::UnAssociateEnsEipAddressRequest&, const UnAssociateEnsEipAddressOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UnAssociateEnsEipAddressAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::UnAssociateEnsEipAddressRequest&, const UnAssociateEnsEipAddressOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UnAssociateEnsEipAddressAsyncHandler;
@@ -1060,6 +1132,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::UnassociateNetworkAclResult> UnassociateNetworkAclOutcome;
 			typedef Outcome<Error, Model::UnassociateNetworkAclResult> UnassociateNetworkAclOutcome;
 			typedef std::future<UnassociateNetworkAclOutcome> UnassociateNetworkAclOutcomeCallable;
 			typedef std::future<UnassociateNetworkAclOutcome> UnassociateNetworkAclOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::UnassociateNetworkAclRequest&, const UnassociateNetworkAclOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UnassociateNetworkAclAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::UnassociateNetworkAclRequest&, const UnassociateNetworkAclOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UnassociateNetworkAclAsyncHandler;
+			typedef Outcome<Error, Model::UpdateEnsSaleControlResult> UpdateEnsSaleControlOutcome;
+			typedef std::future<UpdateEnsSaleControlOutcome> UpdateEnsSaleControlOutcomeCallable;
+			typedef std::function<void(const EnsClient*, const Model::UpdateEnsSaleControlRequest&, const UpdateEnsSaleControlOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateEnsSaleControlAsyncHandler;
 			typedef Outcome<Error, Model::UpgradeAICInstanceImageResult> UpgradeAICInstanceImageOutcome;
 			typedef Outcome<Error, Model::UpgradeAICInstanceImageResult> UpgradeAICInstanceImageOutcome;
 			typedef std::future<UpgradeAICInstanceImageOutcome> UpgradeAICInstanceImageOutcomeCallable;
 			typedef std::future<UpgradeAICInstanceImageOutcome> UpgradeAICInstanceImageOutcomeCallable;
 			typedef std::function<void(const EnsClient*, const Model::UpgradeAICInstanceImageRequest&, const UpgradeAICInstanceImageOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpgradeAICInstanceImageAsyncHandler;
 			typedef std::function<void(const EnsClient*, const Model::UpgradeAICInstanceImageRequest&, const UpgradeAICInstanceImageOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpgradeAICInstanceImageAsyncHandler;
@@ -1083,6 +1158,9 @@ namespace AlibabaCloud
 			AddNetworkInterfaceToInstanceOutcome addNetworkInterfaceToInstance(const Model::AddNetworkInterfaceToInstanceRequest &request)const;
 			AddNetworkInterfaceToInstanceOutcome addNetworkInterfaceToInstance(const Model::AddNetworkInterfaceToInstanceRequest &request)const;
 			void addNetworkInterfaceToInstanceAsync(const Model::AddNetworkInterfaceToInstanceRequest& request, const AddNetworkInterfaceToInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void addNetworkInterfaceToInstanceAsync(const Model::AddNetworkInterfaceToInstanceRequest& request, const AddNetworkInterfaceToInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AddNetworkInterfaceToInstanceOutcomeCallable addNetworkInterfaceToInstanceCallable(const Model::AddNetworkInterfaceToInstanceRequest& request) const;
 			AddNetworkInterfaceToInstanceOutcomeCallable addNetworkInterfaceToInstanceCallable(const Model::AddNetworkInterfaceToInstanceRequest& request) const;
+			AddSnatIpForSnatEntryOutcome addSnatIpForSnatEntry(const Model::AddSnatIpForSnatEntryRequest &request)const;
+			void addSnatIpForSnatEntryAsync(const Model::AddSnatIpForSnatEntryRequest& request, const AddSnatIpForSnatEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			AddSnatIpForSnatEntryOutcomeCallable addSnatIpForSnatEntryCallable(const Model::AddSnatIpForSnatEntryRequest& request) const;
 			AssignPrivateIpAddressesOutcome assignPrivateIpAddresses(const Model::AssignPrivateIpAddressesRequest &request)const;
 			AssignPrivateIpAddressesOutcome assignPrivateIpAddresses(const Model::AssignPrivateIpAddressesRequest &request)const;
 			void assignPrivateIpAddressesAsync(const Model::AssignPrivateIpAddressesRequest& request, const AssignPrivateIpAddressesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void assignPrivateIpAddressesAsync(const Model::AssignPrivateIpAddressesRequest& request, const AssignPrivateIpAddressesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AssignPrivateIpAddressesOutcomeCallable assignPrivateIpAddressesCallable(const Model::AssignPrivateIpAddressesRequest& request) const;
 			AssignPrivateIpAddressesOutcomeCallable assignPrivateIpAddressesCallable(const Model::AssignPrivateIpAddressesRequest& request) const;
@@ -1122,6 +1200,9 @@ namespace AlibabaCloud
 			CreateEnsRouteEntryOutcome createEnsRouteEntry(const Model::CreateEnsRouteEntryRequest &request)const;
 			CreateEnsRouteEntryOutcome createEnsRouteEntry(const Model::CreateEnsRouteEntryRequest &request)const;
 			void createEnsRouteEntryAsync(const Model::CreateEnsRouteEntryRequest& request, const CreateEnsRouteEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void createEnsRouteEntryAsync(const Model::CreateEnsRouteEntryRequest& request, const CreateEnsRouteEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateEnsRouteEntryOutcomeCallable createEnsRouteEntryCallable(const Model::CreateEnsRouteEntryRequest& request) const;
 			CreateEnsRouteEntryOutcomeCallable createEnsRouteEntryCallable(const Model::CreateEnsRouteEntryRequest& request) const;
+			CreateEnsSaleControlOutcome createEnsSaleControl(const Model::CreateEnsSaleControlRequest &request)const;
+			void createEnsSaleControlAsync(const Model::CreateEnsSaleControlRequest& request, const CreateEnsSaleControlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateEnsSaleControlOutcomeCallable createEnsSaleControlCallable(const Model::CreateEnsSaleControlRequest& request) const;
 			CreateEnsServiceOutcome createEnsService(const Model::CreateEnsServiceRequest &request)const;
 			CreateEnsServiceOutcome createEnsService(const Model::CreateEnsServiceRequest &request)const;
 			void createEnsServiceAsync(const Model::CreateEnsServiceRequest& request, const CreateEnsServiceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void createEnsServiceAsync(const Model::CreateEnsServiceRequest& request, const CreateEnsServiceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateEnsServiceOutcomeCallable createEnsServiceCallable(const Model::CreateEnsServiceRequest& request) const;
 			CreateEnsServiceOutcomeCallable createEnsServiceCallable(const Model::CreateEnsServiceRequest& request) const;
@@ -1197,6 +1278,12 @@ namespace AlibabaCloud
 			DeleteEnsRouteEntryOutcome deleteEnsRouteEntry(const Model::DeleteEnsRouteEntryRequest &request)const;
 			DeleteEnsRouteEntryOutcome deleteEnsRouteEntry(const Model::DeleteEnsRouteEntryRequest &request)const;
 			void deleteEnsRouteEntryAsync(const Model::DeleteEnsRouteEntryRequest& request, const DeleteEnsRouteEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void deleteEnsRouteEntryAsync(const Model::DeleteEnsRouteEntryRequest& request, const DeleteEnsRouteEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteEnsRouteEntryOutcomeCallable deleteEnsRouteEntryCallable(const Model::DeleteEnsRouteEntryRequest& request) const;
 			DeleteEnsRouteEntryOutcomeCallable deleteEnsRouteEntryCallable(const Model::DeleteEnsRouteEntryRequest& request) const;
+			DeleteEnsSaleConditionControlOutcome deleteEnsSaleConditionControl(const Model::DeleteEnsSaleConditionControlRequest &request)const;
+			void deleteEnsSaleConditionControlAsync(const Model::DeleteEnsSaleConditionControlRequest& request, const DeleteEnsSaleConditionControlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteEnsSaleConditionControlOutcomeCallable deleteEnsSaleConditionControlCallable(const Model::DeleteEnsSaleConditionControlRequest& request) const;
+			DeleteEnsSaleControlOutcome deleteEnsSaleControl(const Model::DeleteEnsSaleControlRequest &request)const;
+			void deleteEnsSaleControlAsync(const Model::DeleteEnsSaleControlRequest& request, const DeleteEnsSaleControlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteEnsSaleControlOutcomeCallable deleteEnsSaleControlCallable(const Model::DeleteEnsSaleControlRequest& request) const;
 			DeleteEpnInstanceOutcome deleteEpnInstance(const Model::DeleteEpnInstanceRequest &request)const;
 			DeleteEpnInstanceOutcome deleteEpnInstance(const Model::DeleteEpnInstanceRequest &request)const;
 			void deleteEpnInstanceAsync(const Model::DeleteEpnInstanceRequest& request, const DeleteEpnInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void deleteEpnInstanceAsync(const Model::DeleteEpnInstanceRequest& request, const DeleteEpnInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteEpnInstanceOutcomeCallable deleteEpnInstanceCallable(const Model::DeleteEpnInstanceRequest& request) const;
 			DeleteEpnInstanceOutcomeCallable deleteEpnInstanceCallable(const Model::DeleteEpnInstanceRequest& request) const;
@@ -1236,6 +1323,9 @@ namespace AlibabaCloud
 			DeleteSnatEntryOutcome deleteSnatEntry(const Model::DeleteSnatEntryRequest &request)const;
 			DeleteSnatEntryOutcome deleteSnatEntry(const Model::DeleteSnatEntryRequest &request)const;
 			void deleteSnatEntryAsync(const Model::DeleteSnatEntryRequest& request, const DeleteSnatEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void deleteSnatEntryAsync(const Model::DeleteSnatEntryRequest& request, const DeleteSnatEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteSnatEntryOutcomeCallable deleteSnatEntryCallable(const Model::DeleteSnatEntryRequest& request) const;
 			DeleteSnatEntryOutcomeCallable deleteSnatEntryCallable(const Model::DeleteSnatEntryRequest& request) const;
+			DeleteSnatIpForSnatEntryOutcome deleteSnatIpForSnatEntry(const Model::DeleteSnatIpForSnatEntryRequest &request)const;
+			void deleteSnatIpForSnatEntryAsync(const Model::DeleteSnatIpForSnatEntryRequest& request, const DeleteSnatIpForSnatEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteSnatIpForSnatEntryOutcomeCallable deleteSnatIpForSnatEntryCallable(const Model::DeleteSnatIpForSnatEntryRequest& request) const;
 			DeleteVSwitchOutcome deleteVSwitch(const Model::DeleteVSwitchRequest &request)const;
 			DeleteVSwitchOutcome deleteVSwitch(const Model::DeleteVSwitchRequest &request)const;
 			void deleteVSwitchAsync(const Model::DeleteVSwitchRequest& request, const DeleteVSwitchAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void deleteVSwitchAsync(const Model::DeleteVSwitchRequest& request, const DeleteVSwitchAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteVSwitchOutcomeCallable deleteVSwitchCallable(const Model::DeleteVSwitchRequest& request) const;
 			DeleteVSwitchOutcomeCallable deleteVSwitchCallable(const Model::DeleteVSwitchRequest& request) const;
@@ -1293,6 +1383,12 @@ namespace AlibabaCloud
 			DescribeElbAvailableResourceInfoOutcome describeElbAvailableResourceInfo(const Model::DescribeElbAvailableResourceInfoRequest &request)const;
 			DescribeElbAvailableResourceInfoOutcome describeElbAvailableResourceInfo(const Model::DescribeElbAvailableResourceInfoRequest &request)const;
 			void describeElbAvailableResourceInfoAsync(const Model::DescribeElbAvailableResourceInfoRequest& request, const DescribeElbAvailableResourceInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void describeElbAvailableResourceInfoAsync(const Model::DescribeElbAvailableResourceInfoRequest& request, const DescribeElbAvailableResourceInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeElbAvailableResourceInfoOutcomeCallable describeElbAvailableResourceInfoCallable(const Model::DescribeElbAvailableResourceInfoRequest& request) const;
 			DescribeElbAvailableResourceInfoOutcomeCallable describeElbAvailableResourceInfoCallable(const Model::DescribeElbAvailableResourceInfoRequest& request) const;
+			DescribeEnsCommodityCodeOutcome describeEnsCommodityCode(const Model::DescribeEnsCommodityCodeRequest &request)const;
+			void describeEnsCommodityCodeAsync(const Model::DescribeEnsCommodityCodeRequest& request, const DescribeEnsCommodityCodeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeEnsCommodityCodeOutcomeCallable describeEnsCommodityCodeCallable(const Model::DescribeEnsCommodityCodeRequest& request) const;
+			DescribeEnsCommodityModuleCodeOutcome describeEnsCommodityModuleCode(const Model::DescribeEnsCommodityModuleCodeRequest &request)const;
+			void describeEnsCommodityModuleCodeAsync(const Model::DescribeEnsCommodityModuleCodeRequest& request, const DescribeEnsCommodityModuleCodeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeEnsCommodityModuleCodeOutcomeCallable describeEnsCommodityModuleCodeCallable(const Model::DescribeEnsCommodityModuleCodeRequest& request) const;
 			DescribeEnsEipAddressesOutcome describeEnsEipAddresses(const Model::DescribeEnsEipAddressesRequest &request)const;
 			DescribeEnsEipAddressesOutcome describeEnsEipAddresses(const Model::DescribeEnsEipAddressesRequest &request)const;
 			void describeEnsEipAddressesAsync(const Model::DescribeEnsEipAddressesRequest& request, const DescribeEnsEipAddressesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void describeEnsEipAddressesAsync(const Model::DescribeEnsEipAddressesRequest& request, const DescribeEnsEipAddressesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeEnsEipAddressesOutcomeCallable describeEnsEipAddressesCallable(const Model::DescribeEnsEipAddressesRequest& request) const;
 			DescribeEnsEipAddressesOutcomeCallable describeEnsEipAddressesCallable(const Model::DescribeEnsEipAddressesRequest& request) const;
@@ -1320,6 +1416,15 @@ namespace AlibabaCloud
 			DescribeEnsRouteEntryListOutcome describeEnsRouteEntryList(const Model::DescribeEnsRouteEntryListRequest &request)const;
 			DescribeEnsRouteEntryListOutcome describeEnsRouteEntryList(const Model::DescribeEnsRouteEntryListRequest &request)const;
 			void describeEnsRouteEntryListAsync(const Model::DescribeEnsRouteEntryListRequest& request, const DescribeEnsRouteEntryListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void describeEnsRouteEntryListAsync(const Model::DescribeEnsRouteEntryListRequest& request, const DescribeEnsRouteEntryListAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeEnsRouteEntryListOutcomeCallable describeEnsRouteEntryListCallable(const Model::DescribeEnsRouteEntryListRequest& request) const;
 			DescribeEnsRouteEntryListOutcomeCallable describeEnsRouteEntryListCallable(const Model::DescribeEnsRouteEntryListRequest& request) const;
+			DescribeEnsSaleControlOutcome describeEnsSaleControl(const Model::DescribeEnsSaleControlRequest &request)const;
+			void describeEnsSaleControlAsync(const Model::DescribeEnsSaleControlRequest& request, const DescribeEnsSaleControlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeEnsSaleControlOutcomeCallable describeEnsSaleControlCallable(const Model::DescribeEnsSaleControlRequest& request) const;
+			DescribeEnsSaleControlAvailableResourceOutcome describeEnsSaleControlAvailableResource(const Model::DescribeEnsSaleControlAvailableResourceRequest &request)const;
+			void describeEnsSaleControlAvailableResourceAsync(const Model::DescribeEnsSaleControlAvailableResourceRequest& request, const DescribeEnsSaleControlAvailableResourceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeEnsSaleControlAvailableResourceOutcomeCallable describeEnsSaleControlAvailableResourceCallable(const Model::DescribeEnsSaleControlAvailableResourceRequest& request) const;
+			DescribeEnsSaleControlStockOutcome describeEnsSaleControlStock(const Model::DescribeEnsSaleControlStockRequest &request)const;
+			void describeEnsSaleControlStockAsync(const Model::DescribeEnsSaleControlStockRequest& request, const DescribeEnsSaleControlStockAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeEnsSaleControlStockOutcomeCallable describeEnsSaleControlStockCallable(const Model::DescribeEnsSaleControlStockRequest& request) const;
 			DescribeEpnBandWidthDataOutcome describeEpnBandWidthData(const Model::DescribeEpnBandWidthDataRequest &request)const;
 			DescribeEpnBandWidthDataOutcome describeEpnBandWidthData(const Model::DescribeEpnBandWidthDataRequest &request)const;
 			void describeEpnBandWidthDataAsync(const Model::DescribeEpnBandWidthDataRequest& request, const DescribeEpnBandWidthDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void describeEpnBandWidthDataAsync(const Model::DescribeEpnBandWidthDataRequest& request, const DescribeEpnBandWidthDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeEpnBandWidthDataOutcomeCallable describeEpnBandWidthDataCallable(const Model::DescribeEpnBandWidthDataRequest& request) const;
 			DescribeEpnBandWidthDataOutcomeCallable describeEpnBandWidthDataCallable(const Model::DescribeEpnBandWidthDataRequest& request) const;
@@ -1428,6 +1533,9 @@ namespace AlibabaCloud
 			DescribePriceOutcome describePrice(const Model::DescribePriceRequest &request)const;
 			DescribePriceOutcome describePrice(const Model::DescribePriceRequest &request)const;
 			void describePriceAsync(const Model::DescribePriceRequest& request, const DescribePriceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void describePriceAsync(const Model::DescribePriceRequest& request, const DescribePriceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribePriceOutcomeCallable describePriceCallable(const Model::DescribePriceRequest& request) const;
 			DescribePriceOutcomeCallable describePriceCallable(const Model::DescribePriceRequest& request) const;
+			DescribeRegionBandwidthQuotaOutcome describeRegionBandwidthQuota(const Model::DescribeRegionBandwidthQuotaRequest &request)const;
+			void describeRegionBandwidthQuotaAsync(const Model::DescribeRegionBandwidthQuotaRequest& request, const DescribeRegionBandwidthQuotaAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeRegionBandwidthQuotaOutcomeCallable describeRegionBandwidthQuotaCallable(const Model::DescribeRegionBandwidthQuotaRequest& request) const;
 			DescribeRegionIspsOutcome describeRegionIsps(const Model::DescribeRegionIspsRequest &request)const;
 			DescribeRegionIspsOutcome describeRegionIsps(const Model::DescribeRegionIspsRequest &request)const;
 			void describeRegionIspsAsync(const Model::DescribeRegionIspsRequest& request, const DescribeRegionIspsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void describeRegionIspsAsync(const Model::DescribeRegionIspsRequest& request, const DescribeRegionIspsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeRegionIspsOutcomeCallable describeRegionIspsCallable(const Model::DescribeRegionIspsRequest& request) const;
 			DescribeRegionIspsOutcomeCallable describeRegionIspsCallable(const Model::DescribeRegionIspsRequest& request) const;
@@ -1452,6 +1560,9 @@ namespace AlibabaCloud
 			DescribeServcieScheduleOutcome describeServcieSchedule(const Model::DescribeServcieScheduleRequest &request)const;
 			DescribeServcieScheduleOutcome describeServcieSchedule(const Model::DescribeServcieScheduleRequest &request)const;
 			void describeServcieScheduleAsync(const Model::DescribeServcieScheduleRequest& request, const DescribeServcieScheduleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void describeServcieScheduleAsync(const Model::DescribeServcieScheduleRequest& request, const DescribeServcieScheduleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeServcieScheduleOutcomeCallable describeServcieScheduleCallable(const Model::DescribeServcieScheduleRequest& request) const;
 			DescribeServcieScheduleOutcomeCallable describeServcieScheduleCallable(const Model::DescribeServcieScheduleRequest& request) const;
+			DescribeSnatAttributeOutcome describeSnatAttribute(const Model::DescribeSnatAttributeRequest &request)const;
+			void describeSnatAttributeAsync(const Model::DescribeSnatAttributeRequest& request, const DescribeSnatAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeSnatAttributeOutcomeCallable describeSnatAttributeCallable(const Model::DescribeSnatAttributeRequest& request) const;
 			DescribeSnatTableEntriesOutcome describeSnatTableEntries(const Model::DescribeSnatTableEntriesRequest &request)const;
 			DescribeSnatTableEntriesOutcome describeSnatTableEntries(const Model::DescribeSnatTableEntriesRequest &request)const;
 			void describeSnatTableEntriesAsync(const Model::DescribeSnatTableEntriesRequest& request, const DescribeSnatTableEntriesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void describeSnatTableEntriesAsync(const Model::DescribeSnatTableEntriesRequest& request, const DescribeSnatTableEntriesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeSnatTableEntriesOutcomeCallable describeSnatTableEntriesCallable(const Model::DescribeSnatTableEntriesRequest& request) const;
 			DescribeSnatTableEntriesOutcomeCallable describeSnatTableEntriesCallable(const Model::DescribeSnatTableEntriesRequest& request) const;
@@ -1665,6 +1776,9 @@ namespace AlibabaCloud
 			StartLoadBalancerListenerOutcome startLoadBalancerListener(const Model::StartLoadBalancerListenerRequest &request)const;
 			StartLoadBalancerListenerOutcome startLoadBalancerListener(const Model::StartLoadBalancerListenerRequest &request)const;
 			void startLoadBalancerListenerAsync(const Model::StartLoadBalancerListenerRequest& request, const StartLoadBalancerListenerAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void startLoadBalancerListenerAsync(const Model::StartLoadBalancerListenerRequest& request, const StartLoadBalancerListenerAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			StartLoadBalancerListenerOutcomeCallable startLoadBalancerListenerCallable(const Model::StartLoadBalancerListenerRequest& request) const;
 			StartLoadBalancerListenerOutcomeCallable startLoadBalancerListenerCallable(const Model::StartLoadBalancerListenerRequest& request) const;
+			StartSnatIpForSnatEntryOutcome startSnatIpForSnatEntry(const Model::StartSnatIpForSnatEntryRequest &request)const;
+			void startSnatIpForSnatEntryAsync(const Model::StartSnatIpForSnatEntryRequest& request, const StartSnatIpForSnatEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			StartSnatIpForSnatEntryOutcomeCallable startSnatIpForSnatEntryCallable(const Model::StartSnatIpForSnatEntryRequest& request) const;
 			StopEpnInstanceOutcome stopEpnInstance(const Model::StopEpnInstanceRequest &request)const;
 			StopEpnInstanceOutcome stopEpnInstance(const Model::StopEpnInstanceRequest &request)const;
 			void stopEpnInstanceAsync(const Model::StopEpnInstanceRequest& request, const StopEpnInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void stopEpnInstanceAsync(const Model::StopEpnInstanceRequest& request, const StopEpnInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			StopEpnInstanceOutcomeCallable stopEpnInstanceCallable(const Model::StopEpnInstanceRequest& request) const;
 			StopEpnInstanceOutcomeCallable stopEpnInstanceCallable(const Model::StopEpnInstanceRequest& request) const;
@@ -1677,6 +1791,9 @@ namespace AlibabaCloud
 			StopLoadBalancerListenerOutcome stopLoadBalancerListener(const Model::StopLoadBalancerListenerRequest &request)const;
 			StopLoadBalancerListenerOutcome stopLoadBalancerListener(const Model::StopLoadBalancerListenerRequest &request)const;
 			void stopLoadBalancerListenerAsync(const Model::StopLoadBalancerListenerRequest& request, const StopLoadBalancerListenerAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void stopLoadBalancerListenerAsync(const Model::StopLoadBalancerListenerRequest& request, const StopLoadBalancerListenerAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			StopLoadBalancerListenerOutcomeCallable stopLoadBalancerListenerCallable(const Model::StopLoadBalancerListenerRequest& request) const;
 			StopLoadBalancerListenerOutcomeCallable stopLoadBalancerListenerCallable(const Model::StopLoadBalancerListenerRequest& request) const;
+			StopSnatIpForSnatEntryOutcome stopSnatIpForSnatEntry(const Model::StopSnatIpForSnatEntryRequest &request)const;
+			void stopSnatIpForSnatEntryAsync(const Model::StopSnatIpForSnatEntryRequest& request, const StopSnatIpForSnatEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			StopSnatIpForSnatEntryOutcomeCallable stopSnatIpForSnatEntryCallable(const Model::StopSnatIpForSnatEntryRequest& request) const;
 			UnAssociateEnsEipAddressOutcome unAssociateEnsEipAddress(const Model::UnAssociateEnsEipAddressRequest &request)const;
 			UnAssociateEnsEipAddressOutcome unAssociateEnsEipAddress(const Model::UnAssociateEnsEipAddressRequest &request)const;
 			void unAssociateEnsEipAddressAsync(const Model::UnAssociateEnsEipAddressRequest& request, const UnAssociateEnsEipAddressAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void unAssociateEnsEipAddressAsync(const Model::UnAssociateEnsEipAddressRequest& request, const UnAssociateEnsEipAddressAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UnAssociateEnsEipAddressOutcomeCallable unAssociateEnsEipAddressCallable(const Model::UnAssociateEnsEipAddressRequest& request) const;
 			UnAssociateEnsEipAddressOutcomeCallable unAssociateEnsEipAddressCallable(const Model::UnAssociateEnsEipAddressRequest& request) const;
@@ -1686,6 +1803,9 @@ namespace AlibabaCloud
 			UnassociateNetworkAclOutcome unassociateNetworkAcl(const Model::UnassociateNetworkAclRequest &request)const;
 			UnassociateNetworkAclOutcome unassociateNetworkAcl(const Model::UnassociateNetworkAclRequest &request)const;
 			void unassociateNetworkAclAsync(const Model::UnassociateNetworkAclRequest& request, const UnassociateNetworkAclAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void unassociateNetworkAclAsync(const Model::UnassociateNetworkAclRequest& request, const UnassociateNetworkAclAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UnassociateNetworkAclOutcomeCallable unassociateNetworkAclCallable(const Model::UnassociateNetworkAclRequest& request) const;
 			UnassociateNetworkAclOutcomeCallable unassociateNetworkAclCallable(const Model::UnassociateNetworkAclRequest& request) const;
+			UpdateEnsSaleControlOutcome updateEnsSaleControl(const Model::UpdateEnsSaleControlRequest &request)const;
+			void updateEnsSaleControlAsync(const Model::UpdateEnsSaleControlRequest& request, const UpdateEnsSaleControlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateEnsSaleControlOutcomeCallable updateEnsSaleControlCallable(const Model::UpdateEnsSaleControlRequest& request) const;
 			UpgradeAICInstanceImageOutcome upgradeAICInstanceImage(const Model::UpgradeAICInstanceImageRequest &request)const;
 			UpgradeAICInstanceImageOutcome upgradeAICInstanceImage(const Model::UpgradeAICInstanceImageRequest &request)const;
 			void upgradeAICInstanceImageAsync(const Model::UpgradeAICInstanceImageRequest& request, const UpgradeAICInstanceImageAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			void upgradeAICInstanceImageAsync(const Model::UpgradeAICInstanceImageRequest& request, const UpgradeAICInstanceImageAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpgradeAICInstanceImageOutcomeCallable upgradeAICInstanceImageCallable(const Model::UpgradeAICInstanceImageRequest& request) const;
 			UpgradeAICInstanceImageOutcomeCallable upgradeAICInstanceImageCallable(const Model::UpgradeAICInstanceImageRequest& request) const;

+ 45 - 0
ens/include/alibabacloud/ens/model/AddSnatIpForSnatEntryRequest.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_ENS_MODEL_ADDSNATIPFORSNATENTRYREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_ADDSNATIPFORSNATENTRYREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT AddSnatIpForSnatEntryRequest : public RpcServiceRequest {
+public:
+	AddSnatIpForSnatEntryRequest();
+	~AddSnatIpForSnatEntryRequest();
+	std::string getSnatIp() const;
+	void setSnatIp(const std::string &snatIp);
+	std::string getSnatEntryId() const;
+	void setSnatEntryId(const std::string &snatEntryId);
+
+private:
+	std::string snatIp_;
+	std::string snatEntryId_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_ADDSNATIPFORSNATENTRYREQUEST_H_

+ 49 - 0
ens/include/alibabacloud/ens/model/AddSnatIpForSnatEntryResult.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_ENS_MODEL_ADDSNATIPFORSNATENTRYRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_ADDSNATIPFORSNATENTRYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT AddSnatIpForSnatEntryResult : public ServiceResult
+			{
+			public:
+
+
+				AddSnatIpForSnatEntryResult();
+				explicit AddSnatIpForSnatEntryResult(const std::string &payload);
+				~AddSnatIpForSnatEntryResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_ADDSNATIPFORSNATENTRYRESULT_H_

+ 3 - 0
ens/include/alibabacloud/ens/model/CreateARMServerInstancesRequest.h

@@ -52,6 +52,8 @@ public:
 	void setInstanceType(const std::string &instanceType);
 	void setInstanceType(const std::string &instanceType);
 	int getAmount() const;
 	int getAmount() const;
 	void setAmount(int amount);
 	void setAmount(int amount);
+	std::string get_NameSpace() const;
+	void set_NameSpace(const std::string &_nameSpace);
 	std::string getPayType() const;
 	std::string getPayType() const;
 	void setPayType(const std::string &payType);
 	void setPayType(const std::string &payType);
 
 
@@ -67,6 +69,7 @@ private:
 	std::string serverType_;
 	std::string serverType_;
 	std::string instanceType_;
 	std::string instanceType_;
 	int amount_;
 	int amount_;
+	std::string _nameSpace_;
 	std::string payType_;
 	std::string payType_;
 };
 };
 } // namespace Model
 } // namespace Model

+ 67 - 0
ens/include/alibabacloud/ens/model/CreateEnsSaleControlRequest.h

@@ -0,0 +1,67 @@
+/*
+ * 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_ENS_MODEL_CREATEENSSALECONTROLREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_CREATEENSSALECONTROLREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT CreateEnsSaleControlRequest : public RpcServiceRequest {
+public:
+	struct SaleControls {
+		std::string moduleCode;
+		struct ModuleValue {
+			std::string string;
+			std::vector<std::string> moduleValue;
+			std::string moduleMaxValue;
+			std::string moduleMinValue;
+		};
+		ModuleValue moduleValue;
+		struct ConditionControlsItem {
+			std::string conditionControlModuleValue;
+			std::string conditionControlModuleCode;
+		};
+		ConditionControlsItem conditionControlsItem;
+		std::vector<ConditionControlsItem> conditionControls;
+		std::string description;
+		std::string _operator;
+		std::string orderType;
+	};
+	CreateEnsSaleControlRequest();
+	~CreateEnsSaleControlRequest();
+	std::vector<SaleControls> getSaleControls() const;
+	void setSaleControls(const std::vector<SaleControls> &saleControls);
+	std::string getCommodityCode() const;
+	void setCommodityCode(const std::string &commodityCode);
+	std::string getAliUidAccount() const;
+	void setAliUidAccount(const std::string &aliUidAccount);
+
+private:
+	std::vector<SaleControls> saleControls_;
+	std::string commodityCode_;
+	std::string aliUidAccount_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_CREATEENSSALECONTROLREQUEST_H_

+ 49 - 0
ens/include/alibabacloud/ens/model/CreateEnsSaleControlResult.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_ENS_MODEL_CREATEENSSALECONTROLRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_CREATEENSSALECONTROLRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT CreateEnsSaleControlResult : public ServiceResult
+			{
+			public:
+
+
+				CreateEnsSaleControlResult();
+				explicit CreateEnsSaleControlResult(const std::string &payload);
+				~CreateEnsSaleControlResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_CREATEENSSALECONTROLRESULT_H_

+ 58 - 0
ens/include/alibabacloud/ens/model/DeleteEnsSaleConditionControlRequest.h

@@ -0,0 +1,58 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ENS_MODEL_DELETEENSSALECONDITIONCONTROLREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_DELETEENSSALECONDITIONCONTROLREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT DeleteEnsSaleConditionControlRequest : public RpcServiceRequest {
+public:
+	struct SaleControls {
+		std::string moduleCode;
+		struct ConditionControlsItem {
+			std::string conditionControlModuleValue;
+			std::string conditionControlModuleCode;
+		};
+		ConditionControlsItem conditionControlsItem;
+		std::vector<ConditionControlsItem> conditionControls;
+		std::string orderType;
+	};
+	DeleteEnsSaleConditionControlRequest();
+	~DeleteEnsSaleConditionControlRequest();
+	std::vector<SaleControls> getSaleControls() const;
+	void setSaleControls(const std::vector<SaleControls> &saleControls);
+	std::string getCommodityCode() const;
+	void setCommodityCode(const std::string &commodityCode);
+	std::string getAliUidAccount() const;
+	void setAliUidAccount(const std::string &aliUidAccount);
+
+private:
+	std::vector<SaleControls> saleControls_;
+	std::string commodityCode_;
+	std::string aliUidAccount_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_DELETEENSSALECONDITIONCONTROLREQUEST_H_

+ 49 - 0
ens/include/alibabacloud/ens/model/DeleteEnsSaleConditionControlResult.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_ENS_MODEL_DELETEENSSALECONDITIONCONTROLRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_DELETEENSSALECONDITIONCONTROLRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT DeleteEnsSaleConditionControlResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteEnsSaleConditionControlResult();
+				explicit DeleteEnsSaleConditionControlResult(const std::string &payload);
+				~DeleteEnsSaleConditionControlResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_DELETEENSSALECONDITIONCONTROLRESULT_H_

+ 52 - 0
ens/include/alibabacloud/ens/model/DeleteEnsSaleControlRequest.h

@@ -0,0 +1,52 @@
+/*
+ * 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_ENS_MODEL_DELETEENSSALECONTROLREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_DELETEENSSALECONTROLREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT DeleteEnsSaleControlRequest : public RpcServiceRequest {
+public:
+	struct SaleControls {
+		std::string moduleCode;
+		std::string orderType;
+	};
+	DeleteEnsSaleControlRequest();
+	~DeleteEnsSaleControlRequest();
+	std::vector<SaleControls> getSaleControls() const;
+	void setSaleControls(const std::vector<SaleControls> &saleControls);
+	std::string getCommodityCode() const;
+	void setCommodityCode(const std::string &commodityCode);
+	std::string getAliUidAccount() const;
+	void setAliUidAccount(const std::string &aliUidAccount);
+
+private:
+	std::vector<SaleControls> saleControls_;
+	std::string commodityCode_;
+	std::string aliUidAccount_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_DELETEENSSALECONTROLREQUEST_H_

+ 49 - 0
ens/include/alibabacloud/ens/model/DeleteEnsSaleControlResult.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_ENS_MODEL_DELETEENSSALECONTROLRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_DELETEENSSALECONTROLRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT DeleteEnsSaleControlResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteEnsSaleControlResult();
+				explicit DeleteEnsSaleControlResult(const std::string &payload);
+				~DeleteEnsSaleControlResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_DELETEENSSALECONTROLRESULT_H_

+ 45 - 0
ens/include/alibabacloud/ens/model/DeleteSnatIpForSnatEntryRequest.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_ENS_MODEL_DELETESNATIPFORSNATENTRYREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_DELETESNATIPFORSNATENTRYREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT DeleteSnatIpForSnatEntryRequest : public RpcServiceRequest {
+public:
+	DeleteSnatIpForSnatEntryRequest();
+	~DeleteSnatIpForSnatEntryRequest();
+	std::string getSnatIp() const;
+	void setSnatIp(const std::string &snatIp);
+	std::string getSnatEntryId() const;
+	void setSnatEntryId(const std::string &snatEntryId);
+
+private:
+	std::string snatIp_;
+	std::string snatEntryId_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_DELETESNATIPFORSNATENTRYREQUEST_H_

+ 49 - 0
ens/include/alibabacloud/ens/model/DeleteSnatIpForSnatEntryResult.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_ENS_MODEL_DELETESNATIPFORSNATENTRYRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_DELETESNATIPFORSNATENTRYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT DeleteSnatIpForSnatEntryResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteSnatIpForSnatEntryResult();
+				explicit DeleteSnatIpForSnatEntryResult(const std::string &payload);
+				~DeleteSnatIpForSnatEntryResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_DELETESNATIPFORSNATENTRYRESULT_H_

+ 15 - 0
ens/include/alibabacloud/ens/model/DescribeAICImagesRequest.h

@@ -30,19 +30,34 @@ class ALIBABACLOUD_ENS_EXPORT DescribeAICImagesRequest : public RpcServiceReques
 public:
 public:
 	DescribeAICImagesRequest();
 	DescribeAICImagesRequest();
 	~DescribeAICImagesRequest();
 	~DescribeAICImagesRequest();
+	std::string getImageType() const;
+	void setImageType(const std::string &imageType);
+	std::string getStatus() const;
+	void setStatus(const std::string &status);
 	std::string getImageId() const;
 	std::string getImageId() const;
 	void setImageId(const std::string &imageId);
 	void setImageId(const std::string &imageId);
+	std::string getMaxDate() const;
+	void setMaxDate(const std::string &maxDate);
+	std::string getDescription() const;
+	void setDescription(const std::string &description);
 	std::string getPageNumber() const;
 	std::string getPageNumber() const;
 	void setPageNumber(const std::string &pageNumber);
 	void setPageNumber(const std::string &pageNumber);
 	std::string getPageSize() const;
 	std::string getPageSize() const;
 	void setPageSize(const std::string &pageSize);
 	void setPageSize(const std::string &pageSize);
+	std::string getMinDate() const;
+	void setMinDate(const std::string &minDate);
 	std::string getImageUrl() const;
 	std::string getImageUrl() const;
 	void setImageUrl(const std::string &imageUrl);
 	void setImageUrl(const std::string &imageUrl);
 
 
 private:
 private:
+	std::string imageType_;
+	std::string status_;
 	std::string imageId_;
 	std::string imageId_;
+	std::string maxDate_;
+	std::string description_;
 	std::string pageNumber_;
 	std::string pageNumber_;
 	std::string pageSize_;
 	std::string pageSize_;
+	std::string minDate_;
 	std::string imageUrl_;
 	std::string imageUrl_;
 };
 };
 } // namespace Model
 } // namespace Model

+ 7 - 0
ens/include/alibabacloud/ens/model/DescribeAICImagesResult.h

@@ -36,6 +36,7 @@ namespace AlibabaCloud
 				{
 				{
 					std::string status;
 					std::string status;
 					std::string user;
 					std::string user;
+					std::string description;
 					std::string imageId;
 					std::string imageId;
 					std::string creationTime;
 					std::string creationTime;
 					std::string imageUrl;
 					std::string imageUrl;
@@ -45,11 +46,17 @@ namespace AlibabaCloud
 				DescribeAICImagesResult();
 				DescribeAICImagesResult();
 				explicit DescribeAICImagesResult(const std::string &payload);
 				explicit DescribeAICImagesResult(const std::string &payload);
 				~DescribeAICImagesResult();
 				~DescribeAICImagesResult();
+				int getTotalCount()const;
+				int getPageSize()const;
+				int getPageNumber()const;
 				std::vector<ImagesItem> getImages()const;
 				std::vector<ImagesItem> getImages()const;
 
 
 			protected:
 			protected:
 				void parse(const std::string &payload);
 				void parse(const std::string &payload);
 			private:
 			private:
+				int totalCount_;
+				int pageSize_;
+				int pageNumber_;
 				std::vector<ImagesItem> images_;
 				std::vector<ImagesItem> images_;
 
 
 			};
 			};

+ 33 - 3
ens/include/alibabacloud/ens/model/DescribeARMServerInstancesRequest.h

@@ -30,20 +30,50 @@ class ALIBABACLOUD_ENS_EXPORT DescribeARMServerInstancesRequest : public RpcServ
 public:
 public:
 	DescribeARMServerInstancesRequest();
 	DescribeARMServerInstancesRequest();
 	~DescribeARMServerInstancesRequest();
 	~DescribeARMServerInstancesRequest();
+	std::vector<std::string> getAICSpecs() const;
+	void setAICSpecs(const std::vector<std::string> &aICSpecs);
+	std::string getOrderByParams() const;
+	void setOrderByParams(const std::string &orderByParams);
+	bool getDescribeAICInstances() const;
+	void setDescribeAICInstances(bool describeAICInstances);
+	std::vector<std::string> getServerIds() const;
+	void setServerIds(const std::vector<std::string> &serverIds);
+	std::string getName() const;
+	void setName(const std::string &name);
+	std::string getMaxDate() const;
+	void setMaxDate(const std::string &maxDate);
 	int getPageNumber() const;
 	int getPageNumber() const;
 	void setPageNumber(int pageNumber);
 	void setPageNumber(int pageNumber);
+	std::vector<std::string> getStates() const;
+	void setStates(const std::vector<std::string> &states);
+	std::vector<std::string> getServerSpecs() const;
+	void setServerSpecs(const std::vector<std::string> &serverSpecs);
 	int getPageSize() const;
 	int getPageSize() const;
 	void setPageSize(int pageSize);
 	void setPageSize(int pageSize);
 	std::vector<std::string> getEnsRegionIds() const;
 	std::vector<std::string> getEnsRegionIds() const;
 	void setEnsRegionIds(const std::vector<std::string> &ensRegionIds);
 	void setEnsRegionIds(const std::vector<std::string> &ensRegionIds);
-	std::vector<std::string> getServerIds() const;
-	void setServerIds(const std::vector<std::string> &serverIds);
+	std::string getMinDate() const;
+	void setMinDate(const std::string &minDate);
+	std::string getLatestAction() const;
+	void setLatestAction(const std::string &latestAction);
+	std::string get_Namespace() const;
+	void set_Namespace(const std::string &_namespace);
 
 
 private:
 private:
+	std::vector<std::string> aICSpecs_;
+	std::string orderByParams_;
+	bool describeAICInstances_;
+	std::vector<std::string> serverIds_;
+	std::string name_;
+	std::string maxDate_;
 	int pageNumber_;
 	int pageNumber_;
+	std::vector<std::string> states_;
+	std::vector<std::string> serverSpecs_;
 	int pageSize_;
 	int pageSize_;
 	std::vector<std::string> ensRegionIds_;
 	std::vector<std::string> ensRegionIds_;
-	std::vector<std::string> serverIds_;
+	std::string minDate_;
+	std::string latestAction_;
+	std::string _namespace_;
 };
 };
 } // namespace Model
 } // namespace Model
 } // namespace Ens
 } // namespace Ens

+ 6 - 0
ens/include/alibabacloud/ens/model/DescribeARMServerInstancesResult.h

@@ -46,19 +46,25 @@ namespace AlibabaCloud
 						NetworkAttributes networkAttributes;
 						NetworkAttributes networkAttributes;
 						std::string instanceId;
 						std::string instanceId;
 						std::string state;
 						std::string state;
+						std::string latestAction;
 						std::string imageId;
 						std::string imageId;
 						long frequency;
 						long frequency;
 						std::string spec;
 						std::string spec;
 						std::string resolution;
 						std::string resolution;
+						std::string name;
 					};
 					};
 					std::string status;
 					std::string status;
 					std::string serverId;
 					std::string serverId;
 					std::string state;
 					std::string state;
 					std::string expiredTime;
 					std::string expiredTime;
+					std::string latestAction;
 					std::string creationTime;
 					std::string creationTime;
 					std::string specName;
 					std::string specName;
+					std::string _namespace;
 					std::vector<ServersItem::AICInstancesItem> aICInstances;
 					std::vector<ServersItem::AICInstancesItem> aICInstances;
+					std::string payType;
 					std::string ensRegionId;
 					std::string ensRegionId;
+					std::string name;
 				};
 				};
 
 
 
 

+ 42 - 0
ens/include/alibabacloud/ens/model/DescribeEnsCommodityCodeRequest.h

@@ -0,0 +1,42 @@
+/*
+ * 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_ENS_MODEL_DESCRIBEENSCOMMODITYCODEREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEENSCOMMODITYCODEREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT DescribeEnsCommodityCodeRequest : public RpcServiceRequest {
+public:
+	DescribeEnsCommodityCodeRequest();
+	~DescribeEnsCommodityCodeRequest();
+	std::string getCommodityCode() const;
+	void setCommodityCode(const std::string &commodityCode);
+
+private:
+	std::string commodityCode_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEENSCOMMODITYCODEREQUEST_H_

+ 56 - 0
ens/include/alibabacloud/ens/model/DescribeEnsCommodityCodeResult.h

@@ -0,0 +1,56 @@
+/*
+ * 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_ENS_MODEL_DESCRIBEENSCOMMODITYCODERESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEENSCOMMODITYCODERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT DescribeEnsCommodityCodeResult : public ServiceResult
+			{
+			public:
+				struct CommodityCodeInfoItem
+				{
+					std::string commodityCode;
+					std::string commodityName;
+				};
+
+
+				DescribeEnsCommodityCodeResult();
+				explicit DescribeEnsCommodityCodeResult(const std::string &payload);
+				~DescribeEnsCommodityCodeResult();
+				std::vector<CommodityCodeInfoItem> getCommodityCodeInfo()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<CommodityCodeInfoItem> commodityCodeInfo_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEENSCOMMODITYCODERESULT_H_

+ 45 - 0
ens/include/alibabacloud/ens/model/DescribeEnsCommodityModuleCodeRequest.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_ENS_MODEL_DESCRIBEENSCOMMODITYMODULECODEREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEENSCOMMODITYMODULECODEREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT DescribeEnsCommodityModuleCodeRequest : public RpcServiceRequest {
+public:
+	DescribeEnsCommodityModuleCodeRequest();
+	~DescribeEnsCommodityModuleCodeRequest();
+	std::string getCommodityCode() const;
+	void setCommodityCode(const std::string &commodityCode);
+	std::string getModuleCode() const;
+	void setModuleCode(const std::string &moduleCode);
+
+private:
+	std::string commodityCode_;
+	std::string moduleCode_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEENSCOMMODITYMODULECODEREQUEST_H_

+ 61 - 0
ens/include/alibabacloud/ens/model/DescribeEnsCommodityModuleCodeResult.h

@@ -0,0 +1,61 @@
+/*
+ * 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_ENS_MODEL_DESCRIBEENSCOMMODITYMODULECODERESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEENSCOMMODITYMODULECODERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT DescribeEnsCommodityModuleCodeResult : public ServiceResult
+			{
+			public:
+				struct CommodityCodesInfoItem
+				{
+					struct ModuleCodesInfoItem
+					{
+						std::string moduleCode;
+						std::string moduleName;
+					};
+					std::vector<CommodityCodesInfoItem::ModuleCodesInfoItem> moduleCodesInfo;
+					std::string commodityCode;
+				};
+
+
+				DescribeEnsCommodityModuleCodeResult();
+				explicit DescribeEnsCommodityModuleCodeResult(const std::string &payload);
+				~DescribeEnsCommodityModuleCodeResult();
+				std::vector<CommodityCodesInfoItem> getCommodityCodesInfo()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<CommodityCodesInfoItem> commodityCodesInfo_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEENSCOMMODITYMODULECODERESULT_H_

+ 45 - 0
ens/include/alibabacloud/ens/model/DescribeEnsSaleControlAvailableResourceRequest.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_ENS_MODEL_DESCRIBEENSSALECONTROLAVAILABLERESOURCEREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEENSSALECONTROLAVAILABLERESOURCEREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT DescribeEnsSaleControlAvailableResourceRequest : public RpcServiceRequest {
+public:
+	DescribeEnsSaleControlAvailableResourceRequest();
+	~DescribeEnsSaleControlAvailableResourceRequest();
+	std::string getCommodityCode() const;
+	void setCommodityCode(const std::string &commodityCode);
+	std::string getOrderType() const;
+	void setOrderType(const std::string &orderType);
+
+private:
+	std::string commodityCode_;
+	std::string orderType_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEENSSALECONTROLAVAILABLERESOURCEREQUEST_H_

+ 49 - 0
ens/include/alibabacloud/ens/model/DescribeEnsSaleControlAvailableResourceResult.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_ENS_MODEL_DESCRIBEENSSALECONTROLAVAILABLERESOURCERESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEENSSALECONTROLAVAILABLERESOURCERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT DescribeEnsSaleControlAvailableResourceResult : public ServiceResult
+			{
+			public:
+
+
+				DescribeEnsSaleControlAvailableResourceResult();
+				explicit DescribeEnsSaleControlAvailableResourceResult(const std::string &payload);
+				~DescribeEnsSaleControlAvailableResourceResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEENSSALECONTROLAVAILABLERESOURCERESULT_H_

+ 51 - 0
ens/include/alibabacloud/ens/model/DescribeEnsSaleControlRequest.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ENS_MODEL_DESCRIBEENSSALECONTROLREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEENSSALECONTROLREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT DescribeEnsSaleControlRequest : public RpcServiceRequest {
+public:
+	DescribeEnsSaleControlRequest();
+	~DescribeEnsSaleControlRequest();
+	std::string getCommodityCode() const;
+	void setCommodityCode(const std::string &commodityCode);
+	std::string getModuleCode() const;
+	void setModuleCode(const std::string &moduleCode);
+	std::string getAliUidAccount() const;
+	void setAliUidAccount(const std::string &aliUidAccount);
+	std::string getOrderType() const;
+	void setOrderType(const std::string &orderType);
+
+private:
+	std::string commodityCode_;
+	std::string moduleCode_;
+	std::string aliUidAccount_;
+	std::string orderType_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEENSSALECONTROLREQUEST_H_

+ 97 - 0
ens/include/alibabacloud/ens/model/DescribeEnsSaleControlResult.h

@@ -0,0 +1,97 @@
+/*
+ * 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_ENS_MODEL_DESCRIBEENSSALECONTROLRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEENSSALECONTROLRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT DescribeEnsSaleControlResult : public ServiceResult
+			{
+			public:
+				struct SaleControlItem
+				{
+					struct SaleControlItemsItem
+					{
+						struct SaleControlItem1
+						{
+							struct BasicSaleControl
+							{
+								struct ModuleValue3
+								{
+									std::vector<std::string> moduleValue4;
+									std::string moduleMaxValue;
+									std::string moduleMinValue;
+								};
+								ModuleValue3 moduleValue3;
+								std::string description;
+								std::string _operator;
+							};
+							struct ConditionSaleControlItem
+							{
+								struct ConditionControl
+								{
+									std::string conditionControlModuleCode;
+									std::string conditionControlModuleValue;
+								};
+								struct ModuleValue
+								{
+									std::vector<std::string> moduleValue2;
+									std::string moduleMaxValue;
+									std::string moduleMinValue;
+								};
+								std::string description;
+								ConditionControl conditionControl;
+								std::string _operator;
+								ModuleValue moduleValue;
+							};
+							BasicSaleControl basicSaleControl;
+							std::vector<ConditionSaleControlItem> conditionSaleControl;
+						};
+						SaleControlItem1 saleControlItem1;
+						std::string moduleCode;
+					};
+					std::vector<SaleControlItem::SaleControlItemsItem> saleControlItems;
+					std::string orderType;
+					std::string commodityCode;
+				};
+
+
+				DescribeEnsSaleControlResult();
+				explicit DescribeEnsSaleControlResult(const std::string &payload);
+				~DescribeEnsSaleControlResult();
+				std::vector<SaleControlItem> getSaleControl()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<SaleControlItem> saleControl_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEENSSALECONTROLRESULT_H_

+ 51 - 0
ens/include/alibabacloud/ens/model/DescribeEnsSaleControlStockRequest.h

@@ -0,0 +1,51 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ENS_MODEL_DESCRIBEENSSALECONTROLSTOCKREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEENSSALECONTROLSTOCKREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT DescribeEnsSaleControlStockRequest : public RpcServiceRequest {
+public:
+	DescribeEnsSaleControlStockRequest();
+	~DescribeEnsSaleControlStockRequest();
+	std::string getCommodityCode() const;
+	void setCommodityCode(const std::string &commodityCode);
+	std::string getModuleCode() const;
+	void setModuleCode(const std::string &moduleCode);
+	std::string getAliUidAccount() const;
+	void setAliUidAccount(const std::string &aliUidAccount);
+	std::string getOrderType() const;
+	void setOrderType(const std::string &orderType);
+
+private:
+	std::string commodityCode_;
+	std::string moduleCode_;
+	std::string aliUidAccount_;
+	std::string orderType_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEENSSALECONTROLSTOCKREQUEST_H_

+ 93 - 0
ens/include/alibabacloud/ens/model/DescribeEnsSaleControlStockResult.h

@@ -0,0 +1,93 @@
+/*
+ * 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_ENS_MODEL_DESCRIBEENSSALECONTROLSTOCKRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEENSSALECONTROLSTOCKRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT DescribeEnsSaleControlStockResult : public ServiceResult
+			{
+			public:
+				struct SaleControlItem
+				{
+					struct SaleControlItemsItem
+					{
+						struct SaleControlItem1
+						{
+							struct BasicSaleControl
+							{
+								struct ModuleValue2
+								{
+									std::string moduleMaxValue;
+									std::string moduleMinValue;
+								};
+								ModuleValue2 moduleValue2;
+								std::string stockValue;
+							};
+							struct ConditionSaleControlItem
+							{
+								struct ConditionControl
+								{
+									std::string conditionControlModuleCode;
+									std::string conditionControlModuleValue;
+								};
+								struct ModuleValue
+								{
+									std::string moduleMaxValue;
+									std::string moduleMinValue;
+								};
+								std::string stockValue;
+								ConditionControl conditionControl;
+								ModuleValue moduleValue;
+							};
+							BasicSaleControl basicSaleControl;
+							std::vector<ConditionSaleControlItem> conditionSaleControl;
+						};
+						SaleControlItem1 saleControlItem1;
+						std::string moduleCode;
+					};
+					std::vector<SaleControlItem::SaleControlItemsItem> saleControlItems;
+					std::string orderType;
+					std::string commodityCode;
+				};
+
+
+				DescribeEnsSaleControlStockResult();
+				explicit DescribeEnsSaleControlStockResult(const std::string &payload);
+				~DescribeEnsSaleControlStockResult();
+				std::vector<SaleControlItem> getSaleControl()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<SaleControlItem> saleControl_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEENSSALECONTROLSTOCKRESULT_H_

+ 42 - 0
ens/include/alibabacloud/ens/model/DescribeRegionBandwidthQuotaRequest.h

@@ -0,0 +1,42 @@
+/*
+ * 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_ENS_MODEL_DESCRIBEREGIONBANDWIDTHQUOTAREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEREGIONBANDWIDTHQUOTAREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT DescribeRegionBandwidthQuotaRequest : public RpcServiceRequest {
+public:
+	DescribeRegionBandwidthQuotaRequest();
+	~DescribeRegionBandwidthQuotaRequest();
+	std::string getRegionId() const;
+	void setRegionId(const std::string &regionId);
+
+private:
+	std::string regionId_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEREGIONBANDWIDTHQUOTAREQUEST_H_

+ 70 - 0
ens/include/alibabacloud/ens/model/DescribeRegionBandwidthQuotaResult.h

@@ -0,0 +1,70 @@
+/*
+ * 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_ENS_MODEL_DESCRIBEREGIONBANDWIDTHQUOTARESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBEREGIONBANDWIDTHQUOTARESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT DescribeRegionBandwidthQuotaResult : public ServiceResult
+			{
+			public:
+				struct 带宽配额
+				{
+					struct BandwidthInfo
+					{
+						long monthAverageQuota;
+						long monthMax;
+						long weekAverageQuota;
+						long weekMax;
+					};
+					struct 实例信息
+					{
+						long instanceNumber;
+						std::string instanceSpec;
+					};
+					BandwidthInfo bandwidthInfo;
+					std::string regionId;
+					std::vector<带宽配额::实例信息> instanceInfo;
+					std::string date;
+				};
+
+
+				DescribeRegionBandwidthQuotaResult();
+				explicit DescribeRegionBandwidthQuotaResult(const std::string &payload);
+				~DescribeRegionBandwidthQuotaResult();
+				std::vector<带宽配额> getBandwidthQuota()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<带宽配额> bandwidthQuota_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBEREGIONBANDWIDTHQUOTARESULT_H_

+ 42 - 0
ens/include/alibabacloud/ens/model/DescribeSnatAttributeRequest.h

@@ -0,0 +1,42 @@
+/*
+ * 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_ENS_MODEL_DESCRIBESNATATTRIBUTEREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBESNATATTRIBUTEREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT DescribeSnatAttributeRequest : public RpcServiceRequest {
+public:
+	DescribeSnatAttributeRequest();
+	~DescribeSnatAttributeRequest();
+	std::string getSnatEntryId() const;
+	void setSnatEntryId(const std::string &snatEntryId);
+
+private:
+	std::string snatEntryId_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBESNATATTRIBUTEREQUEST_H_

+ 71 - 0
ens/include/alibabacloud/ens/model/DescribeSnatAttributeResult.h

@@ -0,0 +1,71 @@
+/*
+ * 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_ENS_MODEL_DESCRIBESNATATTRIBUTERESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_DESCRIBESNATATTRIBUTERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT DescribeSnatAttributeResult : public ServiceResult
+			{
+			public:
+				struct Snatip
+				{
+					std::string status;
+					std::string ip;
+					std::string creationTime;
+				};
+
+
+				DescribeSnatAttributeResult();
+				explicit DescribeSnatAttributeResult(const std::string &payload);
+				~DescribeSnatAttributeResult();
+				std::string getStatus()const;
+				std::string getSnatEntryName()const;
+				std::string getSourceCIDR()const;
+				std::string getCreationTime()const;
+				std::vector<Snatip> getSnatIps()const;
+				std::string getSnatEntryId()const;
+				std::string getSnatIp()const;
+				std::string getNatGatewayId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string status_;
+				std::string snatEntryName_;
+				std::string sourceCIDR_;
+				std::string creationTime_;
+				std::vector<Snatip> snatIps_;
+				std::string snatEntryId_;
+				std::string snatIp_;
+				std::string natGatewayId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_DESCRIBESNATATTRIBUTERESULT_H_

+ 3 - 0
ens/include/alibabacloud/ens/model/RebootAICInstanceRequest.h

@@ -34,10 +34,13 @@ public:
 	void setServerId(const std::string &serverId);
 	void setServerId(const std::string &serverId);
 	std::string getInstanceId() const;
 	std::string getInstanceId() const;
 	void setInstanceId(const std::string &instanceId);
 	void setInstanceId(const std::string &instanceId);
+	std::vector<std::string> getInstanceIds() const;
+	void setInstanceIds(const std::vector<std::string> &instanceIds);
 
 
 private:
 private:
 	std::string serverId_;
 	std::string serverId_;
 	std::string instanceId_;
 	std::string instanceId_;
+	std::vector<std::string> instanceIds_;
 };
 };
 } // namespace Model
 } // namespace Model
 } // namespace Ens
 } // namespace Ens

+ 3 - 0
ens/include/alibabacloud/ens/model/RebootARMServerInstanceRequest.h

@@ -32,9 +32,12 @@ public:
 	~RebootARMServerInstanceRequest();
 	~RebootARMServerInstanceRequest();
 	std::string getServerId() const;
 	std::string getServerId() const;
 	void setServerId(const std::string &serverId);
 	void setServerId(const std::string &serverId);
+	std::vector<std::string> getServerIds() const;
+	void setServerIds(const std::vector<std::string> &serverIds);
 
 
 private:
 private:
 	std::string serverId_;
 	std::string serverId_;
+	std::vector<std::string> serverIds_;
 };
 };
 } // namespace Model
 } // namespace Model
 } // namespace Ens
 } // namespace Ens

+ 3 - 0
ens/include/alibabacloud/ens/model/ResetAICInstanceRequest.h

@@ -34,10 +34,13 @@ public:
 	void setServerId(const std::string &serverId);
 	void setServerId(const std::string &serverId);
 	std::string getInstanceId() const;
 	std::string getInstanceId() const;
 	void setInstanceId(const std::string &instanceId);
 	void setInstanceId(const std::string &instanceId);
+	std::vector<std::string> getInstanceIds() const;
+	void setInstanceIds(const std::vector<std::string> &instanceIds);
 
 
 private:
 private:
 	std::string serverId_;
 	std::string serverId_;
 	std::string instanceId_;
 	std::string instanceId_;
+	std::vector<std::string> instanceIds_;
 };
 };
 } // namespace Model
 } // namespace Model
 } // namespace Ens
 } // namespace Ens

+ 3 - 0
ens/include/alibabacloud/ens/model/RunInstancesRequest.h

@@ -41,6 +41,8 @@ public:
 	void setScheduleAreaLevel(const std::string &scheduleAreaLevel);
 	void setScheduleAreaLevel(const std::string &scheduleAreaLevel);
 	bool getUniqueSuffix() const;
 	bool getUniqueSuffix() const;
 	void setUniqueSuffix(bool uniqueSuffix);
 	void setUniqueSuffix(bool uniqueSuffix);
+	std::string getInstanceChargeStrategy() const;
+	void setInstanceChargeStrategy(const std::string &instanceChargeStrategy);
 	std::string getSecurityId() const;
 	std::string getSecurityId() const;
 	void setSecurityId(const std::string &securityId);
 	void setSecurityId(const std::string &securityId);
 	std::string getKeyPairName() const;
 	std::string getKeyPairName() const;
@@ -99,6 +101,7 @@ public:
 private:
 private:
 	std::string scheduleAreaLevel_;
 	std::string scheduleAreaLevel_;
 	bool uniqueSuffix_;
 	bool uniqueSuffix_;
+	std::string instanceChargeStrategy_;
 	std::string securityId_;
 	std::string securityId_;
 	std::string keyPairName_;
 	std::string keyPairName_;
 	std::string password_;
 	std::string password_;

+ 45 - 0
ens/include/alibabacloud/ens/model/StartSnatIpForSnatEntryRequest.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_ENS_MODEL_STARTSNATIPFORSNATENTRYREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_STARTSNATIPFORSNATENTRYREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT StartSnatIpForSnatEntryRequest : public RpcServiceRequest {
+public:
+	StartSnatIpForSnatEntryRequest();
+	~StartSnatIpForSnatEntryRequest();
+	std::string getSnatIp() const;
+	void setSnatIp(const std::string &snatIp);
+	std::string getSnatEntryId() const;
+	void setSnatEntryId(const std::string &snatEntryId);
+
+private:
+	std::string snatIp_;
+	std::string snatEntryId_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_STARTSNATIPFORSNATENTRYREQUEST_H_

+ 49 - 0
ens/include/alibabacloud/ens/model/StartSnatIpForSnatEntryResult.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_ENS_MODEL_STARTSNATIPFORSNATENTRYRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_STARTSNATIPFORSNATENTRYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT StartSnatIpForSnatEntryResult : public ServiceResult
+			{
+			public:
+
+
+				StartSnatIpForSnatEntryResult();
+				explicit StartSnatIpForSnatEntryResult(const std::string &payload);
+				~StartSnatIpForSnatEntryResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_STARTSNATIPFORSNATENTRYRESULT_H_

+ 45 - 0
ens/include/alibabacloud/ens/model/StopSnatIpForSnatEntryRequest.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_ENS_MODEL_STOPSNATIPFORSNATENTRYREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_STOPSNATIPFORSNATENTRYREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT StopSnatIpForSnatEntryRequest : public RpcServiceRequest {
+public:
+	StopSnatIpForSnatEntryRequest();
+	~StopSnatIpForSnatEntryRequest();
+	std::string getSnatIp() const;
+	void setSnatIp(const std::string &snatIp);
+	std::string getSnatEntryId() const;
+	void setSnatEntryId(const std::string &snatEntryId);
+
+private:
+	std::string snatIp_;
+	std::string snatEntryId_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_STOPSNATIPFORSNATENTRYREQUEST_H_

+ 49 - 0
ens/include/alibabacloud/ens/model/StopSnatIpForSnatEntryResult.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_ENS_MODEL_STOPSNATIPFORSNATENTRYRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_STOPSNATIPFORSNATENTRYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT StopSnatIpForSnatEntryResult : public ServiceResult
+			{
+			public:
+
+
+				StopSnatIpForSnatEntryResult();
+				explicit StopSnatIpForSnatEntryResult(const std::string &payload);
+				~StopSnatIpForSnatEntryResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_STOPSNATIPFORSNATENTRYRESULT_H_

+ 67 - 0
ens/include/alibabacloud/ens/model/UpdateEnsSaleControlRequest.h

@@ -0,0 +1,67 @@
+/*
+ * 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_ENS_MODEL_UPDATEENSSALECONTROLREQUEST_H_
+#define ALIBABACLOUD_ENS_MODEL_UPDATEENSSALECONTROLREQUEST_H_
+
+#include <alibabacloud/ens/EnsExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Ens {
+namespace Model {
+class ALIBABACLOUD_ENS_EXPORT UpdateEnsSaleControlRequest : public RpcServiceRequest {
+public:
+	struct SaleControls {
+		std::string moduleCode;
+		struct ModuleValue {
+			std::string string;
+			std::vector<std::string> moduleValue;
+			std::string moduleMaxValue;
+			std::string moduleMinValue;
+		};
+		ModuleValue moduleValue;
+		struct ConditionControlsItem {
+			std::string conditionControlModuleValue;
+			std::string conditionControlModuleCode;
+		};
+		ConditionControlsItem conditionControlsItem;
+		std::vector<ConditionControlsItem> conditionControls;
+		std::string description;
+		std::string _operator;
+		std::string orderType;
+	};
+	UpdateEnsSaleControlRequest();
+	~UpdateEnsSaleControlRequest();
+	std::vector<SaleControls> getSaleControls() const;
+	void setSaleControls(const std::vector<SaleControls> &saleControls);
+	std::string getCommodityCode() const;
+	void setCommodityCode(const std::string &commodityCode);
+	std::string getAliUidAccount() const;
+	void setAliUidAccount(const std::string &aliUidAccount);
+
+private:
+	std::vector<SaleControls> saleControls_;
+	std::string commodityCode_;
+	std::string aliUidAccount_;
+};
+} // namespace Model
+} // namespace Ens
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_ENS_MODEL_UPDATEENSSALECONTROLREQUEST_H_

+ 49 - 0
ens/include/alibabacloud/ens/model/UpdateEnsSaleControlResult.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_ENS_MODEL_UPDATEENSSALECONTROLRESULT_H_
+#define ALIBABACLOUD_ENS_MODEL_UPDATEENSSALECONTROLRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/ens/EnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Ens
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ENS_EXPORT UpdateEnsSaleControlResult : public ServiceResult
+			{
+			public:
+
+
+				UpdateEnsSaleControlResult();
+				explicit UpdateEnsSaleControlResult(const std::string &payload);
+				~UpdateEnsSaleControlResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ENS_MODEL_UPDATEENSSALECONTROLRESULT_H_

+ 540 - 0
ens/src/EnsClient.cc

@@ -195,6 +195,42 @@ EnsClient::AddNetworkInterfaceToInstanceOutcomeCallable EnsClient::addNetworkInt
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+EnsClient::AddSnatIpForSnatEntryOutcome EnsClient::addSnatIpForSnatEntry(const AddSnatIpForSnatEntryRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return AddSnatIpForSnatEntryOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return AddSnatIpForSnatEntryOutcome(AddSnatIpForSnatEntryResult(outcome.result()));
+	else
+		return AddSnatIpForSnatEntryOutcome(outcome.error());
+}
+
+void EnsClient::addSnatIpForSnatEntryAsync(const AddSnatIpForSnatEntryRequest& request, const AddSnatIpForSnatEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, addSnatIpForSnatEntry(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::AddSnatIpForSnatEntryOutcomeCallable EnsClient::addSnatIpForSnatEntryCallable(const AddSnatIpForSnatEntryRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<AddSnatIpForSnatEntryOutcome()>>(
+			[this, request]()
+			{
+			return this->addSnatIpForSnatEntry(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::AssignPrivateIpAddressesOutcome EnsClient::assignPrivateIpAddresses(const AssignPrivateIpAddressesRequest &request) const
 EnsClient::AssignPrivateIpAddressesOutcome EnsClient::assignPrivateIpAddresses(const AssignPrivateIpAddressesRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -663,6 +699,42 @@ EnsClient::CreateEnsRouteEntryOutcomeCallable EnsClient::createEnsRouteEntryCall
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+EnsClient::CreateEnsSaleControlOutcome EnsClient::createEnsSaleControl(const CreateEnsSaleControlRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateEnsSaleControlOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateEnsSaleControlOutcome(CreateEnsSaleControlResult(outcome.result()));
+	else
+		return CreateEnsSaleControlOutcome(outcome.error());
+}
+
+void EnsClient::createEnsSaleControlAsync(const CreateEnsSaleControlRequest& request, const CreateEnsSaleControlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createEnsSaleControl(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::CreateEnsSaleControlOutcomeCallable EnsClient::createEnsSaleControlCallable(const CreateEnsSaleControlRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateEnsSaleControlOutcome()>>(
+			[this, request]()
+			{
+			return this->createEnsSaleControl(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::CreateEnsServiceOutcome EnsClient::createEnsService(const CreateEnsServiceRequest &request) const
 EnsClient::CreateEnsServiceOutcome EnsClient::createEnsService(const CreateEnsServiceRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1563,6 +1635,78 @@ EnsClient::DeleteEnsRouteEntryOutcomeCallable EnsClient::deleteEnsRouteEntryCall
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+EnsClient::DeleteEnsSaleConditionControlOutcome EnsClient::deleteEnsSaleConditionControl(const DeleteEnsSaleConditionControlRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteEnsSaleConditionControlOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteEnsSaleConditionControlOutcome(DeleteEnsSaleConditionControlResult(outcome.result()));
+	else
+		return DeleteEnsSaleConditionControlOutcome(outcome.error());
+}
+
+void EnsClient::deleteEnsSaleConditionControlAsync(const DeleteEnsSaleConditionControlRequest& request, const DeleteEnsSaleConditionControlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteEnsSaleConditionControl(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::DeleteEnsSaleConditionControlOutcomeCallable EnsClient::deleteEnsSaleConditionControlCallable(const DeleteEnsSaleConditionControlRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteEnsSaleConditionControlOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteEnsSaleConditionControl(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+EnsClient::DeleteEnsSaleControlOutcome EnsClient::deleteEnsSaleControl(const DeleteEnsSaleControlRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteEnsSaleControlOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteEnsSaleControlOutcome(DeleteEnsSaleControlResult(outcome.result()));
+	else
+		return DeleteEnsSaleControlOutcome(outcome.error());
+}
+
+void EnsClient::deleteEnsSaleControlAsync(const DeleteEnsSaleControlRequest& request, const DeleteEnsSaleControlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteEnsSaleControl(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::DeleteEnsSaleControlOutcomeCallable EnsClient::deleteEnsSaleControlCallable(const DeleteEnsSaleControlRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteEnsSaleControlOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteEnsSaleControl(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::DeleteEpnInstanceOutcome EnsClient::deleteEpnInstance(const DeleteEpnInstanceRequest &request) const
 EnsClient::DeleteEpnInstanceOutcome EnsClient::deleteEpnInstance(const DeleteEpnInstanceRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2031,6 +2175,42 @@ EnsClient::DeleteSnatEntryOutcomeCallable EnsClient::deleteSnatEntryCallable(con
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+EnsClient::DeleteSnatIpForSnatEntryOutcome EnsClient::deleteSnatIpForSnatEntry(const DeleteSnatIpForSnatEntryRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteSnatIpForSnatEntryOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteSnatIpForSnatEntryOutcome(DeleteSnatIpForSnatEntryResult(outcome.result()));
+	else
+		return DeleteSnatIpForSnatEntryOutcome(outcome.error());
+}
+
+void EnsClient::deleteSnatIpForSnatEntryAsync(const DeleteSnatIpForSnatEntryRequest& request, const DeleteSnatIpForSnatEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteSnatIpForSnatEntry(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::DeleteSnatIpForSnatEntryOutcomeCallable EnsClient::deleteSnatIpForSnatEntryCallable(const DeleteSnatIpForSnatEntryRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteSnatIpForSnatEntryOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteSnatIpForSnatEntry(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::DeleteVSwitchOutcome EnsClient::deleteVSwitch(const DeleteVSwitchRequest &request) const
 EnsClient::DeleteVSwitchOutcome EnsClient::deleteVSwitch(const DeleteVSwitchRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2715,6 +2895,78 @@ EnsClient::DescribeElbAvailableResourceInfoOutcomeCallable EnsClient::describeEl
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+EnsClient::DescribeEnsCommodityCodeOutcome EnsClient::describeEnsCommodityCode(const DescribeEnsCommodityCodeRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeEnsCommodityCodeOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeEnsCommodityCodeOutcome(DescribeEnsCommodityCodeResult(outcome.result()));
+	else
+		return DescribeEnsCommodityCodeOutcome(outcome.error());
+}
+
+void EnsClient::describeEnsCommodityCodeAsync(const DescribeEnsCommodityCodeRequest& request, const DescribeEnsCommodityCodeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeEnsCommodityCode(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::DescribeEnsCommodityCodeOutcomeCallable EnsClient::describeEnsCommodityCodeCallable(const DescribeEnsCommodityCodeRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeEnsCommodityCodeOutcome()>>(
+			[this, request]()
+			{
+			return this->describeEnsCommodityCode(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+EnsClient::DescribeEnsCommodityModuleCodeOutcome EnsClient::describeEnsCommodityModuleCode(const DescribeEnsCommodityModuleCodeRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeEnsCommodityModuleCodeOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeEnsCommodityModuleCodeOutcome(DescribeEnsCommodityModuleCodeResult(outcome.result()));
+	else
+		return DescribeEnsCommodityModuleCodeOutcome(outcome.error());
+}
+
+void EnsClient::describeEnsCommodityModuleCodeAsync(const DescribeEnsCommodityModuleCodeRequest& request, const DescribeEnsCommodityModuleCodeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeEnsCommodityModuleCode(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::DescribeEnsCommodityModuleCodeOutcomeCallable EnsClient::describeEnsCommodityModuleCodeCallable(const DescribeEnsCommodityModuleCodeRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeEnsCommodityModuleCodeOutcome()>>(
+			[this, request]()
+			{
+			return this->describeEnsCommodityModuleCode(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::DescribeEnsEipAddressesOutcome EnsClient::describeEnsEipAddresses(const DescribeEnsEipAddressesRequest &request) const
 EnsClient::DescribeEnsEipAddressesOutcome EnsClient::describeEnsEipAddresses(const DescribeEnsEipAddressesRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -3039,6 +3291,114 @@ EnsClient::DescribeEnsRouteEntryListOutcomeCallable EnsClient::describeEnsRouteE
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+EnsClient::DescribeEnsSaleControlOutcome EnsClient::describeEnsSaleControl(const DescribeEnsSaleControlRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeEnsSaleControlOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeEnsSaleControlOutcome(DescribeEnsSaleControlResult(outcome.result()));
+	else
+		return DescribeEnsSaleControlOutcome(outcome.error());
+}
+
+void EnsClient::describeEnsSaleControlAsync(const DescribeEnsSaleControlRequest& request, const DescribeEnsSaleControlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeEnsSaleControl(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::DescribeEnsSaleControlOutcomeCallable EnsClient::describeEnsSaleControlCallable(const DescribeEnsSaleControlRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeEnsSaleControlOutcome()>>(
+			[this, request]()
+			{
+			return this->describeEnsSaleControl(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+EnsClient::DescribeEnsSaleControlAvailableResourceOutcome EnsClient::describeEnsSaleControlAvailableResource(const DescribeEnsSaleControlAvailableResourceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeEnsSaleControlAvailableResourceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeEnsSaleControlAvailableResourceOutcome(DescribeEnsSaleControlAvailableResourceResult(outcome.result()));
+	else
+		return DescribeEnsSaleControlAvailableResourceOutcome(outcome.error());
+}
+
+void EnsClient::describeEnsSaleControlAvailableResourceAsync(const DescribeEnsSaleControlAvailableResourceRequest& request, const DescribeEnsSaleControlAvailableResourceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeEnsSaleControlAvailableResource(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::DescribeEnsSaleControlAvailableResourceOutcomeCallable EnsClient::describeEnsSaleControlAvailableResourceCallable(const DescribeEnsSaleControlAvailableResourceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeEnsSaleControlAvailableResourceOutcome()>>(
+			[this, request]()
+			{
+			return this->describeEnsSaleControlAvailableResource(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+EnsClient::DescribeEnsSaleControlStockOutcome EnsClient::describeEnsSaleControlStock(const DescribeEnsSaleControlStockRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeEnsSaleControlStockOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeEnsSaleControlStockOutcome(DescribeEnsSaleControlStockResult(outcome.result()));
+	else
+		return DescribeEnsSaleControlStockOutcome(outcome.error());
+}
+
+void EnsClient::describeEnsSaleControlStockAsync(const DescribeEnsSaleControlStockRequest& request, const DescribeEnsSaleControlStockAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeEnsSaleControlStock(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::DescribeEnsSaleControlStockOutcomeCallable EnsClient::describeEnsSaleControlStockCallable(const DescribeEnsSaleControlStockRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeEnsSaleControlStockOutcome()>>(
+			[this, request]()
+			{
+			return this->describeEnsSaleControlStock(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::DescribeEpnBandWidthDataOutcome EnsClient::describeEpnBandWidthData(const DescribeEpnBandWidthDataRequest &request) const
 EnsClient::DescribeEpnBandWidthDataOutcome EnsClient::describeEpnBandWidthData(const DescribeEpnBandWidthDataRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -4335,6 +4695,42 @@ EnsClient::DescribePriceOutcomeCallable EnsClient::describePriceCallable(const D
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+EnsClient::DescribeRegionBandwidthQuotaOutcome EnsClient::describeRegionBandwidthQuota(const DescribeRegionBandwidthQuotaRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeRegionBandwidthQuotaOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeRegionBandwidthQuotaOutcome(DescribeRegionBandwidthQuotaResult(outcome.result()));
+	else
+		return DescribeRegionBandwidthQuotaOutcome(outcome.error());
+}
+
+void EnsClient::describeRegionBandwidthQuotaAsync(const DescribeRegionBandwidthQuotaRequest& request, const DescribeRegionBandwidthQuotaAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeRegionBandwidthQuota(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::DescribeRegionBandwidthQuotaOutcomeCallable EnsClient::describeRegionBandwidthQuotaCallable(const DescribeRegionBandwidthQuotaRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeRegionBandwidthQuotaOutcome()>>(
+			[this, request]()
+			{
+			return this->describeRegionBandwidthQuota(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::DescribeRegionIspsOutcome EnsClient::describeRegionIsps(const DescribeRegionIspsRequest &request) const
 EnsClient::DescribeRegionIspsOutcome EnsClient::describeRegionIsps(const DescribeRegionIspsRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -4623,6 +5019,42 @@ EnsClient::DescribeServcieScheduleOutcomeCallable EnsClient::describeServcieSche
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+EnsClient::DescribeSnatAttributeOutcome EnsClient::describeSnatAttribute(const DescribeSnatAttributeRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeSnatAttributeOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeSnatAttributeOutcome(DescribeSnatAttributeResult(outcome.result()));
+	else
+		return DescribeSnatAttributeOutcome(outcome.error());
+}
+
+void EnsClient::describeSnatAttributeAsync(const DescribeSnatAttributeRequest& request, const DescribeSnatAttributeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeSnatAttribute(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::DescribeSnatAttributeOutcomeCallable EnsClient::describeSnatAttributeCallable(const DescribeSnatAttributeRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeSnatAttributeOutcome()>>(
+			[this, request]()
+			{
+			return this->describeSnatAttribute(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::DescribeSnatTableEntriesOutcome EnsClient::describeSnatTableEntries(const DescribeSnatTableEntriesRequest &request) const
 EnsClient::DescribeSnatTableEntriesOutcome EnsClient::describeSnatTableEntries(const DescribeSnatTableEntriesRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -7179,6 +7611,42 @@ EnsClient::StartLoadBalancerListenerOutcomeCallable EnsClient::startLoadBalancer
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+EnsClient::StartSnatIpForSnatEntryOutcome EnsClient::startSnatIpForSnatEntry(const StartSnatIpForSnatEntryRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return StartSnatIpForSnatEntryOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return StartSnatIpForSnatEntryOutcome(StartSnatIpForSnatEntryResult(outcome.result()));
+	else
+		return StartSnatIpForSnatEntryOutcome(outcome.error());
+}
+
+void EnsClient::startSnatIpForSnatEntryAsync(const StartSnatIpForSnatEntryRequest& request, const StartSnatIpForSnatEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, startSnatIpForSnatEntry(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::StartSnatIpForSnatEntryOutcomeCallable EnsClient::startSnatIpForSnatEntryCallable(const StartSnatIpForSnatEntryRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<StartSnatIpForSnatEntryOutcome()>>(
+			[this, request]()
+			{
+			return this->startSnatIpForSnatEntry(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::StopEpnInstanceOutcome EnsClient::stopEpnInstance(const StopEpnInstanceRequest &request) const
 EnsClient::StopEpnInstanceOutcome EnsClient::stopEpnInstance(const StopEpnInstanceRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -7323,6 +7791,42 @@ EnsClient::StopLoadBalancerListenerOutcomeCallable EnsClient::stopLoadBalancerLi
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+EnsClient::StopSnatIpForSnatEntryOutcome EnsClient::stopSnatIpForSnatEntry(const StopSnatIpForSnatEntryRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return StopSnatIpForSnatEntryOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return StopSnatIpForSnatEntryOutcome(StopSnatIpForSnatEntryResult(outcome.result()));
+	else
+		return StopSnatIpForSnatEntryOutcome(outcome.error());
+}
+
+void EnsClient::stopSnatIpForSnatEntryAsync(const StopSnatIpForSnatEntryRequest& request, const StopSnatIpForSnatEntryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, stopSnatIpForSnatEntry(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::StopSnatIpForSnatEntryOutcomeCallable EnsClient::stopSnatIpForSnatEntryCallable(const StopSnatIpForSnatEntryRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<StopSnatIpForSnatEntryOutcome()>>(
+			[this, request]()
+			{
+			return this->stopSnatIpForSnatEntry(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::UnAssociateEnsEipAddressOutcome EnsClient::unAssociateEnsEipAddress(const UnAssociateEnsEipAddressRequest &request) const
 EnsClient::UnAssociateEnsEipAddressOutcome EnsClient::unAssociateEnsEipAddress(const UnAssociateEnsEipAddressRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -7431,6 +7935,42 @@ EnsClient::UnassociateNetworkAclOutcomeCallable EnsClient::unassociateNetworkAcl
 	return task->get_future();
 	return task->get_future();
 }
 }
 
 
+EnsClient::UpdateEnsSaleControlOutcome EnsClient::updateEnsSaleControl(const UpdateEnsSaleControlRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateEnsSaleControlOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateEnsSaleControlOutcome(UpdateEnsSaleControlResult(outcome.result()));
+	else
+		return UpdateEnsSaleControlOutcome(outcome.error());
+}
+
+void EnsClient::updateEnsSaleControlAsync(const UpdateEnsSaleControlRequest& request, const UpdateEnsSaleControlAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateEnsSaleControl(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+EnsClient::UpdateEnsSaleControlOutcomeCallable EnsClient::updateEnsSaleControlCallable(const UpdateEnsSaleControlRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateEnsSaleControlOutcome()>>(
+			[this, request]()
+			{
+			return this->updateEnsSaleControl(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 EnsClient::UpgradeAICInstanceImageOutcome EnsClient::upgradeAICInstanceImage(const UpgradeAICInstanceImageRequest &request) const
 EnsClient::UpgradeAICInstanceImageOutcome EnsClient::upgradeAICInstanceImage(const UpgradeAICInstanceImageRequest &request) const
 {
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 45 - 0
ens/src/model/AddSnatIpForSnatEntryRequest.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/ens/model/AddSnatIpForSnatEntryRequest.h>
+
+using AlibabaCloud::Ens::Model::AddSnatIpForSnatEntryRequest;
+
+AddSnatIpForSnatEntryRequest::AddSnatIpForSnatEntryRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "AddSnatIpForSnatEntry") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+AddSnatIpForSnatEntryRequest::~AddSnatIpForSnatEntryRequest() {}
+
+std::string AddSnatIpForSnatEntryRequest::getSnatIp() const {
+  return snatIp_;
+}
+
+void AddSnatIpForSnatEntryRequest::setSnatIp(const std::string &snatIp) {
+  snatIp_ = snatIp;
+  setParameter(std::string("SnatIp"), snatIp);
+}
+
+std::string AddSnatIpForSnatEntryRequest::getSnatEntryId() const {
+  return snatEntryId_;
+}
+
+void AddSnatIpForSnatEntryRequest::setSnatEntryId(const std::string &snatEntryId) {
+  snatEntryId_ = snatEntryId;
+  setParameter(std::string("SnatEntryId"), snatEntryId);
+}
+

+ 44 - 0
ens/src/model/AddSnatIpForSnatEntryResult.cc

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

+ 9 - 0
ens/src/model/CreateARMServerInstancesRequest.cc

@@ -124,6 +124,15 @@ void CreateARMServerInstancesRequest::setAmount(int amount) {
   setParameter(std::string("Amount"), std::to_string(amount));
   setParameter(std::string("Amount"), std::to_string(amount));
 }
 }
 
 
+std::string CreateARMServerInstancesRequest::get_NameSpace() const {
+  return _nameSpace_;
+}
+
+void CreateARMServerInstancesRequest::set_NameSpace(const std::string &_nameSpace) {
+  _nameSpace_ = _nameSpace;
+  setParameter(std::string("NameSpace"), _nameSpace);
+}
+
 std::string CreateARMServerInstancesRequest::getPayType() const {
 std::string CreateARMServerInstancesRequest::getPayType() const {
   return payType_;
   return payType_;
 }
 }

+ 68 - 0
ens/src/model/CreateEnsSaleControlRequest.cc

@@ -0,0 +1,68 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ens/model/CreateEnsSaleControlRequest.h>
+
+using AlibabaCloud::Ens::Model::CreateEnsSaleControlRequest;
+
+CreateEnsSaleControlRequest::CreateEnsSaleControlRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "CreateEnsSaleControl") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateEnsSaleControlRequest::~CreateEnsSaleControlRequest() {}
+
+std::vector<CreateEnsSaleControlRequest::SaleControls> CreateEnsSaleControlRequest::getSaleControls() const {
+  return saleControls_;
+}
+
+void CreateEnsSaleControlRequest::setSaleControls(const std::vector<CreateEnsSaleControlRequest::SaleControls> &saleControls) {
+  saleControls_ = saleControls;
+  for(int dep1 = 0; dep1 != saleControls.size(); dep1++) {
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ModuleCode", saleControls[dep1].moduleCode);
+    for(int dep2 = 0; dep2 != saleControls[dep1].moduleValue.moduleValue.size(); dep2++) {
+      setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ModuleValue.ModuleValue." + std::to_string(dep2 + 1), saleControls[dep1].moduleValue.moduleValue[dep2]);
+    }
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ModuleValue.ModuleMaxValue", saleControls[dep1].moduleValue.moduleMaxValue);
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ModuleValue.ModuleMinValue", saleControls[dep1].moduleValue.moduleMinValue);
+    for(int dep2 = 0; dep2 != saleControls[dep1].conditionControls.size(); dep2++) {
+      setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ConditionControls." + std::to_string(dep2 + 1) + ".ConditionControlModuleValue", saleControls[dep1].conditionControls[dep2].conditionControlModuleValue);
+      setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ConditionControls." + std::to_string(dep2 + 1) + ".ConditionControlModuleCode", saleControls[dep1].conditionControls[dep2].conditionControlModuleCode);
+    }
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".Description", saleControls[dep1].description);
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".Operator", saleControls[dep1]._operator);
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".OrderType", saleControls[dep1].orderType);
+  }
+}
+
+std::string CreateEnsSaleControlRequest::getCommodityCode() const {
+  return commodityCode_;
+}
+
+void CreateEnsSaleControlRequest::setCommodityCode(const std::string &commodityCode) {
+  commodityCode_ = commodityCode;
+  setParameter(std::string("CommodityCode"), commodityCode);
+}
+
+std::string CreateEnsSaleControlRequest::getAliUidAccount() const {
+  return aliUidAccount_;
+}
+
+void CreateEnsSaleControlRequest::setAliUidAccount(const std::string &aliUidAccount) {
+  aliUidAccount_ = aliUidAccount;
+  setParameter(std::string("AliUidAccount"), aliUidAccount);
+}
+

+ 44 - 0
ens/src/model/CreateEnsSaleControlResult.cc

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

+ 61 - 0
ens/src/model/DeleteEnsSaleConditionControlRequest.cc

@@ -0,0 +1,61 @@
+/*
+ * 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/ens/model/DeleteEnsSaleConditionControlRequest.h>
+
+using AlibabaCloud::Ens::Model::DeleteEnsSaleConditionControlRequest;
+
+DeleteEnsSaleConditionControlRequest::DeleteEnsSaleConditionControlRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "DeleteEnsSaleConditionControl") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteEnsSaleConditionControlRequest::~DeleteEnsSaleConditionControlRequest() {}
+
+std::vector<DeleteEnsSaleConditionControlRequest::SaleControls> DeleteEnsSaleConditionControlRequest::getSaleControls() const {
+  return saleControls_;
+}
+
+void DeleteEnsSaleConditionControlRequest::setSaleControls(const std::vector<DeleteEnsSaleConditionControlRequest::SaleControls> &saleControls) {
+  saleControls_ = saleControls;
+  for(int dep1 = 0; dep1 != saleControls.size(); dep1++) {
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ModuleCode", saleControls[dep1].moduleCode);
+    for(int dep2 = 0; dep2 != saleControls[dep1].conditionControls.size(); dep2++) {
+      setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ConditionControls." + std::to_string(dep2 + 1) + ".ConditionControlModuleValue", saleControls[dep1].conditionControls[dep2].conditionControlModuleValue);
+      setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ConditionControls." + std::to_string(dep2 + 1) + ".ConditionControlModuleCode", saleControls[dep1].conditionControls[dep2].conditionControlModuleCode);
+    }
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".OrderType", saleControls[dep1].orderType);
+  }
+}
+
+std::string DeleteEnsSaleConditionControlRequest::getCommodityCode() const {
+  return commodityCode_;
+}
+
+void DeleteEnsSaleConditionControlRequest::setCommodityCode(const std::string &commodityCode) {
+  commodityCode_ = commodityCode;
+  setParameter(std::string("CommodityCode"), commodityCode);
+}
+
+std::string DeleteEnsSaleConditionControlRequest::getAliUidAccount() const {
+  return aliUidAccount_;
+}
+
+void DeleteEnsSaleConditionControlRequest::setAliUidAccount(const std::string &aliUidAccount) {
+  aliUidAccount_ = aliUidAccount;
+  setParameter(std::string("AliUidAccount"), aliUidAccount);
+}
+

+ 44 - 0
ens/src/model/DeleteEnsSaleConditionControlResult.cc

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

+ 57 - 0
ens/src/model/DeleteEnsSaleControlRequest.cc

@@ -0,0 +1,57 @@
+/*
+ * 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/ens/model/DeleteEnsSaleControlRequest.h>
+
+using AlibabaCloud::Ens::Model::DeleteEnsSaleControlRequest;
+
+DeleteEnsSaleControlRequest::DeleteEnsSaleControlRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "DeleteEnsSaleControl") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteEnsSaleControlRequest::~DeleteEnsSaleControlRequest() {}
+
+std::vector<DeleteEnsSaleControlRequest::SaleControls> DeleteEnsSaleControlRequest::getSaleControls() const {
+  return saleControls_;
+}
+
+void DeleteEnsSaleControlRequest::setSaleControls(const std::vector<DeleteEnsSaleControlRequest::SaleControls> &saleControls) {
+  saleControls_ = saleControls;
+  for(int dep1 = 0; dep1 != saleControls.size(); dep1++) {
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ModuleCode", saleControls[dep1].moduleCode);
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".OrderType", saleControls[dep1].orderType);
+  }
+}
+
+std::string DeleteEnsSaleControlRequest::getCommodityCode() const {
+  return commodityCode_;
+}
+
+void DeleteEnsSaleControlRequest::setCommodityCode(const std::string &commodityCode) {
+  commodityCode_ = commodityCode;
+  setParameter(std::string("CommodityCode"), commodityCode);
+}
+
+std::string DeleteEnsSaleControlRequest::getAliUidAccount() const {
+  return aliUidAccount_;
+}
+
+void DeleteEnsSaleControlRequest::setAliUidAccount(const std::string &aliUidAccount) {
+  aliUidAccount_ = aliUidAccount;
+  setParameter(std::string("AliUidAccount"), aliUidAccount);
+}
+

+ 44 - 0
ens/src/model/DeleteEnsSaleControlResult.cc

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

+ 45 - 0
ens/src/model/DeleteSnatIpForSnatEntryRequest.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/ens/model/DeleteSnatIpForSnatEntryRequest.h>
+
+using AlibabaCloud::Ens::Model::DeleteSnatIpForSnatEntryRequest;
+
+DeleteSnatIpForSnatEntryRequest::DeleteSnatIpForSnatEntryRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "DeleteSnatIpForSnatEntry") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteSnatIpForSnatEntryRequest::~DeleteSnatIpForSnatEntryRequest() {}
+
+std::string DeleteSnatIpForSnatEntryRequest::getSnatIp() const {
+  return snatIp_;
+}
+
+void DeleteSnatIpForSnatEntryRequest::setSnatIp(const std::string &snatIp) {
+  snatIp_ = snatIp;
+  setParameter(std::string("SnatIp"), snatIp);
+}
+
+std::string DeleteSnatIpForSnatEntryRequest::getSnatEntryId() const {
+  return snatEntryId_;
+}
+
+void DeleteSnatIpForSnatEntryRequest::setSnatEntryId(const std::string &snatEntryId) {
+  snatEntryId_ = snatEntryId;
+  setParameter(std::string("SnatEntryId"), snatEntryId);
+}
+

+ 44 - 0
ens/src/model/DeleteSnatIpForSnatEntryResult.cc

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

+ 45 - 0
ens/src/model/DescribeAICImagesRequest.cc

@@ -25,6 +25,24 @@ DescribeAICImagesRequest::DescribeAICImagesRequest()
 
 
 DescribeAICImagesRequest::~DescribeAICImagesRequest() {}
 DescribeAICImagesRequest::~DescribeAICImagesRequest() {}
 
 
+std::string DescribeAICImagesRequest::getImageType() const {
+  return imageType_;
+}
+
+void DescribeAICImagesRequest::setImageType(const std::string &imageType) {
+  imageType_ = imageType;
+  setParameter(std::string("ImageType"), imageType);
+}
+
+std::string DescribeAICImagesRequest::getStatus() const {
+  return status_;
+}
+
+void DescribeAICImagesRequest::setStatus(const std::string &status) {
+  status_ = status;
+  setParameter(std::string("Status"), status);
+}
+
 std::string DescribeAICImagesRequest::getImageId() const {
 std::string DescribeAICImagesRequest::getImageId() const {
   return imageId_;
   return imageId_;
 }
 }
@@ -34,6 +52,24 @@ void DescribeAICImagesRequest::setImageId(const std::string &imageId) {
   setParameter(std::string("ImageId"), imageId);
   setParameter(std::string("ImageId"), imageId);
 }
 }
 
 
+std::string DescribeAICImagesRequest::getMaxDate() const {
+  return maxDate_;
+}
+
+void DescribeAICImagesRequest::setMaxDate(const std::string &maxDate) {
+  maxDate_ = maxDate;
+  setParameter(std::string("MaxDate"), maxDate);
+}
+
+std::string DescribeAICImagesRequest::getDescription() const {
+  return description_;
+}
+
+void DescribeAICImagesRequest::setDescription(const std::string &description) {
+  description_ = description;
+  setParameter(std::string("Description"), description);
+}
+
 std::string DescribeAICImagesRequest::getPageNumber() const {
 std::string DescribeAICImagesRequest::getPageNumber() const {
   return pageNumber_;
   return pageNumber_;
 }
 }
@@ -52,6 +88,15 @@ void DescribeAICImagesRequest::setPageSize(const std::string &pageSize) {
   setParameter(std::string("PageSize"), pageSize);
   setParameter(std::string("PageSize"), pageSize);
 }
 }
 
 
+std::string DescribeAICImagesRequest::getMinDate() const {
+  return minDate_;
+}
+
+void DescribeAICImagesRequest::setMinDate(const std::string &minDate) {
+  minDate_ = minDate;
+  setParameter(std::string("MinDate"), minDate);
+}
+
 std::string DescribeAICImagesRequest::getImageUrl() const {
 std::string DescribeAICImagesRequest::getImageUrl() const {
   return imageUrl_;
   return imageUrl_;
 }
 }

+ 23 - 0
ens/src/model/DescribeAICImagesResult.cc

@@ -53,11 +53,34 @@ void DescribeAICImagesResult::parse(const std::string &payload)
 			imagesObject.status = valueImagesImagesItem["Status"].asString();
 			imagesObject.status = valueImagesImagesItem["Status"].asString();
 		if(!valueImagesImagesItem["CreationTime"].isNull())
 		if(!valueImagesImagesItem["CreationTime"].isNull())
 			imagesObject.creationTime = valueImagesImagesItem["CreationTime"].asString();
 			imagesObject.creationTime = valueImagesImagesItem["CreationTime"].asString();
+		if(!valueImagesImagesItem["Description"].isNull())
+			imagesObject.description = valueImagesImagesItem["Description"].asString();
 		images_.push_back(imagesObject);
 		images_.push_back(imagesObject);
 	}
 	}
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stoi(value["PageNumber"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
 
 
 }
 }
 
 
+int DescribeAICImagesResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+int DescribeAICImagesResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+int DescribeAICImagesResult::getPageNumber()const
+{
+	return pageNumber_;
+}
+
 std::vector<DescribeAICImagesResult::ImagesItem> DescribeAICImagesResult::getImages()const
 std::vector<DescribeAICImagesResult::ImagesItem> DescribeAICImagesResult::getImages()const
 {
 {
 	return images_;
 	return images_;

+ 103 - 7
ens/src/model/DescribeARMServerInstancesRequest.cc

@@ -25,6 +25,64 @@ DescribeARMServerInstancesRequest::DescribeARMServerInstancesRequest()
 
 
 DescribeARMServerInstancesRequest::~DescribeARMServerInstancesRequest() {}
 DescribeARMServerInstancesRequest::~DescribeARMServerInstancesRequest() {}
 
 
+std::vector<DescribeARMServerInstancesRequest::std::string> DescribeARMServerInstancesRequest::getAICSpecs() const {
+  return aICSpecs_;
+}
+
+void DescribeARMServerInstancesRequest::setAICSpecs(const std::vector<DescribeARMServerInstancesRequest::std::string> &aICSpecs) {
+  aICSpecs_ = aICSpecs;
+  for(int dep1 = 0; dep1 != aICSpecs.size(); dep1++) {
+    setParameter(std::string("AICSpecs") + "." + std::to_string(dep1 + 1), aICSpecs[dep1]);
+  }
+}
+
+std::string DescribeARMServerInstancesRequest::getOrderByParams() const {
+  return orderByParams_;
+}
+
+void DescribeARMServerInstancesRequest::setOrderByParams(const std::string &orderByParams) {
+  orderByParams_ = orderByParams;
+  setParameter(std::string("OrderByParams"), orderByParams);
+}
+
+bool DescribeARMServerInstancesRequest::getDescribeAICInstances() const {
+  return describeAICInstances_;
+}
+
+void DescribeARMServerInstancesRequest::setDescribeAICInstances(bool describeAICInstances) {
+  describeAICInstances_ = describeAICInstances;
+  setParameter(std::string("DescribeAICInstances"), describeAICInstances ? "true" : "false");
+}
+
+std::vector<DescribeARMServerInstancesRequest::std::string> DescribeARMServerInstancesRequest::getServerIds() const {
+  return serverIds_;
+}
+
+void DescribeARMServerInstancesRequest::setServerIds(const std::vector<DescribeARMServerInstancesRequest::std::string> &serverIds) {
+  serverIds_ = serverIds;
+  for(int dep1 = 0; dep1 != serverIds.size(); dep1++) {
+    setParameter(std::string("ServerIds") + "." + std::to_string(dep1 + 1), serverIds[dep1]);
+  }
+}
+
+std::string DescribeARMServerInstancesRequest::getName() const {
+  return name_;
+}
+
+void DescribeARMServerInstancesRequest::setName(const std::string &name) {
+  name_ = name;
+  setParameter(std::string("Name"), name);
+}
+
+std::string DescribeARMServerInstancesRequest::getMaxDate() const {
+  return maxDate_;
+}
+
+void DescribeARMServerInstancesRequest::setMaxDate(const std::string &maxDate) {
+  maxDate_ = maxDate;
+  setParameter(std::string("MaxDate"), maxDate);
+}
+
 int DescribeARMServerInstancesRequest::getPageNumber() const {
 int DescribeARMServerInstancesRequest::getPageNumber() const {
   return pageNumber_;
   return pageNumber_;
 }
 }
@@ -34,6 +92,28 @@ void DescribeARMServerInstancesRequest::setPageNumber(int pageNumber) {
   setParameter(std::string("PageNumber"), std::to_string(pageNumber));
   setParameter(std::string("PageNumber"), std::to_string(pageNumber));
 }
 }
 
 
+std::vector<DescribeARMServerInstancesRequest::std::string> DescribeARMServerInstancesRequest::getStates() const {
+  return states_;
+}
+
+void DescribeARMServerInstancesRequest::setStates(const std::vector<DescribeARMServerInstancesRequest::std::string> &states) {
+  states_ = states;
+  for(int dep1 = 0; dep1 != states.size(); dep1++) {
+    setParameter(std::string("States") + "." + std::to_string(dep1 + 1), states[dep1]);
+  }
+}
+
+std::vector<DescribeARMServerInstancesRequest::std::string> DescribeARMServerInstancesRequest::getServerSpecs() const {
+  return serverSpecs_;
+}
+
+void DescribeARMServerInstancesRequest::setServerSpecs(const std::vector<DescribeARMServerInstancesRequest::std::string> &serverSpecs) {
+  serverSpecs_ = serverSpecs;
+  for(int dep1 = 0; dep1 != serverSpecs.size(); dep1++) {
+    setParameter(std::string("ServerSpecs") + "." + std::to_string(dep1 + 1), serverSpecs[dep1]);
+  }
+}
+
 int DescribeARMServerInstancesRequest::getPageSize() const {
 int DescribeARMServerInstancesRequest::getPageSize() const {
   return pageSize_;
   return pageSize_;
 }
 }
@@ -54,14 +134,30 @@ void DescribeARMServerInstancesRequest::setEnsRegionIds(const std::vector<Descri
   }
   }
 }
 }
 
 
-std::vector<DescribeARMServerInstancesRequest::std::string> DescribeARMServerInstancesRequest::getServerIds() const {
-  return serverIds_;
+std::string DescribeARMServerInstancesRequest::getMinDate() const {
+  return minDate_;
 }
 }
 
 
-void DescribeARMServerInstancesRequest::setServerIds(const std::vector<DescribeARMServerInstancesRequest::std::string> &serverIds) {
-  serverIds_ = serverIds;
-  for(int dep1 = 0; dep1 != serverIds.size(); dep1++) {
-    setParameter(std::string("ServerIds") + "." + std::to_string(dep1 + 1), serverIds[dep1]);
-  }
+void DescribeARMServerInstancesRequest::setMinDate(const std::string &minDate) {
+  minDate_ = minDate;
+  setParameter(std::string("MinDate"), minDate);
+}
+
+std::string DescribeARMServerInstancesRequest::getLatestAction() const {
+  return latestAction_;
+}
+
+void DescribeARMServerInstancesRequest::setLatestAction(const std::string &latestAction) {
+  latestAction_ = latestAction;
+  setParameter(std::string("LatestAction"), latestAction);
+}
+
+std::string DescribeARMServerInstancesRequest::get_Namespace() const {
+  return _namespace_;
+}
+
+void DescribeARMServerInstancesRequest::set_Namespace(const std::string &_namespace) {
+  _namespace_ = _namespace;
+  setParameter(std::string("Namespace"), _namespace);
 }
 }
 
 

+ 12 - 0
ens/src/model/DescribeARMServerInstancesResult.cc

@@ -57,6 +57,14 @@ void DescribeARMServerInstancesResult::parse(const std::string &payload)
 			serversObject.state = valueServersServersItem["State"].asString();
 			serversObject.state = valueServersServersItem["State"].asString();
 		if(!valueServersServersItem["Status"].isNull())
 		if(!valueServersServersItem["Status"].isNull())
 			serversObject.status = valueServersServersItem["Status"].asString();
 			serversObject.status = valueServersServersItem["Status"].asString();
+		if(!valueServersServersItem["Namespace"].isNull())
+			serversObject._namespace = valueServersServersItem["Namespace"].asString();
+		if(!valueServersServersItem["Name"].isNull())
+			serversObject.name = valueServersServersItem["Name"].asString();
+		if(!valueServersServersItem["PayType"].isNull())
+			serversObject.payType = valueServersServersItem["PayType"].asString();
+		if(!valueServersServersItem["LatestAction"].isNull())
+			serversObject.latestAction = valueServersServersItem["LatestAction"].asString();
 		auto allAICInstancesNode = valueServersServersItem["AICInstances"]["AICInstancesItem"];
 		auto allAICInstancesNode = valueServersServersItem["AICInstances"]["AICInstancesItem"];
 		for (auto valueServersServersItemAICInstancesAICInstancesItem : allAICInstancesNode)
 		for (auto valueServersServersItemAICInstancesAICInstancesItem : allAICInstancesNode)
 		{
 		{
@@ -75,6 +83,10 @@ void DescribeARMServerInstancesResult::parse(const std::string &payload)
 				aICInstancesObject.state = valueServersServersItemAICInstancesAICInstancesItem["State"].asString();
 				aICInstancesObject.state = valueServersServersItemAICInstancesAICInstancesItem["State"].asString();
 			if(!valueServersServersItemAICInstancesAICInstancesItem["Status"].isNull())
 			if(!valueServersServersItemAICInstancesAICInstancesItem["Status"].isNull())
 				aICInstancesObject.status = valueServersServersItemAICInstancesAICInstancesItem["Status"].asString();
 				aICInstancesObject.status = valueServersServersItemAICInstancesAICInstancesItem["Status"].asString();
+			if(!valueServersServersItemAICInstancesAICInstancesItem["Name"].isNull())
+				aICInstancesObject.name = valueServersServersItemAICInstancesAICInstancesItem["Name"].asString();
+			if(!valueServersServersItemAICInstancesAICInstancesItem["LatestAction"].isNull())
+				aICInstancesObject.latestAction = valueServersServersItemAICInstancesAICInstancesItem["LatestAction"].asString();
 			auto networkAttributesNode = value["NetworkAttributes"];
 			auto networkAttributesNode = value["NetworkAttributes"];
 			if(!networkAttributesNode["IpAddress"].isNull())
 			if(!networkAttributesNode["IpAddress"].isNull())
 				aICInstancesObject.networkAttributes.ipAddress = networkAttributesNode["IpAddress"].asString();
 				aICInstancesObject.networkAttributes.ipAddress = networkAttributesNode["IpAddress"].asString();

+ 36 - 0
ens/src/model/DescribeEnsCommodityCodeRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * 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/ens/model/DescribeEnsCommodityCodeRequest.h>
+
+using AlibabaCloud::Ens::Model::DescribeEnsCommodityCodeRequest;
+
+DescribeEnsCommodityCodeRequest::DescribeEnsCommodityCodeRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "DescribeEnsCommodityCode") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeEnsCommodityCodeRequest::~DescribeEnsCommodityCodeRequest() {}
+
+std::string DescribeEnsCommodityCodeRequest::getCommodityCode() const {
+  return commodityCode_;
+}
+
+void DescribeEnsCommodityCodeRequest::setCommodityCode(const std::string &commodityCode) {
+  commodityCode_ = commodityCode;
+  setParameter(std::string("CommodityCode"), commodityCode);
+}
+

+ 59 - 0
ens/src/model/DescribeEnsCommodityCodeResult.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/ens/model/DescribeEnsCommodityCodeResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ens;
+using namespace AlibabaCloud::Ens::Model;
+
+DescribeEnsCommodityCodeResult::DescribeEnsCommodityCodeResult() :
+	ServiceResult()
+{}
+
+DescribeEnsCommodityCodeResult::DescribeEnsCommodityCodeResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeEnsCommodityCodeResult::~DescribeEnsCommodityCodeResult()
+{}
+
+void DescribeEnsCommodityCodeResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allCommodityCodeInfoNode = value["CommodityCodeInfo"]["CommodityCodeInfoItem"];
+	for (auto valueCommodityCodeInfoCommodityCodeInfoItem : allCommodityCodeInfoNode)
+	{
+		CommodityCodeInfoItem commodityCodeInfoObject;
+		if(!valueCommodityCodeInfoCommodityCodeInfoItem["CommodityCode"].isNull())
+			commodityCodeInfoObject.commodityCode = valueCommodityCodeInfoCommodityCodeInfoItem["CommodityCode"].asString();
+		if(!valueCommodityCodeInfoCommodityCodeInfoItem["CommodityName"].isNull())
+			commodityCodeInfoObject.commodityName = valueCommodityCodeInfoCommodityCodeInfoItem["CommodityName"].asString();
+		commodityCodeInfo_.push_back(commodityCodeInfoObject);
+	}
+
+}
+
+std::vector<DescribeEnsCommodityCodeResult::CommodityCodeInfoItem> DescribeEnsCommodityCodeResult::getCommodityCodeInfo()const
+{
+	return commodityCodeInfo_;
+}
+

+ 45 - 0
ens/src/model/DescribeEnsCommodityModuleCodeRequest.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/ens/model/DescribeEnsCommodityModuleCodeRequest.h>
+
+using AlibabaCloud::Ens::Model::DescribeEnsCommodityModuleCodeRequest;
+
+DescribeEnsCommodityModuleCodeRequest::DescribeEnsCommodityModuleCodeRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "DescribeEnsCommodityModuleCode") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeEnsCommodityModuleCodeRequest::~DescribeEnsCommodityModuleCodeRequest() {}
+
+std::string DescribeEnsCommodityModuleCodeRequest::getCommodityCode() const {
+  return commodityCode_;
+}
+
+void DescribeEnsCommodityModuleCodeRequest::setCommodityCode(const std::string &commodityCode) {
+  commodityCode_ = commodityCode;
+  setParameter(std::string("CommodityCode"), commodityCode);
+}
+
+std::string DescribeEnsCommodityModuleCodeRequest::getModuleCode() const {
+  return moduleCode_;
+}
+
+void DescribeEnsCommodityModuleCodeRequest::setModuleCode(const std::string &moduleCode) {
+  moduleCode_ = moduleCode;
+  setParameter(std::string("ModuleCode"), moduleCode);
+}
+

+ 67 - 0
ens/src/model/DescribeEnsCommodityModuleCodeResult.cc

@@ -0,0 +1,67 @@
+/*
+ * 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/ens/model/DescribeEnsCommodityModuleCodeResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ens;
+using namespace AlibabaCloud::Ens::Model;
+
+DescribeEnsCommodityModuleCodeResult::DescribeEnsCommodityModuleCodeResult() :
+	ServiceResult()
+{}
+
+DescribeEnsCommodityModuleCodeResult::DescribeEnsCommodityModuleCodeResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeEnsCommodityModuleCodeResult::~DescribeEnsCommodityModuleCodeResult()
+{}
+
+void DescribeEnsCommodityModuleCodeResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allCommodityCodesInfoNode = value["CommodityCodesInfo"]["CommodityCodesInfoItem"];
+	for (auto valueCommodityCodesInfoCommodityCodesInfoItem : allCommodityCodesInfoNode)
+	{
+		CommodityCodesInfoItem commodityCodesInfoObject;
+		if(!valueCommodityCodesInfoCommodityCodesInfoItem["CommodityCode"].isNull())
+			commodityCodesInfoObject.commodityCode = valueCommodityCodesInfoCommodityCodesInfoItem["CommodityCode"].asString();
+		auto allModuleCodesInfoNode = valueCommodityCodesInfoCommodityCodesInfoItem["ModuleCodesInfo"]["ModuleCodesInfoItem"];
+		for (auto valueCommodityCodesInfoCommodityCodesInfoItemModuleCodesInfoModuleCodesInfoItem : allModuleCodesInfoNode)
+		{
+			CommodityCodesInfoItem::ModuleCodesInfoItem moduleCodesInfoObject;
+			if(!valueCommodityCodesInfoCommodityCodesInfoItemModuleCodesInfoModuleCodesInfoItem["ModuleCode"].isNull())
+				moduleCodesInfoObject.moduleCode = valueCommodityCodesInfoCommodityCodesInfoItemModuleCodesInfoModuleCodesInfoItem["ModuleCode"].asString();
+			if(!valueCommodityCodesInfoCommodityCodesInfoItemModuleCodesInfoModuleCodesInfoItem["ModuleName"].isNull())
+				moduleCodesInfoObject.moduleName = valueCommodityCodesInfoCommodityCodesInfoItemModuleCodesInfoModuleCodesInfoItem["ModuleName"].asString();
+			commodityCodesInfoObject.moduleCodesInfo.push_back(moduleCodesInfoObject);
+		}
+		commodityCodesInfo_.push_back(commodityCodesInfoObject);
+	}
+
+}
+
+std::vector<DescribeEnsCommodityModuleCodeResult::CommodityCodesInfoItem> DescribeEnsCommodityModuleCodeResult::getCommodityCodesInfo()const
+{
+	return commodityCodesInfo_;
+}
+

+ 45 - 0
ens/src/model/DescribeEnsSaleControlAvailableResourceRequest.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/ens/model/DescribeEnsSaleControlAvailableResourceRequest.h>
+
+using AlibabaCloud::Ens::Model::DescribeEnsSaleControlAvailableResourceRequest;
+
+DescribeEnsSaleControlAvailableResourceRequest::DescribeEnsSaleControlAvailableResourceRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "DescribeEnsSaleControlAvailableResource") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeEnsSaleControlAvailableResourceRequest::~DescribeEnsSaleControlAvailableResourceRequest() {}
+
+std::string DescribeEnsSaleControlAvailableResourceRequest::getCommodityCode() const {
+  return commodityCode_;
+}
+
+void DescribeEnsSaleControlAvailableResourceRequest::setCommodityCode(const std::string &commodityCode) {
+  commodityCode_ = commodityCode;
+  setParameter(std::string("CommodityCode"), commodityCode);
+}
+
+std::string DescribeEnsSaleControlAvailableResourceRequest::getOrderType() const {
+  return orderType_;
+}
+
+void DescribeEnsSaleControlAvailableResourceRequest::setOrderType(const std::string &orderType) {
+  orderType_ = orderType;
+  setParameter(std::string("OrderType"), orderType);
+}
+

+ 44 - 0
ens/src/model/DescribeEnsSaleControlAvailableResourceResult.cc

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

+ 63 - 0
ens/src/model/DescribeEnsSaleControlRequest.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/ens/model/DescribeEnsSaleControlRequest.h>
+
+using AlibabaCloud::Ens::Model::DescribeEnsSaleControlRequest;
+
+DescribeEnsSaleControlRequest::DescribeEnsSaleControlRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "DescribeEnsSaleControl") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeEnsSaleControlRequest::~DescribeEnsSaleControlRequest() {}
+
+std::string DescribeEnsSaleControlRequest::getCommodityCode() const {
+  return commodityCode_;
+}
+
+void DescribeEnsSaleControlRequest::setCommodityCode(const std::string &commodityCode) {
+  commodityCode_ = commodityCode;
+  setParameter(std::string("CommodityCode"), commodityCode);
+}
+
+std::string DescribeEnsSaleControlRequest::getModuleCode() const {
+  return moduleCode_;
+}
+
+void DescribeEnsSaleControlRequest::setModuleCode(const std::string &moduleCode) {
+  moduleCode_ = moduleCode;
+  setParameter(std::string("ModuleCode"), moduleCode);
+}
+
+std::string DescribeEnsSaleControlRequest::getAliUidAccount() const {
+  return aliUidAccount_;
+}
+
+void DescribeEnsSaleControlRequest::setAliUidAccount(const std::string &aliUidAccount) {
+  aliUidAccount_ = aliUidAccount;
+  setParameter(std::string("AliUidAccount"), aliUidAccount);
+}
+
+std::string DescribeEnsSaleControlRequest::getOrderType() const {
+  return orderType_;
+}
+
+void DescribeEnsSaleControlRequest::setOrderType(const std::string &orderType) {
+  orderType_ = orderType;
+  setParameter(std::string("OrderType"), orderType);
+}
+

+ 104 - 0
ens/src/model/DescribeEnsSaleControlResult.cc

@@ -0,0 +1,104 @@
+/*
+ * 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/ens/model/DescribeEnsSaleControlResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ens;
+using namespace AlibabaCloud::Ens::Model;
+
+DescribeEnsSaleControlResult::DescribeEnsSaleControlResult() :
+	ServiceResult()
+{}
+
+DescribeEnsSaleControlResult::DescribeEnsSaleControlResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeEnsSaleControlResult::~DescribeEnsSaleControlResult()
+{}
+
+void DescribeEnsSaleControlResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allSaleControlNode = value["SaleControl"]["SaleControlItem"];
+	for (auto valueSaleControlSaleControlItem : allSaleControlNode)
+	{
+		SaleControlItem saleControlObject;
+		if(!valueSaleControlSaleControlItem["CommodityCode"].isNull())
+			saleControlObject.commodityCode = valueSaleControlSaleControlItem["CommodityCode"].asString();
+		if(!valueSaleControlSaleControlItem["OrderType"].isNull())
+			saleControlObject.orderType = valueSaleControlSaleControlItem["OrderType"].asString();
+		auto allSaleControlItemsNode = valueSaleControlSaleControlItem["SaleControlItems"]["saleControlItemsItem"];
+		for (auto valueSaleControlSaleControlItemSaleControlItemssaleControlItemsItem : allSaleControlItemsNode)
+		{
+			SaleControlItem::SaleControlItemsItem saleControlItemsObject;
+			if(!valueSaleControlSaleControlItemSaleControlItemssaleControlItemsItem["ModuleCode"].isNull())
+				saleControlItemsObject.moduleCode = valueSaleControlSaleControlItemSaleControlItemssaleControlItemsItem["ModuleCode"].asString();
+			auto saleControlItem1Node = value["SaleControlItem"];
+			auto allConditionSaleControlNode = saleControlItem1Node["ConditionSaleControl"]["ConditionSaleControlItem"];
+			for (auto saleControlItem1NodeConditionSaleControlConditionSaleControlItem : allConditionSaleControlNode)
+			{
+				SaleControlItem::SaleControlItemsItem::SaleControlItem1::ConditionSaleControlItem conditionSaleControlItemObject;
+				if(!saleControlItem1NodeConditionSaleControlConditionSaleControlItem["Description"].isNull())
+					conditionSaleControlItemObject.description = saleControlItem1NodeConditionSaleControlConditionSaleControlItem["Description"].asString();
+				if(!saleControlItem1NodeConditionSaleControlConditionSaleControlItem["Operator"].isNull())
+					conditionSaleControlItemObject._operator = saleControlItem1NodeConditionSaleControlConditionSaleControlItem["Operator"].asString();
+				auto conditionControlNode = value["ConditionControl"];
+				if(!conditionControlNode["ConditionControlModuleCode"].isNull())
+					conditionSaleControlItemObject.conditionControl.conditionControlModuleCode = conditionControlNode["ConditionControlModuleCode"].asString();
+				if(!conditionControlNode["ConditionControlModuleValue"].isNull())
+					conditionSaleControlItemObject.conditionControl.conditionControlModuleValue = conditionControlNode["ConditionControlModuleValue"].asString();
+				auto moduleValueNode = value["ModuleValue"];
+				if(!moduleValueNode["ModuleMinValue"].isNull())
+					conditionSaleControlItemObject.moduleValue.moduleMinValue = moduleValueNode["ModuleMinValue"].asString();
+				if(!moduleValueNode["ModuleMaxValue"].isNull())
+					conditionSaleControlItemObject.moduleValue.moduleMaxValue = moduleValueNode["ModuleMaxValue"].asString();
+					auto allModuleValue2 = moduleValueNode["ModuleValue"]["ModuleValue"];
+					for (auto value : allModuleValue2)
+						conditionSaleControlItemObject.moduleValue.moduleValue2.push_back(value.asString());
+				saleControlItemsObject.saleControlItem1.conditionSaleControl.push_back(conditionSaleControlItemObject);
+			}
+			auto basicSaleControlNode = saleControlItem1Node["BasicSaleControl"];
+			if(!basicSaleControlNode["Description"].isNull())
+				saleControlItemsObject.saleControlItem1.basicSaleControl.description = basicSaleControlNode["Description"].asString();
+			if(!basicSaleControlNode["Operator"].isNull())
+				saleControlItemsObject.saleControlItem1.basicSaleControl._operator = basicSaleControlNode["Operator"].asString();
+			auto moduleValue3Node = basicSaleControlNode["ModuleValue"];
+			if(!moduleValue3Node["ModuleMinValue"].isNull())
+				saleControlItemsObject.saleControlItem1.basicSaleControl.moduleValue3.moduleMinValue = moduleValue3Node["ModuleMinValue"].asString();
+			if(!moduleValue3Node["ModuleMaxValue"].isNull())
+				saleControlItemsObject.saleControlItem1.basicSaleControl.moduleValue3.moduleMaxValue = moduleValue3Node["ModuleMaxValue"].asString();
+				auto allModuleValue4 = moduleValue3Node["ModuleValue"]["ModuleValue"];
+				for (auto value : allModuleValue4)
+					saleControlItemsObject.saleControlItem1.basicSaleControl.moduleValue3.moduleValue4.push_back(value.asString());
+			saleControlObject.saleControlItems.push_back(saleControlItemsObject);
+		}
+		saleControl_.push_back(saleControlObject);
+	}
+
+}
+
+std::vector<DescribeEnsSaleControlResult::SaleControlItem> DescribeEnsSaleControlResult::getSaleControl()const
+{
+	return saleControl_;
+}
+

+ 63 - 0
ens/src/model/DescribeEnsSaleControlStockRequest.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/ens/model/DescribeEnsSaleControlStockRequest.h>
+
+using AlibabaCloud::Ens::Model::DescribeEnsSaleControlStockRequest;
+
+DescribeEnsSaleControlStockRequest::DescribeEnsSaleControlStockRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "DescribeEnsSaleControlStock") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DescribeEnsSaleControlStockRequest::~DescribeEnsSaleControlStockRequest() {}
+
+std::string DescribeEnsSaleControlStockRequest::getCommodityCode() const {
+  return commodityCode_;
+}
+
+void DescribeEnsSaleControlStockRequest::setCommodityCode(const std::string &commodityCode) {
+  commodityCode_ = commodityCode;
+  setParameter(std::string("CommodityCode"), commodityCode);
+}
+
+std::string DescribeEnsSaleControlStockRequest::getModuleCode() const {
+  return moduleCode_;
+}
+
+void DescribeEnsSaleControlStockRequest::setModuleCode(const std::string &moduleCode) {
+  moduleCode_ = moduleCode;
+  setParameter(std::string("ModuleCode"), moduleCode);
+}
+
+std::string DescribeEnsSaleControlStockRequest::getAliUidAccount() const {
+  return aliUidAccount_;
+}
+
+void DescribeEnsSaleControlStockRequest::setAliUidAccount(const std::string &aliUidAccount) {
+  aliUidAccount_ = aliUidAccount;
+  setParameter(std::string("AliUidAccount"), aliUidAccount);
+}
+
+std::string DescribeEnsSaleControlStockRequest::getOrderType() const {
+  return orderType_;
+}
+
+void DescribeEnsSaleControlStockRequest::setOrderType(const std::string &orderType) {
+  orderType_ = orderType;
+  setParameter(std::string("OrderType"), orderType);
+}
+

+ 94 - 0
ens/src/model/DescribeEnsSaleControlStockResult.cc

@@ -0,0 +1,94 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ens/model/DescribeEnsSaleControlStockResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ens;
+using namespace AlibabaCloud::Ens::Model;
+
+DescribeEnsSaleControlStockResult::DescribeEnsSaleControlStockResult() :
+	ServiceResult()
+{}
+
+DescribeEnsSaleControlStockResult::DescribeEnsSaleControlStockResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeEnsSaleControlStockResult::~DescribeEnsSaleControlStockResult()
+{}
+
+void DescribeEnsSaleControlStockResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allSaleControlNode = value["SaleControl"]["SaleControlItem"];
+	for (auto valueSaleControlSaleControlItem : allSaleControlNode)
+	{
+		SaleControlItem saleControlObject;
+		if(!valueSaleControlSaleControlItem["CommodityCode"].isNull())
+			saleControlObject.commodityCode = valueSaleControlSaleControlItem["CommodityCode"].asString();
+		if(!valueSaleControlSaleControlItem["OrderType"].isNull())
+			saleControlObject.orderType = valueSaleControlSaleControlItem["OrderType"].asString();
+		auto allSaleControlItemsNode = valueSaleControlSaleControlItem["SaleControlItems"]["SaleControlItemsItem"];
+		for (auto valueSaleControlSaleControlItemSaleControlItemsSaleControlItemsItem : allSaleControlItemsNode)
+		{
+			SaleControlItem::SaleControlItemsItem saleControlItemsObject;
+			if(!valueSaleControlSaleControlItemSaleControlItemsSaleControlItemsItem["ModuleCode"].isNull())
+				saleControlItemsObject.moduleCode = valueSaleControlSaleControlItemSaleControlItemsSaleControlItemsItem["ModuleCode"].asString();
+			auto saleControlItem1Node = value["SaleControlItem"];
+			auto allConditionSaleControlNode = saleControlItem1Node["ConditionSaleControl"]["ConditionSaleControlItem"];
+			for (auto saleControlItem1NodeConditionSaleControlConditionSaleControlItem : allConditionSaleControlNode)
+			{
+				SaleControlItem::SaleControlItemsItem::SaleControlItem1::ConditionSaleControlItem conditionSaleControlItemObject;
+				if(!saleControlItem1NodeConditionSaleControlConditionSaleControlItem["StockValue"].isNull())
+					conditionSaleControlItemObject.stockValue = saleControlItem1NodeConditionSaleControlConditionSaleControlItem["StockValue"].asString();
+				auto conditionControlNode = value["ConditionControl"];
+				if(!conditionControlNode["ConditionControlModuleCode"].isNull())
+					conditionSaleControlItemObject.conditionControl.conditionControlModuleCode = conditionControlNode["ConditionControlModuleCode"].asString();
+				if(!conditionControlNode["ConditionControlModuleValue"].isNull())
+					conditionSaleControlItemObject.conditionControl.conditionControlModuleValue = conditionControlNode["ConditionControlModuleValue"].asString();
+				auto moduleValueNode = value["ModuleValue"];
+				if(!moduleValueNode["ModuleMinValue"].isNull())
+					conditionSaleControlItemObject.moduleValue.moduleMinValue = moduleValueNode["ModuleMinValue"].asString();
+				if(!moduleValueNode["ModuleMaxValue"].isNull())
+					conditionSaleControlItemObject.moduleValue.moduleMaxValue = moduleValueNode["ModuleMaxValue"].asString();
+				saleControlItemsObject.saleControlItem1.conditionSaleControl.push_back(conditionSaleControlItemObject);
+			}
+			auto basicSaleControlNode = saleControlItem1Node["BasicSaleControl"];
+			if(!basicSaleControlNode["StockValue"].isNull())
+				saleControlItemsObject.saleControlItem1.basicSaleControl.stockValue = basicSaleControlNode["StockValue"].asString();
+			auto moduleValue2Node = basicSaleControlNode["ModuleValue"];
+			if(!moduleValue2Node["ModuleMinValue"].isNull())
+				saleControlItemsObject.saleControlItem1.basicSaleControl.moduleValue2.moduleMinValue = moduleValue2Node["ModuleMinValue"].asString();
+			if(!moduleValue2Node["ModuleMaxValue"].isNull())
+				saleControlItemsObject.saleControlItem1.basicSaleControl.moduleValue2.moduleMaxValue = moduleValue2Node["ModuleMaxValue"].asString();
+			saleControlObject.saleControlItems.push_back(saleControlItemsObject);
+		}
+		saleControl_.push_back(saleControlObject);
+	}
+
+}
+
+std::vector<DescribeEnsSaleControlStockResult::SaleControlItem> DescribeEnsSaleControlStockResult::getSaleControl()const
+{
+	return saleControl_;
+}
+

+ 36 - 0
ens/src/model/DescribeRegionBandwidthQuotaRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * 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/ens/model/DescribeRegionBandwidthQuotaRequest.h>
+
+using AlibabaCloud::Ens::Model::DescribeRegionBandwidthQuotaRequest;
+
+DescribeRegionBandwidthQuotaRequest::DescribeRegionBandwidthQuotaRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "DescribeRegionBandwidthQuota") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+DescribeRegionBandwidthQuotaRequest::~DescribeRegionBandwidthQuotaRequest() {}
+
+std::string DescribeRegionBandwidthQuotaRequest::getRegionId() const {
+  return regionId_;
+}
+
+void DescribeRegionBandwidthQuotaRequest::setRegionId(const std::string &regionId) {
+  regionId_ = regionId;
+  setParameter(std::string("RegionId"), regionId);
+}
+

+ 78 - 0
ens/src/model/DescribeRegionBandwidthQuotaResult.cc

@@ -0,0 +1,78 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ens/model/DescribeRegionBandwidthQuotaResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ens;
+using namespace AlibabaCloud::Ens::Model;
+
+DescribeRegionBandwidthQuotaResult::DescribeRegionBandwidthQuotaResult() :
+	ServiceResult()
+{}
+
+DescribeRegionBandwidthQuotaResult::DescribeRegionBandwidthQuotaResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeRegionBandwidthQuotaResult::~DescribeRegionBandwidthQuotaResult()
+{}
+
+void DescribeRegionBandwidthQuotaResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allBandwidthQuotaNode = value["BandwidthQuota"]["带宽配额"];
+	for (auto valueBandwidthQuota带宽配额 : allBandwidthQuotaNode)
+	{
+		带宽配额 bandwidthQuotaObject;
+		if(!valueBandwidthQuota带宽配额["RegionId"].isNull())
+			bandwidthQuotaObject.regionId = valueBandwidthQuota带宽配额["RegionId"].asString();
+		if(!valueBandwidthQuota带宽配额["Date"].isNull())
+			bandwidthQuotaObject.date = valueBandwidthQuota带宽配额["Date"].asString();
+		auto allInstanceInfoNode = valueBandwidthQuota带宽配额["InstanceInfo"]["实例信息"];
+		for (auto valueBandwidthQuota带宽配额InstanceInfo实例信息 : allInstanceInfoNode)
+		{
+			带宽配额::实例信息 instanceInfoObject;
+			if(!valueBandwidthQuota带宽配额InstanceInfo实例信息["InstanceSpec"].isNull())
+				instanceInfoObject.instanceSpec = valueBandwidthQuota带宽配额InstanceInfo实例信息["InstanceSpec"].asString();
+			if(!valueBandwidthQuota带宽配额InstanceInfo实例信息["InstanceNumber"].isNull())
+				instanceInfoObject.instanceNumber = std::stol(valueBandwidthQuota带宽配额InstanceInfo实例信息["InstanceNumber"].asString());
+			bandwidthQuotaObject.instanceInfo.push_back(instanceInfoObject);
+		}
+		auto bandwidthInfoNode = value["BandwidthInfo"];
+		if(!bandwidthInfoNode["MonthMax"].isNull())
+			bandwidthQuotaObject.bandwidthInfo.monthMax = std::stol(bandwidthInfoNode["MonthMax"].asString());
+		if(!bandwidthInfoNode["WeekMax"].isNull())
+			bandwidthQuotaObject.bandwidthInfo.weekMax = std::stol(bandwidthInfoNode["WeekMax"].asString());
+		if(!bandwidthInfoNode["MonthAverageQuota"].isNull())
+			bandwidthQuotaObject.bandwidthInfo.monthAverageQuota = std::stol(bandwidthInfoNode["MonthAverageQuota"].asString());
+		if(!bandwidthInfoNode["WeekAverageQuota"].isNull())
+			bandwidthQuotaObject.bandwidthInfo.weekAverageQuota = std::stol(bandwidthInfoNode["WeekAverageQuota"].asString());
+		bandwidthQuota_.push_back(bandwidthQuotaObject);
+	}
+
+}
+
+std::vector<DescribeRegionBandwidthQuotaResult::带宽配额> DescribeRegionBandwidthQuotaResult::getBandwidthQuota()const
+{
+	return bandwidthQuota_;
+}
+

+ 36 - 0
ens/src/model/DescribeSnatAttributeRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * 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/ens/model/DescribeSnatAttributeRequest.h>
+
+using AlibabaCloud::Ens::Model::DescribeSnatAttributeRequest;
+
+DescribeSnatAttributeRequest::DescribeSnatAttributeRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "DescribeSnatAttribute") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+DescribeSnatAttributeRequest::~DescribeSnatAttributeRequest() {}
+
+std::string DescribeSnatAttributeRequest::getSnatEntryId() const {
+  return snatEntryId_;
+}
+
+void DescribeSnatAttributeRequest::setSnatEntryId(const std::string &snatEntryId) {
+  snatEntryId_ = snatEntryId;
+  setParameter(std::string("SnatEntryId"), snatEntryId);
+}
+

+ 110 - 0
ens/src/model/DescribeSnatAttributeResult.cc

@@ -0,0 +1,110 @@
+/*
+ * 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/ens/model/DescribeSnatAttributeResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Ens;
+using namespace AlibabaCloud::Ens::Model;
+
+DescribeSnatAttributeResult::DescribeSnatAttributeResult() :
+	ServiceResult()
+{}
+
+DescribeSnatAttributeResult::DescribeSnatAttributeResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeSnatAttributeResult::~DescribeSnatAttributeResult()
+{}
+
+void DescribeSnatAttributeResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allSnatIpsNode = value["SnatIps"]["snatip"];
+	for (auto valueSnatIpssnatip : allSnatIpsNode)
+	{
+		Snatip snatIpsObject;
+		if(!valueSnatIpssnatip["Ip"].isNull())
+			snatIpsObject.ip = valueSnatIpssnatip["Ip"].asString();
+		if(!valueSnatIpssnatip["Status"].isNull())
+			snatIpsObject.status = valueSnatIpssnatip["Status"].asString();
+		if(!valueSnatIpssnatip["CreationTime"].isNull())
+			snatIpsObject.creationTime = valueSnatIpssnatip["CreationTime"].asString();
+		snatIps_.push_back(snatIpsObject);
+	}
+	if(!value["NatGatewayId"].isNull())
+		natGatewayId_ = value["NatGatewayId"].asString();
+	if(!value["SnatEntryId"].isNull())
+		snatEntryId_ = value["SnatEntryId"].asString();
+	if(!value["SnatIp"].isNull())
+		snatIp_ = value["SnatIp"].asString();
+	if(!value["SourceCIDR"].isNull())
+		sourceCIDR_ = value["SourceCIDR"].asString();
+	if(!value["SnatEntryName"].isNull())
+		snatEntryName_ = value["SnatEntryName"].asString();
+	if(!value["Status"].isNull())
+		status_ = value["Status"].asString();
+	if(!value["CreationTime"].isNull())
+		creationTime_ = value["CreationTime"].asString();
+
+}
+
+std::string DescribeSnatAttributeResult::getStatus()const
+{
+	return status_;
+}
+
+std::string DescribeSnatAttributeResult::getSnatEntryName()const
+{
+	return snatEntryName_;
+}
+
+std::string DescribeSnatAttributeResult::getSourceCIDR()const
+{
+	return sourceCIDR_;
+}
+
+std::string DescribeSnatAttributeResult::getCreationTime()const
+{
+	return creationTime_;
+}
+
+std::vector<DescribeSnatAttributeResult::Snatip> DescribeSnatAttributeResult::getSnatIps()const
+{
+	return snatIps_;
+}
+
+std::string DescribeSnatAttributeResult::getSnatEntryId()const
+{
+	return snatEntryId_;
+}
+
+std::string DescribeSnatAttributeResult::getSnatIp()const
+{
+	return snatIp_;
+}
+
+std::string DescribeSnatAttributeResult::getNatGatewayId()const
+{
+	return natGatewayId_;
+}
+

+ 11 - 0
ens/src/model/RebootAICInstanceRequest.cc

@@ -43,3 +43,14 @@ void RebootAICInstanceRequest::setInstanceId(const std::string &instanceId) {
   setParameter(std::string("InstanceId"), instanceId);
   setParameter(std::string("InstanceId"), instanceId);
 }
 }
 
 
+std::vector<RebootAICInstanceRequest::std::string> RebootAICInstanceRequest::getInstanceIds() const {
+  return instanceIds_;
+}
+
+void RebootAICInstanceRequest::setInstanceIds(const std::vector<RebootAICInstanceRequest::std::string> &instanceIds) {
+  instanceIds_ = instanceIds;
+  for(int dep1 = 0; dep1 != instanceIds.size(); dep1++) {
+    setParameter(std::string("InstanceIds") + "." + std::to_string(dep1 + 1), instanceIds[dep1]);
+  }
+}
+

+ 11 - 0
ens/src/model/RebootARMServerInstanceRequest.cc

@@ -34,3 +34,14 @@ void RebootARMServerInstanceRequest::setServerId(const std::string &serverId) {
   setParameter(std::string("ServerId"), serverId);
   setParameter(std::string("ServerId"), serverId);
 }
 }
 
 
+std::vector<RebootARMServerInstanceRequest::std::string> RebootARMServerInstanceRequest::getServerIds() const {
+  return serverIds_;
+}
+
+void RebootARMServerInstanceRequest::setServerIds(const std::vector<RebootARMServerInstanceRequest::std::string> &serverIds) {
+  serverIds_ = serverIds;
+  for(int dep1 = 0; dep1 != serverIds.size(); dep1++) {
+    setParameter(std::string("ServerIds") + "." + std::to_string(dep1 + 1), serverIds[dep1]);
+  }
+}
+

+ 11 - 0
ens/src/model/ResetAICInstanceRequest.cc

@@ -43,3 +43,14 @@ void ResetAICInstanceRequest::setInstanceId(const std::string &instanceId) {
   setParameter(std::string("InstanceId"), instanceId);
   setParameter(std::string("InstanceId"), instanceId);
 }
 }
 
 
+std::vector<ResetAICInstanceRequest::std::string> ResetAICInstanceRequest::getInstanceIds() const {
+  return instanceIds_;
+}
+
+void ResetAICInstanceRequest::setInstanceIds(const std::vector<ResetAICInstanceRequest::std::string> &instanceIds) {
+  instanceIds_ = instanceIds;
+  for(int dep1 = 0; dep1 != instanceIds.size(); dep1++) {
+    setParameter(std::string("InstanceIds") + "." + std::to_string(dep1 + 1), instanceIds[dep1]);
+  }
+}
+

+ 9 - 0
ens/src/model/RunInstancesRequest.cc

@@ -43,6 +43,15 @@ void RunInstancesRequest::setUniqueSuffix(bool uniqueSuffix) {
   setParameter(std::string("UniqueSuffix"), uniqueSuffix ? "true" : "false");
   setParameter(std::string("UniqueSuffix"), uniqueSuffix ? "true" : "false");
 }
 }
 
 
+std::string RunInstancesRequest::getInstanceChargeStrategy() const {
+  return instanceChargeStrategy_;
+}
+
+void RunInstancesRequest::setInstanceChargeStrategy(const std::string &instanceChargeStrategy) {
+  instanceChargeStrategy_ = instanceChargeStrategy;
+  setParameter(std::string("InstanceChargeStrategy"), instanceChargeStrategy);
+}
+
 std::string RunInstancesRequest::getSecurityId() const {
 std::string RunInstancesRequest::getSecurityId() const {
   return securityId_;
   return securityId_;
 }
 }

+ 45 - 0
ens/src/model/StartSnatIpForSnatEntryRequest.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/ens/model/StartSnatIpForSnatEntryRequest.h>
+
+using AlibabaCloud::Ens::Model::StartSnatIpForSnatEntryRequest;
+
+StartSnatIpForSnatEntryRequest::StartSnatIpForSnatEntryRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "StartSnatIpForSnatEntry") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+StartSnatIpForSnatEntryRequest::~StartSnatIpForSnatEntryRequest() {}
+
+std::string StartSnatIpForSnatEntryRequest::getSnatIp() const {
+  return snatIp_;
+}
+
+void StartSnatIpForSnatEntryRequest::setSnatIp(const std::string &snatIp) {
+  snatIp_ = snatIp;
+  setParameter(std::string("SnatIp"), snatIp);
+}
+
+std::string StartSnatIpForSnatEntryRequest::getSnatEntryId() const {
+  return snatEntryId_;
+}
+
+void StartSnatIpForSnatEntryRequest::setSnatEntryId(const std::string &snatEntryId) {
+  snatEntryId_ = snatEntryId;
+  setParameter(std::string("SnatEntryId"), snatEntryId);
+}
+

+ 44 - 0
ens/src/model/StartSnatIpForSnatEntryResult.cc

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

+ 45 - 0
ens/src/model/StopSnatIpForSnatEntryRequest.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/ens/model/StopSnatIpForSnatEntryRequest.h>
+
+using AlibabaCloud::Ens::Model::StopSnatIpForSnatEntryRequest;
+
+StopSnatIpForSnatEntryRequest::StopSnatIpForSnatEntryRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "StopSnatIpForSnatEntry") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+StopSnatIpForSnatEntryRequest::~StopSnatIpForSnatEntryRequest() {}
+
+std::string StopSnatIpForSnatEntryRequest::getSnatIp() const {
+  return snatIp_;
+}
+
+void StopSnatIpForSnatEntryRequest::setSnatIp(const std::string &snatIp) {
+  snatIp_ = snatIp;
+  setParameter(std::string("SnatIp"), snatIp);
+}
+
+std::string StopSnatIpForSnatEntryRequest::getSnatEntryId() const {
+  return snatEntryId_;
+}
+
+void StopSnatIpForSnatEntryRequest::setSnatEntryId(const std::string &snatEntryId) {
+  snatEntryId_ = snatEntryId;
+  setParameter(std::string("SnatEntryId"), snatEntryId);
+}
+

+ 44 - 0
ens/src/model/StopSnatIpForSnatEntryResult.cc

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

+ 68 - 0
ens/src/model/UpdateEnsSaleControlRequest.cc

@@ -0,0 +1,68 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/ens/model/UpdateEnsSaleControlRequest.h>
+
+using AlibabaCloud::Ens::Model::UpdateEnsSaleControlRequest;
+
+UpdateEnsSaleControlRequest::UpdateEnsSaleControlRequest()
+    : RpcServiceRequest("ens", "2017-11-10", "UpdateEnsSaleControl") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+UpdateEnsSaleControlRequest::~UpdateEnsSaleControlRequest() {}
+
+std::vector<UpdateEnsSaleControlRequest::SaleControls> UpdateEnsSaleControlRequest::getSaleControls() const {
+  return saleControls_;
+}
+
+void UpdateEnsSaleControlRequest::setSaleControls(const std::vector<UpdateEnsSaleControlRequest::SaleControls> &saleControls) {
+  saleControls_ = saleControls;
+  for(int dep1 = 0; dep1 != saleControls.size(); dep1++) {
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ModuleCode", saleControls[dep1].moduleCode);
+    for(int dep2 = 0; dep2 != saleControls[dep1].moduleValue.moduleValue.size(); dep2++) {
+      setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ModuleValue.ModuleValue." + std::to_string(dep2 + 1), saleControls[dep1].moduleValue.moduleValue[dep2]);
+    }
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ModuleValue.ModuleMaxValue", saleControls[dep1].moduleValue.moduleMaxValue);
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ModuleValue.ModuleMinValue", saleControls[dep1].moduleValue.moduleMinValue);
+    for(int dep2 = 0; dep2 != saleControls[dep1].conditionControls.size(); dep2++) {
+      setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ConditionControls." + std::to_string(dep2 + 1) + ".ConditionControlModuleValue", saleControls[dep1].conditionControls[dep2].conditionControlModuleValue);
+      setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".ConditionControls." + std::to_string(dep2 + 1) + ".ConditionControlModuleCode", saleControls[dep1].conditionControls[dep2].conditionControlModuleCode);
+    }
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".Description", saleControls[dep1].description);
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".Operator", saleControls[dep1]._operator);
+    setParameter(std::string("SaleControls") + "." + std::to_string(dep1 + 1) + ".OrderType", saleControls[dep1].orderType);
+  }
+}
+
+std::string UpdateEnsSaleControlRequest::getCommodityCode() const {
+  return commodityCode_;
+}
+
+void UpdateEnsSaleControlRequest::setCommodityCode(const std::string &commodityCode) {
+  commodityCode_ = commodityCode;
+  setParameter(std::string("CommodityCode"), commodityCode);
+}
+
+std::string UpdateEnsSaleControlRequest::getAliUidAccount() const {
+  return aliUidAccount_;
+}
+
+void UpdateEnsSaleControlRequest::setAliUidAccount(const std::string &aliUidAccount) {
+  aliUidAccount_ = aliUidAccount;
+  setParameter(std::string("AliUidAccount"), aliUidAccount);
+}
+

+ 44 - 0
ens/src/model/UpdateEnsSaleControlResult.cc

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