sdk-team 6 лет назад
Родитель
Сommit
093332279d

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2020-04-09 Version: 1.36.346
+- Add DescribePrice API.
+
 2020-04-09 Version: 1.36.345
 - WAF OpenApi SDK Release.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.345
+1.36.346

+ 4 - 0
dds/CMakeLists.txt

@@ -95,6 +95,8 @@ set(dds_public_header_model
 	include/alibabacloud/dds/model/DescribeParameterTemplatesResult.h
 	include/alibabacloud/dds/model/DescribeParametersRequest.h
 	include/alibabacloud/dds/model/DescribeParametersResult.h
+	include/alibabacloud/dds/model/DescribePriceRequest.h
+	include/alibabacloud/dds/model/DescribePriceResult.h
 	include/alibabacloud/dds/model/DescribeRegionsRequest.h
 	include/alibabacloud/dds/model/DescribeRegionsResult.h
 	include/alibabacloud/dds/model/DescribeRenewalPriceRequest.h
@@ -264,6 +266,8 @@ set(dds_src
 	src/model/DescribeParameterTemplatesResult.cc
 	src/model/DescribeParametersRequest.cc
 	src/model/DescribeParametersResult.cc
+	src/model/DescribePriceRequest.cc
+	src/model/DescribePriceResult.cc
 	src/model/DescribeRegionsRequest.cc
 	src/model/DescribeRegionsResult.cc
 	src/model/DescribeRenewalPriceRequest.cc

+ 8 - 0
dds/include/alibabacloud/dds/DdsClient.h

@@ -96,6 +96,8 @@
 #include "model/DescribeParameterTemplatesResult.h"
 #include "model/DescribeParametersRequest.h"
 #include "model/DescribeParametersResult.h"
+#include "model/DescribePriceRequest.h"
+#include "model/DescribePriceResult.h"
 #include "model/DescribeRegionsRequest.h"
 #include "model/DescribeRegionsResult.h"
 #include "model/DescribeRenewalPriceRequest.h"
@@ -308,6 +310,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeParametersResult> DescribeParametersOutcome;
 			typedef std::future<DescribeParametersOutcome> DescribeParametersOutcomeCallable;
 			typedef std::function<void(const DdsClient*, const Model::DescribeParametersRequest&, const DescribeParametersOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeParametersAsyncHandler;
+			typedef Outcome<Error, Model::DescribePriceResult> DescribePriceOutcome;
+			typedef std::future<DescribePriceOutcome> DescribePriceOutcomeCallable;
+			typedef std::function<void(const DdsClient*, const Model::DescribePriceRequest&, const DescribePriceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribePriceAsyncHandler;
 			typedef Outcome<Error, Model::DescribeRegionsResult> DescribeRegionsOutcome;
 			typedef std::future<DescribeRegionsOutcome> DescribeRegionsOutcomeCallable;
 			typedef std::function<void(const DdsClient*, const Model::DescribeRegionsRequest&, const DescribeRegionsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRegionsAsyncHandler;
@@ -562,6 +567,9 @@ namespace AlibabaCloud
 			DescribeParametersOutcome describeParameters(const Model::DescribeParametersRequest &request)const;
 			void describeParametersAsync(const Model::DescribeParametersRequest& request, const DescribeParametersAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeParametersOutcomeCallable describeParametersCallable(const Model::DescribeParametersRequest& request) const;
+			DescribePriceOutcome describePrice(const Model::DescribePriceRequest &request)const;
+			void describePriceAsync(const Model::DescribePriceRequest& request, const DescribePriceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribePriceOutcomeCallable describePriceCallable(const Model::DescribePriceRequest& request) const;
 			DescribeRegionsOutcome describeRegions(const Model::DescribeRegionsRequest &request)const;
 			void describeRegionsAsync(const Model::DescribeRegionsRequest& request, const DescribeRegionsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeRegionsOutcomeCallable describeRegionsCallable(const Model::DescribeRegionsRequest& request) const;

+ 1 - 0
dds/include/alibabacloud/dds/model/DescribeDBInstanceAttributeResult.h

@@ -115,6 +115,7 @@ namespace AlibabaCloud
 					int maxIOPS;
 					std::string chargeType;
 					std::string currentKernelVersion;
+					std::string protocolType;
 					std::string vpcAuthMode;
 					std::string creationTime;
 					std::vector<DBInstance::ConfigserverAttribute> configserverList;

+ 84 - 0
dds/include/alibabacloud/dds/model/DescribePriceRequest.h

@@ -0,0 +1,84 @@
+/*
+ * 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_DDS_MODEL_DESCRIBEPRICEREQUEST_H_
+#define ALIBABACLOUD_DDS_MODEL_DESCRIBEPRICEREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/dds/DdsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dds
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DDS_EXPORT DescribePriceRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribePriceRequest();
+				~DescribePriceRequest();
+
+				long getResourceOwnerId()const;
+				void setResourceOwnerId(long resourceOwnerId);
+				std::string getProductCode()const;
+				void setProductCode(const std::string& productCode);
+				std::string getCouponNo()const;
+				void setCouponNo(const std::string& couponNo);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getSecurityToken()const;
+				void setSecurityToken(const std::string& securityToken);
+				std::string getBusinessInfo()const;
+				void setBusinessInfo(const std::string& businessInfo);
+				std::string getResourceOwnerAccount()const;
+				void setResourceOwnerAccount(const std::string& resourceOwnerAccount);
+				std::string getOwnerAccount()const;
+				void setOwnerAccount(const std::string& ownerAccount);
+				std::string getOrderParamOut()const;
+				void setOrderParamOut(const std::string& orderParamOut);
+				std::string getCommodityCode()const;
+				void setCommodityCode(const std::string& commodityCode);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+				std::string getDBInstances()const;
+				void setDBInstances(const std::string& dBInstances);
+				std::string getOrderType()const;
+				void setOrderType(const std::string& orderType);
+
+            private:
+				long resourceOwnerId_;
+				std::string productCode_;
+				std::string couponNo_;
+				std::string accessKeyId_;
+				std::string securityToken_;
+				std::string businessInfo_;
+				std::string resourceOwnerAccount_;
+				std::string ownerAccount_;
+				std::string orderParamOut_;
+				std::string commodityCode_;
+				long ownerId_;
+				std::string dBInstances_;
+				std::string orderType_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DDS_MODEL_DESCRIBEPRICEREQUEST_H_

+ 89 - 0
dds/include/alibabacloud/dds/model/DescribePriceResult.h

@@ -0,0 +1,89 @@
+/*
+ * 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_DDS_MODEL_DESCRIBEPRICERESULT_H_
+#define ALIBABACLOUD_DDS_MODEL_DESCRIBEPRICERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/dds/DdsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dds
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DDS_EXPORT DescribePriceResult : public ServiceResult
+			{
+			public:
+				struct Order
+				{
+					struct Coupon
+					{
+						std::string couponNo;
+						std::string description;
+						std::string isSelected;
+						std::string name;
+					};
+					std::vector<std::string> ruleIds1;
+					std::string currency;
+					float tradeAmount;
+					std::vector<Coupon> coupons;
+					float originalAmount;
+					float discountAmount;
+				};
+				struct Rule
+				{
+					long ruleDescId;
+					std::string title;
+					std::string name;
+				};
+				struct SubOrder
+				{
+					std::string instanceId;
+					std::vector<std::string> ruleIds;
+					float tradeAmount;
+					float originalAmount;
+					float discountAmount;
+				};
+
+
+				DescribePriceResult();
+				explicit DescribePriceResult(const std::string &payload);
+				~DescribePriceResult();
+				Order getOrder()const;
+				std::vector<SubOrder> getSubOrders()const;
+				std::string getTraceId()const;
+				std::string getOrderParams()const;
+				std::vector<Rule> getRules()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Order order_;
+				std::vector<SubOrder> subOrders_;
+				std::string traceId_;
+				std::string orderParams_;
+				std::vector<Rule> rules_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DDS_MODEL_DESCRIBEPRICERESULT_H_

+ 36 - 0
dds/src/DdsClient.cc

@@ -1383,6 +1383,42 @@ DdsClient::DescribeParametersOutcomeCallable DdsClient::describeParametersCallab
 	return task->get_future();
 }
 
+DdsClient::DescribePriceOutcome DdsClient::describePrice(const DescribePriceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribePriceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribePriceOutcome(DescribePriceResult(outcome.result()));
+	else
+		return DescribePriceOutcome(outcome.error());
+}
+
+void DdsClient::describePriceAsync(const DescribePriceRequest& request, const DescribePriceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describePrice(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+DdsClient::DescribePriceOutcomeCallable DdsClient::describePriceCallable(const DescribePriceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribePriceOutcome()>>(
+			[this, request]()
+			{
+			return this->describePrice(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 DdsClient::DescribeRegionsOutcome DdsClient::describeRegions(const DescribeRegionsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 2 - 0
dds/src/model/DescribeDBInstanceAttributeResult.cc

@@ -103,6 +103,8 @@ void DescribeDBInstanceAttributeResult::parse(const std::string &payload)
 			dBInstancesObject.maxConnections = std::stoi(valueDBInstancesDBInstance["MaxConnections"].asString());
 		if(!valueDBInstancesDBInstance["CurrentKernelVersion"].isNull())
 			dBInstancesObject.currentKernelVersion = valueDBInstancesDBInstance["CurrentKernelVersion"].asString();
+		if(!valueDBInstancesDBInstance["ProtocolType"].isNull())
+			dBInstancesObject.protocolType = valueDBInstancesDBInstance["ProtocolType"].asString();
 		if(!valueDBInstancesDBInstance["VpcAuthMode"].isNull())
 			dBInstancesObject.vpcAuthMode = valueDBInstancesDBInstance["VpcAuthMode"].asString();
 		auto allMongosListNode = allDBInstancesNode["MongosList"]["MongosAttribute"];

+ 172 - 0
dds/src/model/DescribePriceRequest.cc

@@ -0,0 +1,172 @@
+/*
+ * 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/dds/model/DescribePriceRequest.h>
+
+using AlibabaCloud::Dds::Model::DescribePriceRequest;
+
+DescribePriceRequest::DescribePriceRequest() :
+	RpcServiceRequest("dds", "2015-12-01", "DescribePrice")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribePriceRequest::~DescribePriceRequest()
+{}
+
+long DescribePriceRequest::getResourceOwnerId()const
+{
+	return resourceOwnerId_;
+}
+
+void DescribePriceRequest::setResourceOwnerId(long resourceOwnerId)
+{
+	resourceOwnerId_ = resourceOwnerId;
+	setParameter("ResourceOwnerId", std::to_string(resourceOwnerId));
+}
+
+std::string DescribePriceRequest::getProductCode()const
+{
+	return productCode_;
+}
+
+void DescribePriceRequest::setProductCode(const std::string& productCode)
+{
+	productCode_ = productCode;
+	setParameter("ProductCode", productCode);
+}
+
+std::string DescribePriceRequest::getCouponNo()const
+{
+	return couponNo_;
+}
+
+void DescribePriceRequest::setCouponNo(const std::string& couponNo)
+{
+	couponNo_ = couponNo;
+	setParameter("CouponNo", couponNo);
+}
+
+std::string DescribePriceRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void DescribePriceRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string DescribePriceRequest::getSecurityToken()const
+{
+	return securityToken_;
+}
+
+void DescribePriceRequest::setSecurityToken(const std::string& securityToken)
+{
+	securityToken_ = securityToken;
+	setParameter("SecurityToken", securityToken);
+}
+
+std::string DescribePriceRequest::getBusinessInfo()const
+{
+	return businessInfo_;
+}
+
+void DescribePriceRequest::setBusinessInfo(const std::string& businessInfo)
+{
+	businessInfo_ = businessInfo;
+	setParameter("BusinessInfo", businessInfo);
+}
+
+std::string DescribePriceRequest::getResourceOwnerAccount()const
+{
+	return resourceOwnerAccount_;
+}
+
+void DescribePriceRequest::setResourceOwnerAccount(const std::string& resourceOwnerAccount)
+{
+	resourceOwnerAccount_ = resourceOwnerAccount;
+	setParameter("ResourceOwnerAccount", resourceOwnerAccount);
+}
+
+std::string DescribePriceRequest::getOwnerAccount()const
+{
+	return ownerAccount_;
+}
+
+void DescribePriceRequest::setOwnerAccount(const std::string& ownerAccount)
+{
+	ownerAccount_ = ownerAccount;
+	setParameter("OwnerAccount", ownerAccount);
+}
+
+std::string DescribePriceRequest::getOrderParamOut()const
+{
+	return orderParamOut_;
+}
+
+void DescribePriceRequest::setOrderParamOut(const std::string& orderParamOut)
+{
+	orderParamOut_ = orderParamOut;
+	setParameter("OrderParamOut", orderParamOut);
+}
+
+std::string DescribePriceRequest::getCommodityCode()const
+{
+	return commodityCode_;
+}
+
+void DescribePriceRequest::setCommodityCode(const std::string& commodityCode)
+{
+	commodityCode_ = commodityCode;
+	setParameter("CommodityCode", commodityCode);
+}
+
+long DescribePriceRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DescribePriceRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+
+std::string DescribePriceRequest::getDBInstances()const
+{
+	return dBInstances_;
+}
+
+void DescribePriceRequest::setDBInstances(const std::string& dBInstances)
+{
+	dBInstances_ = dBInstances;
+	setParameter("DBInstances", dBInstances);
+}
+
+std::string DescribePriceRequest::getOrderType()const
+{
+	return orderType_;
+}
+
+void DescribePriceRequest::setOrderType(const std::string& orderType)
+{
+	orderType_ = orderType;
+	setParameter("OrderType", orderType);
+}
+

+ 128 - 0
dds/src/model/DescribePriceResult.cc

@@ -0,0 +1,128 @@
+/*
+ * 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/dds/model/DescribePriceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Dds;
+using namespace AlibabaCloud::Dds::Model;
+
+DescribePriceResult::DescribePriceResult() :
+	ServiceResult()
+{}
+
+DescribePriceResult::DescribePriceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribePriceResult::~DescribePriceResult()
+{}
+
+void DescribePriceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allRulesNode = value["Rules"]["Rule"];
+	for (auto valueRulesRule : allRulesNode)
+	{
+		Rule rulesObject;
+		if(!valueRulesRule["RuleDescId"].isNull())
+			rulesObject.ruleDescId = std::stol(valueRulesRule["RuleDescId"].asString());
+		if(!valueRulesRule["Name"].isNull())
+			rulesObject.name = valueRulesRule["Name"].asString();
+		if(!valueRulesRule["Title"].isNull())
+			rulesObject.title = valueRulesRule["Title"].asString();
+		rules_.push_back(rulesObject);
+	}
+	auto allSubOrdersNode = value["SubOrders"]["SubOrder"];
+	for (auto valueSubOrdersSubOrder : allSubOrdersNode)
+	{
+		SubOrder subOrdersObject;
+		if(!valueSubOrdersSubOrder["OriginalAmount"].isNull())
+			subOrdersObject.originalAmount = std::stof(valueSubOrdersSubOrder["OriginalAmount"].asString());
+		if(!valueSubOrdersSubOrder["TradeAmount"].isNull())
+			subOrdersObject.tradeAmount = std::stof(valueSubOrdersSubOrder["TradeAmount"].asString());
+		if(!valueSubOrdersSubOrder["DiscountAmount"].isNull())
+			subOrdersObject.discountAmount = std::stof(valueSubOrdersSubOrder["DiscountAmount"].asString());
+		if(!valueSubOrdersSubOrder["InstanceId"].isNull())
+			subOrdersObject.instanceId = valueSubOrdersSubOrder["InstanceId"].asString();
+		auto allRuleIds = value["RuleIds"]["RuleId"];
+		for (auto value : allRuleIds)
+			subOrdersObject.ruleIds.push_back(value.asString());
+		subOrders_.push_back(subOrdersObject);
+	}
+	auto orderNode = value["Order"];
+	if(!orderNode["OriginalAmount"].isNull())
+		order_.originalAmount = std::stof(orderNode["OriginalAmount"].asString());
+	if(!orderNode["TradeAmount"].isNull())
+		order_.tradeAmount = std::stof(orderNode["TradeAmount"].asString());
+	if(!orderNode["DiscountAmount"].isNull())
+		order_.discountAmount = std::stof(orderNode["DiscountAmount"].asString());
+	if(!orderNode["Currency"].isNull())
+		order_.currency = orderNode["Currency"].asString();
+	auto allCouponsNode = orderNode["Coupons"]["Coupon"];
+	for (auto orderNodeCouponsCoupon : allCouponsNode)
+	{
+		Order::Coupon couponObject;
+		if(!orderNodeCouponsCoupon["CouponNo"].isNull())
+			couponObject.couponNo = orderNodeCouponsCoupon["CouponNo"].asString();
+		if(!orderNodeCouponsCoupon["Name"].isNull())
+			couponObject.name = orderNodeCouponsCoupon["Name"].asString();
+		if(!orderNodeCouponsCoupon["Description"].isNull())
+			couponObject.description = orderNodeCouponsCoupon["Description"].asString();
+		if(!orderNodeCouponsCoupon["IsSelected"].isNull())
+			couponObject.isSelected = orderNodeCouponsCoupon["IsSelected"].asString();
+		order_.coupons.push_back(couponObject);
+	}
+		auto allRuleIds1 = orderNode["RuleIds"]["RuleId"];
+		for (auto value : allRuleIds1)
+			order_.ruleIds1.push_back(value.asString());
+	if(!value["TraceId"].isNull())
+		traceId_ = value["TraceId"].asString();
+	if(!value["OrderParams"].isNull())
+		orderParams_ = value["OrderParams"].asString();
+
+}
+
+DescribePriceResult::Order DescribePriceResult::getOrder()const
+{
+	return order_;
+}
+
+std::vector<DescribePriceResult::SubOrder> DescribePriceResult::getSubOrders()const
+{
+	return subOrders_;
+}
+
+std::string DescribePriceResult::getTraceId()const
+{
+	return traceId_;
+}
+
+std::string DescribePriceResult::getOrderParams()const
+{
+	return orderParams_;
+}
+
+std::vector<DescribePriceResult::Rule> DescribePriceResult::getRules()const
+{
+	return rules_;
+}
+