Quellcode durchsuchen

Supported GetResourceCounts for Resourcecenter.

sdk-team vor 3 Jahren
Ursprung
Commit
50542d3a96

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1588
+1.36.1589

+ 4 - 0
resourcecenter/CMakeLists.txt

@@ -37,6 +37,8 @@ set(resourcecenter_public_header_model
 	include/alibabacloud/resourcecenter/model/GetResourceCenterServiceStatusResult.h
 	include/alibabacloud/resourcecenter/model/GetResourceConfigurationRequest.h
 	include/alibabacloud/resourcecenter/model/GetResourceConfigurationResult.h
+	include/alibabacloud/resourcecenter/model/GetResourceCountsRequest.h
+	include/alibabacloud/resourcecenter/model/GetResourceCountsResult.h
 	include/alibabacloud/resourcecenter/model/ListMultiAccountResourceGroupsRequest.h
 	include/alibabacloud/resourcecenter/model/ListMultiAccountResourceGroupsResult.h
 	include/alibabacloud/resourcecenter/model/ListMultiAccountTagKeysRequest.h
@@ -72,6 +74,8 @@ set(resourcecenter_src
 	src/model/GetResourceCenterServiceStatusResult.cc
 	src/model/GetResourceConfigurationRequest.cc
 	src/model/GetResourceConfigurationResult.cc
+	src/model/GetResourceCountsRequest.cc
+	src/model/GetResourceCountsResult.cc
 	src/model/ListMultiAccountResourceGroupsRequest.cc
 	src/model/ListMultiAccountResourceGroupsResult.cc
 	src/model/ListMultiAccountTagKeysRequest.cc

+ 8 - 0
resourcecenter/include/alibabacloud/resourcecenter/ResourceCenterClient.h

@@ -38,6 +38,8 @@
 #include "model/GetResourceCenterServiceStatusResult.h"
 #include "model/GetResourceConfigurationRequest.h"
 #include "model/GetResourceConfigurationResult.h"
+#include "model/GetResourceCountsRequest.h"
+#include "model/GetResourceCountsResult.h"
 #include "model/ListMultiAccountResourceGroupsRequest.h"
 #include "model/ListMultiAccountResourceGroupsResult.h"
 #include "model/ListMultiAccountTagKeysRequest.h"
@@ -87,6 +89,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetResourceConfigurationResult> GetResourceConfigurationOutcome;
 			typedef std::future<GetResourceConfigurationOutcome> GetResourceConfigurationOutcomeCallable;
 			typedef std::function<void(const ResourceCenterClient*, const Model::GetResourceConfigurationRequest&, const GetResourceConfigurationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetResourceConfigurationAsyncHandler;
+			typedef Outcome<Error, Model::GetResourceCountsResult> GetResourceCountsOutcome;
+			typedef std::future<GetResourceCountsOutcome> GetResourceCountsOutcomeCallable;
+			typedef std::function<void(const ResourceCenterClient*, const Model::GetResourceCountsRequest&, const GetResourceCountsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetResourceCountsAsyncHandler;
 			typedef Outcome<Error, Model::ListMultiAccountResourceGroupsResult> ListMultiAccountResourceGroupsOutcome;
 			typedef std::future<ListMultiAccountResourceGroupsOutcome> ListMultiAccountResourceGroupsOutcomeCallable;
 			typedef std::function<void(const ResourceCenterClient*, const Model::ListMultiAccountResourceGroupsRequest&, const ListMultiAccountResourceGroupsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListMultiAccountResourceGroupsAsyncHandler;
@@ -140,6 +145,9 @@ namespace AlibabaCloud
 			GetResourceConfigurationOutcome getResourceConfiguration(const Model::GetResourceConfigurationRequest &request)const;
 			void getResourceConfigurationAsync(const Model::GetResourceConfigurationRequest& request, const GetResourceConfigurationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetResourceConfigurationOutcomeCallable getResourceConfigurationCallable(const Model::GetResourceConfigurationRequest& request) const;
+			GetResourceCountsOutcome getResourceCounts(const Model::GetResourceCountsRequest &request)const;
+			void getResourceCountsAsync(const Model::GetResourceCountsRequest& request, const GetResourceCountsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetResourceCountsOutcomeCallable getResourceCountsCallable(const Model::GetResourceCountsRequest& request) const;
 			ListMultiAccountResourceGroupsOutcome listMultiAccountResourceGroups(const Model::ListMultiAccountResourceGroupsRequest &request)const;
 			void listMultiAccountResourceGroupsAsync(const Model::ListMultiAccountResourceGroupsRequest& request, const ListMultiAccountResourceGroupsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListMultiAccountResourceGroupsOutcomeCallable listMultiAccountResourceGroupsCallable(const Model::ListMultiAccountResourceGroupsRequest& request) const;

+ 49 - 0
resourcecenter/include/alibabacloud/resourcecenter/model/GetResourceCountsRequest.h

@@ -0,0 +1,49 @@
+/*
+ * 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_RESOURCECENTER_MODEL_GETRESOURCECOUNTSREQUEST_H_
+#define ALIBABACLOUD_RESOURCECENTER_MODEL_GETRESOURCECOUNTSREQUEST_H_
+
+#include <alibabacloud/resourcecenter/ResourceCenterExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace ResourceCenter {
+namespace Model {
+class ALIBABACLOUD_RESOURCECENTER_EXPORT GetResourceCountsRequest : public RpcServiceRequest {
+public:
+	struct Filter {
+		std::string matchType;
+		std::string key;
+	};
+	GetResourceCountsRequest();
+	~GetResourceCountsRequest();
+	std::vector<Filter> getFilter() const;
+	void setFilter(const std::vector<Filter> &filter);
+	std::string getGroupByKey() const;
+	void setGroupByKey(const std::string &groupByKey);
+
+private:
+	std::vector<Filter> filter_;
+	std::string groupByKey_;
+};
+} // namespace Model
+} // namespace ResourceCenter
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_RESOURCECENTER_MODEL_GETRESOURCECOUNTSREQUEST_H_

+ 65 - 0
resourcecenter/include/alibabacloud/resourcecenter/model/GetResourceCountsResult.h

@@ -0,0 +1,65 @@
+/*
+ * 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_RESOURCECENTER_MODEL_GETRESOURCECOUNTSRESULT_H_
+#define ALIBABACLOUD_RESOURCECENTER_MODEL_GETRESOURCECOUNTSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/resourcecenter/ResourceCenterExport.h>
+
+namespace AlibabaCloud
+{
+	namespace ResourceCenter
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_RESOURCECENTER_EXPORT GetResourceCountsResult : public ServiceResult
+			{
+			public:
+				struct Filter
+				{
+					std::vector<std::string> values;
+					std::string key;
+				};
+				struct ResourceCount
+				{
+					std::string groupName;
+					long count;
+				};
+
+
+				GetResourceCountsResult();
+				explicit GetResourceCountsResult(const std::string &payload);
+				~GetResourceCountsResult();
+				std::vector<Filter> getFilters()const;
+				std::string getGroupByKey()const;
+				std::vector<ResourceCount> getResourceCounts()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Filter> filters_;
+				std::string groupByKey_;
+				std::vector<ResourceCount> resourceCounts_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_RESOURCECENTER_MODEL_GETRESOURCECOUNTSRESULT_H_

+ 3 - 0
resourcecenter/include/alibabacloud/resourcecenter/model/ListResourceTypesRequest.h

@@ -34,12 +34,15 @@ public:
 	void setQuery(const std::vector<std::string> &query);
 	std::string getResourceType() const;
 	void setResourceType(const std::string &resourceType);
+	std::string getScene() const;
+	void setScene(const std::string &scene);
 	std::string getAcceptLanguage() const;
 	void setAcceptLanguage(const std::string &acceptLanguage);
 
 private:
 	std::vector<std::string> query_;
 	std::string resourceType_;
+	std::string scene_;
 	std::string acceptLanguage_;
 };
 } // namespace Model

+ 36 - 0
resourcecenter/src/ResourceCenterClient.cc

@@ -339,6 +339,42 @@ ResourceCenterClient::GetResourceConfigurationOutcomeCallable ResourceCenterClie
 	return task->get_future();
 }
 
+ResourceCenterClient::GetResourceCountsOutcome ResourceCenterClient::getResourceCounts(const GetResourceCountsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetResourceCountsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetResourceCountsOutcome(GetResourceCountsResult(outcome.result()));
+	else
+		return GetResourceCountsOutcome(outcome.error());
+}
+
+void ResourceCenterClient::getResourceCountsAsync(const GetResourceCountsRequest& request, const GetResourceCountsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getResourceCounts(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ResourceCenterClient::GetResourceCountsOutcomeCallable ResourceCenterClient::getResourceCountsCallable(const GetResourceCountsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetResourceCountsOutcome()>>(
+			[this, request]()
+			{
+			return this->getResourceCounts(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 ResourceCenterClient::ListMultiAccountResourceGroupsOutcome ResourceCenterClient::listMultiAccountResourceGroups(const ListMultiAccountResourceGroupsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 50 - 0
resourcecenter/src/model/GetResourceCountsRequest.cc

@@ -0,0 +1,50 @@
+/*
+ * 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 <alibabacloud/resourcecenter/model/GetResourceCountsRequest.h>
+
+using AlibabaCloud::ResourceCenter::Model::GetResourceCountsRequest;
+
+GetResourceCountsRequest::GetResourceCountsRequest()
+    : RpcServiceRequest("resourcecenter", "2022-12-01", "GetResourceCounts") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+GetResourceCountsRequest::~GetResourceCountsRequest() {}
+
+std::vector<GetResourceCountsRequest::Filter> GetResourceCountsRequest::getFilter() const {
+  return filter_;
+}
+
+void GetResourceCountsRequest::setFilter(const std::vector<GetResourceCountsRequest::Filter> &filter) {
+  filter_ = filter;
+  for(int dep1 = 0; dep1 != filter.size(); dep1++) {
+  auto filterObj = filter.at(dep1);
+  std::string filterObjStr = std::string("Filter") + "." + std::to_string(dep1 + 1);
+    setParameter(filterObjStr + ".MatchType", filterObj.matchType);
+    setParameter(filterObjStr + ".Key", filterObj.key);
+  }
+}
+
+std::string GetResourceCountsRequest::getGroupByKey() const {
+  return groupByKey_;
+}
+
+void GetResourceCountsRequest::setGroupByKey(const std::string &groupByKey) {
+  groupByKey_ = groupByKey;
+  setParameter(std::string("GroupByKey"), groupByKey);
+}
+

+ 82 - 0
resourcecenter/src/model/GetResourceCountsResult.cc

@@ -0,0 +1,82 @@
+/*
+ * 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 <alibabacloud/resourcecenter/model/GetResourceCountsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::ResourceCenter;
+using namespace AlibabaCloud::ResourceCenter::Model;
+
+GetResourceCountsResult::GetResourceCountsResult() :
+	ServiceResult()
+{}
+
+GetResourceCountsResult::GetResourceCountsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetResourceCountsResult::~GetResourceCountsResult()
+{}
+
+void GetResourceCountsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allFiltersNode = value["Filters"]["Filter"];
+	for (auto valueFiltersFilter : allFiltersNode)
+	{
+		Filter filtersObject;
+		if(!valueFiltersFilter["Key"].isNull())
+			filtersObject.key = valueFiltersFilter["Key"].asString();
+		auto allValues = value["Values"]["Value"];
+		for (auto value : allValues)
+			filtersObject.values.push_back(value.asString());
+		filters_.push_back(filtersObject);
+	}
+	auto allResourceCountsNode = value["ResourceCounts"]["ResourceCount"];
+	for (auto valueResourceCountsResourceCount : allResourceCountsNode)
+	{
+		ResourceCount resourceCountsObject;
+		if(!valueResourceCountsResourceCount["GroupName"].isNull())
+			resourceCountsObject.groupName = valueResourceCountsResourceCount["GroupName"].asString();
+		if(!valueResourceCountsResourceCount["Count"].isNull())
+			resourceCountsObject.count = std::stol(valueResourceCountsResourceCount["Count"].asString());
+		resourceCounts_.push_back(resourceCountsObject);
+	}
+	if(!value["GroupByKey"].isNull())
+		groupByKey_ = value["GroupByKey"].asString();
+
+}
+
+std::vector<GetResourceCountsResult::Filter> GetResourceCountsResult::getFilters()const
+{
+	return filters_;
+}
+
+std::string GetResourceCountsResult::getGroupByKey()const
+{
+	return groupByKey_;
+}
+
+std::vector<GetResourceCountsResult::ResourceCount> GetResourceCountsResult::getResourceCounts()const
+{
+	return resourceCounts_;
+}
+

+ 9 - 0
resourcecenter/src/model/ListResourceTypesRequest.cc

@@ -42,6 +42,15 @@ void ListResourceTypesRequest::setResourceType(const std::string &resourceType)
   setParameter(std::string("ResourceType"), resourceType);
 }
 
+std::string ListResourceTypesRequest::getScene() const {
+  return scene_;
+}
+
+void ListResourceTypesRequest::setScene(const std::string &scene) {
+  scene_ = scene;
+  setParameter(std::string("Scene"), scene);
+}
+
 std::string ListResourceTypesRequest::getAcceptLanguage() const {
   return acceptLanguage_;
 }