DescribeLaunchTemplateVersionsResult.cc 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223
  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["CreateTime"].isNull())
  41. launchTemplateVersionSetsObject.createTime = valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["CreateTime"].asString();
  42. if(!valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["ModifiedTime"].isNull())
  43. launchTemplateVersionSetsObject.modifiedTime = valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["ModifiedTime"].asString();
  44. if(!valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["LaunchTemplateId"].isNull())
  45. launchTemplateVersionSetsObject.launchTemplateId = valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["LaunchTemplateId"].asString();
  46. if(!valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["LaunchTemplateName"].isNull())
  47. launchTemplateVersionSetsObject.launchTemplateName = valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["LaunchTemplateName"].asString();
  48. if(!valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["DefaultVersion"].isNull())
  49. launchTemplateVersionSetsObject.defaultVersion = valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["DefaultVersion"].asString() == "true";
  50. if(!valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["VersionNumber"].isNull())
  51. launchTemplateVersionSetsObject.versionNumber = std::stol(valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["VersionNumber"].asString());
  52. if(!valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["VersionDescription"].isNull())
  53. launchTemplateVersionSetsObject.versionDescription = valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["VersionDescription"].asString();
  54. if(!valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["CreatedBy"].isNull())
  55. launchTemplateVersionSetsObject.createdBy = valueLaunchTemplateVersionSetsLaunchTemplateVersionSet["CreatedBy"].asString();
  56. auto launchTemplateDataNode = value["LaunchTemplateData"];
  57. if(!launchTemplateDataNode["ImageId"].isNull())
  58. launchTemplateVersionSetsObject.launchTemplateData.imageId = launchTemplateDataNode["ImageId"].asString();
  59. if(!launchTemplateDataNode["ImageOwnerAlias"].isNull())
  60. launchTemplateVersionSetsObject.launchTemplateData.imageOwnerAlias = launchTemplateDataNode["ImageOwnerAlias"].asString();
  61. if(!launchTemplateDataNode["PasswordInherit"].isNull())
  62. launchTemplateVersionSetsObject.launchTemplateData.passwordInherit = launchTemplateDataNode["PasswordInherit"].asString() == "true";
  63. if(!launchTemplateDataNode["InstanceType"].isNull())
  64. launchTemplateVersionSetsObject.launchTemplateData.instanceType = launchTemplateDataNode["InstanceType"].asString();
  65. if(!launchTemplateDataNode["SecurityGroupId"].isNull())
  66. launchTemplateVersionSetsObject.launchTemplateData.securityGroupId = launchTemplateDataNode["SecurityGroupId"].asString();
  67. if(!launchTemplateDataNode["VpcId"].isNull())
  68. launchTemplateVersionSetsObject.launchTemplateData.vpcId = launchTemplateDataNode["VpcId"].asString();
  69. if(!launchTemplateDataNode["VSwitchId"].isNull())
  70. launchTemplateVersionSetsObject.launchTemplateData.vSwitchId = launchTemplateDataNode["VSwitchId"].asString();
  71. if(!launchTemplateDataNode["InstanceName"].isNull())
  72. launchTemplateVersionSetsObject.launchTemplateData.instanceName = launchTemplateDataNode["InstanceName"].asString();
  73. if(!launchTemplateDataNode["Description"].isNull())
  74. launchTemplateVersionSetsObject.launchTemplateData.description = launchTemplateDataNode["Description"].asString();
  75. if(!launchTemplateDataNode["InternetMaxBandwidthIn"].isNull())
  76. launchTemplateVersionSetsObject.launchTemplateData.internetMaxBandwidthIn = std::stoi(launchTemplateDataNode["InternetMaxBandwidthIn"].asString());
  77. if(!launchTemplateDataNode["InternetMaxBandwidthOut"].isNull())
  78. launchTemplateVersionSetsObject.launchTemplateData.internetMaxBandwidthOut = std::stoi(launchTemplateDataNode["InternetMaxBandwidthOut"].asString());
  79. if(!launchTemplateDataNode["HostName"].isNull())
  80. launchTemplateVersionSetsObject.launchTemplateData.hostName = launchTemplateDataNode["HostName"].asString();
  81. if(!launchTemplateDataNode["ZoneId"].isNull())
  82. launchTemplateVersionSetsObject.launchTemplateData.zoneId = launchTemplateDataNode["ZoneId"].asString();
  83. if(!launchTemplateDataNode["SystemDisk.Size"].isNull())
  84. launchTemplateVersionSetsObject.launchTemplateData.systemDiskSize = std::stoi(launchTemplateDataNode["SystemDisk.Size"].asString());
  85. if(!launchTemplateDataNode["SystemDisk.Category"].isNull())
  86. launchTemplateVersionSetsObject.launchTemplateData.systemDiskCategory = launchTemplateDataNode["SystemDisk.Category"].asString();
  87. if(!launchTemplateDataNode["SystemDisk.DiskName"].isNull())
  88. launchTemplateVersionSetsObject.launchTemplateData.systemDiskDiskName = launchTemplateDataNode["SystemDisk.DiskName"].asString();
  89. if(!launchTemplateDataNode["SystemDisk.Description"].isNull())
  90. launchTemplateVersionSetsObject.launchTemplateData.systemDiskDescription = launchTemplateDataNode["SystemDisk.Description"].asString();
  91. if(!launchTemplateDataNode["SystemDisk.Iops"].isNull())
  92. launchTemplateVersionSetsObject.launchTemplateData.systemDiskIops = std::stoi(launchTemplateDataNode["SystemDisk.Iops"].asString());
  93. if(!launchTemplateDataNode["SystemDisk.PerformanceLevel"].isNull())
  94. launchTemplateVersionSetsObject.launchTemplateData.systemDiskPerformanceLevel = launchTemplateDataNode["SystemDisk.PerformanceLevel"].asString();
  95. if(!launchTemplateDataNode["SystemDisk.DeleteWithInstance"].isNull())
  96. launchTemplateVersionSetsObject.launchTemplateData.systemDiskDeleteWithInstance = launchTemplateDataNode["SystemDisk.DeleteWithInstance"].asString() == "true";
  97. if(!launchTemplateDataNode["IoOptimized"].isNull())
  98. launchTemplateVersionSetsObject.launchTemplateData.ioOptimized = launchTemplateDataNode["IoOptimized"].asString();
  99. if(!launchTemplateDataNode["InstanceChargeType"].isNull())
  100. launchTemplateVersionSetsObject.launchTemplateData.instanceChargeType = launchTemplateDataNode["InstanceChargeType"].asString();
  101. if(!launchTemplateDataNode["Period"].isNull())
  102. launchTemplateVersionSetsObject.launchTemplateData.period = std::stoi(launchTemplateDataNode["Period"].asString());
  103. if(!launchTemplateDataNode["InternetChargeType"].isNull())
  104. launchTemplateVersionSetsObject.launchTemplateData.internetChargeType = launchTemplateDataNode["InternetChargeType"].asString();
  105. if(!launchTemplateDataNode["EnableVmOsConfig"].isNull())
  106. launchTemplateVersionSetsObject.launchTemplateData.enableVmOsConfig = launchTemplateDataNode["EnableVmOsConfig"].asString() == "true";
  107. if(!launchTemplateDataNode["NetworkType"].isNull())
  108. launchTemplateVersionSetsObject.launchTemplateData.networkType = launchTemplateDataNode["NetworkType"].asString();
  109. if(!launchTemplateDataNode["UserData"].isNull())
  110. launchTemplateVersionSetsObject.launchTemplateData.userData = launchTemplateDataNode["UserData"].asString();
  111. if(!launchTemplateDataNode["KeyPairName"].isNull())
  112. launchTemplateVersionSetsObject.launchTemplateData.keyPairName = launchTemplateDataNode["KeyPairName"].asString();
  113. if(!launchTemplateDataNode["RamRoleName"].isNull())
  114. launchTemplateVersionSetsObject.launchTemplateData.ramRoleName = launchTemplateDataNode["RamRoleName"].asString();
  115. if(!launchTemplateDataNode["AutoReleaseTime"].isNull())
  116. launchTemplateVersionSetsObject.launchTemplateData.autoReleaseTime = launchTemplateDataNode["AutoReleaseTime"].asString();
  117. if(!launchTemplateDataNode["SpotStrategy"].isNull())
  118. launchTemplateVersionSetsObject.launchTemplateData.spotStrategy = launchTemplateDataNode["SpotStrategy"].asString();
  119. if(!launchTemplateDataNode["SpotPriceLimit"].isNull())
  120. launchTemplateVersionSetsObject.launchTemplateData.spotPriceLimit = std::stof(launchTemplateDataNode["SpotPriceLimit"].asString());
  121. if(!launchTemplateDataNode["SpotDuration"].isNull())
  122. launchTemplateVersionSetsObject.launchTemplateData.spotDuration = std::stoi(launchTemplateDataNode["SpotDuration"].asString());
  123. if(!launchTemplateDataNode["ResourceGroupId"].isNull())
  124. launchTemplateVersionSetsObject.launchTemplateData.resourceGroupId = launchTemplateDataNode["ResourceGroupId"].asString();
  125. if(!launchTemplateDataNode["SecurityEnhancementStrategy"].isNull())
  126. launchTemplateVersionSetsObject.launchTemplateData.securityEnhancementStrategy = launchTemplateDataNode["SecurityEnhancementStrategy"].asString();
  127. if(!launchTemplateDataNode["PrivateIpAddress"].isNull())
  128. launchTemplateVersionSetsObject.launchTemplateData.privateIpAddress = launchTemplateDataNode["PrivateIpAddress"].asString();
  129. if(!launchTemplateDataNode["DeploymentSetId"].isNull())
  130. launchTemplateVersionSetsObject.launchTemplateData.deploymentSetId = launchTemplateDataNode["DeploymentSetId"].asString();
  131. auto allDataDisksNode = launchTemplateDataNode["DataDisks"]["DataDisk"];
  132. for (auto launchTemplateDataNodeDataDisksDataDisk : allDataDisksNode)
  133. {
  134. LaunchTemplateVersionSet::LaunchTemplateData::DataDisk dataDiskObject;
  135. if(!launchTemplateDataNodeDataDisksDataDisk["Size"].isNull())
  136. dataDiskObject.size = std::stoi(launchTemplateDataNodeDataDisksDataDisk["Size"].asString());
  137. if(!launchTemplateDataNodeDataDisksDataDisk["SnapshotId"].isNull())
  138. dataDiskObject.snapshotId = launchTemplateDataNodeDataDisksDataDisk["SnapshotId"].asString();
  139. if(!launchTemplateDataNodeDataDisksDataDisk["Category"].isNull())
  140. dataDiskObject.category = launchTemplateDataNodeDataDisksDataDisk["Category"].asString();
  141. if(!launchTemplateDataNodeDataDisksDataDisk["Encrypted"].isNull())
  142. dataDiskObject.encrypted = launchTemplateDataNodeDataDisksDataDisk["Encrypted"].asString();
  143. if(!launchTemplateDataNodeDataDisksDataDisk["DiskName"].isNull())
  144. dataDiskObject.diskName = launchTemplateDataNodeDataDisksDataDisk["DiskName"].asString();
  145. if(!launchTemplateDataNodeDataDisksDataDisk["Description"].isNull())
  146. dataDiskObject.description = launchTemplateDataNodeDataDisksDataDisk["Description"].asString();
  147. if(!launchTemplateDataNodeDataDisksDataDisk["DeleteWithInstance"].isNull())
  148. dataDiskObject.deleteWithInstance = launchTemplateDataNodeDataDisksDataDisk["DeleteWithInstance"].asString() == "true";
  149. if(!launchTemplateDataNodeDataDisksDataDisk["Device"].isNull())
  150. dataDiskObject.device = launchTemplateDataNodeDataDisksDataDisk["Device"].asString();
  151. if(!launchTemplateDataNodeDataDisksDataDisk["PerformanceLevel"].isNull())
  152. dataDiskObject.performanceLevel = launchTemplateDataNodeDataDisksDataDisk["PerformanceLevel"].asString();
  153. launchTemplateVersionSetsObject.launchTemplateData.dataDisks.push_back(dataDiskObject);
  154. }
  155. auto allNetworkInterfacesNode = launchTemplateDataNode["NetworkInterfaces"]["NetworkInterface"];
  156. for (auto launchTemplateDataNodeNetworkInterfacesNetworkInterface : allNetworkInterfacesNode)
  157. {
  158. LaunchTemplateVersionSet::LaunchTemplateData::NetworkInterface networkInterfaceObject;
  159. if(!launchTemplateDataNodeNetworkInterfacesNetworkInterface["PrimaryIpAddress"].isNull())
  160. networkInterfaceObject.primaryIpAddress = launchTemplateDataNodeNetworkInterfacesNetworkInterface["PrimaryIpAddress"].asString();
  161. if(!launchTemplateDataNodeNetworkInterfacesNetworkInterface["VSwitchId"].isNull())
  162. networkInterfaceObject.vSwitchId = launchTemplateDataNodeNetworkInterfacesNetworkInterface["VSwitchId"].asString();
  163. if(!launchTemplateDataNodeNetworkInterfacesNetworkInterface["SecurityGroupId"].isNull())
  164. networkInterfaceObject.securityGroupId = launchTemplateDataNodeNetworkInterfacesNetworkInterface["SecurityGroupId"].asString();
  165. if(!launchTemplateDataNodeNetworkInterfacesNetworkInterface["NetworkInterfaceName"].isNull())
  166. networkInterfaceObject.networkInterfaceName = launchTemplateDataNodeNetworkInterfacesNetworkInterface["NetworkInterfaceName"].asString();
  167. if(!launchTemplateDataNodeNetworkInterfacesNetworkInterface["Description"].isNull())
  168. networkInterfaceObject.description = launchTemplateDataNodeNetworkInterfacesNetworkInterface["Description"].asString();
  169. auto allSecurityGroupIds1 = value["SecurityGroupIds"]["SecurityGroupId"];
  170. for (auto value : allSecurityGroupIds1)
  171. networkInterfaceObject.securityGroupIds1.push_back(value.asString());
  172. launchTemplateVersionSetsObject.launchTemplateData.networkInterfaces.push_back(networkInterfaceObject);
  173. }
  174. auto allTagsNode = launchTemplateDataNode["Tags"]["InstanceTag"];
  175. for (auto launchTemplateDataNodeTagsInstanceTag : allTagsNode)
  176. {
  177. LaunchTemplateVersionSet::LaunchTemplateData::InstanceTag instanceTagObject;
  178. if(!launchTemplateDataNodeTagsInstanceTag["Key"].isNull())
  179. instanceTagObject.key = launchTemplateDataNodeTagsInstanceTag["Key"].asString();
  180. if(!launchTemplateDataNodeTagsInstanceTag["Value"].isNull())
  181. instanceTagObject.value = launchTemplateDataNodeTagsInstanceTag["Value"].asString();
  182. launchTemplateVersionSetsObject.launchTemplateData.tags.push_back(instanceTagObject);
  183. }
  184. auto allSecurityGroupIds = launchTemplateDataNode["SecurityGroupIds"]["SecurityGroupId"];
  185. for (auto value : allSecurityGroupIds)
  186. launchTemplateVersionSetsObject.launchTemplateData.securityGroupIds.push_back(value.asString());
  187. launchTemplateVersionSets_.push_back(launchTemplateVersionSetsObject);
  188. }
  189. if(!value["TotalCount"].isNull())
  190. totalCount_ = std::stoi(value["TotalCount"].asString());
  191. if(!value["PageNumber"].isNull())
  192. pageNumber_ = std::stoi(value["PageNumber"].asString());
  193. if(!value["PageSize"].isNull())
  194. pageSize_ = std::stoi(value["PageSize"].asString());
  195. }
  196. int DescribeLaunchTemplateVersionsResult::getTotalCount()const
  197. {
  198. return totalCount_;
  199. }
  200. int DescribeLaunchTemplateVersionsResult::getPageSize()const
  201. {
  202. return pageSize_;
  203. }
  204. int DescribeLaunchTemplateVersionsResult::getPageNumber()const
  205. {
  206. return pageNumber_;
  207. }
  208. std::vector<DescribeLaunchTemplateVersionsResult::LaunchTemplateVersionSet> DescribeLaunchTemplateVersionsResult::getLaunchTemplateVersionSets()const
  209. {
  210. return launchTemplateVersionSets_;
  211. }