Эх сурвалжийг харах

Supported API for dnsCache.

sdk-team 5 жил өмнө
parent
commit
d838ddc386
26 өөрчлөгдсөн 1766 нэмэгдсэн , 55 устгасан
  1. 4 0
      CHANGELOG
  2. 20 0
      alidns/CMakeLists.txt
  3. 40 0
      alidns/include/alibabacloud/alidns/AlidnsClient.h
  4. 84 0
      alidns/include/alibabacloud/alidns/model/AddDnsCacheDomainRequest.h
  5. 49 0
      alidns/include/alibabacloud/alidns/model/AddDnsCacheDomainResult.h
  6. 57 0
      alidns/include/alibabacloud/alidns/model/DeleteDnsCacheDomainRequest.h
  7. 49 0
      alidns/include/alibabacloud/alidns/model/DeleteDnsCacheDomainResult.h
  8. 60 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsCacheDomainsRequest.h
  9. 81 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsCacheDomainsResult.h
  10. 15 11
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmMonitorAvailableConfigResult.h
  11. 60 0
      alidns/include/alibabacloud/alidns/model/UpdateDnsCacheDomainRemarkRequest.h
  12. 49 0
      alidns/include/alibabacloud/alidns/model/UpdateDnsCacheDomainRemarkResult.h
  13. 81 0
      alidns/include/alibabacloud/alidns/model/UpdateDnsCacheDomainRequest.h
  14. 49 0
      alidns/include/alibabacloud/alidns/model/UpdateDnsCacheDomainResult.h
  15. 180 0
      alidns/src/AlidnsClient.cc
  16. 155 0
      alidns/src/model/AddDnsCacheDomainRequest.cc
  17. 44 0
      alidns/src/model/AddDnsCacheDomainResult.cc
  18. 73 0
      alidns/src/model/DeleteDnsCacheDomainRequest.cc
  19. 44 0
      alidns/src/model/DeleteDnsCacheDomainResult.cc
  20. 84 0
      alidns/src/model/DescribeDnsCacheDomainsRequest.cc
  21. 116 0
      alidns/src/model/DescribeDnsCacheDomainsResult.cc
  22. 56 44
      alidns/src/model/DescribeDnsGtmMonitorAvailableConfigResult.cc
  23. 84 0
      alidns/src/model/UpdateDnsCacheDomainRemarkRequest.cc
  24. 44 0
      alidns/src/model/UpdateDnsCacheDomainRemarkResult.cc
  25. 144 0
      alidns/src/model/UpdateDnsCacheDomainRequest.cc
  26. 44 0
      alidns/src/model/UpdateDnsCacheDomainResult.cc

+ 4 - 0
CHANGELOG

@@ -1,3 +1,7 @@
+2021-03-02 Version: patch
+- Supported API for dnsCache.
+- Supported API for GTM.
+
 2021-03-02 Version: patch
 - Support GroupCoverFace ExternalId for ListFaceGroups.
 - Support ResetItems for UpdateFaceGroup.

+ 20 - 0
alidns/CMakeLists.txt

@@ -23,6 +23,8 @@ set(alidns_public_header
 set(alidns_public_header_model 
 	include/alibabacloud/alidns/model/AddCustomLineRequest.h
 	include/alibabacloud/alidns/model/AddCustomLineResult.h
+	include/alibabacloud/alidns/model/AddDnsCacheDomainRequest.h
+	include/alibabacloud/alidns/model/AddDnsCacheDomainResult.h
 	include/alibabacloud/alidns/model/AddDnsGtmAccessStrategyRequest.h
 	include/alibabacloud/alidns/model/AddDnsGtmAccessStrategyResult.h
 	include/alibabacloud/alidns/model/AddDnsGtmAddressPoolRequest.h
@@ -55,6 +57,8 @@ set(alidns_public_header_model
 	include/alibabacloud/alidns/model/CopyGtmConfigResult.h
 	include/alibabacloud/alidns/model/DeleteCustomLinesRequest.h
 	include/alibabacloud/alidns/model/DeleteCustomLinesResult.h
+	include/alibabacloud/alidns/model/DeleteDnsCacheDomainRequest.h
+	include/alibabacloud/alidns/model/DeleteDnsCacheDomainResult.h
 	include/alibabacloud/alidns/model/DeleteDnsGtmAccessStrategyRequest.h
 	include/alibabacloud/alidns/model/DeleteDnsGtmAccessStrategyResult.h
 	include/alibabacloud/alidns/model/DeleteDnsGtmAddressPoolRequest.h
@@ -83,6 +87,8 @@ set(alidns_public_header_model
 	include/alibabacloud/alidns/model/DescribeCustomLinesResult.h
 	include/alibabacloud/alidns/model/DescribeDNSSLBSubDomainsRequest.h
 	include/alibabacloud/alidns/model/DescribeDNSSLBSubDomainsResult.h
+	include/alibabacloud/alidns/model/DescribeDnsCacheDomainsRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsCacheDomainsResult.h
 	include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategiesRequest.h
 	include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategiesResult.h
 	include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategyRequest.h
@@ -247,6 +253,10 @@ set(alidns_public_header_model
 	include/alibabacloud/alidns/model/UpdateCustomLineResult.h
 	include/alibabacloud/alidns/model/UpdateDNSSLBWeightRequest.h
 	include/alibabacloud/alidns/model/UpdateDNSSLBWeightResult.h
+	include/alibabacloud/alidns/model/UpdateDnsCacheDomainRequest.h
+	include/alibabacloud/alidns/model/UpdateDnsCacheDomainResult.h
+	include/alibabacloud/alidns/model/UpdateDnsCacheDomainRemarkRequest.h
+	include/alibabacloud/alidns/model/UpdateDnsCacheDomainRemarkResult.h
 	include/alibabacloud/alidns/model/UpdateDnsGtmAccessStrategyRequest.h
 	include/alibabacloud/alidns/model/UpdateDnsGtmAccessStrategyResult.h
 	include/alibabacloud/alidns/model/UpdateDnsGtmAddressPoolRequest.h
@@ -278,6 +288,8 @@ set(alidns_src
 	src/AlidnsClient.cc
 	src/model/AddCustomLineRequest.cc
 	src/model/AddCustomLineResult.cc
+	src/model/AddDnsCacheDomainRequest.cc
+	src/model/AddDnsCacheDomainResult.cc
 	src/model/AddDnsGtmAccessStrategyRequest.cc
 	src/model/AddDnsGtmAccessStrategyResult.cc
 	src/model/AddDnsGtmAddressPoolRequest.cc
@@ -310,6 +322,8 @@ set(alidns_src
 	src/model/CopyGtmConfigResult.cc
 	src/model/DeleteCustomLinesRequest.cc
 	src/model/DeleteCustomLinesResult.cc
+	src/model/DeleteDnsCacheDomainRequest.cc
+	src/model/DeleteDnsCacheDomainResult.cc
 	src/model/DeleteDnsGtmAccessStrategyRequest.cc
 	src/model/DeleteDnsGtmAccessStrategyResult.cc
 	src/model/DeleteDnsGtmAddressPoolRequest.cc
@@ -338,6 +352,8 @@ set(alidns_src
 	src/model/DescribeCustomLinesResult.cc
 	src/model/DescribeDNSSLBSubDomainsRequest.cc
 	src/model/DescribeDNSSLBSubDomainsResult.cc
+	src/model/DescribeDnsCacheDomainsRequest.cc
+	src/model/DescribeDnsCacheDomainsResult.cc
 	src/model/DescribeDnsGtmAccessStrategiesRequest.cc
 	src/model/DescribeDnsGtmAccessStrategiesResult.cc
 	src/model/DescribeDnsGtmAccessStrategyRequest.cc
@@ -502,6 +518,10 @@ set(alidns_src
 	src/model/UpdateCustomLineResult.cc
 	src/model/UpdateDNSSLBWeightRequest.cc
 	src/model/UpdateDNSSLBWeightResult.cc
+	src/model/UpdateDnsCacheDomainRequest.cc
+	src/model/UpdateDnsCacheDomainResult.cc
+	src/model/UpdateDnsCacheDomainRemarkRequest.cc
+	src/model/UpdateDnsCacheDomainRemarkResult.cc
 	src/model/UpdateDnsGtmAccessStrategyRequest.cc
 	src/model/UpdateDnsGtmAccessStrategyResult.cc
 	src/model/UpdateDnsGtmAddressPoolRequest.cc

+ 40 - 0
alidns/include/alibabacloud/alidns/AlidnsClient.h

@@ -24,6 +24,8 @@
 #include "AlidnsExport.h"
 #include "model/AddCustomLineRequest.h"
 #include "model/AddCustomLineResult.h"
+#include "model/AddDnsCacheDomainRequest.h"
+#include "model/AddDnsCacheDomainResult.h"
 #include "model/AddDnsGtmAccessStrategyRequest.h"
 #include "model/AddDnsGtmAccessStrategyResult.h"
 #include "model/AddDnsGtmAddressPoolRequest.h"
@@ -56,6 +58,8 @@
 #include "model/CopyGtmConfigResult.h"
 #include "model/DeleteCustomLinesRequest.h"
 #include "model/DeleteCustomLinesResult.h"
+#include "model/DeleteDnsCacheDomainRequest.h"
+#include "model/DeleteDnsCacheDomainResult.h"
 #include "model/DeleteDnsGtmAccessStrategyRequest.h"
 #include "model/DeleteDnsGtmAccessStrategyResult.h"
 #include "model/DeleteDnsGtmAddressPoolRequest.h"
@@ -84,6 +88,8 @@
 #include "model/DescribeCustomLinesResult.h"
 #include "model/DescribeDNSSLBSubDomainsRequest.h"
 #include "model/DescribeDNSSLBSubDomainsResult.h"
+#include "model/DescribeDnsCacheDomainsRequest.h"
+#include "model/DescribeDnsCacheDomainsResult.h"
 #include "model/DescribeDnsGtmAccessStrategiesRequest.h"
 #include "model/DescribeDnsGtmAccessStrategiesResult.h"
 #include "model/DescribeDnsGtmAccessStrategyRequest.h"
@@ -248,6 +254,10 @@
 #include "model/UpdateCustomLineResult.h"
 #include "model/UpdateDNSSLBWeightRequest.h"
 #include "model/UpdateDNSSLBWeightResult.h"
+#include "model/UpdateDnsCacheDomainRequest.h"
+#include "model/UpdateDnsCacheDomainResult.h"
+#include "model/UpdateDnsCacheDomainRemarkRequest.h"
+#include "model/UpdateDnsCacheDomainRemarkResult.h"
 #include "model/UpdateDnsGtmAccessStrategyRequest.h"
 #include "model/UpdateDnsGtmAccessStrategyResult.h"
 #include "model/UpdateDnsGtmAddressPoolRequest.h"
@@ -286,6 +296,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::AddCustomLineResult> AddCustomLineOutcome;
 			typedef std::future<AddCustomLineOutcome> AddCustomLineOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::AddCustomLineRequest&, const AddCustomLineOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddCustomLineAsyncHandler;
+			typedef Outcome<Error, Model::AddDnsCacheDomainResult> AddDnsCacheDomainOutcome;
+			typedef std::future<AddDnsCacheDomainOutcome> AddDnsCacheDomainOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::AddDnsCacheDomainRequest&, const AddDnsCacheDomainOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddDnsCacheDomainAsyncHandler;
 			typedef Outcome<Error, Model::AddDnsGtmAccessStrategyResult> AddDnsGtmAccessStrategyOutcome;
 			typedef std::future<AddDnsGtmAccessStrategyOutcome> AddDnsGtmAccessStrategyOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::AddDnsGtmAccessStrategyRequest&, const AddDnsGtmAccessStrategyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddDnsGtmAccessStrategyAsyncHandler;
@@ -334,6 +347,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteCustomLinesResult> DeleteCustomLinesOutcome;
 			typedef std::future<DeleteCustomLinesOutcome> DeleteCustomLinesOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::DeleteCustomLinesRequest&, const DeleteCustomLinesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteCustomLinesAsyncHandler;
+			typedef Outcome<Error, Model::DeleteDnsCacheDomainResult> DeleteDnsCacheDomainOutcome;
+			typedef std::future<DeleteDnsCacheDomainOutcome> DeleteDnsCacheDomainOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DeleteDnsCacheDomainRequest&, const DeleteDnsCacheDomainOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDnsCacheDomainAsyncHandler;
 			typedef Outcome<Error, Model::DeleteDnsGtmAccessStrategyResult> DeleteDnsGtmAccessStrategyOutcome;
 			typedef std::future<DeleteDnsGtmAccessStrategyOutcome> DeleteDnsGtmAccessStrategyOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::DeleteDnsGtmAccessStrategyRequest&, const DeleteDnsGtmAccessStrategyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDnsGtmAccessStrategyAsyncHandler;
@@ -376,6 +392,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeDNSSLBSubDomainsResult> DescribeDNSSLBSubDomainsOutcome;
 			typedef std::future<DescribeDNSSLBSubDomainsOutcome> DescribeDNSSLBSubDomainsOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::DescribeDNSSLBSubDomainsRequest&, const DescribeDNSSLBSubDomainsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDNSSLBSubDomainsAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsCacheDomainsResult> DescribeDnsCacheDomainsOutcome;
+			typedef std::future<DescribeDnsCacheDomainsOutcome> DescribeDnsCacheDomainsOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsCacheDomainsRequest&, const DescribeDnsCacheDomainsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsCacheDomainsAsyncHandler;
 			typedef Outcome<Error, Model::DescribeDnsGtmAccessStrategiesResult> DescribeDnsGtmAccessStrategiesOutcome;
 			typedef std::future<DescribeDnsGtmAccessStrategiesOutcome> DescribeDnsGtmAccessStrategiesOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmAccessStrategiesRequest&, const DescribeDnsGtmAccessStrategiesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmAccessStrategiesAsyncHandler;
@@ -622,6 +641,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::UpdateDNSSLBWeightResult> UpdateDNSSLBWeightOutcome;
 			typedef std::future<UpdateDNSSLBWeightOutcome> UpdateDNSSLBWeightOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::UpdateDNSSLBWeightRequest&, const UpdateDNSSLBWeightOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateDNSSLBWeightAsyncHandler;
+			typedef Outcome<Error, Model::UpdateDnsCacheDomainResult> UpdateDnsCacheDomainOutcome;
+			typedef std::future<UpdateDnsCacheDomainOutcome> UpdateDnsCacheDomainOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::UpdateDnsCacheDomainRequest&, const UpdateDnsCacheDomainOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateDnsCacheDomainAsyncHandler;
+			typedef Outcome<Error, Model::UpdateDnsCacheDomainRemarkResult> UpdateDnsCacheDomainRemarkOutcome;
+			typedef std::future<UpdateDnsCacheDomainRemarkOutcome> UpdateDnsCacheDomainRemarkOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::UpdateDnsCacheDomainRemarkRequest&, const UpdateDnsCacheDomainRemarkOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateDnsCacheDomainRemarkAsyncHandler;
 			typedef Outcome<Error, Model::UpdateDnsGtmAccessStrategyResult> UpdateDnsGtmAccessStrategyOutcome;
 			typedef std::future<UpdateDnsGtmAccessStrategyOutcome> UpdateDnsGtmAccessStrategyOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::UpdateDnsGtmAccessStrategyRequest&, const UpdateDnsGtmAccessStrategyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateDnsGtmAccessStrategyAsyncHandler;
@@ -669,6 +694,9 @@ namespace AlibabaCloud
 			AddCustomLineOutcome addCustomLine(const Model::AddCustomLineRequest &request)const;
 			void addCustomLineAsync(const Model::AddCustomLineRequest& request, const AddCustomLineAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AddCustomLineOutcomeCallable addCustomLineCallable(const Model::AddCustomLineRequest& request) const;
+			AddDnsCacheDomainOutcome addDnsCacheDomain(const Model::AddDnsCacheDomainRequest &request)const;
+			void addDnsCacheDomainAsync(const Model::AddDnsCacheDomainRequest& request, const AddDnsCacheDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			AddDnsCacheDomainOutcomeCallable addDnsCacheDomainCallable(const Model::AddDnsCacheDomainRequest& request) const;
 			AddDnsGtmAccessStrategyOutcome addDnsGtmAccessStrategy(const Model::AddDnsGtmAccessStrategyRequest &request)const;
 			void addDnsGtmAccessStrategyAsync(const Model::AddDnsGtmAccessStrategyRequest& request, const AddDnsGtmAccessStrategyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AddDnsGtmAccessStrategyOutcomeCallable addDnsGtmAccessStrategyCallable(const Model::AddDnsGtmAccessStrategyRequest& request) const;
@@ -717,6 +745,9 @@ namespace AlibabaCloud
 			DeleteCustomLinesOutcome deleteCustomLines(const Model::DeleteCustomLinesRequest &request)const;
 			void deleteCustomLinesAsync(const Model::DeleteCustomLinesRequest& request, const DeleteCustomLinesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteCustomLinesOutcomeCallable deleteCustomLinesCallable(const Model::DeleteCustomLinesRequest& request) const;
+			DeleteDnsCacheDomainOutcome deleteDnsCacheDomain(const Model::DeleteDnsCacheDomainRequest &request)const;
+			void deleteDnsCacheDomainAsync(const Model::DeleteDnsCacheDomainRequest& request, const DeleteDnsCacheDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteDnsCacheDomainOutcomeCallable deleteDnsCacheDomainCallable(const Model::DeleteDnsCacheDomainRequest& request) const;
 			DeleteDnsGtmAccessStrategyOutcome deleteDnsGtmAccessStrategy(const Model::DeleteDnsGtmAccessStrategyRequest &request)const;
 			void deleteDnsGtmAccessStrategyAsync(const Model::DeleteDnsGtmAccessStrategyRequest& request, const DeleteDnsGtmAccessStrategyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteDnsGtmAccessStrategyOutcomeCallable deleteDnsGtmAccessStrategyCallable(const Model::DeleteDnsGtmAccessStrategyRequest& request) const;
@@ -759,6 +790,9 @@ namespace AlibabaCloud
 			DescribeDNSSLBSubDomainsOutcome describeDNSSLBSubDomains(const Model::DescribeDNSSLBSubDomainsRequest &request)const;
 			void describeDNSSLBSubDomainsAsync(const Model::DescribeDNSSLBSubDomainsRequest& request, const DescribeDNSSLBSubDomainsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeDNSSLBSubDomainsOutcomeCallable describeDNSSLBSubDomainsCallable(const Model::DescribeDNSSLBSubDomainsRequest& request) const;
+			DescribeDnsCacheDomainsOutcome describeDnsCacheDomains(const Model::DescribeDnsCacheDomainsRequest &request)const;
+			void describeDnsCacheDomainsAsync(const Model::DescribeDnsCacheDomainsRequest& request, const DescribeDnsCacheDomainsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsCacheDomainsOutcomeCallable describeDnsCacheDomainsCallable(const Model::DescribeDnsCacheDomainsRequest& request) const;
 			DescribeDnsGtmAccessStrategiesOutcome describeDnsGtmAccessStrategies(const Model::DescribeDnsGtmAccessStrategiesRequest &request)const;
 			void describeDnsGtmAccessStrategiesAsync(const Model::DescribeDnsGtmAccessStrategiesRequest& request, const DescribeDnsGtmAccessStrategiesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeDnsGtmAccessStrategiesOutcomeCallable describeDnsGtmAccessStrategiesCallable(const Model::DescribeDnsGtmAccessStrategiesRequest& request) const;
@@ -1005,6 +1039,12 @@ namespace AlibabaCloud
 			UpdateDNSSLBWeightOutcome updateDNSSLBWeight(const Model::UpdateDNSSLBWeightRequest &request)const;
 			void updateDNSSLBWeightAsync(const Model::UpdateDNSSLBWeightRequest& request, const UpdateDNSSLBWeightAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateDNSSLBWeightOutcomeCallable updateDNSSLBWeightCallable(const Model::UpdateDNSSLBWeightRequest& request) const;
+			UpdateDnsCacheDomainOutcome updateDnsCacheDomain(const Model::UpdateDnsCacheDomainRequest &request)const;
+			void updateDnsCacheDomainAsync(const Model::UpdateDnsCacheDomainRequest& request, const UpdateDnsCacheDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateDnsCacheDomainOutcomeCallable updateDnsCacheDomainCallable(const Model::UpdateDnsCacheDomainRequest& request) const;
+			UpdateDnsCacheDomainRemarkOutcome updateDnsCacheDomainRemark(const Model::UpdateDnsCacheDomainRemarkRequest &request)const;
+			void updateDnsCacheDomainRemarkAsync(const Model::UpdateDnsCacheDomainRemarkRequest& request, const UpdateDnsCacheDomainRemarkAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateDnsCacheDomainRemarkOutcomeCallable updateDnsCacheDomainRemarkCallable(const Model::UpdateDnsCacheDomainRemarkRequest& request) const;
 			UpdateDnsGtmAccessStrategyOutcome updateDnsGtmAccessStrategy(const Model::UpdateDnsGtmAccessStrategyRequest &request)const;
 			void updateDnsGtmAccessStrategyAsync(const Model::UpdateDnsGtmAccessStrategyRequest& request, const UpdateDnsGtmAccessStrategyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateDnsGtmAccessStrategyOutcomeCallable updateDnsGtmAccessStrategyCallable(const Model::UpdateDnsGtmAccessStrategyRequest& request) const;

+ 84 - 0
alidns/include/alibabacloud/alidns/model/AddDnsCacheDomainRequest.h

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_ADDDNSCACHEDOMAINREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_ADDDNSCACHEDOMAINREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT AddDnsCacheDomainRequest : public RpcServiceRequest
+			{
+			public:
+				struct SourceDnsServer
+				{
+					std::string port;
+					std::string host;
+				};
+
+			public:
+				AddDnsCacheDomainRequest();
+				~AddDnsCacheDomainRequest();
+
+				std::string getRemark()const;
+				void setRemark(const std::string& remark);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getSourceProtocol()const;
+				void setSourceProtocol(const std::string& sourceProtocol);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getDomainName()const;
+				void setDomainName(const std::string& domainName);
+				int getCacheTtlMax()const;
+				void setCacheTtlMax(int cacheTtlMax);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceEdns()const;
+				void setSourceEdns(const std::string& sourceEdns);
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				int getCacheTtlMin()const;
+				void setCacheTtlMin(int cacheTtlMin);
+				std::vector<SourceDnsServer> getSourceDnsServer()const;
+				void setSourceDnsServer(const std::vector<SourceDnsServer>& sourceDnsServer);
+
+            private:
+				std::string remark_;
+				std::string accessKeyId_;
+				std::string sourceProtocol_;
+				std::string lang_;
+				std::string domainName_;
+				int cacheTtlMax_;
+				std::string instanceId_;
+				std::string sourceEdns_;
+				std::string userClientIp_;
+				int cacheTtlMin_;
+				std::vector<SourceDnsServer> sourceDnsServer_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_ADDDNSCACHEDOMAINREQUEST_H_

+ 49 - 0
alidns/include/alibabacloud/alidns/model/AddDnsCacheDomainResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_ADDDNSCACHEDOMAINRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_ADDDNSCACHEDOMAINRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT AddDnsCacheDomainResult : public ServiceResult
+			{
+			public:
+
+
+				AddDnsCacheDomainResult();
+				explicit AddDnsCacheDomainResult(const std::string &payload);
+				~AddDnsCacheDomainResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_ADDDNSCACHEDOMAINRESULT_H_

+ 57 - 0
alidns/include/alibabacloud/alidns/model/DeleteDnsCacheDomainRequest.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_ALIDNS_MODEL_DELETEDNSCACHEDOMAINREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DELETEDNSCACHEDOMAINREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DeleteDnsCacheDomainRequest : public RpcServiceRequest
+			{
+
+			public:
+				DeleteDnsCacheDomainRequest();
+				~DeleteDnsCacheDomainRequest();
+
+				std::string getDomainName()const;
+				void setDomainName(const std::string& domainName);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string domainName_;
+				std::string accessKeyId_;
+				std::string userClientIp_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DELETEDNSCACHEDOMAINREQUEST_H_

+ 49 - 0
alidns/include/alibabacloud/alidns/model/DeleteDnsCacheDomainResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_DELETEDNSCACHEDOMAINRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DELETEDNSCACHEDOMAINRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DeleteDnsCacheDomainResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteDnsCacheDomainResult();
+				explicit DeleteDnsCacheDomainResult(const std::string &payload);
+				~DeleteDnsCacheDomainResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DELETEDNSCACHEDOMAINRESULT_H_

+ 60 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsCacheDomainsRequest.h

@@ -0,0 +1,60 @@
+/*
+ * 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_ALIDNS_MODEL_DESCRIBEDNSCACHEDOMAINSREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSCACHEDOMAINSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsCacheDomainsRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeDnsCacheDomainsRequest();
+				~DescribeDnsCacheDomainsRequest();
+
+				long getPageNumber()const;
+				void setPageNumber(long pageNumber);
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				long getPageSize()const;
+				void setPageSize(long pageSize);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getKeyword()const;
+				void setKeyword(const std::string& keyword);
+
+            private:
+				long pageNumber_;
+				std::string userClientIp_;
+				long pageSize_;
+				std::string lang_;
+				std::string keyword_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSCACHEDOMAINSREQUEST_H_

+ 81 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsCacheDomainsResult.h

@@ -0,0 +1,81 @@
+/*
+ * 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_ALIDNS_MODEL_DESCRIBEDNSCACHEDOMAINSRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSCACHEDOMAINSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsCacheDomainsResult : public ServiceResult
+			{
+			public:
+				struct Domain
+				{
+					struct SourceDnsServer
+					{
+						std::string port;
+						std::string host;
+					};
+					long expireTimestamp;
+					std::string domainName;
+					std::string instanceId;
+					std::string createTime;
+					int cacheTtlMin;
+					std::string remark;
+					std::string versionCode;
+					std::string domainId;
+					std::string sourceEdns;
+					std::string updateTime;
+					std::string sourceProtocol;
+					long updateTimestamp;
+					int cacheTtlMax;
+					std::vector<Domain::SourceDnsServer> sourceDnsServers;
+					std::string expireTime;
+					long createTimestamp;
+				};
+
+
+				DescribeDnsCacheDomainsResult();
+				explicit DescribeDnsCacheDomainsResult(const std::string &payload);
+				~DescribeDnsCacheDomainsResult();
+				std::vector<Domain> getDomains()const;
+				long getTotalCount()const;
+				long getPageSize()const;
+				long getPageNumber()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Domain> domains_;
+				long totalCount_;
+				long pageSize_;
+				long pageNumber_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSCACHEDOMAINSRESULT_H_

+ 15 - 11
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmMonitorAvailableConfigResult.h

@@ -34,43 +34,47 @@ namespace AlibabaCloud
 			public:
 				struct Ipv4IspCityNode
 				{
-					std::string cityCode;
 					std::string groupName;
+					std::string cityCode;
 					std::string ispName;
 					std::string groupType;
 					std::string cityName;
-					std::string ispCode;
 					bool defaultSelected;
+					std::string ispCode;
+					std::vector<std::string> ips;
 				};
-				struct Ipv6IspCityNode
+				struct DomainIpv4IspCityNode
 				{
-					std::string cityCode;
 					std::string groupName;
+					std::string cityCode;
 					std::string ispName;
 					std::string groupType;
+					std::vector<std::string> ips1;
 					std::string cityName;
-					std::string ispCode;
 					bool defaultSelected;
+					std::string ispCode;
 				};
-				struct DomainIpv4IspCityNode
+				struct DomainIpv6IspCityNode
 				{
-					std::string cityCode;
 					std::string groupName;
+					std::string cityCode;
 					std::string ispName;
 					std::string groupType;
+					std::vector<std::string> ips2;
 					std::string cityName;
-					std::string ispCode;
 					bool defaultSelected;
+					std::string ispCode;
 				};
-				struct DomainIpv6IspCityNode
+				struct Ipv6IspCityNode
 				{
-					std::string cityCode;
 					std::string groupName;
+					std::string cityCode;
 					std::string ispName;
 					std::string groupType;
+					std::vector<std::string> ips3;
 					std::string cityName;
-					std::string ispCode;
 					bool defaultSelected;
+					std::string ispCode;
 				};
 
 

+ 60 - 0
alidns/include/alibabacloud/alidns/model/UpdateDnsCacheDomainRemarkRequest.h

@@ -0,0 +1,60 @@
+/*
+ * 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_ALIDNS_MODEL_UPDATEDNSCACHEDOMAINREMARKREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSCACHEDOMAINREMARKREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT UpdateDnsCacheDomainRemarkRequest : public RpcServiceRequest
+			{
+
+			public:
+				UpdateDnsCacheDomainRemarkRequest();
+				~UpdateDnsCacheDomainRemarkRequest();
+
+				std::string getDomainName()const;
+				void setDomainName(const std::string& domainName);
+				std::string getRemark()const;
+				void setRemark(const std::string& remark);
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string domainName_;
+				std::string remark_;
+				std::string accessKeyId_;
+				std::string userClientIp_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSCACHEDOMAINREMARKREQUEST_H_

+ 49 - 0
alidns/include/alibabacloud/alidns/model/UpdateDnsCacheDomainRemarkResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSCACHEDOMAINREMARKRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSCACHEDOMAINREMARKRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT UpdateDnsCacheDomainRemarkResult : public ServiceResult
+			{
+			public:
+
+
+				UpdateDnsCacheDomainRemarkResult();
+				explicit UpdateDnsCacheDomainRemarkResult(const std::string &payload);
+				~UpdateDnsCacheDomainRemarkResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSCACHEDOMAINREMARKRESULT_H_

+ 81 - 0
alidns/include/alibabacloud/alidns/model/UpdateDnsCacheDomainRequest.h

@@ -0,0 +1,81 @@
+/*
+ * 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_ALIDNS_MODEL_UPDATEDNSCACHEDOMAINREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSCACHEDOMAINREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT UpdateDnsCacheDomainRequest : public RpcServiceRequest
+			{
+			public:
+				struct SourceDnsServer
+				{
+					std::string port;
+					std::string host;
+				};
+
+			public:
+				UpdateDnsCacheDomainRequest();
+				~UpdateDnsCacheDomainRequest();
+
+				std::string getAccessKeyId()const;
+				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getSourceProtocol()const;
+				void setSourceProtocol(const std::string& sourceProtocol);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getDomainName()const;
+				void setDomainName(const std::string& domainName);
+				int getCacheTtlMax()const;
+				void setCacheTtlMax(int cacheTtlMax);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceEdns()const;
+				void setSourceEdns(const std::string& sourceEdns);
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				int getCacheTtlMin()const;
+				void setCacheTtlMin(int cacheTtlMin);
+				std::vector<SourceDnsServer> getSourceDnsServer()const;
+				void setSourceDnsServer(const std::vector<SourceDnsServer>& sourceDnsServer);
+
+            private:
+				std::string accessKeyId_;
+				std::string sourceProtocol_;
+				std::string lang_;
+				std::string domainName_;
+				int cacheTtlMax_;
+				std::string instanceId_;
+				std::string sourceEdns_;
+				std::string userClientIp_;
+				int cacheTtlMin_;
+				std::vector<SourceDnsServer> sourceDnsServer_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSCACHEDOMAINREQUEST_H_

+ 49 - 0
alidns/include/alibabacloud/alidns/model/UpdateDnsCacheDomainResult.h

@@ -0,0 +1,49 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSCACHEDOMAINRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSCACHEDOMAINRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT UpdateDnsCacheDomainResult : public ServiceResult
+			{
+			public:
+
+
+				UpdateDnsCacheDomainResult();
+				explicit UpdateDnsCacheDomainResult(const std::string &payload);
+				~UpdateDnsCacheDomainResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSCACHEDOMAINRESULT_H_

+ 180 - 0
alidns/src/AlidnsClient.cc

@@ -87,6 +87,42 @@ AlidnsClient::AddCustomLineOutcomeCallable AlidnsClient::addCustomLineCallable(c
 	return task->get_future();
 }
 
+AlidnsClient::AddDnsCacheDomainOutcome AlidnsClient::addDnsCacheDomain(const AddDnsCacheDomainRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return AddDnsCacheDomainOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return AddDnsCacheDomainOutcome(AddDnsCacheDomainResult(outcome.result()));
+	else
+		return AddDnsCacheDomainOutcome(outcome.error());
+}
+
+void AlidnsClient::addDnsCacheDomainAsync(const AddDnsCacheDomainRequest& request, const AddDnsCacheDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, addDnsCacheDomain(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+AlidnsClient::AddDnsCacheDomainOutcomeCallable AlidnsClient::addDnsCacheDomainCallable(const AddDnsCacheDomainRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<AddDnsCacheDomainOutcome()>>(
+			[this, request]()
+			{
+			return this->addDnsCacheDomain(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 AlidnsClient::AddDnsGtmAccessStrategyOutcome AlidnsClient::addDnsGtmAccessStrategy(const AddDnsGtmAccessStrategyRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -663,6 +699,42 @@ AlidnsClient::DeleteCustomLinesOutcomeCallable AlidnsClient::deleteCustomLinesCa
 	return task->get_future();
 }
 
+AlidnsClient::DeleteDnsCacheDomainOutcome AlidnsClient::deleteDnsCacheDomain(const DeleteDnsCacheDomainRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteDnsCacheDomainOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteDnsCacheDomainOutcome(DeleteDnsCacheDomainResult(outcome.result()));
+	else
+		return DeleteDnsCacheDomainOutcome(outcome.error());
+}
+
+void AlidnsClient::deleteDnsCacheDomainAsync(const DeleteDnsCacheDomainRequest& request, const DeleteDnsCacheDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteDnsCacheDomain(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+AlidnsClient::DeleteDnsCacheDomainOutcomeCallable AlidnsClient::deleteDnsCacheDomainCallable(const DeleteDnsCacheDomainRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteDnsCacheDomainOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteDnsCacheDomain(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 AlidnsClient::DeleteDnsGtmAccessStrategyOutcome AlidnsClient::deleteDnsGtmAccessStrategy(const DeleteDnsGtmAccessStrategyRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1167,6 +1239,42 @@ AlidnsClient::DescribeDNSSLBSubDomainsOutcomeCallable AlidnsClient::describeDNSS
 	return task->get_future();
 }
 
+AlidnsClient::DescribeDnsCacheDomainsOutcome AlidnsClient::describeDnsCacheDomains(const DescribeDnsCacheDomainsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeDnsCacheDomainsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeDnsCacheDomainsOutcome(DescribeDnsCacheDomainsResult(outcome.result()));
+	else
+		return DescribeDnsCacheDomainsOutcome(outcome.error());
+}
+
+void AlidnsClient::describeDnsCacheDomainsAsync(const DescribeDnsCacheDomainsRequest& request, const DescribeDnsCacheDomainsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeDnsCacheDomains(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+AlidnsClient::DescribeDnsCacheDomainsOutcomeCallable AlidnsClient::describeDnsCacheDomainsCallable(const DescribeDnsCacheDomainsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeDnsCacheDomainsOutcome()>>(
+			[this, request]()
+			{
+			return this->describeDnsCacheDomains(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 AlidnsClient::DescribeDnsGtmAccessStrategiesOutcome AlidnsClient::describeDnsGtmAccessStrategies(const DescribeDnsGtmAccessStrategiesRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -4119,6 +4227,78 @@ AlidnsClient::UpdateDNSSLBWeightOutcomeCallable AlidnsClient::updateDNSSLBWeight
 	return task->get_future();
 }
 
+AlidnsClient::UpdateDnsCacheDomainOutcome AlidnsClient::updateDnsCacheDomain(const UpdateDnsCacheDomainRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateDnsCacheDomainOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateDnsCacheDomainOutcome(UpdateDnsCacheDomainResult(outcome.result()));
+	else
+		return UpdateDnsCacheDomainOutcome(outcome.error());
+}
+
+void AlidnsClient::updateDnsCacheDomainAsync(const UpdateDnsCacheDomainRequest& request, const UpdateDnsCacheDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateDnsCacheDomain(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+AlidnsClient::UpdateDnsCacheDomainOutcomeCallable AlidnsClient::updateDnsCacheDomainCallable(const UpdateDnsCacheDomainRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateDnsCacheDomainOutcome()>>(
+			[this, request]()
+			{
+			return this->updateDnsCacheDomain(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+AlidnsClient::UpdateDnsCacheDomainRemarkOutcome AlidnsClient::updateDnsCacheDomainRemark(const UpdateDnsCacheDomainRemarkRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateDnsCacheDomainRemarkOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateDnsCacheDomainRemarkOutcome(UpdateDnsCacheDomainRemarkResult(outcome.result()));
+	else
+		return UpdateDnsCacheDomainRemarkOutcome(outcome.error());
+}
+
+void AlidnsClient::updateDnsCacheDomainRemarkAsync(const UpdateDnsCacheDomainRemarkRequest& request, const UpdateDnsCacheDomainRemarkAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateDnsCacheDomainRemark(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+AlidnsClient::UpdateDnsCacheDomainRemarkOutcomeCallable AlidnsClient::updateDnsCacheDomainRemarkCallable(const UpdateDnsCacheDomainRemarkRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateDnsCacheDomainRemarkOutcome()>>(
+			[this, request]()
+			{
+			return this->updateDnsCacheDomainRemark(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 AlidnsClient::UpdateDnsGtmAccessStrategyOutcome AlidnsClient::updateDnsGtmAccessStrategy(const UpdateDnsGtmAccessStrategyRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 155 - 0
alidns/src/model/AddDnsCacheDomainRequest.cc

@@ -0,0 +1,155 @@
+/*
+ * 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/alidns/model/AddDnsCacheDomainRequest.h>
+
+using AlibabaCloud::Alidns::Model::AddDnsCacheDomainRequest;
+
+AddDnsCacheDomainRequest::AddDnsCacheDomainRequest() :
+	RpcServiceRequest("alidns", "2015-01-09", "AddDnsCacheDomain")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+AddDnsCacheDomainRequest::~AddDnsCacheDomainRequest()
+{}
+
+std::string AddDnsCacheDomainRequest::getRemark()const
+{
+	return remark_;
+}
+
+void AddDnsCacheDomainRequest::setRemark(const std::string& remark)
+{
+	remark_ = remark;
+	setParameter("Remark", remark);
+}
+
+std::string AddDnsCacheDomainRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void AddDnsCacheDomainRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string AddDnsCacheDomainRequest::getSourceProtocol()const
+{
+	return sourceProtocol_;
+}
+
+void AddDnsCacheDomainRequest::setSourceProtocol(const std::string& sourceProtocol)
+{
+	sourceProtocol_ = sourceProtocol;
+	setParameter("SourceProtocol", sourceProtocol);
+}
+
+std::string AddDnsCacheDomainRequest::getLang()const
+{
+	return lang_;
+}
+
+void AddDnsCacheDomainRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+
+std::string AddDnsCacheDomainRequest::getDomainName()const
+{
+	return domainName_;
+}
+
+void AddDnsCacheDomainRequest::setDomainName(const std::string& domainName)
+{
+	domainName_ = domainName;
+	setParameter("DomainName", domainName);
+}
+
+int AddDnsCacheDomainRequest::getCacheTtlMax()const
+{
+	return cacheTtlMax_;
+}
+
+void AddDnsCacheDomainRequest::setCacheTtlMax(int cacheTtlMax)
+{
+	cacheTtlMax_ = cacheTtlMax;
+	setParameter("CacheTtlMax", std::to_string(cacheTtlMax));
+}
+
+std::string AddDnsCacheDomainRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void AddDnsCacheDomainRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string AddDnsCacheDomainRequest::getSourceEdns()const
+{
+	return sourceEdns_;
+}
+
+void AddDnsCacheDomainRequest::setSourceEdns(const std::string& sourceEdns)
+{
+	sourceEdns_ = sourceEdns;
+	setParameter("SourceEdns", sourceEdns);
+}
+
+std::string AddDnsCacheDomainRequest::getUserClientIp()const
+{
+	return userClientIp_;
+}
+
+void AddDnsCacheDomainRequest::setUserClientIp(const std::string& userClientIp)
+{
+	userClientIp_ = userClientIp;
+	setParameter("UserClientIp", userClientIp);
+}
+
+int AddDnsCacheDomainRequest::getCacheTtlMin()const
+{
+	return cacheTtlMin_;
+}
+
+void AddDnsCacheDomainRequest::setCacheTtlMin(int cacheTtlMin)
+{
+	cacheTtlMin_ = cacheTtlMin;
+	setParameter("CacheTtlMin", std::to_string(cacheTtlMin));
+}
+
+std::vector<AddDnsCacheDomainRequest::SourceDnsServer> AddDnsCacheDomainRequest::getSourceDnsServer()const
+{
+	return sourceDnsServer_;
+}
+
+void AddDnsCacheDomainRequest::setSourceDnsServer(const std::vector<SourceDnsServer>& sourceDnsServer)
+{
+	sourceDnsServer_ = sourceDnsServer;
+	for(int dep1 = 0; dep1!= sourceDnsServer.size(); dep1++) {
+		auto sourceDnsServerObj = sourceDnsServer.at(dep1);
+		std::string sourceDnsServerObjStr = "SourceDnsServer." + std::to_string(dep1 + 1);
+		setParameter(sourceDnsServerObjStr + ".Port", sourceDnsServerObj.port);
+		setParameter(sourceDnsServerObjStr + ".Host", sourceDnsServerObj.host);
+	}
+}
+

+ 44 - 0
alidns/src/model/AddDnsCacheDomainResult.cc

@@ -0,0 +1,44 @@
+/*
+ * 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/alidns/model/AddDnsCacheDomainResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+AddDnsCacheDomainResult::AddDnsCacheDomainResult() :
+	ServiceResult()
+{}
+
+AddDnsCacheDomainResult::AddDnsCacheDomainResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+AddDnsCacheDomainResult::~AddDnsCacheDomainResult()
+{}
+
+void AddDnsCacheDomainResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 73 - 0
alidns/src/model/DeleteDnsCacheDomainRequest.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/alidns/model/DeleteDnsCacheDomainRequest.h>
+
+using AlibabaCloud::Alidns::Model::DeleteDnsCacheDomainRequest;
+
+DeleteDnsCacheDomainRequest::DeleteDnsCacheDomainRequest() :
+	RpcServiceRequest("alidns", "2015-01-09", "DeleteDnsCacheDomain")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DeleteDnsCacheDomainRequest::~DeleteDnsCacheDomainRequest()
+{}
+
+std::string DeleteDnsCacheDomainRequest::getDomainName()const
+{
+	return domainName_;
+}
+
+void DeleteDnsCacheDomainRequest::setDomainName(const std::string& domainName)
+{
+	domainName_ = domainName;
+	setParameter("DomainName", domainName);
+}
+
+std::string DeleteDnsCacheDomainRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void DeleteDnsCacheDomainRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string DeleteDnsCacheDomainRequest::getUserClientIp()const
+{
+	return userClientIp_;
+}
+
+void DeleteDnsCacheDomainRequest::setUserClientIp(const std::string& userClientIp)
+{
+	userClientIp_ = userClientIp;
+	setParameter("UserClientIp", userClientIp);
+}
+
+std::string DeleteDnsCacheDomainRequest::getLang()const
+{
+	return lang_;
+}
+
+void DeleteDnsCacheDomainRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+

+ 44 - 0
alidns/src/model/DeleteDnsCacheDomainResult.cc

@@ -0,0 +1,44 @@
+/*
+ * 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/alidns/model/DeleteDnsCacheDomainResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+DeleteDnsCacheDomainResult::DeleteDnsCacheDomainResult() :
+	ServiceResult()
+{}
+
+DeleteDnsCacheDomainResult::DeleteDnsCacheDomainResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteDnsCacheDomainResult::~DeleteDnsCacheDomainResult()
+{}
+
+void DeleteDnsCacheDomainResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 84 - 0
alidns/src/model/DescribeDnsCacheDomainsRequest.cc

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/alidns/model/DescribeDnsCacheDomainsRequest.h>
+
+using AlibabaCloud::Alidns::Model::DescribeDnsCacheDomainsRequest;
+
+DescribeDnsCacheDomainsRequest::DescribeDnsCacheDomainsRequest() :
+	RpcServiceRequest("alidns", "2015-01-09", "DescribeDnsCacheDomains")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeDnsCacheDomainsRequest::~DescribeDnsCacheDomainsRequest()
+{}
+
+long DescribeDnsCacheDomainsRequest::getPageNumber()const
+{
+	return pageNumber_;
+}
+
+void DescribeDnsCacheDomainsRequest::setPageNumber(long pageNumber)
+{
+	pageNumber_ = pageNumber;
+	setParameter("PageNumber", std::to_string(pageNumber));
+}
+
+std::string DescribeDnsCacheDomainsRequest::getUserClientIp()const
+{
+	return userClientIp_;
+}
+
+void DescribeDnsCacheDomainsRequest::setUserClientIp(const std::string& userClientIp)
+{
+	userClientIp_ = userClientIp;
+	setParameter("UserClientIp", userClientIp);
+}
+
+long DescribeDnsCacheDomainsRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void DescribeDnsCacheDomainsRequest::setPageSize(long pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+std::string DescribeDnsCacheDomainsRequest::getLang()const
+{
+	return lang_;
+}
+
+void DescribeDnsCacheDomainsRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+
+std::string DescribeDnsCacheDomainsRequest::getKeyword()const
+{
+	return keyword_;
+}
+
+void DescribeDnsCacheDomainsRequest::setKeyword(const std::string& keyword)
+{
+	keyword_ = keyword;
+	setParameter("Keyword", keyword);
+}
+

+ 116 - 0
alidns/src/model/DescribeDnsCacheDomainsResult.cc

@@ -0,0 +1,116 @@
+/*
+ * 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/alidns/model/DescribeDnsCacheDomainsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+DescribeDnsCacheDomainsResult::DescribeDnsCacheDomainsResult() :
+	ServiceResult()
+{}
+
+DescribeDnsCacheDomainsResult::DescribeDnsCacheDomainsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDnsCacheDomainsResult::~DescribeDnsCacheDomainsResult()
+{}
+
+void DescribeDnsCacheDomainsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allDomainsNode = value["Domains"]["Domain"];
+	for (auto valueDomainsDomain : allDomainsNode)
+	{
+		Domain domainsObject;
+		if(!valueDomainsDomain["DomainId"].isNull())
+			domainsObject.domainId = valueDomainsDomain["DomainId"].asString();
+		if(!valueDomainsDomain["DomainName"].isNull())
+			domainsObject.domainName = valueDomainsDomain["DomainName"].asString();
+		if(!valueDomainsDomain["InstanceId"].isNull())
+			domainsObject.instanceId = valueDomainsDomain["InstanceId"].asString();
+		if(!valueDomainsDomain["VersionCode"].isNull())
+			domainsObject.versionCode = valueDomainsDomain["VersionCode"].asString();
+		if(!valueDomainsDomain["Remark"].isNull())
+			domainsObject.remark = valueDomainsDomain["Remark"].asString();
+		if(!valueDomainsDomain["UpdateTime"].isNull())
+			domainsObject.updateTime = valueDomainsDomain["UpdateTime"].asString();
+		if(!valueDomainsDomain["UpdateTimestamp"].isNull())
+			domainsObject.updateTimestamp = std::stol(valueDomainsDomain["UpdateTimestamp"].asString());
+		if(!valueDomainsDomain["CreateTime"].isNull())
+			domainsObject.createTime = valueDomainsDomain["CreateTime"].asString();
+		if(!valueDomainsDomain["CreateTimestamp"].isNull())
+			domainsObject.createTimestamp = std::stol(valueDomainsDomain["CreateTimestamp"].asString());
+		if(!valueDomainsDomain["CacheTtlMin"].isNull())
+			domainsObject.cacheTtlMin = std::stoi(valueDomainsDomain["CacheTtlMin"].asString());
+		if(!valueDomainsDomain["CacheTtlMax"].isNull())
+			domainsObject.cacheTtlMax = std::stoi(valueDomainsDomain["CacheTtlMax"].asString());
+		if(!valueDomainsDomain["SourceProtocol"].isNull())
+			domainsObject.sourceProtocol = valueDomainsDomain["SourceProtocol"].asString();
+		if(!valueDomainsDomain["SourceEdns"].isNull())
+			domainsObject.sourceEdns = valueDomainsDomain["SourceEdns"].asString();
+		if(!valueDomainsDomain["ExpireTime"].isNull())
+			domainsObject.expireTime = valueDomainsDomain["ExpireTime"].asString();
+		if(!valueDomainsDomain["ExpireTimestamp"].isNull())
+			domainsObject.expireTimestamp = std::stol(valueDomainsDomain["ExpireTimestamp"].asString());
+		auto allSourceDnsServersNode = valueDomainsDomain["SourceDnsServers"]["SourceDnsServer"];
+		for (auto valueDomainsDomainSourceDnsServersSourceDnsServer : allSourceDnsServersNode)
+		{
+			Domain::SourceDnsServer sourceDnsServersObject;
+			if(!valueDomainsDomainSourceDnsServersSourceDnsServer["Host"].isNull())
+				sourceDnsServersObject.host = valueDomainsDomainSourceDnsServersSourceDnsServer["Host"].asString();
+			if(!valueDomainsDomainSourceDnsServersSourceDnsServer["Port"].isNull())
+				sourceDnsServersObject.port = valueDomainsDomainSourceDnsServersSourceDnsServer["Port"].asString();
+			domainsObject.sourceDnsServers.push_back(sourceDnsServersObject);
+		}
+		domains_.push_back(domainsObject);
+	}
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stol(value["TotalCount"].asString());
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stol(value["PageNumber"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stol(value["PageSize"].asString());
+
+}
+
+std::vector<DescribeDnsCacheDomainsResult::Domain> DescribeDnsCacheDomainsResult::getDomains()const
+{
+	return domains_;
+}
+
+long DescribeDnsCacheDomainsResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+long DescribeDnsCacheDomainsResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+long DescribeDnsCacheDomainsResult::getPageNumber()const
+{
+	return pageNumber_;
+}
+

+ 56 - 44
alidns/src/model/DescribeDnsGtmMonitorAvailableConfigResult.cc

@@ -43,82 +43,94 @@ void DescribeDnsGtmMonitorAvailableConfigResult::parse(const std::string &payloa
 	for (auto valueIpv4IspCityNodesIpv4IspCityNode : allIpv4IspCityNodesNode)
 	{
 		Ipv4IspCityNode ipv4IspCityNodesObject;
+		if(!valueIpv4IspCityNodesIpv4IspCityNode["GroupName"].isNull())
+			ipv4IspCityNodesObject.groupName = valueIpv4IspCityNodesIpv4IspCityNode["GroupName"].asString();
+		if(!valueIpv4IspCityNodesIpv4IspCityNode["CityCode"].isNull())
+			ipv4IspCityNodesObject.cityCode = valueIpv4IspCityNodesIpv4IspCityNode["CityCode"].asString();
 		if(!valueIpv4IspCityNodesIpv4IspCityNode["IspName"].isNull())
 			ipv4IspCityNodesObject.ispName = valueIpv4IspCityNodesIpv4IspCityNode["IspName"].asString();
-		if(!valueIpv4IspCityNodesIpv4IspCityNode["IspCode"].isNull())
-			ipv4IspCityNodesObject.ispCode = valueIpv4IspCityNodesIpv4IspCityNode["IspCode"].asString();
+		if(!valueIpv4IspCityNodesIpv4IspCityNode["GroupType"].isNull())
+			ipv4IspCityNodesObject.groupType = valueIpv4IspCityNodesIpv4IspCityNode["GroupType"].asString();
 		if(!valueIpv4IspCityNodesIpv4IspCityNode["CityName"].isNull())
 			ipv4IspCityNodesObject.cityName = valueIpv4IspCityNodesIpv4IspCityNode["CityName"].asString();
-		if(!valueIpv4IspCityNodesIpv4IspCityNode["CityCode"].isNull())
-			ipv4IspCityNodesObject.cityCode = valueIpv4IspCityNodesIpv4IspCityNode["CityCode"].asString();
 		if(!valueIpv4IspCityNodesIpv4IspCityNode["DefaultSelected"].isNull())
 			ipv4IspCityNodesObject.defaultSelected = valueIpv4IspCityNodesIpv4IspCityNode["DefaultSelected"].asString() == "true";
-		if(!valueIpv4IspCityNodesIpv4IspCityNode["GroupType"].isNull())
-			ipv4IspCityNodesObject.groupType = valueIpv4IspCityNodesIpv4IspCityNode["GroupType"].asString();
-		if(!valueIpv4IspCityNodesIpv4IspCityNode["GroupName"].isNull())
-			ipv4IspCityNodesObject.groupName = valueIpv4IspCityNodesIpv4IspCityNode["GroupName"].asString();
+		if(!valueIpv4IspCityNodesIpv4IspCityNode["IspCode"].isNull())
+			ipv4IspCityNodesObject.ispCode = valueIpv4IspCityNodesIpv4IspCityNode["IspCode"].asString();
+		auto allIps = value["Ips"]["Ip"];
+		for (auto value : allIps)
+			ipv4IspCityNodesObject.ips.push_back(value.asString());
 		ipv4IspCityNodes_.push_back(ipv4IspCityNodesObject);
 	}
-	auto allIpv6IspCityNodesNode = value["Ipv6IspCityNodes"]["Ipv6IspCityNode"];
-	for (auto valueIpv6IspCityNodesIpv6IspCityNode : allIpv6IspCityNodesNode)
-	{
-		Ipv6IspCityNode ipv6IspCityNodesObject;
-		if(!valueIpv6IspCityNodesIpv6IspCityNode["IspName"].isNull())
-			ipv6IspCityNodesObject.ispName = valueIpv6IspCityNodesIpv6IspCityNode["IspName"].asString();
-		if(!valueIpv6IspCityNodesIpv6IspCityNode["IspCode"].isNull())
-			ipv6IspCityNodesObject.ispCode = valueIpv6IspCityNodesIpv6IspCityNode["IspCode"].asString();
-		if(!valueIpv6IspCityNodesIpv6IspCityNode["CityName"].isNull())
-			ipv6IspCityNodesObject.cityName = valueIpv6IspCityNodesIpv6IspCityNode["CityName"].asString();
-		if(!valueIpv6IspCityNodesIpv6IspCityNode["CityCode"].isNull())
-			ipv6IspCityNodesObject.cityCode = valueIpv6IspCityNodesIpv6IspCityNode["CityCode"].asString();
-		if(!valueIpv6IspCityNodesIpv6IspCityNode["DefaultSelected"].isNull())
-			ipv6IspCityNodesObject.defaultSelected = valueIpv6IspCityNodesIpv6IspCityNode["DefaultSelected"].asString() == "true";
-		if(!valueIpv6IspCityNodesIpv6IspCityNode["GroupType"].isNull())
-			ipv6IspCityNodesObject.groupType = valueIpv6IspCityNodesIpv6IspCityNode["GroupType"].asString();
-		if(!valueIpv6IspCityNodesIpv6IspCityNode["GroupName"].isNull())
-			ipv6IspCityNodesObject.groupName = valueIpv6IspCityNodesIpv6IspCityNode["GroupName"].asString();
-		ipv6IspCityNodes_.push_back(ipv6IspCityNodesObject);
-	}
 	auto allDomainIpv4IspCityNodesNode = value["DomainIpv4IspCityNodes"]["DomainIpv4IspCityNode"];
 	for (auto valueDomainIpv4IspCityNodesDomainIpv4IspCityNode : allDomainIpv4IspCityNodesNode)
 	{
 		DomainIpv4IspCityNode domainIpv4IspCityNodesObject;
+		if(!valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["GroupName"].isNull())
+			domainIpv4IspCityNodesObject.groupName = valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["GroupName"].asString();
+		if(!valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["CityCode"].isNull())
+			domainIpv4IspCityNodesObject.cityCode = valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["CityCode"].asString();
 		if(!valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["IspName"].isNull())
 			domainIpv4IspCityNodesObject.ispName = valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["IspName"].asString();
-		if(!valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["IspCode"].isNull())
-			domainIpv4IspCityNodesObject.ispCode = valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["IspCode"].asString();
+		if(!valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["GroupType"].isNull())
+			domainIpv4IspCityNodesObject.groupType = valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["GroupType"].asString();
 		if(!valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["CityName"].isNull())
 			domainIpv4IspCityNodesObject.cityName = valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["CityName"].asString();
-		if(!valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["CityCode"].isNull())
-			domainIpv4IspCityNodesObject.cityCode = valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["CityCode"].asString();
 		if(!valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["DefaultSelected"].isNull())
 			domainIpv4IspCityNodesObject.defaultSelected = valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["DefaultSelected"].asString() == "true";
-		if(!valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["GroupType"].isNull())
-			domainIpv4IspCityNodesObject.groupType = valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["GroupType"].asString();
-		if(!valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["GroupName"].isNull())
-			domainIpv4IspCityNodesObject.groupName = valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["GroupName"].asString();
+		if(!valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["IspCode"].isNull())
+			domainIpv4IspCityNodesObject.ispCode = valueDomainIpv4IspCityNodesDomainIpv4IspCityNode["IspCode"].asString();
+		auto allIps1 = value["Ips"]["Ip"];
+		for (auto value : allIps1)
+			domainIpv4IspCityNodesObject.ips1.push_back(value.asString());
 		domainIpv4IspCityNodes_.push_back(domainIpv4IspCityNodesObject);
 	}
 	auto allDomainIpv6IspCityNodesNode = value["DomainIpv6IspCityNodes"]["DomainIpv6IspCityNode"];
 	for (auto valueDomainIpv6IspCityNodesDomainIpv6IspCityNode : allDomainIpv6IspCityNodesNode)
 	{
 		DomainIpv6IspCityNode domainIpv6IspCityNodesObject;
+		if(!valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["GroupName"].isNull())
+			domainIpv6IspCityNodesObject.groupName = valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["GroupName"].asString();
+		if(!valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["CityCode"].isNull())
+			domainIpv6IspCityNodesObject.cityCode = valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["CityCode"].asString();
 		if(!valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["IspName"].isNull())
 			domainIpv6IspCityNodesObject.ispName = valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["IspName"].asString();
-		if(!valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["IspCode"].isNull())
-			domainIpv6IspCityNodesObject.ispCode = valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["IspCode"].asString();
+		if(!valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["GroupType"].isNull())
+			domainIpv6IspCityNodesObject.groupType = valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["GroupType"].asString();
 		if(!valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["CityName"].isNull())
 			domainIpv6IspCityNodesObject.cityName = valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["CityName"].asString();
-		if(!valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["CityCode"].isNull())
-			domainIpv6IspCityNodesObject.cityCode = valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["CityCode"].asString();
 		if(!valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["DefaultSelected"].isNull())
 			domainIpv6IspCityNodesObject.defaultSelected = valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["DefaultSelected"].asString() == "true";
-		if(!valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["GroupType"].isNull())
-			domainIpv6IspCityNodesObject.groupType = valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["GroupType"].asString();
-		if(!valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["GroupName"].isNull())
-			domainIpv6IspCityNodesObject.groupName = valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["GroupName"].asString();
+		if(!valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["IspCode"].isNull())
+			domainIpv6IspCityNodesObject.ispCode = valueDomainIpv6IspCityNodesDomainIpv6IspCityNode["IspCode"].asString();
+		auto allIps2 = value["Ips"]["Ip"];
+		for (auto value : allIps2)
+			domainIpv6IspCityNodesObject.ips2.push_back(value.asString());
 		domainIpv6IspCityNodes_.push_back(domainIpv6IspCityNodesObject);
 	}
+	auto allIpv6IspCityNodesNode = value["Ipv6IspCityNodes"]["Ipv6IspCityNode"];
+	for (auto valueIpv6IspCityNodesIpv6IspCityNode : allIpv6IspCityNodesNode)
+	{
+		Ipv6IspCityNode ipv6IspCityNodesObject;
+		if(!valueIpv6IspCityNodesIpv6IspCityNode["GroupName"].isNull())
+			ipv6IspCityNodesObject.groupName = valueIpv6IspCityNodesIpv6IspCityNode["GroupName"].asString();
+		if(!valueIpv6IspCityNodesIpv6IspCityNode["CityCode"].isNull())
+			ipv6IspCityNodesObject.cityCode = valueIpv6IspCityNodesIpv6IspCityNode["CityCode"].asString();
+		if(!valueIpv6IspCityNodesIpv6IspCityNode["IspName"].isNull())
+			ipv6IspCityNodesObject.ispName = valueIpv6IspCityNodesIpv6IspCityNode["IspName"].asString();
+		if(!valueIpv6IspCityNodesIpv6IspCityNode["GroupType"].isNull())
+			ipv6IspCityNodesObject.groupType = valueIpv6IspCityNodesIpv6IspCityNode["GroupType"].asString();
+		if(!valueIpv6IspCityNodesIpv6IspCityNode["CityName"].isNull())
+			ipv6IspCityNodesObject.cityName = valueIpv6IspCityNodesIpv6IspCityNode["CityName"].asString();
+		if(!valueIpv6IspCityNodesIpv6IspCityNode["DefaultSelected"].isNull())
+			ipv6IspCityNodesObject.defaultSelected = valueIpv6IspCityNodesIpv6IspCityNode["DefaultSelected"].asString() == "true";
+		if(!valueIpv6IspCityNodesIpv6IspCityNode["IspCode"].isNull())
+			ipv6IspCityNodesObject.ispCode = valueIpv6IspCityNodesIpv6IspCityNode["IspCode"].asString();
+		auto allIps3 = value["Ips"]["Ip"];
+		for (auto value : allIps3)
+			ipv6IspCityNodesObject.ips3.push_back(value.asString());
+		ipv6IspCityNodes_.push_back(ipv6IspCityNodesObject);
+	}
 
 }
 

+ 84 - 0
alidns/src/model/UpdateDnsCacheDomainRemarkRequest.cc

@@ -0,0 +1,84 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/alidns/model/UpdateDnsCacheDomainRemarkRequest.h>
+
+using AlibabaCloud::Alidns::Model::UpdateDnsCacheDomainRemarkRequest;
+
+UpdateDnsCacheDomainRemarkRequest::UpdateDnsCacheDomainRemarkRequest() :
+	RpcServiceRequest("alidns", "2015-01-09", "UpdateDnsCacheDomainRemark")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+UpdateDnsCacheDomainRemarkRequest::~UpdateDnsCacheDomainRemarkRequest()
+{}
+
+std::string UpdateDnsCacheDomainRemarkRequest::getDomainName()const
+{
+	return domainName_;
+}
+
+void UpdateDnsCacheDomainRemarkRequest::setDomainName(const std::string& domainName)
+{
+	domainName_ = domainName;
+	setParameter("DomainName", domainName);
+}
+
+std::string UpdateDnsCacheDomainRemarkRequest::getRemark()const
+{
+	return remark_;
+}
+
+void UpdateDnsCacheDomainRemarkRequest::setRemark(const std::string& remark)
+{
+	remark_ = remark;
+	setParameter("Remark", remark);
+}
+
+std::string UpdateDnsCacheDomainRemarkRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void UpdateDnsCacheDomainRemarkRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string UpdateDnsCacheDomainRemarkRequest::getUserClientIp()const
+{
+	return userClientIp_;
+}
+
+void UpdateDnsCacheDomainRemarkRequest::setUserClientIp(const std::string& userClientIp)
+{
+	userClientIp_ = userClientIp;
+	setParameter("UserClientIp", userClientIp);
+}
+
+std::string UpdateDnsCacheDomainRemarkRequest::getLang()const
+{
+	return lang_;
+}
+
+void UpdateDnsCacheDomainRemarkRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+

+ 44 - 0
alidns/src/model/UpdateDnsCacheDomainRemarkResult.cc

@@ -0,0 +1,44 @@
+/*
+ * 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/alidns/model/UpdateDnsCacheDomainRemarkResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+UpdateDnsCacheDomainRemarkResult::UpdateDnsCacheDomainRemarkResult() :
+	ServiceResult()
+{}
+
+UpdateDnsCacheDomainRemarkResult::UpdateDnsCacheDomainRemarkResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+UpdateDnsCacheDomainRemarkResult::~UpdateDnsCacheDomainRemarkResult()
+{}
+
+void UpdateDnsCacheDomainRemarkResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 144 - 0
alidns/src/model/UpdateDnsCacheDomainRequest.cc

@@ -0,0 +1,144 @@
+/*
+ * 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/alidns/model/UpdateDnsCacheDomainRequest.h>
+
+using AlibabaCloud::Alidns::Model::UpdateDnsCacheDomainRequest;
+
+UpdateDnsCacheDomainRequest::UpdateDnsCacheDomainRequest() :
+	RpcServiceRequest("alidns", "2015-01-09", "UpdateDnsCacheDomain")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+UpdateDnsCacheDomainRequest::~UpdateDnsCacheDomainRequest()
+{}
+
+std::string UpdateDnsCacheDomainRequest::getAccessKeyId()const
+{
+	return accessKeyId_;
+}
+
+void UpdateDnsCacheDomainRequest::setAccessKeyId(const std::string& accessKeyId)
+{
+	accessKeyId_ = accessKeyId;
+	setParameter("AccessKeyId", accessKeyId);
+}
+
+std::string UpdateDnsCacheDomainRequest::getSourceProtocol()const
+{
+	return sourceProtocol_;
+}
+
+void UpdateDnsCacheDomainRequest::setSourceProtocol(const std::string& sourceProtocol)
+{
+	sourceProtocol_ = sourceProtocol;
+	setParameter("SourceProtocol", sourceProtocol);
+}
+
+std::string UpdateDnsCacheDomainRequest::getLang()const
+{
+	return lang_;
+}
+
+void UpdateDnsCacheDomainRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+
+std::string UpdateDnsCacheDomainRequest::getDomainName()const
+{
+	return domainName_;
+}
+
+void UpdateDnsCacheDomainRequest::setDomainName(const std::string& domainName)
+{
+	domainName_ = domainName;
+	setParameter("DomainName", domainName);
+}
+
+int UpdateDnsCacheDomainRequest::getCacheTtlMax()const
+{
+	return cacheTtlMax_;
+}
+
+void UpdateDnsCacheDomainRequest::setCacheTtlMax(int cacheTtlMax)
+{
+	cacheTtlMax_ = cacheTtlMax;
+	setParameter("CacheTtlMax", std::to_string(cacheTtlMax));
+}
+
+std::string UpdateDnsCacheDomainRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void UpdateDnsCacheDomainRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string UpdateDnsCacheDomainRequest::getSourceEdns()const
+{
+	return sourceEdns_;
+}
+
+void UpdateDnsCacheDomainRequest::setSourceEdns(const std::string& sourceEdns)
+{
+	sourceEdns_ = sourceEdns;
+	setParameter("SourceEdns", sourceEdns);
+}
+
+std::string UpdateDnsCacheDomainRequest::getUserClientIp()const
+{
+	return userClientIp_;
+}
+
+void UpdateDnsCacheDomainRequest::setUserClientIp(const std::string& userClientIp)
+{
+	userClientIp_ = userClientIp;
+	setParameter("UserClientIp", userClientIp);
+}
+
+int UpdateDnsCacheDomainRequest::getCacheTtlMin()const
+{
+	return cacheTtlMin_;
+}
+
+void UpdateDnsCacheDomainRequest::setCacheTtlMin(int cacheTtlMin)
+{
+	cacheTtlMin_ = cacheTtlMin;
+	setParameter("CacheTtlMin", std::to_string(cacheTtlMin));
+}
+
+std::vector<UpdateDnsCacheDomainRequest::SourceDnsServer> UpdateDnsCacheDomainRequest::getSourceDnsServer()const
+{
+	return sourceDnsServer_;
+}
+
+void UpdateDnsCacheDomainRequest::setSourceDnsServer(const std::vector<SourceDnsServer>& sourceDnsServer)
+{
+	sourceDnsServer_ = sourceDnsServer;
+	for(int dep1 = 0; dep1!= sourceDnsServer.size(); dep1++) {
+		auto sourceDnsServerObj = sourceDnsServer.at(dep1);
+		std::string sourceDnsServerObjStr = "SourceDnsServer." + std::to_string(dep1 + 1);
+		setParameter(sourceDnsServerObjStr + ".Port", sourceDnsServerObj.port);
+		setParameter(sourceDnsServerObjStr + ".Host", sourceDnsServerObj.host);
+	}
+}
+

+ 44 - 0
alidns/src/model/UpdateDnsCacheDomainResult.cc

@@ -0,0 +1,44 @@
+/*
+ * 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/alidns/model/UpdateDnsCacheDomainResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+UpdateDnsCacheDomainResult::UpdateDnsCacheDomainResult() :
+	ServiceResult()
+{}
+
+UpdateDnsCacheDomainResult::UpdateDnsCacheDomainResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+UpdateDnsCacheDomainResult::~UpdateDnsCacheDomainResult()
+{}
+
+void UpdateDnsCacheDomainResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+