DescribeInstanceAttributeResult.cc 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288
  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/DescribeInstanceAttributeResult.h>
  17. #include <json/json.h>
  18. using namespace AlibabaCloud::Ecs;
  19. using namespace AlibabaCloud::Ecs::Model;
  20. DescribeInstanceAttributeResult::DescribeInstanceAttributeResult() :
  21. ServiceResult()
  22. {}
  23. DescribeInstanceAttributeResult::DescribeInstanceAttributeResult(const std::string &payload) :
  24. ServiceResult()
  25. {
  26. parse(payload);
  27. }
  28. DescribeInstanceAttributeResult::~DescribeInstanceAttributeResult()
  29. {}
  30. void DescribeInstanceAttributeResult::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 allOperationLocksNode = value["OperationLocks"]["LockReason"];
  37. for (auto valueOperationLocksLockReason : allOperationLocksNode)
  38. {
  39. LockReason operationLocksObject;
  40. if(!valueOperationLocksLockReason["LockReason"].isNull())
  41. operationLocksObject.lockReason = valueOperationLocksLockReason["LockReason"].asString();
  42. operationLocks_.push_back(operationLocksObject);
  43. }
  44. auto vpcAttributesNode = value["VpcAttributes"];
  45. if(!vpcAttributesNode["VpcId"].isNull())
  46. vpcAttributes_.vpcId = vpcAttributesNode["VpcId"].asString();
  47. if(!vpcAttributesNode["VSwitchId"].isNull())
  48. vpcAttributes_.vSwitchId = vpcAttributesNode["VSwitchId"].asString();
  49. if(!vpcAttributesNode["NatIpAddress"].isNull())
  50. vpcAttributes_.natIpAddress = vpcAttributesNode["NatIpAddress"].asString();
  51. auto allPrivateIpAddress = vpcAttributesNode["PrivateIpAddress"]["IpAddress"];
  52. for (auto value : allPrivateIpAddress)
  53. vpcAttributes_.privateIpAddress.push_back(value.asString());
  54. auto eipAddressNode = value["EipAddress"];
  55. if(!eipAddressNode["AllocationId"].isNull())
  56. eipAddress_.allocationId = eipAddressNode["AllocationId"].asString();
  57. if(!eipAddressNode["IpAddress"].isNull())
  58. eipAddress_.ipAddress = eipAddressNode["IpAddress"].asString();
  59. if(!eipAddressNode["Bandwidth"].isNull())
  60. eipAddress_.bandwidth = std::stoi(eipAddressNode["Bandwidth"].asString());
  61. if(!eipAddressNode["InternetChargeType"].isNull())
  62. eipAddress_.internetChargeType = eipAddressNode["InternetChargeType"].asString();
  63. auto dedicatedHostAttributeNode = value["DedicatedHostAttribute"];
  64. if(!dedicatedHostAttributeNode["DedicatedHostId"].isNull())
  65. dedicatedHostAttribute_.dedicatedHostId = dedicatedHostAttributeNode["DedicatedHostId"].asString();
  66. if(!dedicatedHostAttributeNode["DedicatedHostName"].isNull())
  67. dedicatedHostAttribute_.dedicatedHostName = dedicatedHostAttributeNode["DedicatedHostName"].asString();
  68. auto allSecurityGroupIds = value["SecurityGroupIds"]["SecurityGroupId"];
  69. for (const auto &item : allSecurityGroupIds)
  70. securityGroupIds_.push_back(item.asString());
  71. auto allPublicIpAddress = value["PublicIpAddress"]["IpAddress"];
  72. for (const auto &item : allPublicIpAddress)
  73. publicIpAddress_.push_back(item.asString());
  74. auto allInnerIpAddress = value["InnerIpAddress"]["IpAddress"];
  75. for (const auto &item : allInnerIpAddress)
  76. innerIpAddress_.push_back(item.asString());
  77. if(!value["InstanceId"].isNull())
  78. instanceId_ = value["InstanceId"].asString();
  79. if(!value["InstanceName"].isNull())
  80. instanceName_ = value["InstanceName"].asString();
  81. if(!value["ImageId"].isNull())
  82. imageId_ = value["ImageId"].asString();
  83. if(!value["RegionId"].isNull())
  84. regionId_ = value["RegionId"].asString();
  85. if(!value["ZoneId"].isNull())
  86. zoneId_ = value["ZoneId"].asString();
  87. if(!value["ClusterId"].isNull())
  88. clusterId_ = value["ClusterId"].asString();
  89. if(!value["InstanceType"].isNull())
  90. instanceType_ = value["InstanceType"].asString();
  91. if(!value["Cpu"].isNull())
  92. cpu_ = std::stoi(value["Cpu"].asString());
  93. if(!value["Memory"].isNull())
  94. memory_ = std::stoi(value["Memory"].asString());
  95. if(!value["HostName"].isNull())
  96. hostName_ = value["HostName"].asString();
  97. if(!value["Status"].isNull())
  98. status_ = value["Status"].asString();
  99. if(!value["InternetChargeType"].isNull())
  100. internetChargeType_ = value["InternetChargeType"].asString();
  101. if(!value["InternetMaxBandwidthIn"].isNull())
  102. internetMaxBandwidthIn_ = std::stoi(value["InternetMaxBandwidthIn"].asString());
  103. if(!value["InternetMaxBandwidthOut"].isNull())
  104. internetMaxBandwidthOut_ = std::stoi(value["InternetMaxBandwidthOut"].asString());
  105. if(!value["VlanId"].isNull())
  106. vlanId_ = value["VlanId"].asString();
  107. if(!value["SerialNumber"].isNull())
  108. serialNumber_ = value["SerialNumber"].asString();
  109. if(!value["CreationTime"].isNull())
  110. creationTime_ = value["CreationTime"].asString();
  111. if(!value["Description"].isNull())
  112. description_ = value["Description"].asString();
  113. if(!value["InstanceNetworkType"].isNull())
  114. instanceNetworkType_ = value["InstanceNetworkType"].asString();
  115. if(!value["IoOptimized"].isNull())
  116. ioOptimized_ = value["IoOptimized"].asString();
  117. if(!value["InstanceChargeType"].isNull())
  118. instanceChargeType_ = value["InstanceChargeType"].asString();
  119. if(!value["ExpiredTime"].isNull())
  120. expiredTime_ = value["ExpiredTime"].asString();
  121. if(!value["StoppedMode"].isNull())
  122. stoppedMode_ = value["StoppedMode"].asString();
  123. if(!value["CreditSpecification"].isNull())
  124. creditSpecification_ = value["CreditSpecification"].asString();
  125. }
  126. std::string DescribeInstanceAttributeResult::getDescription()const
  127. {
  128. return description_;
  129. }
  130. int DescribeInstanceAttributeResult::getMemory()const
  131. {
  132. return memory_;
  133. }
  134. std::string DescribeInstanceAttributeResult::getInstanceChargeType()const
  135. {
  136. return instanceChargeType_;
  137. }
  138. int DescribeInstanceAttributeResult::getCpu()const
  139. {
  140. return cpu_;
  141. }
  142. std::string DescribeInstanceAttributeResult::getInstanceNetworkType()const
  143. {
  144. return instanceNetworkType_;
  145. }
  146. std::vector<std::string> DescribeInstanceAttributeResult::getPublicIpAddress()const
  147. {
  148. return publicIpAddress_;
  149. }
  150. std::vector<std::string> DescribeInstanceAttributeResult::getInnerIpAddress()const
  151. {
  152. return innerIpAddress_;
  153. }
  154. std::string DescribeInstanceAttributeResult::getExpiredTime()const
  155. {
  156. return expiredTime_;
  157. }
  158. DescribeInstanceAttributeResult::EipAddress DescribeInstanceAttributeResult::getEipAddress()const
  159. {
  160. return eipAddress_;
  161. }
  162. std::string DescribeInstanceAttributeResult::getImageId()const
  163. {
  164. return imageId_;
  165. }
  166. std::string DescribeInstanceAttributeResult::getInstanceType()const
  167. {
  168. return instanceType_;
  169. }
  170. std::string DescribeInstanceAttributeResult::getHostName()const
  171. {
  172. return hostName_;
  173. }
  174. std::string DescribeInstanceAttributeResult::getVlanId()const
  175. {
  176. return vlanId_;
  177. }
  178. std::string DescribeInstanceAttributeResult::getStatus()const
  179. {
  180. return status_;
  181. }
  182. std::string DescribeInstanceAttributeResult::getIoOptimized()const
  183. {
  184. return ioOptimized_;
  185. }
  186. std::string DescribeInstanceAttributeResult::getZoneId()const
  187. {
  188. return zoneId_;
  189. }
  190. std::string DescribeInstanceAttributeResult::getInstanceId()const
  191. {
  192. return instanceId_;
  193. }
  194. std::string DescribeInstanceAttributeResult::getClusterId()const
  195. {
  196. return clusterId_;
  197. }
  198. std::string DescribeInstanceAttributeResult::getStoppedMode()const
  199. {
  200. return stoppedMode_;
  201. }
  202. DescribeInstanceAttributeResult::DedicatedHostAttribute DescribeInstanceAttributeResult::getDedicatedHostAttribute()const
  203. {
  204. return dedicatedHostAttribute_;
  205. }
  206. DescribeInstanceAttributeResult::VpcAttributes DescribeInstanceAttributeResult::getVpcAttributes()const
  207. {
  208. return vpcAttributes_;
  209. }
  210. std::vector<std::string> DescribeInstanceAttributeResult::getSecurityGroupIds()const
  211. {
  212. return securityGroupIds_;
  213. }
  214. std::vector<DescribeInstanceAttributeResult::LockReason> DescribeInstanceAttributeResult::getOperationLocks()const
  215. {
  216. return operationLocks_;
  217. }
  218. std::string DescribeInstanceAttributeResult::getInternetChargeType()const
  219. {
  220. return internetChargeType_;
  221. }
  222. std::string DescribeInstanceAttributeResult::getInstanceName()const
  223. {
  224. return instanceName_;
  225. }
  226. int DescribeInstanceAttributeResult::getInternetMaxBandwidthOut()const
  227. {
  228. return internetMaxBandwidthOut_;
  229. }
  230. int DescribeInstanceAttributeResult::getInternetMaxBandwidthIn()const
  231. {
  232. return internetMaxBandwidthIn_;
  233. }
  234. std::string DescribeInstanceAttributeResult::getSerialNumber()const
  235. {
  236. return serialNumber_;
  237. }
  238. std::string DescribeInstanceAttributeResult::getCreationTime()const
  239. {
  240. return creationTime_;
  241. }
  242. std::string DescribeInstanceAttributeResult::getRegionId()const
  243. {
  244. return regionId_;
  245. }
  246. std::string DescribeInstanceAttributeResult::getCreditSpecification()const
  247. {
  248. return creditSpecification_;
  249. }