Ver Fonte

Update data API.

sdk-team há 5 anos atrás
pai
commit
8ef1e983c1

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2020-10-22 Version: patch
+- Update data API.
+
 2020-10-21 Version: patch
 - DescribeAvailableResource support AcceptLanguage.
 

+ 8 - 0
dcdn/CMakeLists.txt

@@ -113,6 +113,8 @@ set(dcdn_public_header_model
 	include/alibabacloud/dcdn/model/DescribeDcdnDomainRealTimeSrcHttpCodeDataResult.h
 	include/alibabacloud/dcdn/model/DescribeDcdnDomainRealTimeSrcTrafficDataRequest.h
 	include/alibabacloud/dcdn/model/DescribeDcdnDomainRealTimeSrcTrafficDataResult.h
+	include/alibabacloud/dcdn/model/DescribeDcdnDomainRealTimeTrafficDataRequest.h
+	include/alibabacloud/dcdn/model/DescribeDcdnDomainRealTimeTrafficDataResult.h
 	include/alibabacloud/dcdn/model/DescribeDcdnDomainRegionDataRequest.h
 	include/alibabacloud/dcdn/model/DescribeDcdnDomainRegionDataResult.h
 	include/alibabacloud/dcdn/model/DescribeDcdnDomainStagingConfigRequest.h
@@ -155,6 +157,8 @@ set(dcdn_public_header_model
 	include/alibabacloud/dcdn/model/DescribeDcdnTagResourcesResult.h
 	include/alibabacloud/dcdn/model/DescribeDcdnTopDomainsByFlowRequest.h
 	include/alibabacloud/dcdn/model/DescribeDcdnTopDomainsByFlowResult.h
+	include/alibabacloud/dcdn/model/DescribeDcdnUserBillHistoryRequest.h
+	include/alibabacloud/dcdn/model/DescribeDcdnUserBillHistoryResult.h
 	include/alibabacloud/dcdn/model/DescribeDcdnUserBillTypeRequest.h
 	include/alibabacloud/dcdn/model/DescribeDcdnUserBillTypeResult.h
 	include/alibabacloud/dcdn/model/DescribeDcdnUserDomainsRequest.h
@@ -302,6 +306,8 @@ set(dcdn_src
 	src/model/DescribeDcdnDomainRealTimeSrcHttpCodeDataResult.cc
 	src/model/DescribeDcdnDomainRealTimeSrcTrafficDataRequest.cc
 	src/model/DescribeDcdnDomainRealTimeSrcTrafficDataResult.cc
+	src/model/DescribeDcdnDomainRealTimeTrafficDataRequest.cc
+	src/model/DescribeDcdnDomainRealTimeTrafficDataResult.cc
 	src/model/DescribeDcdnDomainRegionDataRequest.cc
 	src/model/DescribeDcdnDomainRegionDataResult.cc
 	src/model/DescribeDcdnDomainStagingConfigRequest.cc
@@ -344,6 +350,8 @@ set(dcdn_src
 	src/model/DescribeDcdnTagResourcesResult.cc
 	src/model/DescribeDcdnTopDomainsByFlowRequest.cc
 	src/model/DescribeDcdnTopDomainsByFlowResult.cc
+	src/model/DescribeDcdnUserBillHistoryRequest.cc
+	src/model/DescribeDcdnUserBillHistoryResult.cc
 	src/model/DescribeDcdnUserBillTypeRequest.cc
 	src/model/DescribeDcdnUserBillTypeResult.cc
 	src/model/DescribeDcdnUserDomainsRequest.cc

+ 16 - 0
dcdn/include/alibabacloud/dcdn/DcdnClient.h

@@ -114,6 +114,8 @@
 #include "model/DescribeDcdnDomainRealTimeSrcHttpCodeDataResult.h"
 #include "model/DescribeDcdnDomainRealTimeSrcTrafficDataRequest.h"
 #include "model/DescribeDcdnDomainRealTimeSrcTrafficDataResult.h"
+#include "model/DescribeDcdnDomainRealTimeTrafficDataRequest.h"
+#include "model/DescribeDcdnDomainRealTimeTrafficDataResult.h"
 #include "model/DescribeDcdnDomainRegionDataRequest.h"
 #include "model/DescribeDcdnDomainRegionDataResult.h"
 #include "model/DescribeDcdnDomainStagingConfigRequest.h"
@@ -156,6 +158,8 @@
 #include "model/DescribeDcdnTagResourcesResult.h"
 #include "model/DescribeDcdnTopDomainsByFlowRequest.h"
 #include "model/DescribeDcdnTopDomainsByFlowResult.h"
+#include "model/DescribeDcdnUserBillHistoryRequest.h"
+#include "model/DescribeDcdnUserBillHistoryResult.h"
 #include "model/DescribeDcdnUserBillTypeRequest.h"
 #include "model/DescribeDcdnUserBillTypeResult.h"
 #include "model/DescribeDcdnUserDomainsRequest.h"
@@ -355,6 +359,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeDcdnDomainRealTimeSrcTrafficDataResult> DescribeDcdnDomainRealTimeSrcTrafficDataOutcome;
 			typedef std::future<DescribeDcdnDomainRealTimeSrcTrafficDataOutcome> DescribeDcdnDomainRealTimeSrcTrafficDataOutcomeCallable;
 			typedef std::function<void(const DcdnClient*, const Model::DescribeDcdnDomainRealTimeSrcTrafficDataRequest&, const DescribeDcdnDomainRealTimeSrcTrafficDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDcdnDomainRealTimeSrcTrafficDataAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDcdnDomainRealTimeTrafficDataResult> DescribeDcdnDomainRealTimeTrafficDataOutcome;
+			typedef std::future<DescribeDcdnDomainRealTimeTrafficDataOutcome> DescribeDcdnDomainRealTimeTrafficDataOutcomeCallable;
+			typedef std::function<void(const DcdnClient*, const Model::DescribeDcdnDomainRealTimeTrafficDataRequest&, const DescribeDcdnDomainRealTimeTrafficDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDcdnDomainRealTimeTrafficDataAsyncHandler;
 			typedef Outcome<Error, Model::DescribeDcdnDomainRegionDataResult> DescribeDcdnDomainRegionDataOutcome;
 			typedef std::future<DescribeDcdnDomainRegionDataOutcome> DescribeDcdnDomainRegionDataOutcomeCallable;
 			typedef std::function<void(const DcdnClient*, const Model::DescribeDcdnDomainRegionDataRequest&, const DescribeDcdnDomainRegionDataOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDcdnDomainRegionDataAsyncHandler;
@@ -418,6 +425,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeDcdnTopDomainsByFlowResult> DescribeDcdnTopDomainsByFlowOutcome;
 			typedef std::future<DescribeDcdnTopDomainsByFlowOutcome> DescribeDcdnTopDomainsByFlowOutcomeCallable;
 			typedef std::function<void(const DcdnClient*, const Model::DescribeDcdnTopDomainsByFlowRequest&, const DescribeDcdnTopDomainsByFlowOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDcdnTopDomainsByFlowAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDcdnUserBillHistoryResult> DescribeDcdnUserBillHistoryOutcome;
+			typedef std::future<DescribeDcdnUserBillHistoryOutcome> DescribeDcdnUserBillHistoryOutcomeCallable;
+			typedef std::function<void(const DcdnClient*, const Model::DescribeDcdnUserBillHistoryRequest&, const DescribeDcdnUserBillHistoryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDcdnUserBillHistoryAsyncHandler;
 			typedef Outcome<Error, Model::DescribeDcdnUserBillTypeResult> DescribeDcdnUserBillTypeOutcome;
 			typedef std::future<DescribeDcdnUserBillTypeOutcome> DescribeDcdnUserBillTypeOutcomeCallable;
 			typedef std::function<void(const DcdnClient*, const Model::DescribeDcdnUserBillTypeRequest&, const DescribeDcdnUserBillTypeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDcdnUserBillTypeAsyncHandler;
@@ -639,6 +649,9 @@ namespace AlibabaCloud
 			DescribeDcdnDomainRealTimeSrcTrafficDataOutcome describeDcdnDomainRealTimeSrcTrafficData(const Model::DescribeDcdnDomainRealTimeSrcTrafficDataRequest &request)const;
 			void describeDcdnDomainRealTimeSrcTrafficDataAsync(const Model::DescribeDcdnDomainRealTimeSrcTrafficDataRequest& request, const DescribeDcdnDomainRealTimeSrcTrafficDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeDcdnDomainRealTimeSrcTrafficDataOutcomeCallable describeDcdnDomainRealTimeSrcTrafficDataCallable(const Model::DescribeDcdnDomainRealTimeSrcTrafficDataRequest& request) const;
+			DescribeDcdnDomainRealTimeTrafficDataOutcome describeDcdnDomainRealTimeTrafficData(const Model::DescribeDcdnDomainRealTimeTrafficDataRequest &request)const;
+			void describeDcdnDomainRealTimeTrafficDataAsync(const Model::DescribeDcdnDomainRealTimeTrafficDataRequest& request, const DescribeDcdnDomainRealTimeTrafficDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDcdnDomainRealTimeTrafficDataOutcomeCallable describeDcdnDomainRealTimeTrafficDataCallable(const Model::DescribeDcdnDomainRealTimeTrafficDataRequest& request) const;
 			DescribeDcdnDomainRegionDataOutcome describeDcdnDomainRegionData(const Model::DescribeDcdnDomainRegionDataRequest &request)const;
 			void describeDcdnDomainRegionDataAsync(const Model::DescribeDcdnDomainRegionDataRequest& request, const DescribeDcdnDomainRegionDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeDcdnDomainRegionDataOutcomeCallable describeDcdnDomainRegionDataCallable(const Model::DescribeDcdnDomainRegionDataRequest& request) const;
@@ -702,6 +715,9 @@ namespace AlibabaCloud
 			DescribeDcdnTopDomainsByFlowOutcome describeDcdnTopDomainsByFlow(const Model::DescribeDcdnTopDomainsByFlowRequest &request)const;
 			void describeDcdnTopDomainsByFlowAsync(const Model::DescribeDcdnTopDomainsByFlowRequest& request, const DescribeDcdnTopDomainsByFlowAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeDcdnTopDomainsByFlowOutcomeCallable describeDcdnTopDomainsByFlowCallable(const Model::DescribeDcdnTopDomainsByFlowRequest& request) const;
+			DescribeDcdnUserBillHistoryOutcome describeDcdnUserBillHistory(const Model::DescribeDcdnUserBillHistoryRequest &request)const;
+			void describeDcdnUserBillHistoryAsync(const Model::DescribeDcdnUserBillHistoryRequest& request, const DescribeDcdnUserBillHistoryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDcdnUserBillHistoryOutcomeCallable describeDcdnUserBillHistoryCallable(const Model::DescribeDcdnUserBillHistoryRequest& request) const;
 			DescribeDcdnUserBillTypeOutcome describeDcdnUserBillType(const Model::DescribeDcdnUserBillTypeRequest &request)const;
 			void describeDcdnUserBillTypeAsync(const Model::DescribeDcdnUserBillTypeRequest& request, const DescribeDcdnUserBillTypeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeDcdnUserBillTypeOutcomeCallable describeDcdnUserBillTypeCallable(const Model::DescribeDcdnUserBillTypeRequest& request) const;

+ 57 - 0
dcdn/include/alibabacloud/dcdn/model/DescribeDcdnDomainRealTimeTrafficDataRequest.h

@@ -0,0 +1,57 @@
+/*
+ * 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_DCDN_MODEL_DESCRIBEDCDNDOMAINREALTIMETRAFFICDATAREQUEST_H_
+#define ALIBABACLOUD_DCDN_MODEL_DESCRIBEDCDNDOMAINREALTIMETRAFFICDATAREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/dcdn/DcdnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dcdn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DCDN_EXPORT DescribeDcdnDomainRealTimeTrafficDataRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeDcdnDomainRealTimeTrafficDataRequest();
+				~DescribeDcdnDomainRealTimeTrafficDataRequest();
+
+				std::string getStartTime()const;
+				void setStartTime(const std::string& startTime);
+				std::string getDomainName()const;
+				void setDomainName(const std::string& domainName);
+				std::string getEndTime()const;
+				void setEndTime(const std::string& endTime);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+
+            private:
+				std::string startTime_;
+				std::string domainName_;
+				std::string endTime_;
+				long ownerId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DCDN_MODEL_DESCRIBEDCDNDOMAINREALTIMETRAFFICDATAREQUEST_H_

+ 64 - 0
dcdn/include/alibabacloud/dcdn/model/DescribeDcdnDomainRealTimeTrafficDataResult.h

@@ -0,0 +1,64 @@
+/*
+ * 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_DCDN_MODEL_DESCRIBEDCDNDOMAINREALTIMETRAFFICDATARESULT_H_
+#define ALIBABACLOUD_DCDN_MODEL_DESCRIBEDCDNDOMAINREALTIMETRAFFICDATARESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/dcdn/DcdnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dcdn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DCDN_EXPORT DescribeDcdnDomainRealTimeTrafficDataResult : public ServiceResult
+			{
+			public:
+				struct DataModule
+				{
+					std::string value;
+					std::string timeStamp;
+				};
+
+
+				DescribeDcdnDomainRealTimeTrafficDataResult();
+				explicit DescribeDcdnDomainRealTimeTrafficDataResult(const std::string &payload);
+				~DescribeDcdnDomainRealTimeTrafficDataResult();
+				std::string getEndTime()const;
+				std::vector<DataModule> getRealTimeTrafficDataPerInterval()const;
+				std::string getDomainName()const;
+				std::string getStartTime()const;
+				std::string getDataInterval()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string endTime_;
+				std::vector<DataModule> realTimeTrafficDataPerInterval_;
+				std::string domainName_;
+				std::string startTime_;
+				std::string dataInterval_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DCDN_MODEL_DESCRIBEDCDNDOMAINREALTIMETRAFFICDATARESULT_H_

+ 54 - 0
dcdn/include/alibabacloud/dcdn/model/DescribeDcdnUserBillHistoryRequest.h

@@ -0,0 +1,54 @@
+/*
+ * 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_DCDN_MODEL_DESCRIBEDCDNUSERBILLHISTORYREQUEST_H_
+#define ALIBABACLOUD_DCDN_MODEL_DESCRIBEDCDNUSERBILLHISTORYREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/dcdn/DcdnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dcdn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DCDN_EXPORT DescribeDcdnUserBillHistoryRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeDcdnUserBillHistoryRequest();
+				~DescribeDcdnUserBillHistoryRequest();
+
+				std::string getStartTime()const;
+				void setStartTime(const std::string& startTime);
+				std::string getEndTime()const;
+				void setEndTime(const std::string& endTime);
+				long getOwnerId()const;
+				void setOwnerId(long ownerId);
+
+            private:
+				std::string startTime_;
+				std::string endTime_;
+				long ownerId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DCDN_MODEL_DESCRIBEDCDNUSERBILLHISTORYREQUEST_H_

+ 66 - 0
dcdn/include/alibabacloud/dcdn/model/DescribeDcdnUserBillHistoryResult.h

@@ -0,0 +1,66 @@
+/*
+ * 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_DCDN_MODEL_DESCRIBEDCDNUSERBILLHISTORYRESULT_H_
+#define ALIBABACLOUD_DCDN_MODEL_DESCRIBEDCDNUSERBILLHISTORYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/dcdn/DcdnExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Dcdn
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_DCDN_EXPORT DescribeDcdnUserBillHistoryResult : public ServiceResult
+			{
+			public:
+				struct BillHistoryDataItem
+				{
+					struct BillingDataItem
+					{
+						std::string chargeType;
+						float bandwidth;
+						std::string cdnRegion;
+						float count;
+						float flow;
+					};
+					std::string billType;
+					std::string billTime;
+					std::vector<BillHistoryDataItem::BillingDataItem> billingData;
+					std::string dimension;
+				};
+
+
+				DescribeDcdnUserBillHistoryResult();
+				explicit DescribeDcdnUserBillHistoryResult(const std::string &payload);
+				~DescribeDcdnUserBillHistoryResult();
+				std::vector<BillHistoryDataItem> getBillHistoryData()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<BillHistoryDataItem> billHistoryData_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_DCDN_MODEL_DESCRIBEDCDNUSERBILLHISTORYRESULT_H_

+ 72 - 0
dcdn/src/DcdnClient.cc

@@ -1707,6 +1707,42 @@ DcdnClient::DescribeDcdnDomainRealTimeSrcTrafficDataOutcomeCallable DcdnClient::
 	return task->get_future();
 }
 
+DcdnClient::DescribeDcdnDomainRealTimeTrafficDataOutcome DcdnClient::describeDcdnDomainRealTimeTrafficData(const DescribeDcdnDomainRealTimeTrafficDataRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeDcdnDomainRealTimeTrafficDataOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeDcdnDomainRealTimeTrafficDataOutcome(DescribeDcdnDomainRealTimeTrafficDataResult(outcome.result()));
+	else
+		return DescribeDcdnDomainRealTimeTrafficDataOutcome(outcome.error());
+}
+
+void DcdnClient::describeDcdnDomainRealTimeTrafficDataAsync(const DescribeDcdnDomainRealTimeTrafficDataRequest& request, const DescribeDcdnDomainRealTimeTrafficDataAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeDcdnDomainRealTimeTrafficData(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+DcdnClient::DescribeDcdnDomainRealTimeTrafficDataOutcomeCallable DcdnClient::describeDcdnDomainRealTimeTrafficDataCallable(const DescribeDcdnDomainRealTimeTrafficDataRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeDcdnDomainRealTimeTrafficDataOutcome()>>(
+			[this, request]()
+			{
+			return this->describeDcdnDomainRealTimeTrafficData(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 DcdnClient::DescribeDcdnDomainRegionDataOutcome DcdnClient::describeDcdnDomainRegionData(const DescribeDcdnDomainRegionDataRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2463,6 +2499,42 @@ DcdnClient::DescribeDcdnTopDomainsByFlowOutcomeCallable DcdnClient::describeDcdn
 	return task->get_future();
 }
 
+DcdnClient::DescribeDcdnUserBillHistoryOutcome DcdnClient::describeDcdnUserBillHistory(const DescribeDcdnUserBillHistoryRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeDcdnUserBillHistoryOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeDcdnUserBillHistoryOutcome(DescribeDcdnUserBillHistoryResult(outcome.result()));
+	else
+		return DescribeDcdnUserBillHistoryOutcome(outcome.error());
+}
+
+void DcdnClient::describeDcdnUserBillHistoryAsync(const DescribeDcdnUserBillHistoryRequest& request, const DescribeDcdnUserBillHistoryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeDcdnUserBillHistory(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+DcdnClient::DescribeDcdnUserBillHistoryOutcomeCallable DcdnClient::describeDcdnUserBillHistoryCallable(const DescribeDcdnUserBillHistoryRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeDcdnUserBillHistoryOutcome()>>(
+			[this, request]()
+			{
+			return this->describeDcdnUserBillHistory(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 DcdnClient::DescribeDcdnUserBillTypeOutcome DcdnClient::describeDcdnUserBillType(const DescribeDcdnUserBillTypeRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 73 - 0
dcdn/src/model/DescribeDcdnDomainRealTimeTrafficDataRequest.cc

@@ -0,0 +1,73 @@
+/*
+ * 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/dcdn/model/DescribeDcdnDomainRealTimeTrafficDataRequest.h>
+
+using AlibabaCloud::Dcdn::Model::DescribeDcdnDomainRealTimeTrafficDataRequest;
+
+DescribeDcdnDomainRealTimeTrafficDataRequest::DescribeDcdnDomainRealTimeTrafficDataRequest() :
+	RpcServiceRequest("dcdn", "2018-01-15", "DescribeDcdnDomainRealTimeTrafficData")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeDcdnDomainRealTimeTrafficDataRequest::~DescribeDcdnDomainRealTimeTrafficDataRequest()
+{}
+
+std::string DescribeDcdnDomainRealTimeTrafficDataRequest::getStartTime()const
+{
+	return startTime_;
+}
+
+void DescribeDcdnDomainRealTimeTrafficDataRequest::setStartTime(const std::string& startTime)
+{
+	startTime_ = startTime;
+	setParameter("StartTime", startTime);
+}
+
+std::string DescribeDcdnDomainRealTimeTrafficDataRequest::getDomainName()const
+{
+	return domainName_;
+}
+
+void DescribeDcdnDomainRealTimeTrafficDataRequest::setDomainName(const std::string& domainName)
+{
+	domainName_ = domainName;
+	setParameter("DomainName", domainName);
+}
+
+std::string DescribeDcdnDomainRealTimeTrafficDataRequest::getEndTime()const
+{
+	return endTime_;
+}
+
+void DescribeDcdnDomainRealTimeTrafficDataRequest::setEndTime(const std::string& endTime)
+{
+	endTime_ = endTime;
+	setParameter("EndTime", endTime);
+}
+
+long DescribeDcdnDomainRealTimeTrafficDataRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DescribeDcdnDomainRealTimeTrafficDataRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+

+ 87 - 0
dcdn/src/model/DescribeDcdnDomainRealTimeTrafficDataResult.cc

@@ -0,0 +1,87 @@
+/*
+ * 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/dcdn/model/DescribeDcdnDomainRealTimeTrafficDataResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Dcdn;
+using namespace AlibabaCloud::Dcdn::Model;
+
+DescribeDcdnDomainRealTimeTrafficDataResult::DescribeDcdnDomainRealTimeTrafficDataResult() :
+	ServiceResult()
+{}
+
+DescribeDcdnDomainRealTimeTrafficDataResult::DescribeDcdnDomainRealTimeTrafficDataResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDcdnDomainRealTimeTrafficDataResult::~DescribeDcdnDomainRealTimeTrafficDataResult()
+{}
+
+void DescribeDcdnDomainRealTimeTrafficDataResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allRealTimeTrafficDataPerIntervalNode = value["RealTimeTrafficDataPerInterval"]["DataModule"];
+	for (auto valueRealTimeTrafficDataPerIntervalDataModule : allRealTimeTrafficDataPerIntervalNode)
+	{
+		DataModule realTimeTrafficDataPerIntervalObject;
+		if(!valueRealTimeTrafficDataPerIntervalDataModule["TimeStamp"].isNull())
+			realTimeTrafficDataPerIntervalObject.timeStamp = valueRealTimeTrafficDataPerIntervalDataModule["TimeStamp"].asString();
+		if(!valueRealTimeTrafficDataPerIntervalDataModule["Value"].isNull())
+			realTimeTrafficDataPerIntervalObject.value = valueRealTimeTrafficDataPerIntervalDataModule["Value"].asString();
+		realTimeTrafficDataPerInterval_.push_back(realTimeTrafficDataPerIntervalObject);
+	}
+	if(!value["DomainName"].isNull())
+		domainName_ = value["DomainName"].asString();
+	if(!value["StartTime"].isNull())
+		startTime_ = value["StartTime"].asString();
+	if(!value["EndTime"].isNull())
+		endTime_ = value["EndTime"].asString();
+	if(!value["DataInterval"].isNull())
+		dataInterval_ = value["DataInterval"].asString();
+
+}
+
+std::string DescribeDcdnDomainRealTimeTrafficDataResult::getEndTime()const
+{
+	return endTime_;
+}
+
+std::vector<DescribeDcdnDomainRealTimeTrafficDataResult::DataModule> DescribeDcdnDomainRealTimeTrafficDataResult::getRealTimeTrafficDataPerInterval()const
+{
+	return realTimeTrafficDataPerInterval_;
+}
+
+std::string DescribeDcdnDomainRealTimeTrafficDataResult::getDomainName()const
+{
+	return domainName_;
+}
+
+std::string DescribeDcdnDomainRealTimeTrafficDataResult::getStartTime()const
+{
+	return startTime_;
+}
+
+std::string DescribeDcdnDomainRealTimeTrafficDataResult::getDataInterval()const
+{
+	return dataInterval_;
+}
+

+ 62 - 0
dcdn/src/model/DescribeDcdnUserBillHistoryRequest.cc

@@ -0,0 +1,62 @@
+/*
+ * 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/dcdn/model/DescribeDcdnUserBillHistoryRequest.h>
+
+using AlibabaCloud::Dcdn::Model::DescribeDcdnUserBillHistoryRequest;
+
+DescribeDcdnUserBillHistoryRequest::DescribeDcdnUserBillHistoryRequest() :
+	RpcServiceRequest("dcdn", "2018-01-15", "DescribeDcdnUserBillHistory")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeDcdnUserBillHistoryRequest::~DescribeDcdnUserBillHistoryRequest()
+{}
+
+std::string DescribeDcdnUserBillHistoryRequest::getStartTime()const
+{
+	return startTime_;
+}
+
+void DescribeDcdnUserBillHistoryRequest::setStartTime(const std::string& startTime)
+{
+	startTime_ = startTime;
+	setParameter("StartTime", startTime);
+}
+
+std::string DescribeDcdnUserBillHistoryRequest::getEndTime()const
+{
+	return endTime_;
+}
+
+void DescribeDcdnUserBillHistoryRequest::setEndTime(const std::string& endTime)
+{
+	endTime_ = endTime;
+	setParameter("EndTime", endTime);
+}
+
+long DescribeDcdnUserBillHistoryRequest::getOwnerId()const
+{
+	return ownerId_;
+}
+
+void DescribeDcdnUserBillHistoryRequest::setOwnerId(long ownerId)
+{
+	ownerId_ = ownerId;
+	setParameter("OwnerId", std::to_string(ownerId));
+}
+

+ 77 - 0
dcdn/src/model/DescribeDcdnUserBillHistoryResult.cc

@@ -0,0 +1,77 @@
+/*
+ * 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/dcdn/model/DescribeDcdnUserBillHistoryResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Dcdn;
+using namespace AlibabaCloud::Dcdn::Model;
+
+DescribeDcdnUserBillHistoryResult::DescribeDcdnUserBillHistoryResult() :
+	ServiceResult()
+{}
+
+DescribeDcdnUserBillHistoryResult::DescribeDcdnUserBillHistoryResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDcdnUserBillHistoryResult::~DescribeDcdnUserBillHistoryResult()
+{}
+
+void DescribeDcdnUserBillHistoryResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allBillHistoryDataNode = value["BillHistoryData"]["BillHistoryDataItem"];
+	for (auto valueBillHistoryDataBillHistoryDataItem : allBillHistoryDataNode)
+	{
+		BillHistoryDataItem billHistoryDataObject;
+		if(!valueBillHistoryDataBillHistoryDataItem["Dimension"].isNull())
+			billHistoryDataObject.dimension = valueBillHistoryDataBillHistoryDataItem["Dimension"].asString();
+		if(!valueBillHistoryDataBillHistoryDataItem["BillType"].isNull())
+			billHistoryDataObject.billType = valueBillHistoryDataBillHistoryDataItem["BillType"].asString();
+		if(!valueBillHistoryDataBillHistoryDataItem["BillTime"].isNull())
+			billHistoryDataObject.billTime = valueBillHistoryDataBillHistoryDataItem["BillTime"].asString();
+		auto allBillingDataNode = allBillHistoryDataNode["BillingData"]["BillingDataItem"];
+		for (auto allBillHistoryDataNodeBillingDataBillingDataItem : allBillingDataNode)
+		{
+			BillHistoryDataItem::BillingDataItem billingDataObject;
+			if(!allBillHistoryDataNodeBillingDataBillingDataItem["ChargeType"].isNull())
+				billingDataObject.chargeType = allBillHistoryDataNodeBillingDataBillingDataItem["ChargeType"].asString();
+			if(!allBillHistoryDataNodeBillingDataBillingDataItem["CdnRegion"].isNull())
+				billingDataObject.cdnRegion = allBillHistoryDataNodeBillingDataBillingDataItem["CdnRegion"].asString();
+			if(!allBillHistoryDataNodeBillingDataBillingDataItem["Bandwidth"].isNull())
+				billingDataObject.bandwidth = std::stof(allBillHistoryDataNodeBillingDataBillingDataItem["Bandwidth"].asString());
+			if(!allBillHistoryDataNodeBillingDataBillingDataItem["Flow"].isNull())
+				billingDataObject.flow = std::stof(allBillHistoryDataNodeBillingDataBillingDataItem["Flow"].asString());
+			if(!allBillHistoryDataNodeBillingDataBillingDataItem["Count"].isNull())
+				billingDataObject.count = std::stof(allBillHistoryDataNodeBillingDataBillingDataItem["Count"].asString());
+			billHistoryDataObject.billingData.push_back(billingDataObject);
+		}
+		billHistoryData_.push_back(billHistoryDataObject);
+	}
+
+}
+
+std::vector<DescribeDcdnUserBillHistoryResult::BillHistoryDataItem> DescribeDcdnUserBillHistoryResult::getBillHistoryData()const
+{
+	return billHistoryData_;
+}
+