DescribeDBInstanceAttributeResult.cc 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  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/rds/model/DescribeDBInstanceAttributeResult.h>
  17. #include <json/json.h>
  18. using namespace AlibabaCloud::Rds;
  19. using namespace AlibabaCloud::Rds::Model;
  20. DescribeDBInstanceAttributeResult::DescribeDBInstanceAttributeResult() :
  21. ServiceResult()
  22. {}
  23. DescribeDBInstanceAttributeResult::DescribeDBInstanceAttributeResult(const std::string &payload) :
  24. ServiceResult()
  25. {
  26. parse(payload);
  27. }
  28. DescribeDBInstanceAttributeResult::~DescribeDBInstanceAttributeResult()
  29. {}
  30. void DescribeDBInstanceAttributeResult::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 allItemsNode = value["Items"]["DBInstanceAttribute"];
  37. for (auto valueItemsDBInstanceAttribute : allItemsNode)
  38. {
  39. DBInstanceAttribute itemsObject;
  40. if(!valueItemsDBInstanceAttribute["IPType"].isNull())
  41. itemsObject.iPType = valueItemsDBInstanceAttribute["IPType"].asString();
  42. if(!valueItemsDBInstanceAttribute["DBInstanceDiskUsed"].isNull())
  43. itemsObject.dBInstanceDiskUsed = valueItemsDBInstanceAttribute["DBInstanceDiskUsed"].asString();
  44. if(!valueItemsDBInstanceAttribute["GuardDBInstanceName"].isNull())
  45. itemsObject.guardDBInstanceName = valueItemsDBInstanceAttribute["GuardDBInstanceName"].asString();
  46. if(!valueItemsDBInstanceAttribute["CanTempUpgrade"].isNull())
  47. itemsObject.canTempUpgrade = valueItemsDBInstanceAttribute["CanTempUpgrade"].asString() == "true";
  48. if(!valueItemsDBInstanceAttribute["TempUpgradeTimeStart"].isNull())
  49. itemsObject.tempUpgradeTimeStart = valueItemsDBInstanceAttribute["TempUpgradeTimeStart"].asString();
  50. if(!valueItemsDBInstanceAttribute["TempUpgradeTimeEnd"].isNull())
  51. itemsObject.tempUpgradeTimeEnd = valueItemsDBInstanceAttribute["TempUpgradeTimeEnd"].asString();
  52. if(!valueItemsDBInstanceAttribute["TempUpgradeRecoveryTime"].isNull())
  53. itemsObject.tempUpgradeRecoveryTime = valueItemsDBInstanceAttribute["TempUpgradeRecoveryTime"].asString();
  54. if(!valueItemsDBInstanceAttribute["TempUpgradeRecoveryClass"].isNull())
  55. itemsObject.tempUpgradeRecoveryClass = valueItemsDBInstanceAttribute["TempUpgradeRecoveryClass"].asString();
  56. if(!valueItemsDBInstanceAttribute["TempUpgradeRecoveryCpu"].isNull())
  57. itemsObject.tempUpgradeRecoveryCpu = std::stoi(valueItemsDBInstanceAttribute["TempUpgradeRecoveryCpu"].asString());
  58. if(!valueItemsDBInstanceAttribute["TempUpgradeRecoveryMemory"].isNull())
  59. itemsObject.tempUpgradeRecoveryMemory = std::stoi(valueItemsDBInstanceAttribute["TempUpgradeRecoveryMemory"].asString());
  60. if(!valueItemsDBInstanceAttribute["TempUpgradeRecoveryMaxIOPS"].isNull())
  61. itemsObject.tempUpgradeRecoveryMaxIOPS = valueItemsDBInstanceAttribute["TempUpgradeRecoveryMaxIOPS"].asString();
  62. if(!valueItemsDBInstanceAttribute["TempUpgradeRecoveryMaxConnections"].isNull())
  63. itemsObject.tempUpgradeRecoveryMaxConnections = valueItemsDBInstanceAttribute["TempUpgradeRecoveryMaxConnections"].asString();
  64. if(!valueItemsDBInstanceAttribute["InsId"].isNull())
  65. itemsObject.insId = std::stoi(valueItemsDBInstanceAttribute["InsId"].asString());
  66. if(!valueItemsDBInstanceAttribute["DBInstanceId"].isNull())
  67. itemsObject.dBInstanceId = valueItemsDBInstanceAttribute["DBInstanceId"].asString();
  68. if(!valueItemsDBInstanceAttribute["PayType"].isNull())
  69. itemsObject.payType = valueItemsDBInstanceAttribute["PayType"].asString();
  70. if(!valueItemsDBInstanceAttribute["DBInstanceClassType"].isNull())
  71. itemsObject.dBInstanceClassType = valueItemsDBInstanceAttribute["DBInstanceClassType"].asString();
  72. if(!valueItemsDBInstanceAttribute["DBInstanceType"].isNull())
  73. itemsObject.dBInstanceType = valueItemsDBInstanceAttribute["DBInstanceType"].asString();
  74. if(!valueItemsDBInstanceAttribute["RegionId"].isNull())
  75. itemsObject.regionId = valueItemsDBInstanceAttribute["RegionId"].asString();
  76. if(!valueItemsDBInstanceAttribute["ConnectionString"].isNull())
  77. itemsObject.connectionString = valueItemsDBInstanceAttribute["ConnectionString"].asString();
  78. if(!valueItemsDBInstanceAttribute["Port"].isNull())
  79. itemsObject.port = valueItemsDBInstanceAttribute["Port"].asString();
  80. if(!valueItemsDBInstanceAttribute["Engine"].isNull())
  81. itemsObject.engine = valueItemsDBInstanceAttribute["Engine"].asString();
  82. if(!valueItemsDBInstanceAttribute["EngineVersion"].isNull())
  83. itemsObject.engineVersion = valueItemsDBInstanceAttribute["EngineVersion"].asString();
  84. if(!valueItemsDBInstanceAttribute["DBInstanceClass"].isNull())
  85. itemsObject.dBInstanceClass = valueItemsDBInstanceAttribute["DBInstanceClass"].asString();
  86. if(!valueItemsDBInstanceAttribute["DBInstanceMemory"].isNull())
  87. itemsObject.dBInstanceMemory = std::stol(valueItemsDBInstanceAttribute["DBInstanceMemory"].asString());
  88. if(!valueItemsDBInstanceAttribute["DBInstanceStorage"].isNull())
  89. itemsObject.dBInstanceStorage = std::stoi(valueItemsDBInstanceAttribute["DBInstanceStorage"].asString());
  90. if(!valueItemsDBInstanceAttribute["VpcCloudInstanceId"].isNull())
  91. itemsObject.vpcCloudInstanceId = valueItemsDBInstanceAttribute["VpcCloudInstanceId"].asString();
  92. if(!valueItemsDBInstanceAttribute["DBInstanceNetType"].isNull())
  93. itemsObject.dBInstanceNetType = valueItemsDBInstanceAttribute["DBInstanceNetType"].asString();
  94. if(!valueItemsDBInstanceAttribute["DBInstanceStatus"].isNull())
  95. itemsObject.dBInstanceStatus = valueItemsDBInstanceAttribute["DBInstanceStatus"].asString();
  96. if(!valueItemsDBInstanceAttribute["DBInstanceDescription"].isNull())
  97. itemsObject.dBInstanceDescription = valueItemsDBInstanceAttribute["DBInstanceDescription"].asString();
  98. if(!valueItemsDBInstanceAttribute["LockMode"].isNull())
  99. itemsObject.lockMode = valueItemsDBInstanceAttribute["LockMode"].asString();
  100. if(!valueItemsDBInstanceAttribute["LockReason"].isNull())
  101. itemsObject.lockReason = valueItemsDBInstanceAttribute["LockReason"].asString();
  102. if(!valueItemsDBInstanceAttribute["ReadDelayTime"].isNull())
  103. itemsObject.readDelayTime = valueItemsDBInstanceAttribute["ReadDelayTime"].asString();
  104. if(!valueItemsDBInstanceAttribute["DBMaxQuantity"].isNull())
  105. itemsObject.dBMaxQuantity = std::stoi(valueItemsDBInstanceAttribute["DBMaxQuantity"].asString());
  106. if(!valueItemsDBInstanceAttribute["AccountMaxQuantity"].isNull())
  107. itemsObject.accountMaxQuantity = std::stoi(valueItemsDBInstanceAttribute["AccountMaxQuantity"].asString());
  108. if(!valueItemsDBInstanceAttribute["CreationTime"].isNull())
  109. itemsObject.creationTime = valueItemsDBInstanceAttribute["CreationTime"].asString();
  110. if(!valueItemsDBInstanceAttribute["ExpireTime"].isNull())
  111. itemsObject.expireTime = valueItemsDBInstanceAttribute["ExpireTime"].asString();
  112. if(!valueItemsDBInstanceAttribute["MaintainTime"].isNull())
  113. itemsObject.maintainTime = valueItemsDBInstanceAttribute["MaintainTime"].asString();
  114. if(!valueItemsDBInstanceAttribute["AvailabilityValue"].isNull())
  115. itemsObject.availabilityValue = valueItemsDBInstanceAttribute["AvailabilityValue"].asString();
  116. if(!valueItemsDBInstanceAttribute["MaxIOPS"].isNull())
  117. itemsObject.maxIOPS = std::stoi(valueItemsDBInstanceAttribute["MaxIOPS"].asString());
  118. if(!valueItemsDBInstanceAttribute["MaxConnections"].isNull())
  119. itemsObject.maxConnections = std::stoi(valueItemsDBInstanceAttribute["MaxConnections"].asString());
  120. if(!valueItemsDBInstanceAttribute["MasterInstanceId"].isNull())
  121. itemsObject.masterInstanceId = valueItemsDBInstanceAttribute["MasterInstanceId"].asString();
  122. if(!valueItemsDBInstanceAttribute["DBInstanceCPU"].isNull())
  123. itemsObject.dBInstanceCPU = valueItemsDBInstanceAttribute["DBInstanceCPU"].asString();
  124. if(!valueItemsDBInstanceAttribute["IncrementSourceDBInstanceId"].isNull())
  125. itemsObject.incrementSourceDBInstanceId = valueItemsDBInstanceAttribute["IncrementSourceDBInstanceId"].asString();
  126. if(!valueItemsDBInstanceAttribute["GuardDBInstanceId"].isNull())
  127. itemsObject.guardDBInstanceId = valueItemsDBInstanceAttribute["GuardDBInstanceId"].asString();
  128. if(!valueItemsDBInstanceAttribute["ReplicateId"].isNull())
  129. itemsObject.replicateId = valueItemsDBInstanceAttribute["ReplicateId"].asString();
  130. if(!valueItemsDBInstanceAttribute["TempDBInstanceId"].isNull())
  131. itemsObject.tempDBInstanceId = valueItemsDBInstanceAttribute["TempDBInstanceId"].asString();
  132. if(!valueItemsDBInstanceAttribute["SecurityIPList"].isNull())
  133. itemsObject.securityIPList = valueItemsDBInstanceAttribute["SecurityIPList"].asString();
  134. if(!valueItemsDBInstanceAttribute["ZoneId"].isNull())
  135. itemsObject.zoneId = valueItemsDBInstanceAttribute["ZoneId"].asString();
  136. if(!valueItemsDBInstanceAttribute["InstanceNetworkType"].isNull())
  137. itemsObject.instanceNetworkType = valueItemsDBInstanceAttribute["InstanceNetworkType"].asString();
  138. if(!valueItemsDBInstanceAttribute["DBInstanceStorageType"].isNull())
  139. itemsObject.dBInstanceStorageType = valueItemsDBInstanceAttribute["DBInstanceStorageType"].asString();
  140. if(!valueItemsDBInstanceAttribute["AdvancedFeatures"].isNull())
  141. itemsObject.advancedFeatures = valueItemsDBInstanceAttribute["AdvancedFeatures"].asString();
  142. if(!valueItemsDBInstanceAttribute["Category"].isNull())
  143. itemsObject.category = valueItemsDBInstanceAttribute["Category"].asString();
  144. if(!valueItemsDBInstanceAttribute["AccountType"].isNull())
  145. itemsObject.accountType = valueItemsDBInstanceAttribute["AccountType"].asString();
  146. if(!valueItemsDBInstanceAttribute["SupportUpgradeAccountType"].isNull())
  147. itemsObject.supportUpgradeAccountType = valueItemsDBInstanceAttribute["SupportUpgradeAccountType"].asString();
  148. if(!valueItemsDBInstanceAttribute["SupportCreateSuperAccount"].isNull())
  149. itemsObject.supportCreateSuperAccount = valueItemsDBInstanceAttribute["SupportCreateSuperAccount"].asString();
  150. if(!valueItemsDBInstanceAttribute["VpcId"].isNull())
  151. itemsObject.vpcId = valueItemsDBInstanceAttribute["VpcId"].asString();
  152. if(!valueItemsDBInstanceAttribute["VSwitchId"].isNull())
  153. itemsObject.vSwitchId = valueItemsDBInstanceAttribute["VSwitchId"].asString();
  154. if(!valueItemsDBInstanceAttribute["ConnectionMode"].isNull())
  155. itemsObject.connectionMode = valueItemsDBInstanceAttribute["ConnectionMode"].asString();
  156. if(!valueItemsDBInstanceAttribute["CurrentKernelVersion"].isNull())
  157. itemsObject.currentKernelVersion = valueItemsDBInstanceAttribute["CurrentKernelVersion"].asString();
  158. if(!valueItemsDBInstanceAttribute["LatestKernelVersion"].isNull())
  159. itemsObject.latestKernelVersion = valueItemsDBInstanceAttribute["LatestKernelVersion"].asString();
  160. if(!valueItemsDBInstanceAttribute["ResourceGroupId"].isNull())
  161. itemsObject.resourceGroupId = valueItemsDBInstanceAttribute["ResourceGroupId"].asString();
  162. if(!valueItemsDBInstanceAttribute["ReadonlyInstanceSQLDelayedTime"].isNull())
  163. itemsObject.readonlyInstanceSQLDelayedTime = valueItemsDBInstanceAttribute["ReadonlyInstanceSQLDelayedTime"].asString();
  164. if(!valueItemsDBInstanceAttribute["SecurityIPMode"].isNull())
  165. itemsObject.securityIPMode = valueItemsDBInstanceAttribute["SecurityIPMode"].asString();
  166. if(!valueItemsDBInstanceAttribute["TimeZone"].isNull())
  167. itemsObject.timeZone = valueItemsDBInstanceAttribute["TimeZone"].asString();
  168. if(!valueItemsDBInstanceAttribute["Collation"].isNull())
  169. itemsObject.collation = valueItemsDBInstanceAttribute["Collation"].asString();
  170. if(!valueItemsDBInstanceAttribute["DispenseMode"].isNull())
  171. itemsObject.dispenseMode = valueItemsDBInstanceAttribute["DispenseMode"].asString();
  172. if(!valueItemsDBInstanceAttribute["MasterZone"].isNull())
  173. itemsObject.masterZone = valueItemsDBInstanceAttribute["MasterZone"].asString();
  174. if(!valueItemsDBInstanceAttribute["AutoUpgradeMinorVersion"].isNull())
  175. itemsObject.autoUpgradeMinorVersion = valueItemsDBInstanceAttribute["AutoUpgradeMinorVersion"].asString();
  176. if(!valueItemsDBInstanceAttribute["ProxyType"].isNull())
  177. itemsObject.proxyType = std::stoi(valueItemsDBInstanceAttribute["ProxyType"].asString());
  178. if(!valueItemsDBInstanceAttribute["ConsoleVersion"].isNull())
  179. itemsObject.consoleVersion = valueItemsDBInstanceAttribute["ConsoleVersion"].asString();
  180. if(!valueItemsDBInstanceAttribute["MultipleTempUpgrade"].isNull())
  181. itemsObject.multipleTempUpgrade = valueItemsDBInstanceAttribute["MultipleTempUpgrade"].asString() == "true";
  182. if(!valueItemsDBInstanceAttribute["OriginConfiguration"].isNull())
  183. itemsObject.originConfiguration = valueItemsDBInstanceAttribute["OriginConfiguration"].asString();
  184. if(!valueItemsDBInstanceAttribute["DedicatedHostGroupId"].isNull())
  185. itemsObject.dedicatedHostGroupId = valueItemsDBInstanceAttribute["DedicatedHostGroupId"].asString();
  186. if(!valueItemsDBInstanceAttribute["SuperPermissionMode"].isNull())
  187. itemsObject.superPermissionMode = valueItemsDBInstanceAttribute["SuperPermissionMode"].asString();
  188. auto allSlaveZonesNode = allItemsNode["SlaveZones"]["SlaveZone"];
  189. for (auto allItemsNodeSlaveZonesSlaveZone : allSlaveZonesNode)
  190. {
  191. DBInstanceAttribute::SlaveZone slaveZonesObject;
  192. if(!allItemsNodeSlaveZonesSlaveZone["ZoneId"].isNull())
  193. slaveZonesObject.zoneId = allItemsNodeSlaveZonesSlaveZone["ZoneId"].asString();
  194. itemsObject.slaveZones.push_back(slaveZonesObject);
  195. }
  196. auto allReadOnlyDBInstanceIdsNode = allItemsNode["ReadOnlyDBInstanceIds"]["ReadOnlyDBInstanceId"];
  197. for (auto allItemsNodeReadOnlyDBInstanceIdsReadOnlyDBInstanceId : allReadOnlyDBInstanceIdsNode)
  198. {
  199. DBInstanceAttribute::ReadOnlyDBInstanceId readOnlyDBInstanceIdsObject;
  200. if(!allItemsNodeReadOnlyDBInstanceIdsReadOnlyDBInstanceId["DBInstanceId"].isNull())
  201. readOnlyDBInstanceIdsObject.dBInstanceId = allItemsNodeReadOnlyDBInstanceIdsReadOnlyDBInstanceId["DBInstanceId"].asString();
  202. itemsObject.readOnlyDBInstanceIds.push_back(readOnlyDBInstanceIdsObject);
  203. }
  204. auto extraNode = value["Extra"];
  205. if(!extraNode["ReplicaGroupID"].isNull())
  206. itemsObject.extra.replicaGroupID = extraNode["ReplicaGroupID"].asString();
  207. if(!extraNode["ReplicaGroupStatus"].isNull())
  208. itemsObject.extra.replicaGroupStatus = extraNode["ReplicaGroupStatus"].asString();
  209. if(!extraNode["ActiveReplicaDBInstanceID"].isNull())
  210. itemsObject.extra.activeReplicaDBInstanceID = extraNode["ActiveReplicaDBInstanceID"].asString();
  211. auto allDBInstanceId = extraNode["DBInstanceId"]["DBInstanceId"];
  212. for (auto value : allDBInstanceId)
  213. itemsObject.extra.dBInstanceId.push_back(value.asString());
  214. items_.push_back(itemsObject);
  215. }
  216. }
  217. std::vector<DescribeDBInstanceAttributeResult::DBInstanceAttribute> DescribeDBInstanceAttributeResult::getItems()const
  218. {
  219. return items_;
  220. }