diff --git a/CHANGELOG b/CHANGELOG index bc51fcded..015d5c924 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,3 +1,9 @@ +2020-01-03 Version 1.36.230 +- ImmediateDelete. +- DescribeInstance CreateTimeUTC ExpireTimeUTC. +- DescribeInstances CreateTimeUTC ExpireTimeUTC. +- DescribeIpWhitelist Groups GroupName. + 2019-12-31 Version 1.36.229 - Supported SQL SERVER support delete backup set according to time range. diff --git a/VERSION b/VERSION index 4605bab8e..6196dd3b2 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1.36.229 \ No newline at end of file +1.36.230 \ No newline at end of file diff --git a/hbase/CMakeLists.txt b/hbase/CMakeLists.txt index 7336b1192..8f7227ead 100644 --- a/hbase/CMakeLists.txt +++ b/hbase/CMakeLists.txt @@ -53,6 +53,8 @@ set(hbase_public_header_model include/alibabacloud/hbase/model/DescribeSecurityGroupsResult.h include/alibabacloud/hbase/model/ListTagResourcesRequest.h include/alibabacloud/hbase/model/ListTagResourcesResult.h + include/alibabacloud/hbase/model/ListTagsRequest.h + include/alibabacloud/hbase/model/ListTagsResult.h include/alibabacloud/hbase/model/ModifyInstanceMaintainTimeRequest.h include/alibabacloud/hbase/model/ModifyInstanceMaintainTimeResult.h include/alibabacloud/hbase/model/ModifyInstanceNameRequest.h @@ -118,6 +120,8 @@ set(hbase_src src/model/DescribeSecurityGroupsResult.cc src/model/ListTagResourcesRequest.cc src/model/ListTagResourcesResult.cc + src/model/ListTagsRequest.cc + src/model/ListTagsResult.cc src/model/ModifyInstanceMaintainTimeRequest.cc src/model/ModifyInstanceMaintainTimeResult.cc src/model/ModifyInstanceNameRequest.cc diff --git a/hbase/include/alibabacloud/hbase/HBaseClient.h b/hbase/include/alibabacloud/hbase/HBaseClient.h index e5de2af9b..fdfe0d5d2 100644 --- a/hbase/include/alibabacloud/hbase/HBaseClient.h +++ b/hbase/include/alibabacloud/hbase/HBaseClient.h @@ -54,6 +54,8 @@ #include "model/DescribeSecurityGroupsResult.h" #include "model/ListTagResourcesRequest.h" #include "model/ListTagResourcesResult.h" +#include "model/ListTagsRequest.h" +#include "model/ListTagsResult.h" #include "model/ModifyInstanceMaintainTimeRequest.h" #include "model/ModifyInstanceMaintainTimeResult.h" #include "model/ModifyInstanceNameRequest.h" @@ -141,6 +143,9 @@ namespace AlibabaCloud typedef Outcome ListTagResourcesOutcome; typedef std::future ListTagResourcesOutcomeCallable; typedef std::function&)> ListTagResourcesAsyncHandler; + typedef Outcome ListTagsOutcome; + typedef std::future ListTagsOutcomeCallable; + typedef std::function&)> ListTagsAsyncHandler; typedef Outcome ModifyInstanceMaintainTimeOutcome; typedef std::future ModifyInstanceMaintainTimeOutcomeCallable; typedef std::function&)> ModifyInstanceMaintainTimeAsyncHandler; @@ -239,6 +244,9 @@ namespace AlibabaCloud ListTagResourcesOutcome listTagResources(const Model::ListTagResourcesRequest &request)const; void listTagResourcesAsync(const Model::ListTagResourcesRequest& request, const ListTagResourcesAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; ListTagResourcesOutcomeCallable listTagResourcesCallable(const Model::ListTagResourcesRequest& request) const; + ListTagsOutcome listTags(const Model::ListTagsRequest &request)const; + void listTagsAsync(const Model::ListTagsRequest& request, const ListTagsAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; + ListTagsOutcomeCallable listTagsCallable(const Model::ListTagsRequest& request) const; ModifyInstanceMaintainTimeOutcome modifyInstanceMaintainTime(const Model::ModifyInstanceMaintainTimeRequest &request)const; void modifyInstanceMaintainTimeAsync(const Model::ModifyInstanceMaintainTimeRequest& request, const ModifyInstanceMaintainTimeAsyncHandler& handler, const std::shared_ptr& context = nullptr) const; ModifyInstanceMaintainTimeOutcomeCallable modifyInstanceMaintainTimeCallable(const Model::ModifyInstanceMaintainTimeRequest& request) const; diff --git a/hbase/include/alibabacloud/hbase/model/DeleteInstanceRequest.h b/hbase/include/alibabacloud/hbase/model/DeleteInstanceRequest.h index 613aa0ad6..646b93f3b 100644 --- a/hbase/include/alibabacloud/hbase/model/DeleteInstanceRequest.h +++ b/hbase/include/alibabacloud/hbase/model/DeleteInstanceRequest.h @@ -35,10 +35,13 @@ namespace AlibabaCloud DeleteInstanceRequest(); ~DeleteInstanceRequest(); + bool getImmediateDeleteFlag()const; + void setImmediateDeleteFlag(bool immediateDeleteFlag); std::string getClusterId()const; void setClusterId(const std::string& clusterId); private: + bool immediateDeleteFlag_; std::string clusterId_; }; diff --git a/hbase/include/alibabacloud/hbase/model/DescribeInstanceResult.h b/hbase/include/alibabacloud/hbase/model/DescribeInstanceResult.h index e3862bd31..706a2d30a 100644 --- a/hbase/include/alibabacloud/hbase/model/DescribeInstanceResult.h +++ b/hbase/include/alibabacloud/hbase/model/DescribeInstanceResult.h @@ -56,11 +56,13 @@ namespace AlibabaCloud std::string getMajorVersion()const; std::string getCoreDiskCount()const; int getMasterDiskSize()const; + std::string getExpireTimeUTC()const; std::string getZoneId()const; std::string getInstanceId()const; int getCoreNodeCount()const; std::string getColdStorageStatus()const; std::string getMinorVersion()const; + std::string getCreatedTimeUTC()const; std::string getPayType()const; std::string getVswitchId()const; std::string getInstanceName()const; @@ -89,11 +91,13 @@ namespace AlibabaCloud std::string majorVersion_; std::string coreDiskCount_; int masterDiskSize_; + std::string expireTimeUTC_; std::string zoneId_; std::string instanceId_; int coreNodeCount_; std::string coldStorageStatus_; std::string minorVersion_; + std::string createdTimeUTC_; std::string payType_; std::string vswitchId_; std::string instanceName_; diff --git a/hbase/include/alibabacloud/hbase/model/DescribeInstancesRequest.h b/hbase/include/alibabacloud/hbase/model/DescribeInstancesRequest.h index 506def7f2..d8c36e039 100644 --- a/hbase/include/alibabacloud/hbase/model/DescribeInstancesRequest.h +++ b/hbase/include/alibabacloud/hbase/model/DescribeInstancesRequest.h @@ -30,22 +30,36 @@ namespace AlibabaCloud { class ALIBABACLOUD_HBASE_EXPORT DescribeInstancesRequest : public RpcServiceRequest { + struct Tag + { + std::string value; + std::string key; + }; public: DescribeInstancesRequest(); ~DescribeInstancesRequest(); + std::string getClusterName()const; + void setClusterName(const std::string& clusterName); int getPageNumber()const; void setPageNumber(int pageNumber); std::string getRegionId()const; void setRegionId(const std::string& regionId); int getPageSize()const; void setPageSize(int pageSize); + std::vector getTag()const; + void setTag(const std::vector& tag); + std::string getDbType()const; + void setDbType(const std::string& dbType); private: + std::string clusterName_; int pageNumber_; std::string regionId_; int pageSize_; + std::vector tag_; + std::string dbType_; }; } diff --git a/hbase/include/alibabacloud/hbase/model/DescribeInstancesResult.h b/hbase/include/alibabacloud/hbase/model/DescribeInstancesResult.h index 2f0362243..d4ca63284 100644 --- a/hbase/include/alibabacloud/hbase/model/DescribeInstancesResult.h +++ b/hbase/include/alibabacloud/hbase/model/DescribeInstancesResult.h @@ -34,28 +34,37 @@ namespace AlibabaCloud public: struct Instance { - std::string status; - std::string majorVersion; + struct Tag + { + std::string value; + std::string key; + }; bool isHa; std::string createdTime; + std::string masterInstanceType; + std::string networkType; + std::string coreInstanceType; + std::string masterDiskType; + std::vector tags; + std::string engine; + std::string status; + std::string majorVersion; int masterDiskSize; + std::string expireTimeUTC; std::string zoneId; std::string instanceId; int coreNodeCount; std::string coldStorageStatus; + std::string createdTimeUTC; std::string payType; - std::string masterInstanceType; + std::string clusterType; std::string vswitchId; std::string instanceName; int masterNodeCount; std::string vpcId; std::string coreDiskType; - std::string networkType; - std::string coreInstanceType; - std::string masterDiskType; std::string regionId; std::string expireTime; - std::string engine; int coreDiskSize; std::string backupStatus; }; diff --git a/hbase/include/alibabacloud/hbase/model/DescribeIpWhitelistResult.h b/hbase/include/alibabacloud/hbase/model/DescribeIpWhitelistResult.h index ad5782f7c..b3c45c67f 100644 --- a/hbase/include/alibabacloud/hbase/model/DescribeIpWhitelistResult.h +++ b/hbase/include/alibabacloud/hbase/model/DescribeIpWhitelistResult.h @@ -32,17 +32,23 @@ namespace AlibabaCloud class ALIBABACLOUD_HBASE_EXPORT DescribeIpWhitelistResult : public ServiceResult { public: + struct Group + { + std::string groupName; + int ipVersion; + std::vector ipList; + }; DescribeIpWhitelistResult(); explicit DescribeIpWhitelistResult(const std::string &payload); ~DescribeIpWhitelistResult(); - std::vector getIpList()const; + std::vector getGroups()const; protected: void parse(const std::string &payload); private: - std::vector ipList_; + std::vector groups_; }; } diff --git a/hbase/include/alibabacloud/hbase/model/ListTagsRequest.h b/hbase/include/alibabacloud/hbase/model/ListTagsRequest.h new file mode 100644 index 000000000..b22c6bbf7 --- /dev/null +++ b/hbase/include/alibabacloud/hbase/model/ListTagsRequest.h @@ -0,0 +1,48 @@ +/* + * Copyright 2009-2017 Alibaba Cloud All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ALIBABACLOUD_HBASE_MODEL_LISTTAGSREQUEST_H_ +#define ALIBABACLOUD_HBASE_MODEL_LISTTAGSREQUEST_H_ + +#include +#include +#include +#include + +namespace AlibabaCloud +{ + namespace HBase + { + namespace Model + { + class ALIBABACLOUD_HBASE_EXPORT ListTagsRequest : public RpcServiceRequest + { + + public: + ListTagsRequest(); + ~ListTagsRequest(); + + std::string getRegionId()const; + void setRegionId(const std::string& regionId); + + private: + std::string regionId_; + + }; + } + } +} +#endif // !ALIBABACLOUD_HBASE_MODEL_LISTTAGSREQUEST_H_ \ No newline at end of file diff --git a/hbase/include/alibabacloud/hbase/model/ListTagsResult.h b/hbase/include/alibabacloud/hbase/model/ListTagsResult.h new file mode 100644 index 000000000..73c37d5b9 --- /dev/null +++ b/hbase/include/alibabacloud/hbase/model/ListTagsResult.h @@ -0,0 +1,56 @@ +/* + * Copyright 2009-2017 Alibaba Cloud All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ALIBABACLOUD_HBASE_MODEL_LISTTAGSRESULT_H_ +#define ALIBABACLOUD_HBASE_MODEL_LISTTAGSRESULT_H_ + +#include +#include +#include +#include +#include + +namespace AlibabaCloud +{ + namespace HBase + { + namespace Model + { + class ALIBABACLOUD_HBASE_EXPORT ListTagsResult : public ServiceResult + { + public: + struct Tag + { + std::string tagKey; + std::string tagValue; + }; + + + ListTagsResult(); + explicit ListTagsResult(const std::string &payload); + ~ListTagsResult(); + std::vector getTags()const; + + protected: + void parse(const std::string &payload); + private: + std::vector tags_; + + }; + } + } +} +#endif // !ALIBABACLOUD_HBASE_MODEL_LISTTAGSRESULT_H_ \ No newline at end of file diff --git a/hbase/src/HBaseClient.cc b/hbase/src/HBaseClient.cc index 593e3564c..d1d7f6e8d 100644 --- a/hbase/src/HBaseClient.cc +++ b/hbase/src/HBaseClient.cc @@ -627,6 +627,42 @@ HBaseClient::ListTagResourcesOutcomeCallable HBaseClient::listTagResourcesCallab return task->get_future(); } +HBaseClient::ListTagsOutcome HBaseClient::listTags(const ListTagsRequest &request) const +{ + auto endpointOutcome = endpointProvider_->getEndpoint(); + if (!endpointOutcome.isSuccess()) + return ListTagsOutcome(endpointOutcome.error()); + + auto outcome = makeRequest(endpointOutcome.result(), request); + + if (outcome.isSuccess()) + return ListTagsOutcome(ListTagsResult(outcome.result())); + else + return ListTagsOutcome(outcome.error()); +} + +void HBaseClient::listTagsAsync(const ListTagsRequest& request, const ListTagsAsyncHandler& handler, const std::shared_ptr& context) const +{ + auto fn = [this, request, handler, context]() + { + handler(this, request, listTags(request), context); + }; + + asyncExecute(new Runnable(fn)); +} + +HBaseClient::ListTagsOutcomeCallable HBaseClient::listTagsCallable(const ListTagsRequest &request) const +{ + auto task = std::make_shared>( + [this, request]() + { + return this->listTags(request); + }); + + asyncExecute(new Runnable([task]() { (*task)(); })); + return task->get_future(); +} + HBaseClient::ModifyInstanceMaintainTimeOutcome HBaseClient::modifyInstanceMaintainTime(const ModifyInstanceMaintainTimeRequest &request) const { auto endpointOutcome = endpointProvider_->getEndpoint(); diff --git a/hbase/src/model/DeleteInstanceRequest.cc b/hbase/src/model/DeleteInstanceRequest.cc index 5491f78e5..18d17ae55 100644 --- a/hbase/src/model/DeleteInstanceRequest.cc +++ b/hbase/src/model/DeleteInstanceRequest.cc @@ -27,6 +27,17 @@ DeleteInstanceRequest::DeleteInstanceRequest() : DeleteInstanceRequest::~DeleteInstanceRequest() {} +bool DeleteInstanceRequest::getImmediateDeleteFlag()const +{ + return immediateDeleteFlag_; +} + +void DeleteInstanceRequest::setImmediateDeleteFlag(bool immediateDeleteFlag) +{ + immediateDeleteFlag_ = immediateDeleteFlag; + setCoreParameter("ImmediateDeleteFlag", immediateDeleteFlag ? "true" : "false"); +} + std::string DeleteInstanceRequest::getClusterId()const { return clusterId_; diff --git a/hbase/src/model/DescribeInstanceResult.cc b/hbase/src/model/DescribeInstanceResult.cc index 4136847cb..b8d480c14 100644 --- a/hbase/src/model/DescribeInstanceResult.cc +++ b/hbase/src/model/DescribeInstanceResult.cc @@ -105,6 +105,10 @@ void DescribeInstanceResult::parse(const std::string &payload) maintainStartTime_ = value["MaintainStartTime"].asString(); if(!value["MaintainEndTime"].isNull()) maintainEndTime_ = value["MaintainEndTime"].asString(); + if(!value["CreatedTimeUTC"].isNull()) + createdTimeUTC_ = value["CreatedTimeUTC"].asString(); + if(!value["ExpireTimeUTC"].isNull()) + expireTimeUTC_ = value["ExpireTimeUTC"].asString(); } @@ -178,6 +182,11 @@ int DescribeInstanceResult::getMasterDiskSize()const return masterDiskSize_; } +std::string DescribeInstanceResult::getExpireTimeUTC()const +{ + return expireTimeUTC_; +} + std::string DescribeInstanceResult::getZoneId()const { return zoneId_; @@ -203,6 +212,11 @@ std::string DescribeInstanceResult::getMinorVersion()const return minorVersion_; } +std::string DescribeInstanceResult::getCreatedTimeUTC()const +{ + return createdTimeUTC_; +} + std::string DescribeInstanceResult::getPayType()const { return payType_; diff --git a/hbase/src/model/DescribeInstancesRequest.cc b/hbase/src/model/DescribeInstancesRequest.cc index 2e009ade2..d8557f15b 100644 --- a/hbase/src/model/DescribeInstancesRequest.cc +++ b/hbase/src/model/DescribeInstancesRequest.cc @@ -27,6 +27,17 @@ DescribeInstancesRequest::DescribeInstancesRequest() : DescribeInstancesRequest::~DescribeInstancesRequest() {} +std::string DescribeInstancesRequest::getClusterName()const +{ + return clusterName_; +} + +void DescribeInstancesRequest::setClusterName(const std::string& clusterName) +{ + clusterName_ = clusterName; + setCoreParameter("ClusterName", clusterName); +} + int DescribeInstancesRequest::getPageNumber()const { return pageNumber_; @@ -60,3 +71,30 @@ void DescribeInstancesRequest::setPageSize(int pageSize) setCoreParameter("PageSize", std::to_string(pageSize)); } +std::vector DescribeInstancesRequest::getTag()const +{ + return tag_; +} + +void DescribeInstancesRequest::setTag(const std::vector& tag) +{ + tag_ = tag; + for(int dep1 = 0; dep1!= tag.size(); dep1++) { + auto tagObj = tag.at(dep1); + std::string tagObjStr = "Tag." + std::to_string(dep1); + setCoreParameter(tagObjStr + ".Value", tagObj.value); + setCoreParameter(tagObjStr + ".Key", tagObj.key); + } +} + +std::string DescribeInstancesRequest::getDbType()const +{ + return dbType_; +} + +void DescribeInstancesRequest::setDbType(const std::string& dbType) +{ + dbType_ = dbType; + setCoreParameter("DbType", dbType); +} + diff --git a/hbase/src/model/DescribeInstancesResult.cc b/hbase/src/model/DescribeInstancesResult.cc index 31f982168..a74a863da 100644 --- a/hbase/src/model/DescribeInstancesResult.cc +++ b/hbase/src/model/DescribeInstancesResult.cc @@ -91,6 +91,22 @@ void DescribeInstancesResult::parse(const std::string &payload) instancesObject.coldStorageStatus = valueInstancesInstance["ColdStorageStatus"].asString(); if(!valueInstancesInstance["BackupStatus"].isNull()) instancesObject.backupStatus = valueInstancesInstance["BackupStatus"].asString(); + if(!valueInstancesInstance["ClusterType"].isNull()) + instancesObject.clusterType = valueInstancesInstance["ClusterType"].asString(); + if(!valueInstancesInstance["CreatedTimeUTC"].isNull()) + instancesObject.createdTimeUTC = valueInstancesInstance["CreatedTimeUTC"].asString(); + if(!valueInstancesInstance["ExpireTimeUTC"].isNull()) + instancesObject.expireTimeUTC = valueInstancesInstance["ExpireTimeUTC"].asString(); + auto allTagsNode = allInstancesNode["Tags"]["Tag"]; + for (auto allInstancesNodeTagsTag : allTagsNode) + { + Instance::Tag tagsObject; + if(!allInstancesNodeTagsTag["Key"].isNull()) + tagsObject.key = allInstancesNodeTagsTag["Key"].asString(); + if(!allInstancesNodeTagsTag["Value"].isNull()) + tagsObject.value = allInstancesNodeTagsTag["Value"].asString(); + instancesObject.tags.push_back(tagsObject); + } instances_.push_back(instancesObject); } if(!value["TotalCount"].isNull()) diff --git a/hbase/src/model/DescribeIpWhitelistResult.cc b/hbase/src/model/DescribeIpWhitelistResult.cc index c549356e5..416d77711 100644 --- a/hbase/src/model/DescribeIpWhitelistResult.cc +++ b/hbase/src/model/DescribeIpWhitelistResult.cc @@ -39,14 +39,24 @@ void DescribeIpWhitelistResult::parse(const std::string &payload) Json::Value value; reader.parse(payload, value); setRequestId(value["RequestId"].asString()); - auto allIpList = value["IpList"]["IP"]; - for (const auto &item : allIpList) - ipList_.push_back(item.asString()); + auto allGroupsNode = value["Groups"]["Group"]; + for (auto valueGroupsGroup : allGroupsNode) + { + Group groupsObject; + if(!valueGroupsGroup["GroupName"].isNull()) + groupsObject.groupName = valueGroupsGroup["GroupName"].asString(); + if(!valueGroupsGroup["IpVersion"].isNull()) + groupsObject.ipVersion = std::stoi(valueGroupsGroup["IpVersion"].asString()); + auto allIpList = value["IpList"]["Ip"]; + for (auto value : allIpList) + groupsObject.ipList.push_back(value.asString()); + groups_.push_back(groupsObject); + } } -std::vector DescribeIpWhitelistResult::getIpList()const +std::vector DescribeIpWhitelistResult::getGroups()const { - return ipList_; + return groups_; } diff --git a/hbase/src/model/ListTagsRequest.cc b/hbase/src/model/ListTagsRequest.cc new file mode 100644 index 000000000..bef107ddc --- /dev/null +++ b/hbase/src/model/ListTagsRequest.cc @@ -0,0 +1,40 @@ +/* + * Copyright 2009-2017 Alibaba Cloud All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include + +using AlibabaCloud::HBase::Model::ListTagsRequest; + +ListTagsRequest::ListTagsRequest() : + RpcServiceRequest("hbase", "2019-01-01", "ListTags") +{ + setMethod(HttpRequest::Method::Post); +} + +ListTagsRequest::~ListTagsRequest() +{} + +std::string ListTagsRequest::getRegionId()const +{ + return regionId_; +} + +void ListTagsRequest::setRegionId(const std::string& regionId) +{ + regionId_ = regionId; + setCoreParameter("RegionId", regionId); +} + diff --git a/hbase/src/model/ListTagsResult.cc b/hbase/src/model/ListTagsResult.cc new file mode 100644 index 000000000..8f11d3c92 --- /dev/null +++ b/hbase/src/model/ListTagsResult.cc @@ -0,0 +1,59 @@ +/* + * Copyright 2009-2017 Alibaba Cloud All rights reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include +#include + +using namespace AlibabaCloud::HBase; +using namespace AlibabaCloud::HBase::Model; + +ListTagsResult::ListTagsResult() : + ServiceResult() +{} + +ListTagsResult::ListTagsResult(const std::string &payload) : + ServiceResult() +{ + parse(payload); +} + +ListTagsResult::~ListTagsResult() +{} + +void ListTagsResult::parse(const std::string &payload) +{ + Json::Reader reader; + Json::Value value; + reader.parse(payload, value); + setRequestId(value["RequestId"].asString()); + auto allTagsNode = value["Tags"]["Tag"]; + for (auto valueTagsTag : allTagsNode) + { + Tag tagsObject; + if(!valueTagsTag["TagKey"].isNull()) + tagsObject.tagKey = valueTagsTag["TagKey"].asString(); + if(!valueTagsTag["TagValue"].isNull()) + tagsObject.tagValue = valueTagsTag["TagValue"].asString(); + tags_.push_back(tagsObject); + } + +} + +std::vector ListTagsResult::getTags()const +{ + return tags_; +} +