Pārlūkot izejas kodu

Supported DescribeSavingsPlansUsageTotal.

sdk-team 5 gadi atpakaļ
vecāks
revīzija
5df0ee7c86
23 mainītis faili ar 1480 papildinājumiem un 1 dzēšanām
  1. 6 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 16 0
      bssopenapi/CMakeLists.txt
  4. 32 0
      bssopenapi/include/alibabacloud/bssopenapi/BssOpenApiClient.h
  5. 63 0
      bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansCoverageDetailRequest.h
  6. 78 0
      bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansCoverageDetailResult.h
  7. 57 0
      bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansCoverageTotalRequest.h
  8. 72 0
      bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansCoverageTotalResult.h
  9. 63 0
      bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansUsageDetailRequest.h
  10. 79 0
      bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansUsageDetailResult.h
  11. 57 0
      bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansUsageTotalRequest.h
  12. 74 0
      bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansUsageTotalResult.h
  13. 3 0
      bssopenapi/include/alibabacloud/bssopenapi/model/QueryDPUtilizationDetailRequest.h
  14. 144 0
      bssopenapi/src/BssOpenApiClient.cc
  15. 95 0
      bssopenapi/src/model/DescribeSavingsPlansCoverageDetailRequest.cc
  16. 105 0
      bssopenapi/src/model/DescribeSavingsPlansCoverageDetailResult.cc
  17. 73 0
      bssopenapi/src/model/DescribeSavingsPlansCoverageTotalRequest.cc
  18. 86 0
      bssopenapi/src/model/DescribeSavingsPlansCoverageTotalResult.cc
  19. 95 0
      bssopenapi/src/model/DescribeSavingsPlansUsageDetailRequest.cc
  20. 107 0
      bssopenapi/src/model/DescribeSavingsPlansUsageDetailResult.cc
  21. 73 0
      bssopenapi/src/model/DescribeSavingsPlansUsageTotalRequest.cc
  22. 90 0
      bssopenapi/src/model/DescribeSavingsPlansUsageTotalResult.cc
  23. 11 0
      bssopenapi/src/model/QueryDPUtilizationDetailRequest.cc

+ 6 - 0
CHANGELOG

@@ -1,3 +1,9 @@
+2021-08-10 Version: 1.36.847
+- Supported DescribeSavingsPlansUsageTotal.
+- Supported DescribeSavingsPlansUsageDetail.
+- Supported DescribeSavingsPlansCoverageTotal.
+- Supported DescribeSavingsPlansCoverageDetail.
+
 2021-08-10 Version: 1.36.846
 - Export instance relative API.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.846
+1.36.847

+ 16 - 0
bssopenapi/CMakeLists.txt

@@ -61,6 +61,14 @@ set(bssopenapi_public_header_model
 	include/alibabacloud/bssopenapi/model/DescribeResourceUsageDetailResult.h
 	include/alibabacloud/bssopenapi/model/DescribeResourceUsageTotalRequest.h
 	include/alibabacloud/bssopenapi/model/DescribeResourceUsageTotalResult.h
+	include/alibabacloud/bssopenapi/model/DescribeSavingsPlansCoverageDetailRequest.h
+	include/alibabacloud/bssopenapi/model/DescribeSavingsPlansCoverageDetailResult.h
+	include/alibabacloud/bssopenapi/model/DescribeSavingsPlansCoverageTotalRequest.h
+	include/alibabacloud/bssopenapi/model/DescribeSavingsPlansCoverageTotalResult.h
+	include/alibabacloud/bssopenapi/model/DescribeSavingsPlansUsageDetailRequest.h
+	include/alibabacloud/bssopenapi/model/DescribeSavingsPlansUsageDetailResult.h
+	include/alibabacloud/bssopenapi/model/DescribeSavingsPlansUsageTotalRequest.h
+	include/alibabacloud/bssopenapi/model/DescribeSavingsPlansUsageTotalResult.h
 	include/alibabacloud/bssopenapi/model/DescribeSplitItemBillRequest.h
 	include/alibabacloud/bssopenapi/model/DescribeSplitItemBillResult.h
 	include/alibabacloud/bssopenapi/model/EnableBillGenerationRequest.h
@@ -228,6 +236,14 @@ set(bssopenapi_src
 	src/model/DescribeResourceUsageDetailResult.cc
 	src/model/DescribeResourceUsageTotalRequest.cc
 	src/model/DescribeResourceUsageTotalResult.cc
+	src/model/DescribeSavingsPlansCoverageDetailRequest.cc
+	src/model/DescribeSavingsPlansCoverageDetailResult.cc
+	src/model/DescribeSavingsPlansCoverageTotalRequest.cc
+	src/model/DescribeSavingsPlansCoverageTotalResult.cc
+	src/model/DescribeSavingsPlansUsageDetailRequest.cc
+	src/model/DescribeSavingsPlansUsageDetailResult.cc
+	src/model/DescribeSavingsPlansUsageTotalRequest.cc
+	src/model/DescribeSavingsPlansUsageTotalResult.cc
 	src/model/DescribeSplitItemBillRequest.cc
 	src/model/DescribeSplitItemBillResult.cc
 	src/model/EnableBillGenerationRequest.cc

+ 32 - 0
bssopenapi/include/alibabacloud/bssopenapi/BssOpenApiClient.h

@@ -62,6 +62,14 @@
 #include "model/DescribeResourceUsageDetailResult.h"
 #include "model/DescribeResourceUsageTotalRequest.h"
 #include "model/DescribeResourceUsageTotalResult.h"
+#include "model/DescribeSavingsPlansCoverageDetailRequest.h"
+#include "model/DescribeSavingsPlansCoverageDetailResult.h"
+#include "model/DescribeSavingsPlansCoverageTotalRequest.h"
+#include "model/DescribeSavingsPlansCoverageTotalResult.h"
+#include "model/DescribeSavingsPlansUsageDetailRequest.h"
+#include "model/DescribeSavingsPlansUsageDetailResult.h"
+#include "model/DescribeSavingsPlansUsageTotalRequest.h"
+#include "model/DescribeSavingsPlansUsageTotalResult.h"
 #include "model/DescribeSplitItemBillRequest.h"
 #include "model/DescribeSplitItemBillResult.h"
 #include "model/EnableBillGenerationRequest.h"
@@ -255,6 +263,18 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeResourceUsageTotalResult> DescribeResourceUsageTotalOutcome;
 			typedef std::future<DescribeResourceUsageTotalOutcome> DescribeResourceUsageTotalOutcomeCallable;
 			typedef std::function<void(const BssOpenApiClient*, const Model::DescribeResourceUsageTotalRequest&, const DescribeResourceUsageTotalOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeResourceUsageTotalAsyncHandler;
+			typedef Outcome<Error, Model::DescribeSavingsPlansCoverageDetailResult> DescribeSavingsPlansCoverageDetailOutcome;
+			typedef std::future<DescribeSavingsPlansCoverageDetailOutcome> DescribeSavingsPlansCoverageDetailOutcomeCallable;
+			typedef std::function<void(const BssOpenApiClient*, const Model::DescribeSavingsPlansCoverageDetailRequest&, const DescribeSavingsPlansCoverageDetailOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeSavingsPlansCoverageDetailAsyncHandler;
+			typedef Outcome<Error, Model::DescribeSavingsPlansCoverageTotalResult> DescribeSavingsPlansCoverageTotalOutcome;
+			typedef std::future<DescribeSavingsPlansCoverageTotalOutcome> DescribeSavingsPlansCoverageTotalOutcomeCallable;
+			typedef std::function<void(const BssOpenApiClient*, const Model::DescribeSavingsPlansCoverageTotalRequest&, const DescribeSavingsPlansCoverageTotalOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeSavingsPlansCoverageTotalAsyncHandler;
+			typedef Outcome<Error, Model::DescribeSavingsPlansUsageDetailResult> DescribeSavingsPlansUsageDetailOutcome;
+			typedef std::future<DescribeSavingsPlansUsageDetailOutcome> DescribeSavingsPlansUsageDetailOutcomeCallable;
+			typedef std::function<void(const BssOpenApiClient*, const Model::DescribeSavingsPlansUsageDetailRequest&, const DescribeSavingsPlansUsageDetailOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeSavingsPlansUsageDetailAsyncHandler;
+			typedef Outcome<Error, Model::DescribeSavingsPlansUsageTotalResult> DescribeSavingsPlansUsageTotalOutcome;
+			typedef std::future<DescribeSavingsPlansUsageTotalOutcome> DescribeSavingsPlansUsageTotalOutcomeCallable;
+			typedef std::function<void(const BssOpenApiClient*, const Model::DescribeSavingsPlansUsageTotalRequest&, const DescribeSavingsPlansUsageTotalOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeSavingsPlansUsageTotalAsyncHandler;
 			typedef Outcome<Error, Model::DescribeSplitItemBillResult> DescribeSplitItemBillOutcome;
 			typedef std::future<DescribeSplitItemBillOutcome> DescribeSplitItemBillOutcomeCallable;
 			typedef std::function<void(const BssOpenApiClient*, const Model::DescribeSplitItemBillRequest&, const DescribeSplitItemBillOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeSplitItemBillAsyncHandler;
@@ -506,6 +526,18 @@ namespace AlibabaCloud
 			DescribeResourceUsageTotalOutcome describeResourceUsageTotal(const Model::DescribeResourceUsageTotalRequest &request)const;
 			void describeResourceUsageTotalAsync(const Model::DescribeResourceUsageTotalRequest& request, const DescribeResourceUsageTotalAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeResourceUsageTotalOutcomeCallable describeResourceUsageTotalCallable(const Model::DescribeResourceUsageTotalRequest& request) const;
+			DescribeSavingsPlansCoverageDetailOutcome describeSavingsPlansCoverageDetail(const Model::DescribeSavingsPlansCoverageDetailRequest &request)const;
+			void describeSavingsPlansCoverageDetailAsync(const Model::DescribeSavingsPlansCoverageDetailRequest& request, const DescribeSavingsPlansCoverageDetailAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeSavingsPlansCoverageDetailOutcomeCallable describeSavingsPlansCoverageDetailCallable(const Model::DescribeSavingsPlansCoverageDetailRequest& request) const;
+			DescribeSavingsPlansCoverageTotalOutcome describeSavingsPlansCoverageTotal(const Model::DescribeSavingsPlansCoverageTotalRequest &request)const;
+			void describeSavingsPlansCoverageTotalAsync(const Model::DescribeSavingsPlansCoverageTotalRequest& request, const DescribeSavingsPlansCoverageTotalAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeSavingsPlansCoverageTotalOutcomeCallable describeSavingsPlansCoverageTotalCallable(const Model::DescribeSavingsPlansCoverageTotalRequest& request) const;
+			DescribeSavingsPlansUsageDetailOutcome describeSavingsPlansUsageDetail(const Model::DescribeSavingsPlansUsageDetailRequest &request)const;
+			void describeSavingsPlansUsageDetailAsync(const Model::DescribeSavingsPlansUsageDetailRequest& request, const DescribeSavingsPlansUsageDetailAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeSavingsPlansUsageDetailOutcomeCallable describeSavingsPlansUsageDetailCallable(const Model::DescribeSavingsPlansUsageDetailRequest& request) const;
+			DescribeSavingsPlansUsageTotalOutcome describeSavingsPlansUsageTotal(const Model::DescribeSavingsPlansUsageTotalRequest &request)const;
+			void describeSavingsPlansUsageTotalAsync(const Model::DescribeSavingsPlansUsageTotalRequest& request, const DescribeSavingsPlansUsageTotalAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeSavingsPlansUsageTotalOutcomeCallable describeSavingsPlansUsageTotalCallable(const Model::DescribeSavingsPlansUsageTotalRequest& request) const;
 			DescribeSplitItemBillOutcome describeSplitItemBill(const Model::DescribeSplitItemBillRequest &request)const;
 			void describeSplitItemBillAsync(const Model::DescribeSplitItemBillRequest& request, const DescribeSplitItemBillAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeSplitItemBillOutcomeCallable describeSplitItemBillCallable(const Model::DescribeSplitItemBillRequest& request) const;

+ 63 - 0
bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansCoverageDetailRequest.h

@@ -0,0 +1,63 @@
+/*
+ * 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_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSCOVERAGEDETAILREQUEST_H_
+#define ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSCOVERAGEDETAILREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/bssopenapi/BssOpenApiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace BssOpenApi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_BSSOPENAPI_EXPORT DescribeSavingsPlansCoverageDetailRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeSavingsPlansCoverageDetailRequest();
+				~DescribeSavingsPlansCoverageDetailRequest();
+
+				std::string getPeriodType()const;
+				void setPeriodType(const std::string& periodType);
+				long getBillOwnerId()const;
+				void setBillOwnerId(long billOwnerId);
+				std::string getStartPeriod()const;
+				void setStartPeriod(const std::string& startPeriod);
+				std::string getEndPeriod()const;
+				void setEndPeriod(const std::string& endPeriod);
+				std::string getToken()const;
+				void setToken(const std::string& token);
+				int getMaxResults()const;
+				void setMaxResults(int maxResults);
+
+            private:
+				std::string periodType_;
+				long billOwnerId_;
+				std::string startPeriod_;
+				std::string endPeriod_;
+				std::string token_;
+				int maxResults_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSCOVERAGEDETAILREQUEST_H_

+ 78 - 0
bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansCoverageDetailResult.h

@@ -0,0 +1,78 @@
+/*
+ * 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_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSCOVERAGEDETAILRESULT_H_
+#define ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSCOVERAGEDETAILRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/bssopenapi/BssOpenApiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace BssOpenApi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_BSSOPENAPI_EXPORT DescribeSavingsPlansCoverageDetailResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct Item
+					{
+						float postpaidCost;
+						std::string userName;
+						std::string instanceSpec;
+						std::string instanceId;
+						long userId;
+						std::string endPeriod;
+						std::string currency;
+						std::string region;
+						float totalAmount;
+						float deductAmount;
+						float coveragePercentage;
+						std::string startPeriod;
+					};
+					int totalCount;
+					std::string nextToken;
+					std::vector<Item> items;
+				};
+
+
+				DescribeSavingsPlansCoverageDetailResult();
+				explicit DescribeSavingsPlansCoverageDetailResult(const std::string &payload);
+				~DescribeSavingsPlansCoverageDetailResult();
+				std::string getMessage()const;
+				Data getData()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				Data data_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSCOVERAGEDETAILRESULT_H_

+ 57 - 0
bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansCoverageTotalRequest.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_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSCOVERAGETOTALREQUEST_H_
+#define ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSCOVERAGETOTALREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/bssopenapi/BssOpenApiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace BssOpenApi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_BSSOPENAPI_EXPORT DescribeSavingsPlansCoverageTotalRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeSavingsPlansCoverageTotalRequest();
+				~DescribeSavingsPlansCoverageTotalRequest();
+
+				std::string getPeriodType()const;
+				void setPeriodType(const std::string& periodType);
+				long getBillOwnerId()const;
+				void setBillOwnerId(long billOwnerId);
+				std::string getStartPeriod()const;
+				void setStartPeriod(const std::string& startPeriod);
+				std::string getEndPeriod()const;
+				void setEndPeriod(const std::string& endPeriod);
+
+            private:
+				std::string periodType_;
+				long billOwnerId_;
+				std::string startPeriod_;
+				std::string endPeriod_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSCOVERAGETOTALREQUEST_H_

+ 72 - 0
bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansCoverageTotalResult.h

@@ -0,0 +1,72 @@
+/*
+ * 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_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSCOVERAGETOTALRESULT_H_
+#define ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSCOVERAGETOTALRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/bssopenapi/BssOpenApiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace BssOpenApi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_BSSOPENAPI_EXPORT DescribeSavingsPlansCoverageTotalResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct TotalCoverage
+					{
+						float deductAmount;
+						float coveragePercentage;
+					};
+					struct Item
+					{
+						float percentage;
+						std::string period;
+					};
+					std::vector<Item> periodCoverage;
+					TotalCoverage totalCoverage;
+				};
+
+
+				DescribeSavingsPlansCoverageTotalResult();
+				explicit DescribeSavingsPlansCoverageTotalResult(const std::string &payload);
+				~DescribeSavingsPlansCoverageTotalResult();
+				std::string getMessage()const;
+				Data getData()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				Data data_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSCOVERAGETOTALRESULT_H_

+ 63 - 0
bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansUsageDetailRequest.h

@@ -0,0 +1,63 @@
+/*
+ * 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_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSUSAGEDETAILREQUEST_H_
+#define ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSUSAGEDETAILREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/bssopenapi/BssOpenApiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace BssOpenApi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_BSSOPENAPI_EXPORT DescribeSavingsPlansUsageDetailRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeSavingsPlansUsageDetailRequest();
+				~DescribeSavingsPlansUsageDetailRequest();
+
+				std::string getPeriodType()const;
+				void setPeriodType(const std::string& periodType);
+				long getBillOwnerId()const;
+				void setBillOwnerId(long billOwnerId);
+				std::string getStartPeriod()const;
+				void setStartPeriod(const std::string& startPeriod);
+				std::string getEndPeriod()const;
+				void setEndPeriod(const std::string& endPeriod);
+				std::string getToken()const;
+				void setToken(const std::string& token);
+				int getMaxResults()const;
+				void setMaxResults(int maxResults);
+
+            private:
+				std::string periodType_;
+				long billOwnerId_;
+				std::string startPeriod_;
+				std::string endPeriod_;
+				std::string token_;
+				int maxResults_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSUSAGEDETAILREQUEST_H_

+ 79 - 0
bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansUsageDetailResult.h

@@ -0,0 +1,79 @@
+/*
+ * 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_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSUSAGEDETAILRESULT_H_
+#define ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSUSAGEDETAILRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/bssopenapi/BssOpenApiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace BssOpenApi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_BSSOPENAPI_EXPORT DescribeSavingsPlansUsageDetailResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct Item
+					{
+						std::string status;
+						float postpaidCost;
+						std::string userName;
+						std::string instanceId;
+						float savedCost;
+						float deductValue;
+						float usagePercentage;
+						std::string type;
+						long userId;
+						std::string endPeriod;
+						std::string currency;
+						float poolValue;
+						std::string startPeriod;
+					};
+					int totalCount;
+					std::string nextToken;
+					std::vector<Item> items;
+				};
+
+
+				DescribeSavingsPlansUsageDetailResult();
+				explicit DescribeSavingsPlansUsageDetailResult(const std::string &payload);
+				~DescribeSavingsPlansUsageDetailResult();
+				std::string getMessage()const;
+				Data getData()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				Data data_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSUSAGEDETAILRESULT_H_

+ 57 - 0
bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansUsageTotalRequest.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_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSUSAGETOTALREQUEST_H_
+#define ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSUSAGETOTALREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/bssopenapi/BssOpenApiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace BssOpenApi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_BSSOPENAPI_EXPORT DescribeSavingsPlansUsageTotalRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeSavingsPlansUsageTotalRequest();
+				~DescribeSavingsPlansUsageTotalRequest();
+
+				std::string getPeriodType()const;
+				void setPeriodType(const std::string& periodType);
+				long getBillOwnerId()const;
+				void setBillOwnerId(long billOwnerId);
+				std::string getStartPeriod()const;
+				void setStartPeriod(const std::string& startPeriod);
+				std::string getEndPeriod()const;
+				void setEndPeriod(const std::string& endPeriod);
+
+            private:
+				std::string periodType_;
+				long billOwnerId_;
+				std::string startPeriod_;
+				std::string endPeriod_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSUSAGETOTALREQUEST_H_

+ 74 - 0
bssopenapi/include/alibabacloud/bssopenapi/model/DescribeSavingsPlansUsageTotalResult.h

@@ -0,0 +1,74 @@
+/*
+ * 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_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSUSAGETOTALRESULT_H_
+#define ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSUSAGETOTALRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/bssopenapi/BssOpenApiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace BssOpenApi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_BSSOPENAPI_EXPORT DescribeSavingsPlansUsageTotalResult : public ServiceResult
+			{
+			public:
+				struct Data
+				{
+					struct TotalUsage
+					{
+						float postpaidCost;
+						float poolValue;
+						float savedCost;
+						float usagePercentage;
+					};
+					struct Item
+					{
+						float percentage;
+						std::string period;
+					};
+					TotalUsage totalUsage;
+					std::vector<Item> periodCoverage;
+				};
+
+
+				DescribeSavingsPlansUsageTotalResult();
+				explicit DescribeSavingsPlansUsageTotalResult(const std::string &payload);
+				~DescribeSavingsPlansUsageTotalResult();
+				std::string getMessage()const;
+				Data getData()const;
+				std::string getCode()const;
+				bool getSuccess()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string message_;
+				Data data_;
+				std::string code_;
+				bool success_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_BSSOPENAPI_MODEL_DESCRIBESAVINGSPLANSUSAGETOTALRESULT_H_

+ 3 - 0
bssopenapi/include/alibabacloud/bssopenapi/model/QueryDPUtilizationDetailRequest.h

@@ -41,6 +41,8 @@ namespace AlibabaCloud
 				void setLastToken(const std::string& lastToken);
 				std::string getInstanceSpec()const;
 				void setInstanceSpec(const std::string& instanceSpec);
+				std::string getProdCode()const;
+				void setProdCode(const std::string& prodCode);
 				std::string getEndTime()const;
 				void setEndTime(const std::string& endTime);
 				bool getIncludeShare()const;
@@ -58,6 +60,7 @@ namespace AlibabaCloud
 				std::string deductedInstanceId_;
 				std::string lastToken_;
 				std::string instanceSpec_;
+				std::string prodCode_;
 				std::string endTime_;
 				bool includeShare_;
 				std::string commodityCode_;

+ 144 - 0
bssopenapi/src/BssOpenApiClient.cc

@@ -771,6 +771,150 @@ BssOpenApiClient::DescribeResourceUsageTotalOutcomeCallable BssOpenApiClient::de
 	return task->get_future();
 }
 
+BssOpenApiClient::DescribeSavingsPlansCoverageDetailOutcome BssOpenApiClient::describeSavingsPlansCoverageDetail(const DescribeSavingsPlansCoverageDetailRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeSavingsPlansCoverageDetailOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeSavingsPlansCoverageDetailOutcome(DescribeSavingsPlansCoverageDetailResult(outcome.result()));
+	else
+		return DescribeSavingsPlansCoverageDetailOutcome(outcome.error());
+}
+
+void BssOpenApiClient::describeSavingsPlansCoverageDetailAsync(const DescribeSavingsPlansCoverageDetailRequest& request, const DescribeSavingsPlansCoverageDetailAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeSavingsPlansCoverageDetail(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+BssOpenApiClient::DescribeSavingsPlansCoverageDetailOutcomeCallable BssOpenApiClient::describeSavingsPlansCoverageDetailCallable(const DescribeSavingsPlansCoverageDetailRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeSavingsPlansCoverageDetailOutcome()>>(
+			[this, request]()
+			{
+			return this->describeSavingsPlansCoverageDetail(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+BssOpenApiClient::DescribeSavingsPlansCoverageTotalOutcome BssOpenApiClient::describeSavingsPlansCoverageTotal(const DescribeSavingsPlansCoverageTotalRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeSavingsPlansCoverageTotalOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeSavingsPlansCoverageTotalOutcome(DescribeSavingsPlansCoverageTotalResult(outcome.result()));
+	else
+		return DescribeSavingsPlansCoverageTotalOutcome(outcome.error());
+}
+
+void BssOpenApiClient::describeSavingsPlansCoverageTotalAsync(const DescribeSavingsPlansCoverageTotalRequest& request, const DescribeSavingsPlansCoverageTotalAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeSavingsPlansCoverageTotal(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+BssOpenApiClient::DescribeSavingsPlansCoverageTotalOutcomeCallable BssOpenApiClient::describeSavingsPlansCoverageTotalCallable(const DescribeSavingsPlansCoverageTotalRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeSavingsPlansCoverageTotalOutcome()>>(
+			[this, request]()
+			{
+			return this->describeSavingsPlansCoverageTotal(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+BssOpenApiClient::DescribeSavingsPlansUsageDetailOutcome BssOpenApiClient::describeSavingsPlansUsageDetail(const DescribeSavingsPlansUsageDetailRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeSavingsPlansUsageDetailOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeSavingsPlansUsageDetailOutcome(DescribeSavingsPlansUsageDetailResult(outcome.result()));
+	else
+		return DescribeSavingsPlansUsageDetailOutcome(outcome.error());
+}
+
+void BssOpenApiClient::describeSavingsPlansUsageDetailAsync(const DescribeSavingsPlansUsageDetailRequest& request, const DescribeSavingsPlansUsageDetailAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeSavingsPlansUsageDetail(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+BssOpenApiClient::DescribeSavingsPlansUsageDetailOutcomeCallable BssOpenApiClient::describeSavingsPlansUsageDetailCallable(const DescribeSavingsPlansUsageDetailRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeSavingsPlansUsageDetailOutcome()>>(
+			[this, request]()
+			{
+			return this->describeSavingsPlansUsageDetail(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+BssOpenApiClient::DescribeSavingsPlansUsageTotalOutcome BssOpenApiClient::describeSavingsPlansUsageTotal(const DescribeSavingsPlansUsageTotalRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeSavingsPlansUsageTotalOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeSavingsPlansUsageTotalOutcome(DescribeSavingsPlansUsageTotalResult(outcome.result()));
+	else
+		return DescribeSavingsPlansUsageTotalOutcome(outcome.error());
+}
+
+void BssOpenApiClient::describeSavingsPlansUsageTotalAsync(const DescribeSavingsPlansUsageTotalRequest& request, const DescribeSavingsPlansUsageTotalAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeSavingsPlansUsageTotal(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+BssOpenApiClient::DescribeSavingsPlansUsageTotalOutcomeCallable BssOpenApiClient::describeSavingsPlansUsageTotalCallable(const DescribeSavingsPlansUsageTotalRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeSavingsPlansUsageTotalOutcome()>>(
+			[this, request]()
+			{
+			return this->describeSavingsPlansUsageTotal(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 BssOpenApiClient::DescribeSplitItemBillOutcome BssOpenApiClient::describeSplitItemBill(const DescribeSplitItemBillRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 95 - 0
bssopenapi/src/model/DescribeSavingsPlansCoverageDetailRequest.cc

@@ -0,0 +1,95 @@
+/*
+ * 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/bssopenapi/model/DescribeSavingsPlansCoverageDetailRequest.h>
+
+using AlibabaCloud::BssOpenApi::Model::DescribeSavingsPlansCoverageDetailRequest;
+
+DescribeSavingsPlansCoverageDetailRequest::DescribeSavingsPlansCoverageDetailRequest() :
+	RpcServiceRequest("bssopenapi", "2017-12-14", "DescribeSavingsPlansCoverageDetail")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeSavingsPlansCoverageDetailRequest::~DescribeSavingsPlansCoverageDetailRequest()
+{}
+
+std::string DescribeSavingsPlansCoverageDetailRequest::getPeriodType()const
+{
+	return periodType_;
+}
+
+void DescribeSavingsPlansCoverageDetailRequest::setPeriodType(const std::string& periodType)
+{
+	periodType_ = periodType;
+	setParameter("PeriodType", periodType);
+}
+
+long DescribeSavingsPlansCoverageDetailRequest::getBillOwnerId()const
+{
+	return billOwnerId_;
+}
+
+void DescribeSavingsPlansCoverageDetailRequest::setBillOwnerId(long billOwnerId)
+{
+	billOwnerId_ = billOwnerId;
+	setParameter("BillOwnerId", std::to_string(billOwnerId));
+}
+
+std::string DescribeSavingsPlansCoverageDetailRequest::getStartPeriod()const
+{
+	return startPeriod_;
+}
+
+void DescribeSavingsPlansCoverageDetailRequest::setStartPeriod(const std::string& startPeriod)
+{
+	startPeriod_ = startPeriod;
+	setParameter("StartPeriod", startPeriod);
+}
+
+std::string DescribeSavingsPlansCoverageDetailRequest::getEndPeriod()const
+{
+	return endPeriod_;
+}
+
+void DescribeSavingsPlansCoverageDetailRequest::setEndPeriod(const std::string& endPeriod)
+{
+	endPeriod_ = endPeriod;
+	setParameter("EndPeriod", endPeriod);
+}
+
+std::string DescribeSavingsPlansCoverageDetailRequest::getToken()const
+{
+	return token_;
+}
+
+void DescribeSavingsPlansCoverageDetailRequest::setToken(const std::string& token)
+{
+	token_ = token;
+	setParameter("Token", token);
+}
+
+int DescribeSavingsPlansCoverageDetailRequest::getMaxResults()const
+{
+	return maxResults_;
+}
+
+void DescribeSavingsPlansCoverageDetailRequest::setMaxResults(int maxResults)
+{
+	maxResults_ = maxResults;
+	setParameter("MaxResults", std::to_string(maxResults));
+}
+

+ 105 - 0
bssopenapi/src/model/DescribeSavingsPlansCoverageDetailResult.cc

@@ -0,0 +1,105 @@
+/*
+ * 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/bssopenapi/model/DescribeSavingsPlansCoverageDetailResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::BssOpenApi;
+using namespace AlibabaCloud::BssOpenApi::Model;
+
+DescribeSavingsPlansCoverageDetailResult::DescribeSavingsPlansCoverageDetailResult() :
+	ServiceResult()
+{}
+
+DescribeSavingsPlansCoverageDetailResult::DescribeSavingsPlansCoverageDetailResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeSavingsPlansCoverageDetailResult::~DescribeSavingsPlansCoverageDetailResult()
+{}
+
+void DescribeSavingsPlansCoverageDetailResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["TotalCount"].isNull())
+		data_.totalCount = std::stoi(dataNode["TotalCount"].asString());
+	if(!dataNode["NextToken"].isNull())
+		data_.nextToken = dataNode["NextToken"].asString();
+	auto allItemsNode = dataNode["Items"]["Item"];
+	for (auto dataNodeItemsItem : allItemsNode)
+	{
+		Data::Item itemObject;
+		if(!dataNodeItemsItem["UserId"].isNull())
+			itemObject.userId = std::stol(dataNodeItemsItem["UserId"].asString());
+		if(!dataNodeItemsItem["UserName"].isNull())
+			itemObject.userName = dataNodeItemsItem["UserName"].asString();
+		if(!dataNodeItemsItem["InstanceId"].isNull())
+			itemObject.instanceId = dataNodeItemsItem["InstanceId"].asString();
+		if(!dataNodeItemsItem["Region"].isNull())
+			itemObject.region = dataNodeItemsItem["Region"].asString();
+		if(!dataNodeItemsItem["InstanceSpec"].isNull())
+			itemObject.instanceSpec = dataNodeItemsItem["InstanceSpec"].asString();
+		if(!dataNodeItemsItem["Currency"].isNull())
+			itemObject.currency = dataNodeItemsItem["Currency"].asString();
+		if(!dataNodeItemsItem["CoveragePercentage"].isNull())
+			itemObject.coveragePercentage = std::stof(dataNodeItemsItem["CoveragePercentage"].asString());
+		if(!dataNodeItemsItem["DeductAmount"].isNull())
+			itemObject.deductAmount = std::stof(dataNodeItemsItem["DeductAmount"].asString());
+		if(!dataNodeItemsItem["TotalAmount"].isNull())
+			itemObject.totalAmount = std::stof(dataNodeItemsItem["TotalAmount"].asString());
+		if(!dataNodeItemsItem["PostpaidCost"].isNull())
+			itemObject.postpaidCost = std::stof(dataNodeItemsItem["PostpaidCost"].asString());
+		if(!dataNodeItemsItem["StartPeriod"].isNull())
+			itemObject.startPeriod = dataNodeItemsItem["StartPeriod"].asString();
+		if(!dataNodeItemsItem["EndPeriod"].isNull())
+			itemObject.endPeriod = dataNodeItemsItem["EndPeriod"].asString();
+		data_.items.push_back(itemObject);
+	}
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+
+}
+
+std::string DescribeSavingsPlansCoverageDetailResult::getMessage()const
+{
+	return message_;
+}
+
+DescribeSavingsPlansCoverageDetailResult::Data DescribeSavingsPlansCoverageDetailResult::getData()const
+{
+	return data_;
+}
+
+std::string DescribeSavingsPlansCoverageDetailResult::getCode()const
+{
+	return code_;
+}
+
+bool DescribeSavingsPlansCoverageDetailResult::getSuccess()const
+{
+	return success_;
+}
+

+ 73 - 0
bssopenapi/src/model/DescribeSavingsPlansCoverageTotalRequest.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/bssopenapi/model/DescribeSavingsPlansCoverageTotalRequest.h>
+
+using AlibabaCloud::BssOpenApi::Model::DescribeSavingsPlansCoverageTotalRequest;
+
+DescribeSavingsPlansCoverageTotalRequest::DescribeSavingsPlansCoverageTotalRequest() :
+	RpcServiceRequest("bssopenapi", "2017-12-14", "DescribeSavingsPlansCoverageTotal")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeSavingsPlansCoverageTotalRequest::~DescribeSavingsPlansCoverageTotalRequest()
+{}
+
+std::string DescribeSavingsPlansCoverageTotalRequest::getPeriodType()const
+{
+	return periodType_;
+}
+
+void DescribeSavingsPlansCoverageTotalRequest::setPeriodType(const std::string& periodType)
+{
+	periodType_ = periodType;
+	setParameter("PeriodType", periodType);
+}
+
+long DescribeSavingsPlansCoverageTotalRequest::getBillOwnerId()const
+{
+	return billOwnerId_;
+}
+
+void DescribeSavingsPlansCoverageTotalRequest::setBillOwnerId(long billOwnerId)
+{
+	billOwnerId_ = billOwnerId;
+	setParameter("BillOwnerId", std::to_string(billOwnerId));
+}
+
+std::string DescribeSavingsPlansCoverageTotalRequest::getStartPeriod()const
+{
+	return startPeriod_;
+}
+
+void DescribeSavingsPlansCoverageTotalRequest::setStartPeriod(const std::string& startPeriod)
+{
+	startPeriod_ = startPeriod;
+	setParameter("StartPeriod", startPeriod);
+}
+
+std::string DescribeSavingsPlansCoverageTotalRequest::getEndPeriod()const
+{
+	return endPeriod_;
+}
+
+void DescribeSavingsPlansCoverageTotalRequest::setEndPeriod(const std::string& endPeriod)
+{
+	endPeriod_ = endPeriod;
+	setParameter("EndPeriod", endPeriod);
+}
+

+ 86 - 0
bssopenapi/src/model/DescribeSavingsPlansCoverageTotalResult.cc

@@ -0,0 +1,86 @@
+/*
+ * 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/bssopenapi/model/DescribeSavingsPlansCoverageTotalResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::BssOpenApi;
+using namespace AlibabaCloud::BssOpenApi::Model;
+
+DescribeSavingsPlansCoverageTotalResult::DescribeSavingsPlansCoverageTotalResult() :
+	ServiceResult()
+{}
+
+DescribeSavingsPlansCoverageTotalResult::DescribeSavingsPlansCoverageTotalResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeSavingsPlansCoverageTotalResult::~DescribeSavingsPlansCoverageTotalResult()
+{}
+
+void DescribeSavingsPlansCoverageTotalResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	auto allPeriodCoverageNode = dataNode["PeriodCoverage"]["Item"];
+	for (auto dataNodePeriodCoverageItem : allPeriodCoverageNode)
+	{
+		Data::Item itemObject;
+		if(!dataNodePeriodCoverageItem["Period"].isNull())
+			itemObject.period = dataNodePeriodCoverageItem["Period"].asString();
+		if(!dataNodePeriodCoverageItem["Percentage"].isNull())
+			itemObject.percentage = std::stof(dataNodePeriodCoverageItem["Percentage"].asString());
+		data_.periodCoverage.push_back(itemObject);
+	}
+	auto totalCoverageNode = dataNode["TotalCoverage"];
+	if(!totalCoverageNode["CoveragePercentage"].isNull())
+		data_.totalCoverage.coveragePercentage = std::stof(totalCoverageNode["CoveragePercentage"].asString());
+	if(!totalCoverageNode["DeductAmount"].isNull())
+		data_.totalCoverage.deductAmount = std::stof(totalCoverageNode["DeductAmount"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+
+}
+
+std::string DescribeSavingsPlansCoverageTotalResult::getMessage()const
+{
+	return message_;
+}
+
+DescribeSavingsPlansCoverageTotalResult::Data DescribeSavingsPlansCoverageTotalResult::getData()const
+{
+	return data_;
+}
+
+std::string DescribeSavingsPlansCoverageTotalResult::getCode()const
+{
+	return code_;
+}
+
+bool DescribeSavingsPlansCoverageTotalResult::getSuccess()const
+{
+	return success_;
+}
+

+ 95 - 0
bssopenapi/src/model/DescribeSavingsPlansUsageDetailRequest.cc

@@ -0,0 +1,95 @@
+/*
+ * 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/bssopenapi/model/DescribeSavingsPlansUsageDetailRequest.h>
+
+using AlibabaCloud::BssOpenApi::Model::DescribeSavingsPlansUsageDetailRequest;
+
+DescribeSavingsPlansUsageDetailRequest::DescribeSavingsPlansUsageDetailRequest() :
+	RpcServiceRequest("bssopenapi", "2017-12-14", "DescribeSavingsPlansUsageDetail")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeSavingsPlansUsageDetailRequest::~DescribeSavingsPlansUsageDetailRequest()
+{}
+
+std::string DescribeSavingsPlansUsageDetailRequest::getPeriodType()const
+{
+	return periodType_;
+}
+
+void DescribeSavingsPlansUsageDetailRequest::setPeriodType(const std::string& periodType)
+{
+	periodType_ = periodType;
+	setParameter("PeriodType", periodType);
+}
+
+long DescribeSavingsPlansUsageDetailRequest::getBillOwnerId()const
+{
+	return billOwnerId_;
+}
+
+void DescribeSavingsPlansUsageDetailRequest::setBillOwnerId(long billOwnerId)
+{
+	billOwnerId_ = billOwnerId;
+	setParameter("BillOwnerId", std::to_string(billOwnerId));
+}
+
+std::string DescribeSavingsPlansUsageDetailRequest::getStartPeriod()const
+{
+	return startPeriod_;
+}
+
+void DescribeSavingsPlansUsageDetailRequest::setStartPeriod(const std::string& startPeriod)
+{
+	startPeriod_ = startPeriod;
+	setParameter("StartPeriod", startPeriod);
+}
+
+std::string DescribeSavingsPlansUsageDetailRequest::getEndPeriod()const
+{
+	return endPeriod_;
+}
+
+void DescribeSavingsPlansUsageDetailRequest::setEndPeriod(const std::string& endPeriod)
+{
+	endPeriod_ = endPeriod;
+	setParameter("EndPeriod", endPeriod);
+}
+
+std::string DescribeSavingsPlansUsageDetailRequest::getToken()const
+{
+	return token_;
+}
+
+void DescribeSavingsPlansUsageDetailRequest::setToken(const std::string& token)
+{
+	token_ = token;
+	setParameter("Token", token);
+}
+
+int DescribeSavingsPlansUsageDetailRequest::getMaxResults()const
+{
+	return maxResults_;
+}
+
+void DescribeSavingsPlansUsageDetailRequest::setMaxResults(int maxResults)
+{
+	maxResults_ = maxResults;
+	setParameter("MaxResults", std::to_string(maxResults));
+}
+

+ 107 - 0
bssopenapi/src/model/DescribeSavingsPlansUsageDetailResult.cc

@@ -0,0 +1,107 @@
+/*
+ * 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/bssopenapi/model/DescribeSavingsPlansUsageDetailResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::BssOpenApi;
+using namespace AlibabaCloud::BssOpenApi::Model;
+
+DescribeSavingsPlansUsageDetailResult::DescribeSavingsPlansUsageDetailResult() :
+	ServiceResult()
+{}
+
+DescribeSavingsPlansUsageDetailResult::DescribeSavingsPlansUsageDetailResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeSavingsPlansUsageDetailResult::~DescribeSavingsPlansUsageDetailResult()
+{}
+
+void DescribeSavingsPlansUsageDetailResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	if(!dataNode["TotalCount"].isNull())
+		data_.totalCount = std::stoi(dataNode["TotalCount"].asString());
+	if(!dataNode["NextToken"].isNull())
+		data_.nextToken = dataNode["NextToken"].asString();
+	auto allItemsNode = dataNode["Items"]["Item"];
+	for (auto dataNodeItemsItem : allItemsNode)
+	{
+		Data::Item itemObject;
+		if(!dataNodeItemsItem["UserId"].isNull())
+			itemObject.userId = std::stol(dataNodeItemsItem["UserId"].asString());
+		if(!dataNodeItemsItem["UserName"].isNull())
+			itemObject.userName = dataNodeItemsItem["UserName"].asString();
+		if(!dataNodeItemsItem["InstanceId"].isNull())
+			itemObject.instanceId = dataNodeItemsItem["InstanceId"].asString();
+		if(!dataNodeItemsItem["StartPeriod"].isNull())
+			itemObject.startPeriod = dataNodeItemsItem["StartPeriod"].asString();
+		if(!dataNodeItemsItem["EndPeriod"].isNull())
+			itemObject.endPeriod = dataNodeItemsItem["EndPeriod"].asString();
+		if(!dataNodeItemsItem["Status"].isNull())
+			itemObject.status = dataNodeItemsItem["Status"].asString();
+		if(!dataNodeItemsItem["Type"].isNull())
+			itemObject.type = dataNodeItemsItem["Type"].asString();
+		if(!dataNodeItemsItem["UsagePercentage"].isNull())
+			itemObject.usagePercentage = std::stof(dataNodeItemsItem["UsagePercentage"].asString());
+		if(!dataNodeItemsItem["PoolValue"].isNull())
+			itemObject.poolValue = std::stof(dataNodeItemsItem["PoolValue"].asString());
+		if(!dataNodeItemsItem["DeductValue"].isNull())
+			itemObject.deductValue = std::stof(dataNodeItemsItem["DeductValue"].asString());
+		if(!dataNodeItemsItem["PostpaidCost"].isNull())
+			itemObject.postpaidCost = std::stof(dataNodeItemsItem["PostpaidCost"].asString());
+		if(!dataNodeItemsItem["SavedCost"].isNull())
+			itemObject.savedCost = std::stof(dataNodeItemsItem["SavedCost"].asString());
+		if(!dataNodeItemsItem["Currency"].isNull())
+			itemObject.currency = dataNodeItemsItem["Currency"].asString();
+		data_.items.push_back(itemObject);
+	}
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+
+}
+
+std::string DescribeSavingsPlansUsageDetailResult::getMessage()const
+{
+	return message_;
+}
+
+DescribeSavingsPlansUsageDetailResult::Data DescribeSavingsPlansUsageDetailResult::getData()const
+{
+	return data_;
+}
+
+std::string DescribeSavingsPlansUsageDetailResult::getCode()const
+{
+	return code_;
+}
+
+bool DescribeSavingsPlansUsageDetailResult::getSuccess()const
+{
+	return success_;
+}
+

+ 73 - 0
bssopenapi/src/model/DescribeSavingsPlansUsageTotalRequest.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/bssopenapi/model/DescribeSavingsPlansUsageTotalRequest.h>
+
+using AlibabaCloud::BssOpenApi::Model::DescribeSavingsPlansUsageTotalRequest;
+
+DescribeSavingsPlansUsageTotalRequest::DescribeSavingsPlansUsageTotalRequest() :
+	RpcServiceRequest("bssopenapi", "2017-12-14", "DescribeSavingsPlansUsageTotal")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeSavingsPlansUsageTotalRequest::~DescribeSavingsPlansUsageTotalRequest()
+{}
+
+std::string DescribeSavingsPlansUsageTotalRequest::getPeriodType()const
+{
+	return periodType_;
+}
+
+void DescribeSavingsPlansUsageTotalRequest::setPeriodType(const std::string& periodType)
+{
+	periodType_ = periodType;
+	setParameter("PeriodType", periodType);
+}
+
+long DescribeSavingsPlansUsageTotalRequest::getBillOwnerId()const
+{
+	return billOwnerId_;
+}
+
+void DescribeSavingsPlansUsageTotalRequest::setBillOwnerId(long billOwnerId)
+{
+	billOwnerId_ = billOwnerId;
+	setParameter("BillOwnerId", std::to_string(billOwnerId));
+}
+
+std::string DescribeSavingsPlansUsageTotalRequest::getStartPeriod()const
+{
+	return startPeriod_;
+}
+
+void DescribeSavingsPlansUsageTotalRequest::setStartPeriod(const std::string& startPeriod)
+{
+	startPeriod_ = startPeriod;
+	setParameter("StartPeriod", startPeriod);
+}
+
+std::string DescribeSavingsPlansUsageTotalRequest::getEndPeriod()const
+{
+	return endPeriod_;
+}
+
+void DescribeSavingsPlansUsageTotalRequest::setEndPeriod(const std::string& endPeriod)
+{
+	endPeriod_ = endPeriod;
+	setParameter("EndPeriod", endPeriod);
+}
+

+ 90 - 0
bssopenapi/src/model/DescribeSavingsPlansUsageTotalResult.cc

@@ -0,0 +1,90 @@
+/*
+ * 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/bssopenapi/model/DescribeSavingsPlansUsageTotalResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::BssOpenApi;
+using namespace AlibabaCloud::BssOpenApi::Model;
+
+DescribeSavingsPlansUsageTotalResult::DescribeSavingsPlansUsageTotalResult() :
+	ServiceResult()
+{}
+
+DescribeSavingsPlansUsageTotalResult::DescribeSavingsPlansUsageTotalResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeSavingsPlansUsageTotalResult::~DescribeSavingsPlansUsageTotalResult()
+{}
+
+void DescribeSavingsPlansUsageTotalResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto dataNode = value["Data"];
+	auto allPeriodCoverageNode = dataNode["PeriodCoverage"]["Item"];
+	for (auto dataNodePeriodCoverageItem : allPeriodCoverageNode)
+	{
+		Data::Item itemObject;
+		if(!dataNodePeriodCoverageItem["Period"].isNull())
+			itemObject.period = dataNodePeriodCoverageItem["Period"].asString();
+		if(!dataNodePeriodCoverageItem["Percentage"].isNull())
+			itemObject.percentage = std::stof(dataNodePeriodCoverageItem["Percentage"].asString());
+		data_.periodCoverage.push_back(itemObject);
+	}
+	auto totalUsageNode = dataNode["TotalUsage"];
+	if(!totalUsageNode["UsagePercentage"].isNull())
+		data_.totalUsage.usagePercentage = std::stof(totalUsageNode["UsagePercentage"].asString());
+	if(!totalUsageNode["PostpaidCost"].isNull())
+		data_.totalUsage.postpaidCost = std::stof(totalUsageNode["PostpaidCost"].asString());
+	if(!totalUsageNode["PoolValue"].isNull())
+		data_.totalUsage.poolValue = std::stof(totalUsageNode["PoolValue"].asString());
+	if(!totalUsageNode["SavedCost"].isNull())
+		data_.totalUsage.savedCost = std::stof(totalUsageNode["SavedCost"].asString());
+	if(!value["Success"].isNull())
+		success_ = value["Success"].asString() == "true";
+	if(!value["Code"].isNull())
+		code_ = value["Code"].asString();
+	if(!value["Message"].isNull())
+		message_ = value["Message"].asString();
+
+}
+
+std::string DescribeSavingsPlansUsageTotalResult::getMessage()const
+{
+	return message_;
+}
+
+DescribeSavingsPlansUsageTotalResult::Data DescribeSavingsPlansUsageTotalResult::getData()const
+{
+	return data_;
+}
+
+std::string DescribeSavingsPlansUsageTotalResult::getCode()const
+{
+	return code_;
+}
+
+bool DescribeSavingsPlansUsageTotalResult::getSuccess()const
+{
+	return success_;
+}
+

+ 11 - 0
bssopenapi/src/model/QueryDPUtilizationDetailRequest.cc

@@ -60,6 +60,17 @@ void QueryDPUtilizationDetailRequest::setInstanceSpec(const std::string& instanc
 	setParameter("InstanceSpec", instanceSpec);
 }
 
+std::string QueryDPUtilizationDetailRequest::getProdCode()const
+{
+	return prodCode_;
+}
+
+void QueryDPUtilizationDetailRequest::setProdCode(const std::string& prodCode)
+{
+	prodCode_ = prodCode;
+	setParameter("ProdCode", prodCode);
+}
+
 std::string QueryDPUtilizationDetailRequest::getEndTime()const
 {
 	return endTime_;