SearchResourcesResult.cc 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  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/resourcecenter/model/SearchResourcesResult.h>
  17. #include <json/json.h>
  18. using namespace AlibabaCloud::ResourceCenter;
  19. using namespace AlibabaCloud::ResourceCenter::Model;
  20. SearchResourcesResult::SearchResourcesResult() :
  21. ServiceResult()
  22. {}
  23. SearchResourcesResult::SearchResourcesResult(const std::string &payload) :
  24. ServiceResult()
  25. {
  26. parse(payload);
  27. }
  28. SearchResourcesResult::~SearchResourcesResult()
  29. {}
  30. void SearchResourcesResult::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 allFiltersNode = value["Filters"]["Filter"];
  37. for (auto valueFiltersFilter : allFiltersNode)
  38. {
  39. Filter filtersObject;
  40. if(!valueFiltersFilter["Key"].isNull())
  41. filtersObject.key = valueFiltersFilter["Key"].asString();
  42. if(!valueFiltersFilter["MatchType"].isNull())
  43. filtersObject.matchType = valueFiltersFilter["MatchType"].asString();
  44. auto allValues = value["Values"]["Value"];
  45. for (auto value : allValues)
  46. filtersObject.values.push_back(value.asString());
  47. filters_.push_back(filtersObject);
  48. }
  49. auto allResourcesNode = value["Resources"]["Resource"];
  50. for (auto valueResourcesResource : allResourcesNode)
  51. {
  52. Resource resourcesObject;
  53. if(!valueResourcesResource["ResourceType"].isNull())
  54. resourcesObject.resourceType = valueResourcesResource["ResourceType"].asString();
  55. if(!valueResourcesResource["CreateTime"].isNull())
  56. resourcesObject.createTime = valueResourcesResource["CreateTime"].asString();
  57. if(!valueResourcesResource["ResourceGroupId"].isNull())
  58. resourcesObject.resourceGroupId = valueResourcesResource["ResourceGroupId"].asString();
  59. if(!valueResourcesResource["ZoneId"].isNull())
  60. resourcesObject.zoneId = valueResourcesResource["ZoneId"].asString();
  61. if(!valueResourcesResource["AccountId"].isNull())
  62. resourcesObject.accountId = valueResourcesResource["AccountId"].asString();
  63. if(!valueResourcesResource["ResourceId"].isNull())
  64. resourcesObject.resourceId = valueResourcesResource["ResourceId"].asString();
  65. if(!valueResourcesResource["ResourceName"].isNull())
  66. resourcesObject.resourceName = valueResourcesResource["ResourceName"].asString();
  67. if(!valueResourcesResource["RegionId"].isNull())
  68. resourcesObject.regionId = valueResourcesResource["RegionId"].asString();
  69. if(!valueResourcesResource["ExpireTime"].isNull())
  70. resourcesObject.expireTime = valueResourcesResource["ExpireTime"].asString();
  71. auto allTagsNode = valueResourcesResource["Tags"]["Tag"];
  72. for (auto valueResourcesResourceTagsTag : allTagsNode)
  73. {
  74. Resource::Tag tagsObject;
  75. if(!valueResourcesResourceTagsTag["Key"].isNull())
  76. tagsObject.key = valueResourcesResourceTagsTag["Key"].asString();
  77. if(!valueResourcesResourceTagsTag["Value"].isNull())
  78. tagsObject.value = valueResourcesResourceTagsTag["Value"].asString();
  79. resourcesObject.tags.push_back(tagsObject);
  80. }
  81. auto allIpAddressAttributesNode = valueResourcesResource["IpAddressAttributes"]["IpAddressAttribute"];
  82. for (auto valueResourcesResourceIpAddressAttributesIpAddressAttribute : allIpAddressAttributesNode)
  83. {
  84. Resource::IpAddressAttribute ipAddressAttributesObject;
  85. if(!valueResourcesResourceIpAddressAttributesIpAddressAttribute["IpAddress"].isNull())
  86. ipAddressAttributesObject.ipAddress = valueResourcesResourceIpAddressAttributesIpAddressAttribute["IpAddress"].asString();
  87. if(!valueResourcesResourceIpAddressAttributesIpAddressAttribute["NetworkType"].isNull())
  88. ipAddressAttributesObject.networkType = valueResourcesResourceIpAddressAttributesIpAddressAttribute["NetworkType"].asString();
  89. if(!valueResourcesResourceIpAddressAttributesIpAddressAttribute["Version"].isNull())
  90. ipAddressAttributesObject.version = valueResourcesResourceIpAddressAttributesIpAddressAttribute["Version"].asString();
  91. resourcesObject.ipAddressAttributes.push_back(ipAddressAttributesObject);
  92. }
  93. auto allIpAddresses = value["IpAddresses"]["IpAddress"];
  94. for (auto value : allIpAddresses)
  95. resourcesObject.ipAddresses.push_back(value.asString());
  96. resources_.push_back(resourcesObject);
  97. }
  98. if(!value["NextToken"].isNull())
  99. nextToken_ = value["NextToken"].asString();
  100. if(!value["MaxResults"].isNull())
  101. maxResults_ = std::stoi(value["MaxResults"].asString());
  102. }
  103. std::vector<SearchResourcesResult::Filter> SearchResourcesResult::getFilters()const
  104. {
  105. return filters_;
  106. }
  107. std::string SearchResourcesResult::getNextToken()const
  108. {
  109. return nextToken_;
  110. }
  111. int SearchResourcesResult::getMaxResults()const
  112. {
  113. return maxResults_;
  114. }
  115. std::vector<SearchResourcesResult::Resource> SearchResourcesResult::getResources()const
  116. {
  117. return resources_;
  118. }