DescribeLaunchTemplateVersionsResult.cc 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247
  1. /*
  2. * Copyright 2009-2017 Alibaba Cloud All rights reserved.
  3. *
  4. * Licensed under the Apache License, Version 2.0 (the "License");
  5. * you may not use this file except in compliance with the License.
  6. * You may obtain a copy of the License at
  7. *
  8. * http://www.apache.org/licenses/LICENSE-2.0
  9. *
  10. * Unless required by applicable law or agreed to in writing, software
  11. * distributed under the License is distributed on an "AS IS" BASIS,
  12. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. * See the License for the specific language governing permissions and
  14. * limitations under the License.
  15. */
  16. #include <alibabacloud/ecs/model/DescribeLaunchTemplateVersionsResult.h>
  17. #include <json/json.h>
  18. using namespace AlibabaCloud::Ecs;
  19. using namespace AlibabaCloud::Ecs::Model;
  20. DescribeLaunchTemplateVersionsResult::DescribeLaunchTemplateVersionsResult() :
  21. ServiceResult()
  22. {}
  23. DescribeLaunchTemplateVersionsResult::DescribeLaunchTemplateVersionsResult(const std::string &payload) :
  24. ServiceResult()
  25. {
  26. parse(payload);
  27. }
  28. DescribeLaunchTemplateVersionsResult::~DescribeLaunchTemplateVersionsResult()
  29. {}
  30. void DescribeLaunchTemplateVersionsResult::parse(const std::string &payload)
  31. {
  32. Json::Reader reader;
  33. Json::Value value;
  34. reader.parse(payload, value);
  35. setRequestId(value["RequestId"].asString());
  36. auto allLaunchTemplateVersionSetsNode = value["LaunchTemplateVersionSets"]["LaunchTemplateVersionSet"];
  37. for (auto valueLaunchTemplateVersionSetsLaunchTemplateVersionSet : allLaunchTemplateVersionSetsNode)
  38. {
  39. LaunchTemplateVersionSet launchTemplateVersionSetsObject;
  40. if(!valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["LaunchTemplateName"].isNull())
  41. launchTemplateVersionSetsObject.launchTemplateName = valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["LaunchTemplateName"].asString();
  42. if(!valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["DefaultVersion"].isNull())
  43. launchTemplateVersionSetsObject.defaultVersion = valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["DefaultVersion"].asString() == "true";
  44. if(!valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["VersionNumber"].isNull())
  45. launchTemplateVersionSetsObject.versionNumber = std::stol(valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["VersionNumber"].asString());
  46. if(!valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["ModifiedTime"].isNull())
  47. launchTemplateVersionSetsObject.modifiedTime = valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["ModifiedTime"].asString();
  48. if(!valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["LaunchTemplateId"].isNull())
  49. launchTemplateVersionSetsObject.launchTemplateId = valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["LaunchTemplateId"].asString();
  50. if(!valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["CreateTime"].isNull())
  51. launchTemplateVersionSetsObject.createTime = valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["CreateTime"].asString();
  52. if(!valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["CreatedBy"].isNull())
  53. launchTemplateVersionSetsObject.createdBy = valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["CreatedBy"].asString();
  54. if(!valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["VersionDescription"].isNull())
  55. launchTemplateVersionSetsObject.versionDescription = valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["VersionDescription"].asString();
  56. auto launchTemplateDataNode = value["LaunchTemplateData"];
  57. if(!launchTemplateDataNode["DeploymentSetId"].isNull())
  58. launchTemplateVersionSetsObject.launchTemplateData.deploymentSetId = launchTemplateDataNode["DeploymentSetId"].asString();
  59. if(!launchTemplateDataNode["VpcId"].isNull())
  60. launchTemplateVersionSetsObject.launchTemplateData.vpcId = launchTemplateDataNode["VpcId"].asString();
  61. if(!launchTemplateDataNode["SystemDisk.PerformanceLevel"].isNull())
  62. launchTemplateVersionSetsObject.launchTemplateData.systemDiskPerformanceLevel = launchTemplateDataNode["SystemDisk.PerformanceLevel"].asString();
  63. if(!launchTemplateDataNode["KeyPairName"].isNull())
  64. launchTemplateVersionSetsObject.launchTemplateData.keyPairName = launchTemplateDataNode["KeyPairName"].asString();
  65. if(!launchTemplateDataNode["SecurityGroupId"].isNull())
  66. launchTemplateVersionSetsObject.launchTemplateData.securityGroupId = launchTemplateDataNode["SecurityGroupId"].asString();
  67. if(!launchTemplateDataNode["NetworkType"].isNull())
  68. launchTemplateVersionSetsObject.launchTemplateData.networkType = launchTemplateDataNode["NetworkType"].asString();
  69. if(!launchTemplateDataNode["SpotStrategy"].isNull())
  70. launchTemplateVersionSetsObject.launchTemplateData.spotStrategy = launchTemplateDataNode["SpotStrategy"].asString();
  71. if(!launchTemplateDataNode["EnableVmOsConfig"].isNull())
  72. launchTemplateVersionSetsObject.launchTemplateData.enableVmOsConfig = launchTemplateDataNode["EnableVmOsConfig"].asString() == "true";
  73. if(!launchTemplateDataNode["Description"].isNull())
  74. launchTemplateVersionSetsObject.launchTemplateData.description = launchTemplateDataNode["Description"].asString();
  75. if(!launchTemplateDataNode["SpotDuration"].isNull())
  76. launchTemplateVersionSetsObject.launchTemplateData.spotDuration = std::stoi(launchTemplateDataNode["SpotDuration"].asString());
  77. if(!launchTemplateDataNode["InstanceName"].isNull())
  78. launchTemplateVersionSetsObject.launchTemplateData.instanceName = launchTemplateDataNode["InstanceName"].asString();
  79. if(!launchTemplateDataNode["SecurityEnhancementStrategy"].isNull())
  80. launchTemplateVersionSetsObject.launchTemplateData.securityEnhancementStrategy = launchTemplateDataNode["SecurityEnhancementStrategy"].asString();
  81. if(!launchTemplateDataNode["UserData"].isNull())
  82. launchTemplateVersionSetsObject.launchTemplateData.userData = launchTemplateDataNode["UserData"].asString();
  83. if(!launchTemplateDataNode["SystemDisk.DiskName"].isNull())
  84. launchTemplateVersionSetsObject.launchTemplateData.systemDiskDiskName = launchTemplateDataNode["SystemDisk.DiskName"].asString();
  85. if(!launchTemplateDataNode["SystemDisk.Size"].isNull())
  86. launchTemplateVersionSetsObject.launchTemplateData.systemDiskSize = std::stoi(launchTemplateDataNode["SystemDisk.Size"].asString());
  87. if(!launchTemplateDataNode["SpotPriceLimit"].isNull())
  88. launchTemplateVersionSetsObject.launchTemplateData.spotPriceLimit = std::stof(launchTemplateDataNode["SpotPriceLimit"].asString());
  89. if(!launchTemplateDataNode["PasswordInherit"].isNull())
  90. launchTemplateVersionSetsObject.launchTemplateData.passwordInherit = launchTemplateDataNode["PasswordInherit"].asString() == "true";
  91. if(!launchTemplateDataNode["PrivateIpAddress"].isNull())
  92. launchTemplateVersionSetsObject.launchTemplateData.privateIpAddress = launchTemplateDataNode["PrivateIpAddress"].asString();
  93. if(!launchTemplateDataNode["ImageId"].isNull())
  94. launchTemplateVersionSetsObject.launchTemplateData.imageId = launchTemplateDataNode["ImageId"].asString();
  95. if(!launchTemplateDataNode["SystemDisk.DeleteWithInstance"].isNull())
  96. launchTemplateVersionSetsObject.launchTemplateData.systemDiskDeleteWithInstance = launchTemplateDataNode["SystemDisk.DeleteWithInstance"].asString() == "true";
  97. if(!launchTemplateDataNode["SystemDisk.Category"].isNull())
  98. launchTemplateVersionSetsObject.launchTemplateData.systemDiskCategory = launchTemplateDataNode["SystemDisk.Category"].asString();
  99. if(!launchTemplateDataNode["AutoReleaseTime"].isNull())
  100. launchTemplateVersionSetsObject.launchTemplateData.autoReleaseTime = launchTemplateDataNode["AutoReleaseTime"].asString();
  101. if(!launchTemplateDataNode["SystemDisk.Description"].isNull())
  102. launchTemplateVersionSetsObject.launchTemplateData.systemDiskDescription = launchTemplateDataNode["SystemDisk.Description"].asString();
  103. if(!launchTemplateDataNode["ImageOwnerAlias"].isNull())
  104. launchTemplateVersionSetsObject.launchTemplateData.imageOwnerAlias = launchTemplateDataNode["ImageOwnerAlias"].asString();
  105. if(!launchTemplateDataNode["HostName"].isNull())
  106. launchTemplateVersionSetsObject.launchTemplateData.hostName = launchTemplateDataNode["HostName"].asString();
  107. if(!launchTemplateDataNode["SystemDisk.Iops"].isNull())
  108. launchTemplateVersionSetsObject.launchTemplateData.systemDiskIops = std::stoi(launchTemplateDataNode["SystemDisk.Iops"].asString());
  109. if(!launchTemplateDataNode["SystemDisk.AutoSnapshotPolicyId"].isNull())
  110. launchTemplateVersionSetsObject.launchTemplateData.systemDiskAutoSnapshotPolicyId = launchTemplateDataNode["SystemDisk.AutoSnapshotPolicyId"].asString();
  111. if(!launchTemplateDataNode["InternetMaxBandwidthOut"].isNull())
  112. launchTemplateVersionSetsObject.launchTemplateData.internetMaxBandwidthOut = std::stoi(launchTemplateDataNode["InternetMaxBandwidthOut"].asString());
  113. if(!launchTemplateDataNode["InternetMaxBandwidthIn"].isNull())
  114. launchTemplateVersionSetsObject.launchTemplateData.internetMaxBandwidthIn = std::stoi(launchTemplateDataNode["InternetMaxBandwidthIn"].asString());
  115. if(!launchTemplateDataNode["InstanceType"].isNull())
  116. launchTemplateVersionSetsObject.launchTemplateData.instanceType = launchTemplateDataNode["InstanceType"].asString();
  117. if(!launchTemplateDataNode["Period"].isNull())
  118. launchTemplateVersionSetsObject.launchTemplateData.period = std::stoi(launchTemplateDataNode["Period"].asString());
  119. if(!launchTemplateDataNode["InstanceChargeType"].isNull())
  120. launchTemplateVersionSetsObject.launchTemplateData.instanceChargeType = launchTemplateDataNode["InstanceChargeType"].asString();
  121. if(!launchTemplateDataNode["IoOptimized"].isNull())
  122. launchTemplateVersionSetsObject.launchTemplateData.ioOptimized = launchTemplateDataNode["IoOptimized"].asString();
  123. if(!launchTemplateDataNode["RamRoleName"].isNull())
  124. launchTemplateVersionSetsObject.launchTemplateData.ramRoleName = launchTemplateDataNode["RamRoleName"].asString();
  125. if(!launchTemplateDataNode["VSwitchId"].isNull())
  126. launchTemplateVersionSetsObject.launchTemplateData.vSwitchId = launchTemplateDataNode["VSwitchId"].asString();
  127. if(!launchTemplateDataNode["ResourceGroupId"].isNull())
  128. launchTemplateVersionSetsObject.launchTemplateData.resourceGroupId = launchTemplateDataNode["ResourceGroupId"].asString();
  129. if(!launchTemplateDataNode["InternetChargeType"].isNull())
  130. launchTemplateVersionSetsObject.launchTemplateData.internetChargeType = launchTemplateDataNode["InternetChargeType"].asString();
  131. if(!launchTemplateDataNode["ZoneId"].isNull())
  132. launchTemplateVersionSetsObject.launchTemplateData.zoneId = launchTemplateDataNode["ZoneId"].asString();
  133. if(!launchTemplateDataNode["Ipv6AddressCount"].isNull())
  134. launchTemplateVersionSetsObject.launchTemplateData.ipv6AddressCount = std::stoi(launchTemplateDataNode["Ipv6AddressCount"].asString());
  135. if(!launchTemplateDataNode["SystemDisk.ProvisionedIops"].isNull())
  136. launchTemplateVersionSetsObject.launchTemplateData.systemDiskProvisionedIops = std::stol(launchTemplateDataNode["SystemDisk.ProvisionedIops"].asString());
  137. if(!launchTemplateDataNode["SystemDisk.BurstingEnabled"].isNull())
  138. launchTemplateVersionSetsObject.launchTemplateData.systemDiskBurstingEnabled = launchTemplateDataNode["SystemDisk.BurstingEnabled"].asString() == "true";
  139. if(!launchTemplateDataNode["SystemDisk.Encrypted"].isNull())
  140. launchTemplateVersionSetsObject.launchTemplateData.systemDiskEncrypted = launchTemplateDataNode["SystemDisk.Encrypted"].asString();
  141. if(!launchTemplateDataNode["DeletionProtection"].isNull())
  142. launchTemplateVersionSetsObject.launchTemplateData.deletionProtection = launchTemplateDataNode["DeletionProtection"].asString() == "true";
  143. if(!launchTemplateDataNode["CreditSpecification"].isNull())
  144. launchTemplateVersionSetsObject.launchTemplateData.creditSpecification = launchTemplateDataNode["CreditSpecification"].asString();
  145. auto allDataDisksNode = launchTemplateDataNode["DataDisks"]["DataDisk"];
  146. for (auto launchTemplateDataNodeDataDisksDataDisk : allDataDisksNode)
  147. {
  148. LaunchTemplateVersionSet::LaunchTemplateData::DataDisk dataDiskObject;
  149. if(!launchTemplateDataNodeDataDisksDataDisk["PerformanceLevel"].isNull())
  150. dataDiskObject.performanceLevel = launchTemplateDataNodeDataDisksDataDisk["PerformanceLevel"].asString();
  151. if(!launchTemplateDataNodeDataDisksDataDisk["Description"].isNull())
  152. dataDiskObject.description = launchTemplateDataNodeDataDisksDataDisk["Description"].asString();
  153. if(!launchTemplateDataNodeDataDisksDataDisk["SnapshotId"].isNull())
  154. dataDiskObject.snapshotId = launchTemplateDataNodeDataDisksDataDisk["SnapshotId"].asString();
  155. if(!launchTemplateDataNodeDataDisksDataDisk["Device"].isNull())
  156. dataDiskObject.device = launchTemplateDataNodeDataDisksDataDisk["Device"].asString();
  157. if(!launchTemplateDataNodeDataDisksDataDisk["Size"].isNull())
  158. dataDiskObject.size = std::stoi(launchTemplateDataNodeDataDisksDataDisk["Size"].asString());
  159. if(!launchTemplateDataNodeDataDisksDataDisk["DiskName"].isNull())
  160. dataDiskObject.diskName = launchTemplateDataNodeDataDisksDataDisk["DiskName"].asString();
  161. if(!launchTemplateDataNodeDataDisksDataDisk["Category"].isNull())
  162. dataDiskObject.category = launchTemplateDataNodeDataDisksDataDisk["Category"].asString();
  163. if(!launchTemplateDataNodeDataDisksDataDisk["DeleteWithInstance"].isNull())
  164. dataDiskObject.deleteWithInstance = launchTemplateDataNodeDataDisksDataDisk["DeleteWithInstance"].asString() == "true";
  165. if(!launchTemplateDataNodeDataDisksDataDisk["Encrypted"].isNull())
  166. dataDiskObject.encrypted = launchTemplateDataNodeDataDisksDataDisk["Encrypted"].asString();
  167. if(!launchTemplateDataNodeDataDisksDataDisk["ProvisionedIops"].isNull())
  168. dataDiskObject.provisionedIops = std::stol(launchTemplateDataNodeDataDisksDataDisk["ProvisionedIops"].asString());
  169. if(!launchTemplateDataNodeDataDisksDataDisk["BurstingEnabled"].isNull())
  170. dataDiskObject.burstingEnabled = launchTemplateDataNodeDataDisksDataDisk["BurstingEnabled"].asString() == "true";
  171. if(!launchTemplateDataNodeDataDisksDataDisk["AutoSnapshotPolicyId"].isNull())
  172. dataDiskObject.autoSnapshotPolicyId = launchTemplateDataNodeDataDisksDataDisk["AutoSnapshotPolicyId"].asString();
  173. launchTemplateVersionSetsObject.launchTemplateData.dataDisks.push_back(dataDiskObject);
  174. }
  175. auto allNetworkInterfacesNode = launchTemplateDataNode["NetworkInterfaces"]["NetworkInterface"];
  176. for (auto launchTemplateDataNodeNetworkInterfacesNetworkInterface : allNetworkInterfacesNode)
  177. {
  178. LaunchTemplateVersionSet::LaunchTemplateData::NetworkInterface networkInterfaceObject;
  179. if(!launchTemplateDataNodeNetworkInterfacesNetworkInterface["NetworkInterfaceName"].isNull())
  180. networkInterfaceObject.networkInterfaceName = launchTemplateDataNodeNetworkInterfacesNetworkInterface["NetworkInterfaceName"].asString();
  181. if(!launchTemplateDataNodeNetworkInterfacesNetworkInterface["VSwitchId"].isNull())
  182. networkInterfaceObject.vSwitchId = launchTemplateDataNodeNetworkInterfacesNetworkInterface["VSwitchId"].asString();
  183. if(!launchTemplateDataNodeNetworkInterfacesNetworkInterface["Description"].isNull())
  184. networkInterfaceObject.description = launchTemplateDataNodeNetworkInterfacesNetworkInterface["Description"].asString();
  185. if(!launchTemplateDataNodeNetworkInterfacesNetworkInterface["PrimaryIpAddress"].isNull())
  186. networkInterfaceObject.primaryIpAddress = launchTemplateDataNodeNetworkInterfacesNetworkInterface["PrimaryIpAddress"].asString();
  187. if(!launchTemplateDataNodeNetworkInterfacesNetworkInterface["SecurityGroupId"].isNull())
  188. networkInterfaceObject.securityGroupId = launchTemplateDataNodeNetworkInterfacesNetworkInterface["SecurityGroupId"].asString();
  189. if(!launchTemplateDataNodeNetworkInterfacesNetworkInterface["InstanceType"].isNull())
  190. networkInterfaceObject.instanceType = launchTemplateDataNodeNetworkInterfacesNetworkInterface["InstanceType"].asString();
  191. if(!launchTemplateDataNodeNetworkInterfacesNetworkInterface["NetworkInterfaceTrafficMode"].isNull())
  192. networkInterfaceObject.networkInterfaceTrafficMode = launchTemplateDataNodeNetworkInterfacesNetworkInterface["NetworkInterfaceTrafficMode"].asString();
  193. auto allSecurityGroupIds1 = value["SecurityGroupIds"]["SecurityGroupId"];
  194. for (auto value : allSecurityGroupIds1)
  195. networkInterfaceObject.securityGroupIds1.push_back(value.asString());
  196. launchTemplateVersionSetsObject.launchTemplateData.networkInterfaces.push_back(networkInterfaceObject);
  197. }
  198. auto allTagsNode = launchTemplateDataNode["Tags"]["InstanceTag"];
  199. for (auto launchTemplateDataNodeTagsInstanceTag : allTagsNode)
  200. {
  201. LaunchTemplateVersionSet::LaunchTemplateData::InstanceTag instanceTagObject;
  202. if(!launchTemplateDataNodeTagsInstanceTag["Key"].isNull())
  203. instanceTagObject.key = launchTemplateDataNodeTagsInstanceTag["Key"].asString();
  204. if(!launchTemplateDataNodeTagsInstanceTag["Value"].isNull())
  205. instanceTagObject.value = launchTemplateDataNodeTagsInstanceTag["Value"].asString();
  206. launchTemplateVersionSetsObject.launchTemplateData.tags.push_back(instanceTagObject);
  207. }
  208. auto allSecurityGroupIds = launchTemplateDataNode["SecurityGroupIds"]["SecurityGroupId"];
  209. for (auto value : allSecurityGroupIds)
  210. launchTemplateVersionSetsObject.launchTemplateData.securityGroupIds.push_back(value.asString());
  211. launchTemplateVersionSets_.push_back(launchTemplateVersionSetsObject);
  212. }
  213. if(!value["PageSize"].isNull())
  214. pageSize_ = std::stoi(value["PageSize"].asString());
  215. if(!value["PageNumber"].isNull())
  216. pageNumber_ = std::stoi(value["PageNumber"].asString());
  217. if(!value["TotalCount"].isNull())
  218. totalCount_ = std::stoi(value["TotalCount"].asString());
  219. }
  220. int DescribeLaunchTemplateVersionsResult::getTotalCount()const
  221. {
  222. return totalCount_;
  223. }
  224. int DescribeLaunchTemplateVersionsResult::getPageSize()const
  225. {
  226. return pageSize_;
  227. }
  228. int DescribeLaunchTemplateVersionsResult::getPageNumber()const
  229. {
  230. return pageNumber_;
  231. }
  232. std::vector<DescribeLaunchTemplateVersionsResult::LaunchTemplateVersionSet> DescribeLaunchTemplateVersionsResult::getLaunchTemplateVersionSets()const
  233. {
  234. return launchTemplateVersionSets_;
  235. }