소스 검색

WAF OpenApi SDK Release.

sdk-team 6 년 전
부모
커밋
85daa7c446
100개의 변경된 파일7972개의 추가작업 그리고 1개의 파일을 삭제
  1. 3 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 218 0
      waf-openapi/CMakeLists.txt
  4. 318 0
      waf-openapi/include/alibabacloud/waf-openapi/Waf_openapiClient.h
  5. 32 0
      waf-openapi/include/alibabacloud/waf-openapi/Waf_openapiExport.h
  6. 60 0
      waf-openapi/include/alibabacloud/waf-openapi/model/CreateCertificateByCertificateIdRequest.h
  7. 51 0
      waf-openapi/include/alibabacloud/waf-openapi/model/CreateCertificateByCertificateIdResult.h
  8. 69 0
      waf-openapi/include/alibabacloud/waf-openapi/model/CreateCertificateRequest.h
  9. 51 0
      waf-openapi/include/alibabacloud/waf-openapi/model/CreateCertificateResult.h
  10. 99 0
      waf-openapi/include/alibabacloud/waf-openapi/model/CreateDomainRequest.h
  11. 51 0
      waf-openapi/include/alibabacloud/waf-openapi/model/CreateDomainResult.h
  12. 69 0
      waf-openapi/include/alibabacloud/waf-openapi/model/CreateIPBlockRequest.h
  13. 51 0
      waf-openapi/include/alibabacloud/waf-openapi/model/CreateIPBlockResult.h
  14. 63 0
      waf-openapi/include/alibabacloud/waf-openapi/model/CreateProtectionModuleRuleRequest.h
  15. 49 0
      waf-openapi/include/alibabacloud/waf-openapi/model/CreateProtectionModuleRuleResult.h
  16. 57 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DeleteDomainRequest.h
  17. 49 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DeleteDomainResult.h
  18. 63 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeCertMatchStatusRequest.h
  19. 51 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeCertMatchStatusResult.h
  20. 57 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeCertificatesRequest.h
  21. 59 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeCertificatesResult.h
  22. 60 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainAdvanceConfigsRequest.h
  23. 71 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainAdvanceConfigsResult.h
  24. 66 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainBasicConfigsRequest.h
  25. 65 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainBasicConfigsResult.h
  26. 60 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainNamesRequest.h
  27. 51 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainNamesResult.h
  28. 57 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainRequest.h
  29. 69 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainResult.h
  30. 57 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainRuleGroupRequest.h
  31. 51 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainRuleGroupResult.h
  32. 60 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainStatusRequest.h
  33. 51 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainStatusResult.h
  34. 60 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeInstanceInfoRequest.h
  35. 63 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeInstanceInfoResult.h
  36. 57 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeInstanceSpecInfoRequest.h
  37. 62 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeInstanceSpecInfoResult.h
  38. 69 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectBlockSummaryRequest.h
  39. 57 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectBlockSummaryResult.h
  40. 63 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectionModuleModeRequest.h
  41. 51 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectionModuleModeResult.h
  42. 72 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectionModuleRulesRequest.h
  43. 61 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectionModuleRulesResult.h
  44. 60 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectionModuleStatusRequest.h
  45. 51 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectionModuleStatusResult.h
  46. 69 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeRealProtectSummaryRequest.h
  47. 60 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeRealProtectSummaryResult.h
  48. 72 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeRuleMonitorRequest.h
  49. 62 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeRuleMonitorResult.h
  50. 72 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeRuleSummaryRequest.h
  51. 56 0
      waf-openapi/include/alibabacloud/waf-openapi/model/DescribeRuleSummaryResult.h
  52. 60 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyDomainClusterTypeRequest.h
  53. 49 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyDomainClusterTypeResult.h
  54. 63 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyDomainIpv6StatusRequest.h
  55. 49 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyDomainIpv6StatusResult.h
  56. 105 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyDomainRequest.h
  57. 49 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyDomainResult.h
  58. 60 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyLogRetrievalStatusRequest.h
  59. 49 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyLogRetrievalStatusResult.h
  60. 60 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyLogServiceStatusRequest.h
  61. 49 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyLogServiceStatusResult.h
  62. 63 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionModuleModeRequest.h
  63. 49 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionModuleModeResult.h
  64. 69 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionModuleRuleRequest.h
  65. 49 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionModuleRuleResult.h
  66. 63 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionModuleStatusRequest.h
  67. 49 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionModuleStatusResult.h
  68. 63 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionRuleCacheStatusRequest.h
  69. 49 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionRuleCacheStatusResult.h
  70. 69 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionRuleStatusRequest.h
  71. 49 0
      waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionRuleStatusResult.h
  72. 66 0
      waf-openapi/include/alibabacloud/waf-openapi/model/SetDomainRuleGroupRequest.h
  73. 49 0
      waf-openapi/include/alibabacloud/waf-openapi/model/SetDomainRuleGroupResult.h
  74. 1277 0
      waf-openapi/src/Waf-openapiClient.cc
  75. 84 0
      waf-openapi/src/model/CreateCertificateByCertificateIdRequest.cc
  76. 51 0
      waf-openapi/src/model/CreateCertificateByCertificateIdResult.cc
  77. 117 0
      waf-openapi/src/model/CreateCertificateRequest.cc
  78. 51 0
      waf-openapi/src/model/CreateCertificateResult.cc
  79. 227 0
      waf-openapi/src/model/CreateDomainRequest.cc
  80. 51 0
      waf-openapi/src/model/CreateDomainResult.cc
  81. 117 0
      waf-openapi/src/model/CreateIPBlockRequest.cc
  82. 51 0
      waf-openapi/src/model/CreateIPBlockResult.cc
  83. 95 0
      waf-openapi/src/model/CreateProtectionModuleRuleRequest.cc
  84. 44 0
      waf-openapi/src/model/CreateProtectionModuleRuleResult.cc
  85. 73 0
      waf-openapi/src/model/DeleteDomainRequest.cc
  86. 44 0
      waf-openapi/src/model/DeleteDomainResult.cc
  87. 95 0
      waf-openapi/src/model/DescribeCertMatchStatusRequest.cc
  88. 51 0
      waf-openapi/src/model/DescribeCertMatchStatusResult.cc
  89. 73 0
      waf-openapi/src/model/DescribeCertificatesRequest.cc
  90. 66 0
      waf-openapi/src/model/DescribeCertificatesResult.cc
  91. 84 0
      waf-openapi/src/model/DescribeDomainAdvanceConfigsRequest.cc
  92. 82 0
      waf-openapi/src/model/DescribeDomainAdvanceConfigsResult.cc
  93. 106 0
      waf-openapi/src/model/DescribeDomainBasicConfigsRequest.cc
  94. 80 0
      waf-openapi/src/model/DescribeDomainBasicConfigsResult.cc
  95. 84 0
      waf-openapi/src/model/DescribeDomainNamesRequest.cc
  96. 52 0
      waf-openapi/src/model/DescribeDomainNamesResult.cc
  97. 73 0
      waf-openapi/src/model/DescribeDomainRequest.cc
  98. 84 0
      waf-openapi/src/model/DescribeDomainResult.cc
  99. 73 0
      waf-openapi/src/model/DescribeDomainRuleGroupRequest.cc
  100. 51 0
      waf-openapi/src/model/DescribeDomainRuleGroupResult.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2020-04-09 Version: 1.36.345
+- WAF OpenApi SDK Release.
+
 2020-04-09 Version: 1.36.344
 - Add DescribeDBClusterAvailableResources.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.344
+1.36.345

+ 218 - 0
waf-openapi/CMakeLists.txt

@@ -0,0 +1,218 @@
+#
+# 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.
+#
+
+set(public_header_dir ${CMAKE_CURRENT_SOURCE_DIR}/../include)
+
+set(waf-openapi_public_header 
+	include/alibabacloud/waf-openapi/Waf_openapiClient.h
+	include/alibabacloud/waf-openapi/Waf_openapiExport.h )
+
+set(waf-openapi_public_header_model 
+	include/alibabacloud/waf-openapi/model/CreateCertificateRequest.h
+	include/alibabacloud/waf-openapi/model/CreateCertificateResult.h
+	include/alibabacloud/waf-openapi/model/CreateCertificateByCertificateIdRequest.h
+	include/alibabacloud/waf-openapi/model/CreateCertificateByCertificateIdResult.h
+	include/alibabacloud/waf-openapi/model/CreateDomainRequest.h
+	include/alibabacloud/waf-openapi/model/CreateDomainResult.h
+	include/alibabacloud/waf-openapi/model/CreateIPBlockRequest.h
+	include/alibabacloud/waf-openapi/model/CreateIPBlockResult.h
+	include/alibabacloud/waf-openapi/model/CreateProtectionModuleRuleRequest.h
+	include/alibabacloud/waf-openapi/model/CreateProtectionModuleRuleResult.h
+	include/alibabacloud/waf-openapi/model/DeleteDomainRequest.h
+	include/alibabacloud/waf-openapi/model/DeleteDomainResult.h
+	include/alibabacloud/waf-openapi/model/DescribeCertMatchStatusRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeCertMatchStatusResult.h
+	include/alibabacloud/waf-openapi/model/DescribeCertificatesRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeCertificatesResult.h
+	include/alibabacloud/waf-openapi/model/DescribeDomainRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeDomainResult.h
+	include/alibabacloud/waf-openapi/model/DescribeDomainAdvanceConfigsRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeDomainAdvanceConfigsResult.h
+	include/alibabacloud/waf-openapi/model/DescribeDomainBasicConfigsRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeDomainBasicConfigsResult.h
+	include/alibabacloud/waf-openapi/model/DescribeDomainNamesRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeDomainNamesResult.h
+	include/alibabacloud/waf-openapi/model/DescribeDomainRuleGroupRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeDomainRuleGroupResult.h
+	include/alibabacloud/waf-openapi/model/DescribeDomainStatusRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeDomainStatusResult.h
+	include/alibabacloud/waf-openapi/model/DescribeInstanceInfoRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeInstanceInfoResult.h
+	include/alibabacloud/waf-openapi/model/DescribeInstanceSpecInfoRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeInstanceSpecInfoResult.h
+	include/alibabacloud/waf-openapi/model/DescribeProtectBlockSummaryRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeProtectBlockSummaryResult.h
+	include/alibabacloud/waf-openapi/model/DescribeProtectionModuleModeRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeProtectionModuleModeResult.h
+	include/alibabacloud/waf-openapi/model/DescribeProtectionModuleRulesRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeProtectionModuleRulesResult.h
+	include/alibabacloud/waf-openapi/model/DescribeProtectionModuleStatusRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeProtectionModuleStatusResult.h
+	include/alibabacloud/waf-openapi/model/DescribeRealProtectSummaryRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeRealProtectSummaryResult.h
+	include/alibabacloud/waf-openapi/model/DescribeRuleMonitorRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeRuleMonitorResult.h
+	include/alibabacloud/waf-openapi/model/DescribeRuleSummaryRequest.h
+	include/alibabacloud/waf-openapi/model/DescribeRuleSummaryResult.h
+	include/alibabacloud/waf-openapi/model/ModifyDomainRequest.h
+	include/alibabacloud/waf-openapi/model/ModifyDomainResult.h
+	include/alibabacloud/waf-openapi/model/ModifyDomainClusterTypeRequest.h
+	include/alibabacloud/waf-openapi/model/ModifyDomainClusterTypeResult.h
+	include/alibabacloud/waf-openapi/model/ModifyDomainIpv6StatusRequest.h
+	include/alibabacloud/waf-openapi/model/ModifyDomainIpv6StatusResult.h
+	include/alibabacloud/waf-openapi/model/ModifyLogRetrievalStatusRequest.h
+	include/alibabacloud/waf-openapi/model/ModifyLogRetrievalStatusResult.h
+	include/alibabacloud/waf-openapi/model/ModifyLogServiceStatusRequest.h
+	include/alibabacloud/waf-openapi/model/ModifyLogServiceStatusResult.h
+	include/alibabacloud/waf-openapi/model/ModifyProtectionModuleModeRequest.h
+	include/alibabacloud/waf-openapi/model/ModifyProtectionModuleModeResult.h
+	include/alibabacloud/waf-openapi/model/ModifyProtectionModuleRuleRequest.h
+	include/alibabacloud/waf-openapi/model/ModifyProtectionModuleRuleResult.h
+	include/alibabacloud/waf-openapi/model/ModifyProtectionModuleStatusRequest.h
+	include/alibabacloud/waf-openapi/model/ModifyProtectionModuleStatusResult.h
+	include/alibabacloud/waf-openapi/model/ModifyProtectionRuleCacheStatusRequest.h
+	include/alibabacloud/waf-openapi/model/ModifyProtectionRuleCacheStatusResult.h
+	include/alibabacloud/waf-openapi/model/ModifyProtectionRuleStatusRequest.h
+	include/alibabacloud/waf-openapi/model/ModifyProtectionRuleStatusResult.h
+	include/alibabacloud/waf-openapi/model/SetDomainRuleGroupRequest.h
+	include/alibabacloud/waf-openapi/model/SetDomainRuleGroupResult.h )
+
+set(waf-openapi_src 
+	src/Waf-openapiClient.cc
+	src/model/CreateCertificateRequest.cc
+	src/model/CreateCertificateResult.cc
+	src/model/CreateCertificateByCertificateIdRequest.cc
+	src/model/CreateCertificateByCertificateIdResult.cc
+	src/model/CreateDomainRequest.cc
+	src/model/CreateDomainResult.cc
+	src/model/CreateIPBlockRequest.cc
+	src/model/CreateIPBlockResult.cc
+	src/model/CreateProtectionModuleRuleRequest.cc
+	src/model/CreateProtectionModuleRuleResult.cc
+	src/model/DeleteDomainRequest.cc
+	src/model/DeleteDomainResult.cc
+	src/model/DescribeCertMatchStatusRequest.cc
+	src/model/DescribeCertMatchStatusResult.cc
+	src/model/DescribeCertificatesRequest.cc
+	src/model/DescribeCertificatesResult.cc
+	src/model/DescribeDomainRequest.cc
+	src/model/DescribeDomainResult.cc
+	src/model/DescribeDomainAdvanceConfigsRequest.cc
+	src/model/DescribeDomainAdvanceConfigsResult.cc
+	src/model/DescribeDomainBasicConfigsRequest.cc
+	src/model/DescribeDomainBasicConfigsResult.cc
+	src/model/DescribeDomainNamesRequest.cc
+	src/model/DescribeDomainNamesResult.cc
+	src/model/DescribeDomainRuleGroupRequest.cc
+	src/model/DescribeDomainRuleGroupResult.cc
+	src/model/DescribeDomainStatusRequest.cc
+	src/model/DescribeDomainStatusResult.cc
+	src/model/DescribeInstanceInfoRequest.cc
+	src/model/DescribeInstanceInfoResult.cc
+	src/model/DescribeInstanceSpecInfoRequest.cc
+	src/model/DescribeInstanceSpecInfoResult.cc
+	src/model/DescribeProtectBlockSummaryRequest.cc
+	src/model/DescribeProtectBlockSummaryResult.cc
+	src/model/DescribeProtectionModuleModeRequest.cc
+	src/model/DescribeProtectionModuleModeResult.cc
+	src/model/DescribeProtectionModuleRulesRequest.cc
+	src/model/DescribeProtectionModuleRulesResult.cc
+	src/model/DescribeProtectionModuleStatusRequest.cc
+	src/model/DescribeProtectionModuleStatusResult.cc
+	src/model/DescribeRealProtectSummaryRequest.cc
+	src/model/DescribeRealProtectSummaryResult.cc
+	src/model/DescribeRuleMonitorRequest.cc
+	src/model/DescribeRuleMonitorResult.cc
+	src/model/DescribeRuleSummaryRequest.cc
+	src/model/DescribeRuleSummaryResult.cc
+	src/model/ModifyDomainRequest.cc
+	src/model/ModifyDomainResult.cc
+	src/model/ModifyDomainClusterTypeRequest.cc
+	src/model/ModifyDomainClusterTypeResult.cc
+	src/model/ModifyDomainIpv6StatusRequest.cc
+	src/model/ModifyDomainIpv6StatusResult.cc
+	src/model/ModifyLogRetrievalStatusRequest.cc
+	src/model/ModifyLogRetrievalStatusResult.cc
+	src/model/ModifyLogServiceStatusRequest.cc
+	src/model/ModifyLogServiceStatusResult.cc
+	src/model/ModifyProtectionModuleModeRequest.cc
+	src/model/ModifyProtectionModuleModeResult.cc
+	src/model/ModifyProtectionModuleRuleRequest.cc
+	src/model/ModifyProtectionModuleRuleResult.cc
+	src/model/ModifyProtectionModuleStatusRequest.cc
+	src/model/ModifyProtectionModuleStatusResult.cc
+	src/model/ModifyProtectionRuleCacheStatusRequest.cc
+	src/model/ModifyProtectionRuleCacheStatusResult.cc
+	src/model/ModifyProtectionRuleStatusRequest.cc
+	src/model/ModifyProtectionRuleStatusResult.cc
+	src/model/SetDomainRuleGroupRequest.cc
+	src/model/SetDomainRuleGroupResult.cc )
+
+add_library(waf-openapi ${LIB_TYPE}
+	${waf-openapi_public_header}
+	${waf-openapi_public_header_model}
+	${waf-openapi_src})
+
+set_target_properties(waf-openapi
+	PROPERTIES
+	LINKER_LANGUAGE CXX
+	ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
+	LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib
+	RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin
+	OUTPUT_NAME ${TARGET_OUTPUT_NAME_PREFIX}waf-openapi
+	)
+
+if(${LIB_TYPE} STREQUAL "SHARED")
+	set_target_properties(waf-openapi
+		PROPERTIES
+		DEFINE_SYMBOL ALIBABACLOUD_WAF_OPENAPI_LIBRARY)
+endif()
+
+target_include_directories(waf-openapi
+	PRIVATE include
+		${CMAKE_SOURCE_DIR}/core/include
+	)
+target_link_libraries(waf-openapi
+	core)
+
+if(CMAKE_HOST_WIN32)
+	ExternalProject_Get_Property(jsoncpp INSTALL_DIR)
+	set(jsoncpp_install_dir ${INSTALL_DIR})
+	add_dependencies(waf-openapi
+		jsoncpp)
+	target_include_directories(waf-openapi
+		PRIVATE	${jsoncpp_install_dir}/include)
+	target_link_libraries(waf-openapi
+		${jsoncpp_install_dir}/lib/jsoncpp.lib)
+	set_target_properties(waf-openapi
+    	PROPERTIES
+    		COMPILE_OPTIONS "/bigobj")
+else()
+	target_include_directories(waf-openapi
+		PRIVATE /usr/include/jsoncpp)
+	target_link_libraries(waf-openapi
+		jsoncpp)
+endif()
+
+install(FILES ${waf-openapi_public_header}
+	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/waf-openapi)
+install(FILES ${waf-openapi_public_header_model}
+	DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/alibabacloud/waf-openapi/model)
+install(TARGETS waf-openapi
+	ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
+	LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
+	RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
+	)

+ 318 - 0
waf-openapi/include/alibabacloud/waf-openapi/Waf_openapiClient.h

@@ -0,0 +1,318 @@
+/*
+ * 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_WAF_OPENAPI_WAF_OPENAPICLIENT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_WAF_OPENAPICLIENT_H_
+
+#include <future>
+#include <alibabacloud/core/AsyncCallerContext.h>
+#include <alibabacloud/core/EndpointProvider.h>
+#include <alibabacloud/core/RpcServiceClient.h>
+#include "Waf_openapiExport.h"
+#include "model/CreateCertificateRequest.h"
+#include "model/CreateCertificateResult.h"
+#include "model/CreateCertificateByCertificateIdRequest.h"
+#include "model/CreateCertificateByCertificateIdResult.h"
+#include "model/CreateDomainRequest.h"
+#include "model/CreateDomainResult.h"
+#include "model/CreateIPBlockRequest.h"
+#include "model/CreateIPBlockResult.h"
+#include "model/CreateProtectionModuleRuleRequest.h"
+#include "model/CreateProtectionModuleRuleResult.h"
+#include "model/DeleteDomainRequest.h"
+#include "model/DeleteDomainResult.h"
+#include "model/DescribeCertMatchStatusRequest.h"
+#include "model/DescribeCertMatchStatusResult.h"
+#include "model/DescribeCertificatesRequest.h"
+#include "model/DescribeCertificatesResult.h"
+#include "model/DescribeDomainRequest.h"
+#include "model/DescribeDomainResult.h"
+#include "model/DescribeDomainAdvanceConfigsRequest.h"
+#include "model/DescribeDomainAdvanceConfigsResult.h"
+#include "model/DescribeDomainBasicConfigsRequest.h"
+#include "model/DescribeDomainBasicConfigsResult.h"
+#include "model/DescribeDomainNamesRequest.h"
+#include "model/DescribeDomainNamesResult.h"
+#include "model/DescribeDomainRuleGroupRequest.h"
+#include "model/DescribeDomainRuleGroupResult.h"
+#include "model/DescribeDomainStatusRequest.h"
+#include "model/DescribeDomainStatusResult.h"
+#include "model/DescribeInstanceInfoRequest.h"
+#include "model/DescribeInstanceInfoResult.h"
+#include "model/DescribeInstanceSpecInfoRequest.h"
+#include "model/DescribeInstanceSpecInfoResult.h"
+#include "model/DescribeProtectBlockSummaryRequest.h"
+#include "model/DescribeProtectBlockSummaryResult.h"
+#include "model/DescribeProtectionModuleModeRequest.h"
+#include "model/DescribeProtectionModuleModeResult.h"
+#include "model/DescribeProtectionModuleRulesRequest.h"
+#include "model/DescribeProtectionModuleRulesResult.h"
+#include "model/DescribeProtectionModuleStatusRequest.h"
+#include "model/DescribeProtectionModuleStatusResult.h"
+#include "model/DescribeRealProtectSummaryRequest.h"
+#include "model/DescribeRealProtectSummaryResult.h"
+#include "model/DescribeRuleMonitorRequest.h"
+#include "model/DescribeRuleMonitorResult.h"
+#include "model/DescribeRuleSummaryRequest.h"
+#include "model/DescribeRuleSummaryResult.h"
+#include "model/ModifyDomainRequest.h"
+#include "model/ModifyDomainResult.h"
+#include "model/ModifyDomainClusterTypeRequest.h"
+#include "model/ModifyDomainClusterTypeResult.h"
+#include "model/ModifyDomainIpv6StatusRequest.h"
+#include "model/ModifyDomainIpv6StatusResult.h"
+#include "model/ModifyLogRetrievalStatusRequest.h"
+#include "model/ModifyLogRetrievalStatusResult.h"
+#include "model/ModifyLogServiceStatusRequest.h"
+#include "model/ModifyLogServiceStatusResult.h"
+#include "model/ModifyProtectionModuleModeRequest.h"
+#include "model/ModifyProtectionModuleModeResult.h"
+#include "model/ModifyProtectionModuleRuleRequest.h"
+#include "model/ModifyProtectionModuleRuleResult.h"
+#include "model/ModifyProtectionModuleStatusRequest.h"
+#include "model/ModifyProtectionModuleStatusResult.h"
+#include "model/ModifyProtectionRuleCacheStatusRequest.h"
+#include "model/ModifyProtectionRuleCacheStatusResult.h"
+#include "model/ModifyProtectionRuleStatusRequest.h"
+#include "model/ModifyProtectionRuleStatusResult.h"
+#include "model/SetDomainRuleGroupRequest.h"
+#include "model/SetDomainRuleGroupResult.h"
+
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		class ALIBABACLOUD_WAF_OPENAPI_EXPORT Waf_openapiClient : public RpcServiceClient
+		{
+		public:
+			typedef Outcome<Error, Model::CreateCertificateResult> CreateCertificateOutcome;
+			typedef std::future<CreateCertificateOutcome> CreateCertificateOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::CreateCertificateRequest&, const CreateCertificateOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateCertificateAsyncHandler;
+			typedef Outcome<Error, Model::CreateCertificateByCertificateIdResult> CreateCertificateByCertificateIdOutcome;
+			typedef std::future<CreateCertificateByCertificateIdOutcome> CreateCertificateByCertificateIdOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::CreateCertificateByCertificateIdRequest&, const CreateCertificateByCertificateIdOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateCertificateByCertificateIdAsyncHandler;
+			typedef Outcome<Error, Model::CreateDomainResult> CreateDomainOutcome;
+			typedef std::future<CreateDomainOutcome> CreateDomainOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::CreateDomainRequest&, const CreateDomainOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateDomainAsyncHandler;
+			typedef Outcome<Error, Model::CreateIPBlockResult> CreateIPBlockOutcome;
+			typedef std::future<CreateIPBlockOutcome> CreateIPBlockOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::CreateIPBlockRequest&, const CreateIPBlockOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateIPBlockAsyncHandler;
+			typedef Outcome<Error, Model::CreateProtectionModuleRuleResult> CreateProtectionModuleRuleOutcome;
+			typedef std::future<CreateProtectionModuleRuleOutcome> CreateProtectionModuleRuleOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::CreateProtectionModuleRuleRequest&, const CreateProtectionModuleRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateProtectionModuleRuleAsyncHandler;
+			typedef Outcome<Error, Model::DeleteDomainResult> DeleteDomainOutcome;
+			typedef std::future<DeleteDomainOutcome> DeleteDomainOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DeleteDomainRequest&, const DeleteDomainOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDomainAsyncHandler;
+			typedef Outcome<Error, Model::DescribeCertMatchStatusResult> DescribeCertMatchStatusOutcome;
+			typedef std::future<DescribeCertMatchStatusOutcome> DescribeCertMatchStatusOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeCertMatchStatusRequest&, const DescribeCertMatchStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeCertMatchStatusAsyncHandler;
+			typedef Outcome<Error, Model::DescribeCertificatesResult> DescribeCertificatesOutcome;
+			typedef std::future<DescribeCertificatesOutcome> DescribeCertificatesOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeCertificatesRequest&, const DescribeCertificatesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeCertificatesAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDomainResult> DescribeDomainOutcome;
+			typedef std::future<DescribeDomainOutcome> DescribeDomainOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeDomainRequest&, const DescribeDomainOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDomainAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDomainAdvanceConfigsResult> DescribeDomainAdvanceConfigsOutcome;
+			typedef std::future<DescribeDomainAdvanceConfigsOutcome> DescribeDomainAdvanceConfigsOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeDomainAdvanceConfigsRequest&, const DescribeDomainAdvanceConfigsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDomainAdvanceConfigsAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDomainBasicConfigsResult> DescribeDomainBasicConfigsOutcome;
+			typedef std::future<DescribeDomainBasicConfigsOutcome> DescribeDomainBasicConfigsOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeDomainBasicConfigsRequest&, const DescribeDomainBasicConfigsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDomainBasicConfigsAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDomainNamesResult> DescribeDomainNamesOutcome;
+			typedef std::future<DescribeDomainNamesOutcome> DescribeDomainNamesOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeDomainNamesRequest&, const DescribeDomainNamesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDomainNamesAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDomainRuleGroupResult> DescribeDomainRuleGroupOutcome;
+			typedef std::future<DescribeDomainRuleGroupOutcome> DescribeDomainRuleGroupOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeDomainRuleGroupRequest&, const DescribeDomainRuleGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDomainRuleGroupAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDomainStatusResult> DescribeDomainStatusOutcome;
+			typedef std::future<DescribeDomainStatusOutcome> DescribeDomainStatusOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeDomainStatusRequest&, const DescribeDomainStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDomainStatusAsyncHandler;
+			typedef Outcome<Error, Model::DescribeInstanceInfoResult> DescribeInstanceInfoOutcome;
+			typedef std::future<DescribeInstanceInfoOutcome> DescribeInstanceInfoOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeInstanceInfoRequest&, const DescribeInstanceInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeInstanceInfoAsyncHandler;
+			typedef Outcome<Error, Model::DescribeInstanceSpecInfoResult> DescribeInstanceSpecInfoOutcome;
+			typedef std::future<DescribeInstanceSpecInfoOutcome> DescribeInstanceSpecInfoOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeInstanceSpecInfoRequest&, const DescribeInstanceSpecInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeInstanceSpecInfoAsyncHandler;
+			typedef Outcome<Error, Model::DescribeProtectBlockSummaryResult> DescribeProtectBlockSummaryOutcome;
+			typedef std::future<DescribeProtectBlockSummaryOutcome> DescribeProtectBlockSummaryOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeProtectBlockSummaryRequest&, const DescribeProtectBlockSummaryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeProtectBlockSummaryAsyncHandler;
+			typedef Outcome<Error, Model::DescribeProtectionModuleModeResult> DescribeProtectionModuleModeOutcome;
+			typedef std::future<DescribeProtectionModuleModeOutcome> DescribeProtectionModuleModeOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeProtectionModuleModeRequest&, const DescribeProtectionModuleModeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeProtectionModuleModeAsyncHandler;
+			typedef Outcome<Error, Model::DescribeProtectionModuleRulesResult> DescribeProtectionModuleRulesOutcome;
+			typedef std::future<DescribeProtectionModuleRulesOutcome> DescribeProtectionModuleRulesOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeProtectionModuleRulesRequest&, const DescribeProtectionModuleRulesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeProtectionModuleRulesAsyncHandler;
+			typedef Outcome<Error, Model::DescribeProtectionModuleStatusResult> DescribeProtectionModuleStatusOutcome;
+			typedef std::future<DescribeProtectionModuleStatusOutcome> DescribeProtectionModuleStatusOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeProtectionModuleStatusRequest&, const DescribeProtectionModuleStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeProtectionModuleStatusAsyncHandler;
+			typedef Outcome<Error, Model::DescribeRealProtectSummaryResult> DescribeRealProtectSummaryOutcome;
+			typedef std::future<DescribeRealProtectSummaryOutcome> DescribeRealProtectSummaryOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeRealProtectSummaryRequest&, const DescribeRealProtectSummaryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRealProtectSummaryAsyncHandler;
+			typedef Outcome<Error, Model::DescribeRuleMonitorResult> DescribeRuleMonitorOutcome;
+			typedef std::future<DescribeRuleMonitorOutcome> DescribeRuleMonitorOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeRuleMonitorRequest&, const DescribeRuleMonitorOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRuleMonitorAsyncHandler;
+			typedef Outcome<Error, Model::DescribeRuleSummaryResult> DescribeRuleSummaryOutcome;
+			typedef std::future<DescribeRuleSummaryOutcome> DescribeRuleSummaryOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::DescribeRuleSummaryRequest&, const DescribeRuleSummaryOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeRuleSummaryAsyncHandler;
+			typedef Outcome<Error, Model::ModifyDomainResult> ModifyDomainOutcome;
+			typedef std::future<ModifyDomainOutcome> ModifyDomainOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::ModifyDomainRequest&, const ModifyDomainOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyDomainAsyncHandler;
+			typedef Outcome<Error, Model::ModifyDomainClusterTypeResult> ModifyDomainClusterTypeOutcome;
+			typedef std::future<ModifyDomainClusterTypeOutcome> ModifyDomainClusterTypeOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::ModifyDomainClusterTypeRequest&, const ModifyDomainClusterTypeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyDomainClusterTypeAsyncHandler;
+			typedef Outcome<Error, Model::ModifyDomainIpv6StatusResult> ModifyDomainIpv6StatusOutcome;
+			typedef std::future<ModifyDomainIpv6StatusOutcome> ModifyDomainIpv6StatusOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::ModifyDomainIpv6StatusRequest&, const ModifyDomainIpv6StatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyDomainIpv6StatusAsyncHandler;
+			typedef Outcome<Error, Model::ModifyLogRetrievalStatusResult> ModifyLogRetrievalStatusOutcome;
+			typedef std::future<ModifyLogRetrievalStatusOutcome> ModifyLogRetrievalStatusOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::ModifyLogRetrievalStatusRequest&, const ModifyLogRetrievalStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyLogRetrievalStatusAsyncHandler;
+			typedef Outcome<Error, Model::ModifyLogServiceStatusResult> ModifyLogServiceStatusOutcome;
+			typedef std::future<ModifyLogServiceStatusOutcome> ModifyLogServiceStatusOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::ModifyLogServiceStatusRequest&, const ModifyLogServiceStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyLogServiceStatusAsyncHandler;
+			typedef Outcome<Error, Model::ModifyProtectionModuleModeResult> ModifyProtectionModuleModeOutcome;
+			typedef std::future<ModifyProtectionModuleModeOutcome> ModifyProtectionModuleModeOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::ModifyProtectionModuleModeRequest&, const ModifyProtectionModuleModeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyProtectionModuleModeAsyncHandler;
+			typedef Outcome<Error, Model::ModifyProtectionModuleRuleResult> ModifyProtectionModuleRuleOutcome;
+			typedef std::future<ModifyProtectionModuleRuleOutcome> ModifyProtectionModuleRuleOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::ModifyProtectionModuleRuleRequest&, const ModifyProtectionModuleRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyProtectionModuleRuleAsyncHandler;
+			typedef Outcome<Error, Model::ModifyProtectionModuleStatusResult> ModifyProtectionModuleStatusOutcome;
+			typedef std::future<ModifyProtectionModuleStatusOutcome> ModifyProtectionModuleStatusOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::ModifyProtectionModuleStatusRequest&, const ModifyProtectionModuleStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyProtectionModuleStatusAsyncHandler;
+			typedef Outcome<Error, Model::ModifyProtectionRuleCacheStatusResult> ModifyProtectionRuleCacheStatusOutcome;
+			typedef std::future<ModifyProtectionRuleCacheStatusOutcome> ModifyProtectionRuleCacheStatusOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::ModifyProtectionRuleCacheStatusRequest&, const ModifyProtectionRuleCacheStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyProtectionRuleCacheStatusAsyncHandler;
+			typedef Outcome<Error, Model::ModifyProtectionRuleStatusResult> ModifyProtectionRuleStatusOutcome;
+			typedef std::future<ModifyProtectionRuleStatusOutcome> ModifyProtectionRuleStatusOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::ModifyProtectionRuleStatusRequest&, const ModifyProtectionRuleStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyProtectionRuleStatusAsyncHandler;
+			typedef Outcome<Error, Model::SetDomainRuleGroupResult> SetDomainRuleGroupOutcome;
+			typedef std::future<SetDomainRuleGroupOutcome> SetDomainRuleGroupOutcomeCallable;
+			typedef std::function<void(const Waf_openapiClient*, const Model::SetDomainRuleGroupRequest&, const SetDomainRuleGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SetDomainRuleGroupAsyncHandler;
+
+			Waf_openapiClient(const Credentials &credentials, const ClientConfiguration &configuration);
+			Waf_openapiClient(const std::shared_ptr<CredentialsProvider> &credentialsProvider, const ClientConfiguration &configuration);
+			Waf_openapiClient(const std::string &accessKeyId, const std::string &accessKeySecret, const ClientConfiguration &configuration);
+			~Waf_openapiClient();
+			CreateCertificateOutcome createCertificate(const Model::CreateCertificateRequest &request)const;
+			void createCertificateAsync(const Model::CreateCertificateRequest& request, const CreateCertificateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateCertificateOutcomeCallable createCertificateCallable(const Model::CreateCertificateRequest& request) const;
+			CreateCertificateByCertificateIdOutcome createCertificateByCertificateId(const Model::CreateCertificateByCertificateIdRequest &request)const;
+			void createCertificateByCertificateIdAsync(const Model::CreateCertificateByCertificateIdRequest& request, const CreateCertificateByCertificateIdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateCertificateByCertificateIdOutcomeCallable createCertificateByCertificateIdCallable(const Model::CreateCertificateByCertificateIdRequest& request) const;
+			CreateDomainOutcome createDomain(const Model::CreateDomainRequest &request)const;
+			void createDomainAsync(const Model::CreateDomainRequest& request, const CreateDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateDomainOutcomeCallable createDomainCallable(const Model::CreateDomainRequest& request) const;
+			CreateIPBlockOutcome createIPBlock(const Model::CreateIPBlockRequest &request)const;
+			void createIPBlockAsync(const Model::CreateIPBlockRequest& request, const CreateIPBlockAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateIPBlockOutcomeCallable createIPBlockCallable(const Model::CreateIPBlockRequest& request) const;
+			CreateProtectionModuleRuleOutcome createProtectionModuleRule(const Model::CreateProtectionModuleRuleRequest &request)const;
+			void createProtectionModuleRuleAsync(const Model::CreateProtectionModuleRuleRequest& request, const CreateProtectionModuleRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateProtectionModuleRuleOutcomeCallable createProtectionModuleRuleCallable(const Model::CreateProtectionModuleRuleRequest& request) const;
+			DeleteDomainOutcome deleteDomain(const Model::DeleteDomainRequest &request)const;
+			void deleteDomainAsync(const Model::DeleteDomainRequest& request, const DeleteDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteDomainOutcomeCallable deleteDomainCallable(const Model::DeleteDomainRequest& request) const;
+			DescribeCertMatchStatusOutcome describeCertMatchStatus(const Model::DescribeCertMatchStatusRequest &request)const;
+			void describeCertMatchStatusAsync(const Model::DescribeCertMatchStatusRequest& request, const DescribeCertMatchStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeCertMatchStatusOutcomeCallable describeCertMatchStatusCallable(const Model::DescribeCertMatchStatusRequest& request) const;
+			DescribeCertificatesOutcome describeCertificates(const Model::DescribeCertificatesRequest &request)const;
+			void describeCertificatesAsync(const Model::DescribeCertificatesRequest& request, const DescribeCertificatesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeCertificatesOutcomeCallable describeCertificatesCallable(const Model::DescribeCertificatesRequest& request) const;
+			DescribeDomainOutcome describeDomain(const Model::DescribeDomainRequest &request)const;
+			void describeDomainAsync(const Model::DescribeDomainRequest& request, const DescribeDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDomainOutcomeCallable describeDomainCallable(const Model::DescribeDomainRequest& request) const;
+			DescribeDomainAdvanceConfigsOutcome describeDomainAdvanceConfigs(const Model::DescribeDomainAdvanceConfigsRequest &request)const;
+			void describeDomainAdvanceConfigsAsync(const Model::DescribeDomainAdvanceConfigsRequest& request, const DescribeDomainAdvanceConfigsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDomainAdvanceConfigsOutcomeCallable describeDomainAdvanceConfigsCallable(const Model::DescribeDomainAdvanceConfigsRequest& request) const;
+			DescribeDomainBasicConfigsOutcome describeDomainBasicConfigs(const Model::DescribeDomainBasicConfigsRequest &request)const;
+			void describeDomainBasicConfigsAsync(const Model::DescribeDomainBasicConfigsRequest& request, const DescribeDomainBasicConfigsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDomainBasicConfigsOutcomeCallable describeDomainBasicConfigsCallable(const Model::DescribeDomainBasicConfigsRequest& request) const;
+			DescribeDomainNamesOutcome describeDomainNames(const Model::DescribeDomainNamesRequest &request)const;
+			void describeDomainNamesAsync(const Model::DescribeDomainNamesRequest& request, const DescribeDomainNamesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDomainNamesOutcomeCallable describeDomainNamesCallable(const Model::DescribeDomainNamesRequest& request) const;
+			DescribeDomainRuleGroupOutcome describeDomainRuleGroup(const Model::DescribeDomainRuleGroupRequest &request)const;
+			void describeDomainRuleGroupAsync(const Model::DescribeDomainRuleGroupRequest& request, const DescribeDomainRuleGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDomainRuleGroupOutcomeCallable describeDomainRuleGroupCallable(const Model::DescribeDomainRuleGroupRequest& request) const;
+			DescribeDomainStatusOutcome describeDomainStatus(const Model::DescribeDomainStatusRequest &request)const;
+			void describeDomainStatusAsync(const Model::DescribeDomainStatusRequest& request, const DescribeDomainStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDomainStatusOutcomeCallable describeDomainStatusCallable(const Model::DescribeDomainStatusRequest& request) const;
+			DescribeInstanceInfoOutcome describeInstanceInfo(const Model::DescribeInstanceInfoRequest &request)const;
+			void describeInstanceInfoAsync(const Model::DescribeInstanceInfoRequest& request, const DescribeInstanceInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeInstanceInfoOutcomeCallable describeInstanceInfoCallable(const Model::DescribeInstanceInfoRequest& request) const;
+			DescribeInstanceSpecInfoOutcome describeInstanceSpecInfo(const Model::DescribeInstanceSpecInfoRequest &request)const;
+			void describeInstanceSpecInfoAsync(const Model::DescribeInstanceSpecInfoRequest& request, const DescribeInstanceSpecInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeInstanceSpecInfoOutcomeCallable describeInstanceSpecInfoCallable(const Model::DescribeInstanceSpecInfoRequest& request) const;
+			DescribeProtectBlockSummaryOutcome describeProtectBlockSummary(const Model::DescribeProtectBlockSummaryRequest &request)const;
+			void describeProtectBlockSummaryAsync(const Model::DescribeProtectBlockSummaryRequest& request, const DescribeProtectBlockSummaryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeProtectBlockSummaryOutcomeCallable describeProtectBlockSummaryCallable(const Model::DescribeProtectBlockSummaryRequest& request) const;
+			DescribeProtectionModuleModeOutcome describeProtectionModuleMode(const Model::DescribeProtectionModuleModeRequest &request)const;
+			void describeProtectionModuleModeAsync(const Model::DescribeProtectionModuleModeRequest& request, const DescribeProtectionModuleModeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeProtectionModuleModeOutcomeCallable describeProtectionModuleModeCallable(const Model::DescribeProtectionModuleModeRequest& request) const;
+			DescribeProtectionModuleRulesOutcome describeProtectionModuleRules(const Model::DescribeProtectionModuleRulesRequest &request)const;
+			void describeProtectionModuleRulesAsync(const Model::DescribeProtectionModuleRulesRequest& request, const DescribeProtectionModuleRulesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeProtectionModuleRulesOutcomeCallable describeProtectionModuleRulesCallable(const Model::DescribeProtectionModuleRulesRequest& request) const;
+			DescribeProtectionModuleStatusOutcome describeProtectionModuleStatus(const Model::DescribeProtectionModuleStatusRequest &request)const;
+			void describeProtectionModuleStatusAsync(const Model::DescribeProtectionModuleStatusRequest& request, const DescribeProtectionModuleStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeProtectionModuleStatusOutcomeCallable describeProtectionModuleStatusCallable(const Model::DescribeProtectionModuleStatusRequest& request) const;
+			DescribeRealProtectSummaryOutcome describeRealProtectSummary(const Model::DescribeRealProtectSummaryRequest &request)const;
+			void describeRealProtectSummaryAsync(const Model::DescribeRealProtectSummaryRequest& request, const DescribeRealProtectSummaryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeRealProtectSummaryOutcomeCallable describeRealProtectSummaryCallable(const Model::DescribeRealProtectSummaryRequest& request) const;
+			DescribeRuleMonitorOutcome describeRuleMonitor(const Model::DescribeRuleMonitorRequest &request)const;
+			void describeRuleMonitorAsync(const Model::DescribeRuleMonitorRequest& request, const DescribeRuleMonitorAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeRuleMonitorOutcomeCallable describeRuleMonitorCallable(const Model::DescribeRuleMonitorRequest& request) const;
+			DescribeRuleSummaryOutcome describeRuleSummary(const Model::DescribeRuleSummaryRequest &request)const;
+			void describeRuleSummaryAsync(const Model::DescribeRuleSummaryRequest& request, const DescribeRuleSummaryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeRuleSummaryOutcomeCallable describeRuleSummaryCallable(const Model::DescribeRuleSummaryRequest& request) const;
+			ModifyDomainOutcome modifyDomain(const Model::ModifyDomainRequest &request)const;
+			void modifyDomainAsync(const Model::ModifyDomainRequest& request, const ModifyDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ModifyDomainOutcomeCallable modifyDomainCallable(const Model::ModifyDomainRequest& request) const;
+			ModifyDomainClusterTypeOutcome modifyDomainClusterType(const Model::ModifyDomainClusterTypeRequest &request)const;
+			void modifyDomainClusterTypeAsync(const Model::ModifyDomainClusterTypeRequest& request, const ModifyDomainClusterTypeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ModifyDomainClusterTypeOutcomeCallable modifyDomainClusterTypeCallable(const Model::ModifyDomainClusterTypeRequest& request) const;
+			ModifyDomainIpv6StatusOutcome modifyDomainIpv6Status(const Model::ModifyDomainIpv6StatusRequest &request)const;
+			void modifyDomainIpv6StatusAsync(const Model::ModifyDomainIpv6StatusRequest& request, const ModifyDomainIpv6StatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ModifyDomainIpv6StatusOutcomeCallable modifyDomainIpv6StatusCallable(const Model::ModifyDomainIpv6StatusRequest& request) const;
+			ModifyLogRetrievalStatusOutcome modifyLogRetrievalStatus(const Model::ModifyLogRetrievalStatusRequest &request)const;
+			void modifyLogRetrievalStatusAsync(const Model::ModifyLogRetrievalStatusRequest& request, const ModifyLogRetrievalStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ModifyLogRetrievalStatusOutcomeCallable modifyLogRetrievalStatusCallable(const Model::ModifyLogRetrievalStatusRequest& request) const;
+			ModifyLogServiceStatusOutcome modifyLogServiceStatus(const Model::ModifyLogServiceStatusRequest &request)const;
+			void modifyLogServiceStatusAsync(const Model::ModifyLogServiceStatusRequest& request, const ModifyLogServiceStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ModifyLogServiceStatusOutcomeCallable modifyLogServiceStatusCallable(const Model::ModifyLogServiceStatusRequest& request) const;
+			ModifyProtectionModuleModeOutcome modifyProtectionModuleMode(const Model::ModifyProtectionModuleModeRequest &request)const;
+			void modifyProtectionModuleModeAsync(const Model::ModifyProtectionModuleModeRequest& request, const ModifyProtectionModuleModeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ModifyProtectionModuleModeOutcomeCallable modifyProtectionModuleModeCallable(const Model::ModifyProtectionModuleModeRequest& request) const;
+			ModifyProtectionModuleRuleOutcome modifyProtectionModuleRule(const Model::ModifyProtectionModuleRuleRequest &request)const;
+			void modifyProtectionModuleRuleAsync(const Model::ModifyProtectionModuleRuleRequest& request, const ModifyProtectionModuleRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ModifyProtectionModuleRuleOutcomeCallable modifyProtectionModuleRuleCallable(const Model::ModifyProtectionModuleRuleRequest& request) const;
+			ModifyProtectionModuleStatusOutcome modifyProtectionModuleStatus(const Model::ModifyProtectionModuleStatusRequest &request)const;
+			void modifyProtectionModuleStatusAsync(const Model::ModifyProtectionModuleStatusRequest& request, const ModifyProtectionModuleStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ModifyProtectionModuleStatusOutcomeCallable modifyProtectionModuleStatusCallable(const Model::ModifyProtectionModuleStatusRequest& request) const;
+			ModifyProtectionRuleCacheStatusOutcome modifyProtectionRuleCacheStatus(const Model::ModifyProtectionRuleCacheStatusRequest &request)const;
+			void modifyProtectionRuleCacheStatusAsync(const Model::ModifyProtectionRuleCacheStatusRequest& request, const ModifyProtectionRuleCacheStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ModifyProtectionRuleCacheStatusOutcomeCallable modifyProtectionRuleCacheStatusCallable(const Model::ModifyProtectionRuleCacheStatusRequest& request) const;
+			ModifyProtectionRuleStatusOutcome modifyProtectionRuleStatus(const Model::ModifyProtectionRuleStatusRequest &request)const;
+			void modifyProtectionRuleStatusAsync(const Model::ModifyProtectionRuleStatusRequest& request, const ModifyProtectionRuleStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ModifyProtectionRuleStatusOutcomeCallable modifyProtectionRuleStatusCallable(const Model::ModifyProtectionRuleStatusRequest& request) const;
+			SetDomainRuleGroupOutcome setDomainRuleGroup(const Model::SetDomainRuleGroupRequest &request)const;
+			void setDomainRuleGroupAsync(const Model::SetDomainRuleGroupRequest& request, const SetDomainRuleGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SetDomainRuleGroupOutcomeCallable setDomainRuleGroupCallable(const Model::SetDomainRuleGroupRequest& request) const;
+	
+		private:
+			std::shared_ptr<EndpointProvider> endpointProvider_;
+		};
+	}
+}
+
+#endif // !ALIBABACLOUD_WAF_OPENAPI_WAF_OPENAPICLIENT_H_

+ 32 - 0
waf-openapi/include/alibabacloud/waf-openapi/Waf_openapiExport.h

@@ -0,0 +1,32 @@
+/*
+ * 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_WAF_OPENAPI_WAF_OPENAPIEXPORT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_WAF_OPENAPIEXPORT_H_
+
+#include <alibabacloud/core/Global.h>
+
+#if defined(ALIBABACLOUD_SHARED)
+#	if defined(ALIBABACLOUD_WAF_OPENAPI_LIBRARY)
+#		define ALIBABACLOUD_WAF_OPENAPI_EXPORT ALIBABACLOUD_DECL_EXPORT
+#	else
+#		define ALIBABACLOUD_WAF_OPENAPI_EXPORT ALIBABACLOUD_DECL_IMPORT
+#	endif
+#else
+#	define ALIBABACLOUD_WAF_OPENAPI_EXPORT
+#endif
+
+#endif // !ALIBABACLOUD_WAF_OPENAPI_WAF_OPENAPIEXPORT_H_

+ 60 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/CreateCertificateByCertificateIdRequest.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_WAF_OPENAPI_MODEL_CREATECERTIFICATEBYCERTIFICATEIDREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATECERTIFICATEBYCERTIFICATEIDREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT CreateCertificateByCertificateIdRequest : public RpcServiceRequest
+			{
+
+			public:
+				CreateCertificateByCertificateIdRequest();
+				~CreateCertificateByCertificateIdRequest();
+
+				long getCertificateId()const;
+				void setCertificateId(long certificateId);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				long certificateId_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATECERTIFICATEBYCERTIFICATEIDREQUEST_H_

+ 51 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/CreateCertificateByCertificateIdResult.h

@@ -0,0 +1,51 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_CREATECERTIFICATEBYCERTIFICATEIDRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATECERTIFICATEBYCERTIFICATEIDRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT CreateCertificateByCertificateIdResult : public ServiceResult
+			{
+			public:
+
+
+				CreateCertificateByCertificateIdResult();
+				explicit CreateCertificateByCertificateIdResult(const std::string &payload);
+				~CreateCertificateByCertificateIdResult();
+				long getCertificateId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				long certificateId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATECERTIFICATEBYCERTIFICATEIDRESULT_H_

+ 69 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/CreateCertificateRequest.h

@@ -0,0 +1,69 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_CREATECERTIFICATEREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATECERTIFICATEREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT CreateCertificateRequest : public RpcServiceRequest
+			{
+
+			public:
+				CreateCertificateRequest();
+				~CreateCertificateRequest();
+
+				std::string getCertificate()const;
+				void setCertificate(const std::string& certificate);
+				std::string getPrivateKey()const;
+				void setPrivateKey(const std::string& privateKey);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getCertificateName()const;
+				void setCertificateName(const std::string& certificateName);
+				long getHttpsCertId()const;
+				void setHttpsCertId(long httpsCertId);
+
+            private:
+				std::string certificate_;
+				std::string privateKey_;
+				std::string sourceIp_;
+				std::string lang_;
+				std::string instanceId_;
+				std::string domain_;
+				std::string certificateName_;
+				long httpsCertId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATECERTIFICATEREQUEST_H_

+ 51 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/CreateCertificateResult.h

@@ -0,0 +1,51 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_CREATECERTIFICATERESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATECERTIFICATERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT CreateCertificateResult : public ServiceResult
+			{
+			public:
+
+
+				CreateCertificateResult();
+				explicit CreateCertificateResult(const std::string &payload);
+				~CreateCertificateResult();
+				long getCertificateId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				long certificateId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATECERTIFICATERESULT_H_

+ 99 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/CreateDomainRequest.h

@@ -0,0 +1,99 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_CREATEDOMAINREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATEDOMAINREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT CreateDomainRequest : public RpcServiceRequest
+			{
+
+			public:
+				CreateDomainRequest();
+				~CreateDomainRequest();
+
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getHttpPort()const;
+				void setHttpPort(const std::string& httpPort);
+				std::string getHttp2Port()const;
+				void setHttp2Port(const std::string& http2Port);
+				int getWriteTime()const;
+				void setWriteTime(int writeTime);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getLogHeaders()const;
+				void setLogHeaders(const std::string& logHeaders);
+				int getConnectionTime()const;
+				void setConnectionTime(int connectionTime);
+				int getClusterType()const;
+				void setClusterType(int clusterType);
+				int getHttpsRedirect()const;
+				void setHttpsRedirect(int httpsRedirect);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIps()const;
+				void setSourceIps(const std::string& sourceIps);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				int getIsAccessProduct()const;
+				void setIsAccessProduct(int isAccessProduct);
+				int getReadTime()const;
+				void setReadTime(int readTime);
+				std::string getHttpsPort()const;
+				void setHttpsPort(const std::string& httpsPort);
+				int getLoadBalancing()const;
+				void setLoadBalancing(int loadBalancing);
+				int getHttpToUserIp()const;
+				void setHttpToUserIp(int httpToUserIp);
+
+            private:
+				std::string resourceGroupId_;
+				std::string sourceIp_;
+				std::string httpPort_;
+				std::string http2Port_;
+				int writeTime_;
+				std::string lang_;
+				std::string logHeaders_;
+				int connectionTime_;
+				int clusterType_;
+				int httpsRedirect_;
+				std::string instanceId_;
+				std::string sourceIps_;
+				std::string domain_;
+				int isAccessProduct_;
+				int readTime_;
+				std::string httpsPort_;
+				int loadBalancing_;
+				int httpToUserIp_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATEDOMAINREQUEST_H_

+ 51 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/CreateDomainResult.h

@@ -0,0 +1,51 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_CREATEDOMAINRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATEDOMAINRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT CreateDomainResult : public ServiceResult
+			{
+			public:
+
+
+				CreateDomainResult();
+				explicit CreateDomainResult(const std::string &payload);
+				~CreateDomainResult();
+				std::string getCname()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string cname_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATEDOMAINRESULT_H_

+ 69 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/CreateIPBlockRequest.h

@@ -0,0 +1,69 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_CREATEIPBLOCKREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATEIPBLOCKREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT CreateIPBlockRequest : public RpcServiceRequest
+			{
+
+			public:
+				CreateIPBlockRequest();
+				~CreateIPBlockRequest();
+
+				std::string getDomainList()const;
+				void setDomainList(const std::string& domainList);
+				std::string getIPList()const;
+				void setIPList(const std::string& iPList);
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				long getBlockInterval()const;
+				void setBlockInterval(long blockInterval);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getOperationType()const;
+				void setOperationType(const std::string& operationType);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+
+            private:
+				std::string domainList_;
+				std::string iPList_;
+				std::string resourceGroupId_;
+				std::string sourceIp_;
+				long blockInterval_;
+				std::string lang_;
+				std::string operationType_;
+				std::string instanceId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATEIPBLOCKREQUEST_H_

+ 51 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/CreateIPBlockResult.h

@@ -0,0 +1,51 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_CREATEIPBLOCKRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATEIPBLOCKRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT CreateIPBlockResult : public ServiceResult
+			{
+			public:
+
+
+				CreateIPBlockResult();
+				explicit CreateIPBlockResult(const std::string &payload);
+				~CreateIPBlockResult();
+				std::string getData()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string data_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATEIPBLOCKRESULT_H_

+ 63 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/CreateProtectionModuleRuleRequest.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_WAF_OPENAPI_MODEL_CREATEPROTECTIONMODULERULEREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATEPROTECTIONMODULERULEREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT CreateProtectionModuleRuleRequest : public RpcServiceRequest
+			{
+
+			public:
+				CreateProtectionModuleRuleRequest();
+				~CreateProtectionModuleRuleRequest();
+
+				std::string getDefenseType()const;
+				void setDefenseType(const std::string& defenseType);
+				std::string getRule()const;
+				void setRule(const std::string& rule);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string defenseType_;
+				std::string rule_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATEPROTECTIONMODULERULEREQUEST_H_

+ 49 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/CreateProtectionModuleRuleResult.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_WAF_OPENAPI_MODEL_CREATEPROTECTIONMODULERULERESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATEPROTECTIONMODULERULERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT CreateProtectionModuleRuleResult : public ServiceResult
+			{
+			public:
+
+
+				CreateProtectionModuleRuleResult();
+				explicit CreateProtectionModuleRuleResult(const std::string &payload);
+				~CreateProtectionModuleRuleResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_CREATEPROTECTIONMODULERULERESULT_H_

+ 57 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DeleteDomainRequest.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_WAF_OPENAPI_MODEL_DELETEDOMAINREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DELETEDOMAINREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DeleteDomainRequest : public RpcServiceRequest
+			{
+
+			public:
+				DeleteDomainRequest();
+				~DeleteDomainRequest();
+
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DELETEDOMAINREQUEST_H_

+ 49 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DeleteDomainResult.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_WAF_OPENAPI_MODEL_DELETEDOMAINRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DELETEDOMAINRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DeleteDomainResult : public ServiceResult
+			{
+			public:
+
+
+				DeleteDomainResult();
+				explicit DeleteDomainResult(const std::string &payload);
+				~DeleteDomainResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DELETEDOMAINRESULT_H_

+ 63 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeCertMatchStatusRequest.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_WAF_OPENAPI_MODEL_DESCRIBECERTMATCHSTATUSREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBECERTMATCHSTATUSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeCertMatchStatusRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeCertMatchStatusRequest();
+				~DescribeCertMatchStatusRequest();
+
+				std::string getCertificate()const;
+				void setCertificate(const std::string& certificate);
+				std::string getPrivateKey()const;
+				void setPrivateKey(const std::string& privateKey);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string certificate_;
+				std::string privateKey_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBECERTMATCHSTATUSREQUEST_H_

+ 51 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeCertMatchStatusResult.h

@@ -0,0 +1,51 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_DESCRIBECERTMATCHSTATUSRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBECERTMATCHSTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeCertMatchStatusResult : public ServiceResult
+			{
+			public:
+
+
+				DescribeCertMatchStatusResult();
+				explicit DescribeCertMatchStatusResult(const std::string &payload);
+				~DescribeCertMatchStatusResult();
+				bool getMatchStatus()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				bool matchStatus_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBECERTMATCHSTATUSRESULT_H_

+ 57 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeCertificatesRequest.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_WAF_OPENAPI_MODEL_DESCRIBECERTIFICATESREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBECERTIFICATESREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeCertificatesRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeCertificatesRequest();
+				~DescribeCertificatesRequest();
+
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBECERTIFICATESREQUEST_H_

+ 59 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeCertificatesResult.h

@@ -0,0 +1,59 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_DESCRIBECERTIFICATESRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBECERTIFICATESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeCertificatesResult : public ServiceResult
+			{
+			public:
+				struct Certificate
+				{
+					std::vector<std::string> sans;
+					long certificateId;
+					std::string certificateName;
+					bool isUsing;
+					std::string commonName;
+				};
+
+
+				DescribeCertificatesResult();
+				explicit DescribeCertificatesResult(const std::string &payload);
+				~DescribeCertificatesResult();
+				std::vector<Certificate> getCertificates()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Certificate> certificates_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBECERTIFICATESRESULT_H_

+ 60 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainAdvanceConfigsRequest.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_WAF_OPENAPI_MODEL_DESCRIBEDOMAINADVANCECONFIGSREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINADVANCECONFIGSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeDomainAdvanceConfigsRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeDomainAdvanceConfigsRequest();
+				~DescribeDomainAdvanceConfigsRequest();
+
+				std::string getDomainList()const;
+				void setDomainList(const std::string& domainList);
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string domainList_;
+				std::string resourceGroupId_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINADVANCECONFIGSREQUEST_H_

+ 71 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainAdvanceConfigsResult.h

@@ -0,0 +1,71 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_DESCRIBEDOMAINADVANCECONFIGSRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINADVANCECONFIGSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeDomainAdvanceConfigsResult : public ServiceResult
+			{
+			public:
+				struct DomainConfig
+				{
+					struct Profile
+					{
+						std::string httpPort;
+						std::string rs;
+						int gSLBStatus;
+						int vipServiceStatus;
+						std::string http2Port;
+						int certStatus;
+						int ipv6Status;
+						int exclusiveVipStatus;
+						int clusterType;
+						std::string cname;
+						int resolvedType;
+						std::string httpsPort;
+					};
+					std::string domain;
+					Profile profile;
+				};
+
+
+				DescribeDomainAdvanceConfigsResult();
+				explicit DescribeDomainAdvanceConfigsResult(const std::string &payload);
+				~DescribeDomainAdvanceConfigsResult();
+				std::vector<DomainConfig> getDomainConfigs()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<DomainConfig> domainConfigs_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINADVANCECONFIGSRESULT_H_

+ 66 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainBasicConfigsRequest.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINBASICCONFIGSREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINBASICCONFIGSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeDomainBasicConfigsRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeDomainBasicConfigsRequest();
+				~DescribeDomainBasicConfigsRequest();
+
+				int getPageNumber()const;
+				void setPageNumber(int pageNumber);
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getDomainKey()const;
+				void setDomainKey(const std::string& domainKey);
+
+            private:
+				int pageNumber_;
+				std::string resourceGroupId_;
+				std::string sourceIp_;
+				int pageSize_;
+				std::string lang_;
+				std::string instanceId_;
+				std::string domainKey_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINBASICCONFIGSREQUEST_H_

+ 65 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainBasicConfigsResult.h

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINBASICCONFIGSRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINBASICCONFIGSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeDomainBasicConfigsResult : public ServiceResult
+			{
+			public:
+				struct DomainConfig
+				{
+					int status;
+					std::string owner;
+					int aclStatus;
+					long version;
+					int ccStatus;
+					int wafMode;
+					int wafStatus;
+					std::string domain;
+					int ccMode;
+				};
+
+
+				DescribeDomainBasicConfigsResult();
+				explicit DescribeDomainBasicConfigsResult(const std::string &payload);
+				~DescribeDomainBasicConfigsResult();
+				int getTotalCount()const;
+				std::vector<DomainConfig> getDomainConfigs()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalCount_;
+				std::vector<DomainConfig> domainConfigs_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINBASICCONFIGSRESULT_H_

+ 60 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainNamesRequest.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_WAF_OPENAPI_MODEL_DESCRIBEDOMAINNAMESREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINNAMESREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeDomainNamesRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeDomainNamesRequest();
+				~DescribeDomainNamesRequest();
+
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getCallSource()const;
+				void setCallSource(const std::string& callSource);
+
+            private:
+				std::string resourceGroupId_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string lang_;
+				std::string callSource_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINNAMESREQUEST_H_

+ 51 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainNamesResult.h

@@ -0,0 +1,51 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_DESCRIBEDOMAINNAMESRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINNAMESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeDomainNamesResult : public ServiceResult
+			{
+			public:
+
+
+				DescribeDomainNamesResult();
+				explicit DescribeDomainNamesResult(const std::string &payload);
+				~DescribeDomainNamesResult();
+				std::vector<std::string> getDomainNames()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<std::string> domainNames_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINNAMESRESULT_H_

+ 57 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainRequest.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_WAF_OPENAPI_MODEL_DESCRIBEDOMAINREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeDomainRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeDomainRequest();
+				~DescribeDomainRequest();
+
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINREQUEST_H_

+ 69 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainResult.h

@@ -0,0 +1,69 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_DESCRIBEDOMAINRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeDomainResult : public ServiceResult
+			{
+			public:
+				struct Domain
+				{
+					int httpToUserIp;
+					std::vector<std::string> httpPort;
+					int isAccessProduct;
+					int readTime;
+					std::vector<std::string> sourceIps;
+					int clusterType;
+					int loadBalancing;
+					std::string cname;
+					std::string logHeaders;
+					int writeTime;
+					std::vector<std::string> http2Port;
+					long version;
+					int httpsRedirect;
+					int connectionTime;
+					std::vector<std::string> httpsPort;
+				};
+
+
+				DescribeDomainResult();
+				explicit DescribeDomainResult(const std::string &payload);
+				~DescribeDomainResult();
+				Domain getDomain()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				Domain domain_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINRESULT_H_

+ 57 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainRuleGroupRequest.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_WAF_OPENAPI_MODEL_DESCRIBEDOMAINRULEGROUPREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINRULEGROUPREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeDomainRuleGroupRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeDomainRuleGroupRequest();
+				~DescribeDomainRuleGroupRequest();
+
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINRULEGROUPREQUEST_H_

+ 51 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainRuleGroupResult.h

@@ -0,0 +1,51 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_DESCRIBEDOMAINRULEGROUPRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINRULEGROUPRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeDomainRuleGroupResult : public ServiceResult
+			{
+			public:
+
+
+				DescribeDomainRuleGroupResult();
+				explicit DescribeDomainRuleGroupResult(const std::string &payload);
+				~DescribeDomainRuleGroupResult();
+				long getRuleGroupId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				long ruleGroupId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINRULEGROUPRESULT_H_

+ 60 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainStatusRequest.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_WAF_OPENAPI_MODEL_DESCRIBEDOMAINSTATUSREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINSTATUSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeDomainStatusRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeDomainStatusRequest();
+				~DescribeDomainStatusRequest();
+
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string resourceGroupId_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINSTATUSREQUEST_H_

+ 51 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeDomainStatusResult.h

@@ -0,0 +1,51 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_DESCRIBEDOMAINSTATUSRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINSTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeDomainStatusResult : public ServiceResult
+			{
+			public:
+
+
+				DescribeDomainStatusResult();
+				explicit DescribeDomainStatusResult(const std::string &payload);
+				~DescribeDomainStatusResult();
+				std::string getConfigStatus()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string configStatus_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEDOMAINSTATUSRESULT_H_

+ 60 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeInstanceInfoRequest.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_WAF_OPENAPI_MODEL_DESCRIBEINSTANCEINFOREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEINSTANCEINFOREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeInstanceInfoRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeInstanceInfoRequest();
+				~DescribeInstanceInfoRequest();
+
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getInstanceSource()const;
+				void setInstanceSource(const std::string& instanceSource);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string resourceGroupId_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string instanceSource_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEINSTANCEINFOREQUEST_H_

+ 63 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeInstanceInfoResult.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_WAF_OPENAPI_MODEL_DESCRIBEINSTANCEINFORESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEINSTANCEINFORESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeInstanceInfoResult : public ServiceResult
+			{
+			public:
+				struct InstanceInfo
+				{
+					int status;
+					std::string subscriptionType;
+					int trial;
+					std::string instanceId;
+					int inDebt;
+					std::string region;
+					int remainDay;
+					int payType;
+					long endDate;
+				};
+
+
+				DescribeInstanceInfoResult();
+				explicit DescribeInstanceInfoResult(const std::string &payload);
+				~DescribeInstanceInfoResult();
+				InstanceInfo getInstanceInfo()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				InstanceInfo instanceInfo_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEINSTANCEINFORESULT_H_

+ 57 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeInstanceSpecInfoRequest.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_WAF_OPENAPI_MODEL_DESCRIBEINSTANCESPECINFOREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEINSTANCESPECINFOREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeInstanceSpecInfoRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeInstanceSpecInfoRequest();
+				~DescribeInstanceSpecInfoRequest();
+
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string resourceGroupId_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEINSTANCESPECINFOREQUEST_H_

+ 62 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeInstanceSpecInfoResult.h

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

+ 69 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectBlockSummaryRequest.h

@@ -0,0 +1,69 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_DESCRIBEPROTECTBLOCKSUMMARYREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTBLOCKSUMMARYREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeProtectBlockSummaryRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeProtectBlockSummaryRequest();
+				~DescribeProtectBlockSummaryRequest();
+
+				std::string getStartTimestamp()const;
+				void setStartTimestamp(const std::string& startTimestamp);
+				std::string getEndTimestamp()const;
+				void setEndTimestamp(const std::string& endTimestamp);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getStep()const;
+				void setStep(const std::string& step);
+				std::string getRegion()const;
+				void setRegion(const std::string& region);
+
+            private:
+				std::string startTimestamp_;
+				std::string endTimestamp_;
+				std::string sourceIp_;
+				std::string lang_;
+				std::string instanceId_;
+				std::string domain_;
+				std::string step_;
+				std::string region_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTBLOCKSUMMARYREQUEST_H_

+ 57 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectBlockSummaryResult.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_WAF_OPENAPI_MODEL_DESCRIBEPROTECTBLOCKSUMMARYRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTBLOCKSUMMARYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeProtectBlockSummaryResult : public ServiceResult
+			{
+			public:
+				struct Item
+				{
+					long allPv;
+					long blockPv;
+					long index;
+				};
+
+
+				DescribeProtectBlockSummaryResult();
+				explicit DescribeProtectBlockSummaryResult(const std::string &payload);
+				~DescribeProtectBlockSummaryResult();
+				std::vector<Item> getProtectBlockSummarys()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Item> protectBlockSummarys_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTBLOCKSUMMARYRESULT_H_

+ 63 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectionModuleModeRequest.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_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULEMODEREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULEMODEREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeProtectionModuleModeRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeProtectionModuleModeRequest();
+				~DescribeProtectionModuleModeRequest();
+
+				std::string getDefenseType()const;
+				void setDefenseType(const std::string& defenseType);
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string defenseType_;
+				std::string resourceGroupId_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULEMODEREQUEST_H_

+ 51 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectionModuleModeResult.h

@@ -0,0 +1,51 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULEMODERESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULEMODERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeProtectionModuleModeResult : public ServiceResult
+			{
+			public:
+
+
+				DescribeProtectionModuleModeResult();
+				explicit DescribeProtectionModuleModeResult(const std::string &payload);
+				~DescribeProtectionModuleModeResult();
+				int getMode()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int mode_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULEMODERESULT_H_

+ 72 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectionModuleRulesRequest.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_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULERULESREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULERULESREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeProtectionModuleRulesRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeProtectionModuleRulesRequest();
+				~DescribeProtectionModuleRulesRequest();
+
+				int getPageNumber()const;
+				void setPageNumber(int pageNumber);
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getDefenseType()const;
+				void setDefenseType(const std::string& defenseType);
+				std::string getQuery()const;
+				void setQuery(const std::string& query);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+
+            private:
+				int pageNumber_;
+				std::string resourceGroupId_;
+				std::string sourceIp_;
+				int pageSize_;
+				std::string lang_;
+				std::string defenseType_;
+				std::string query_;
+				std::string instanceId_;
+				std::string domain_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULERULESREQUEST_H_

+ 61 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectionModuleRulesResult.h

@@ -0,0 +1,61 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULERULESRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULERULESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeProtectionModuleRulesResult : public ServiceResult
+			{
+			public:
+				struct Rule
+				{
+					long status;
+					long version;
+					std::string content;
+					long ruleId;
+					long time;
+				};
+
+
+				DescribeProtectionModuleRulesResult();
+				explicit DescribeProtectionModuleRulesResult(const std::string &payload);
+				~DescribeProtectionModuleRulesResult();
+				int getTotalCount()const;
+				std::vector<Rule> getRules()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int totalCount_;
+				std::vector<Rule> rules_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULERULESRESULT_H_

+ 60 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectionModuleStatusRequest.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_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULESTATUSREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULESTATUSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeProtectionModuleStatusRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeProtectionModuleStatusRequest();
+				~DescribeProtectionModuleStatusRequest();
+
+				std::string getDefenseType()const;
+				void setDefenseType(const std::string& defenseType);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string defenseType_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULESTATUSREQUEST_H_

+ 51 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeProtectionModuleStatusResult.h

@@ -0,0 +1,51 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULESTATUSRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULESTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeProtectionModuleStatusResult : public ServiceResult
+			{
+			public:
+
+
+				DescribeProtectionModuleStatusResult();
+				explicit DescribeProtectionModuleStatusResult(const std::string &payload);
+				~DescribeProtectionModuleStatusResult();
+				int getModuleStatus()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int moduleStatus_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEPROTECTIONMODULESTATUSRESULT_H_

+ 69 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeRealProtectSummaryRequest.h

@@ -0,0 +1,69 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_DESCRIBEREALPROTECTSUMMARYREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEREALPROTECTSUMMARYREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeRealProtectSummaryRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeRealProtectSummaryRequest();
+				~DescribeRealProtectSummaryRequest();
+
+				std::string getStartTimestamp()const;
+				void setStartTimestamp(const std::string& startTimestamp);
+				std::string getEndTimestamp()const;
+				void setEndTimestamp(const std::string& endTimestamp);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getStep()const;
+				void setStep(const std::string& step);
+				std::string getRegion()const;
+				void setRegion(const std::string& region);
+
+            private:
+				std::string startTimestamp_;
+				std::string endTimestamp_;
+				std::string sourceIp_;
+				std::string lang_;
+				std::string instanceId_;
+				std::string domain_;
+				std::string step_;
+				std::string region_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEREALPROTECTSUMMARYREQUEST_H_

+ 60 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeRealProtectSummaryResult.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_WAF_OPENAPI_MODEL_DESCRIBEREALPROTECTSUMMARYRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEREALPROTECTSUMMARYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeRealProtectSummaryResult : public ServiceResult
+			{
+			public:
+				struct Item
+				{
+					long sdkPv;
+					long jsinjectPv;
+					long qps;
+					long intelligencePv;
+					long algorithmPv;
+					long index;
+				};
+
+
+				DescribeRealProtectSummaryResult();
+				explicit DescribeRealProtectSummaryResult(const std::string &payload);
+				~DescribeRealProtectSummaryResult();
+				std::vector<Item> getRealProtectSummarys()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Item> realProtectSummarys_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBEREALPROTECTSUMMARYRESULT_H_

+ 72 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeRuleMonitorRequest.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_WAF_OPENAPI_MODEL_DESCRIBERULEMONITORREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBERULEMONITORREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeRuleMonitorRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeRuleMonitorRequest();
+				~DescribeRuleMonitorRequest();
+
+				std::string getPageNumber()const;
+				void setPageNumber(const std::string& pageNumber);
+				std::string getEndTimestamp()const;
+				void setEndTimestamp(const std::string& endTimestamp);
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getPageSize()const;
+				void setPageSize(const std::string& pageSize);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getRegion()const;
+				void setRegion(const std::string& region);
+
+            private:
+				std::string pageNumber_;
+				std::string endTimestamp_;
+				std::string resourceGroupId_;
+				std::string sourceIp_;
+				std::string pageSize_;
+				std::string lang_;
+				std::string instanceId_;
+				std::string domain_;
+				std::string region_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBERULEMONITORREQUEST_H_

+ 62 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeRuleMonitorResult.h

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

+ 72 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeRuleSummaryRequest.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_WAF_OPENAPI_MODEL_DESCRIBERULESUMMARYREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBERULESUMMARYREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeRuleSummaryRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeRuleSummaryRequest();
+				~DescribeRuleSummaryRequest();
+
+				std::string getEndTimestamp()const;
+				void setEndTimestamp(const std::string& endTimestamp);
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getAntibotType()const;
+				void setAntibotType(const std::string& antibotType);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getRegion()const;
+				void setRegion(const std::string& region);
+				std::string getRuleId()const;
+				void setRuleId(const std::string& ruleId);
+
+            private:
+				std::string endTimestamp_;
+				std::string resourceGroupId_;
+				std::string sourceIp_;
+				std::string lang_;
+				std::string antibotType_;
+				std::string instanceId_;
+				std::string domain_;
+				std::string region_;
+				std::string ruleId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBERULESUMMARYREQUEST_H_

+ 56 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/DescribeRuleSummaryResult.h

@@ -0,0 +1,56 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_DESCRIBERULESUMMARYRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBERULESUMMARYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT DescribeRuleSummaryResult : public ServiceResult
+			{
+			public:
+				struct Item
+				{
+					long pv;
+					long timeStamp;
+				};
+
+
+				DescribeRuleSummaryResult();
+				explicit DescribeRuleSummaryResult(const std::string &payload);
+				~DescribeRuleSummaryResult();
+				std::vector<Item> getRuleSummarys()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Item> ruleSummarys_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_DESCRIBERULESUMMARYRESULT_H_

+ 60 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyDomainClusterTypeRequest.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_WAF_OPENAPI_MODEL_MODIFYDOMAINCLUSTERTYPEREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYDOMAINCLUSTERTYPEREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyDomainClusterTypeRequest : public RpcServiceRequest
+			{
+
+			public:
+				ModifyDomainClusterTypeRequest();
+				~ModifyDomainClusterTypeRequest();
+
+				int getClusterType()const;
+				void setClusterType(int clusterType);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getRegion()const;
+				void setRegion(const std::string& region);
+
+            private:
+				int clusterType_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string region_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYDOMAINCLUSTERTYPEREQUEST_H_

+ 49 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyDomainClusterTypeResult.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_WAF_OPENAPI_MODEL_MODIFYDOMAINCLUSTERTYPERESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYDOMAINCLUSTERTYPERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyDomainClusterTypeResult : public ServiceResult
+			{
+			public:
+
+
+				ModifyDomainClusterTypeResult();
+				explicit ModifyDomainClusterTypeResult(const std::string &payload);
+				~ModifyDomainClusterTypeResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYDOMAINCLUSTERTYPERESULT_H_

+ 63 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyDomainIpv6StatusRequest.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_WAF_OPENAPI_MODEL_MODIFYDOMAINIPV6STATUSREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYDOMAINIPV6STATUSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyDomainIpv6StatusRequest : public RpcServiceRequest
+			{
+
+			public:
+				ModifyDomainIpv6StatusRequest();
+				~ModifyDomainIpv6StatusRequest();
+
+				std::string getWafVersion()const;
+				void setWafVersion(const std::string& wafVersion);
+				std::string getEnabled()const;
+				void setEnabled(const std::string& enabled);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string wafVersion_;
+				std::string enabled_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYDOMAINIPV6STATUSREQUEST_H_

+ 49 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyDomainIpv6StatusResult.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_WAF_OPENAPI_MODEL_MODIFYDOMAINIPV6STATUSRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYDOMAINIPV6STATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyDomainIpv6StatusResult : public ServiceResult
+			{
+			public:
+
+
+				ModifyDomainIpv6StatusResult();
+				explicit ModifyDomainIpv6StatusResult(const std::string &payload);
+				~ModifyDomainIpv6StatusResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYDOMAINIPV6STATUSRESULT_H_

+ 105 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyDomainRequest.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYDOMAINREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYDOMAINREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyDomainRequest : public RpcServiceRequest
+			{
+
+			public:
+				ModifyDomainRequest();
+				~ModifyDomainRequest();
+
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				int getXffHeaderMode()const;
+				void setXffHeaderMode(int xffHeaderMode);
+				std::string getHttpPort()const;
+				void setHttpPort(const std::string& httpPort);
+				std::string getHttp2Port()const;
+				void setHttp2Port(const std::string& http2Port);
+				int getWriteTime()const;
+				void setWriteTime(int writeTime);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getXffHeaders()const;
+				void setXffHeaders(const std::string& xffHeaders);
+				int getBindingIpv6()const;
+				void setBindingIpv6(int bindingIpv6);
+				std::string getLogHeaders()const;
+				void setLogHeaders(const std::string& logHeaders);
+				int getConnectionTime()const;
+				void setConnectionTime(int connectionTime);
+				int getClusterType()const;
+				void setClusterType(int clusterType);
+				int getHttpsRedirect()const;
+				void setHttpsRedirect(int httpsRedirect);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIps()const;
+				void setSourceIps(const std::string& sourceIps);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				int getIsAccessProduct()const;
+				void setIsAccessProduct(int isAccessProduct);
+				int getReadTime()const;
+				void setReadTime(int readTime);
+				std::string getHttpsPort()const;
+				void setHttpsPort(const std::string& httpsPort);
+				int getLoadBalancing()const;
+				void setLoadBalancing(int loadBalancing);
+				int getHttpToUserIp()const;
+				void setHttpToUserIp(int httpToUserIp);
+
+            private:
+				std::string sourceIp_;
+				int xffHeaderMode_;
+				std::string httpPort_;
+				std::string http2Port_;
+				int writeTime_;
+				std::string lang_;
+				std::string xffHeaders_;
+				int bindingIpv6_;
+				std::string logHeaders_;
+				int connectionTime_;
+				int clusterType_;
+				int httpsRedirect_;
+				std::string instanceId_;
+				std::string sourceIps_;
+				std::string domain_;
+				int isAccessProduct_;
+				int readTime_;
+				std::string httpsPort_;
+				int loadBalancing_;
+				int httpToUserIp_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYDOMAINREQUEST_H_

+ 49 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyDomainResult.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_WAF_OPENAPI_MODEL_MODIFYDOMAINRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYDOMAINRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyDomainResult : public ServiceResult
+			{
+			public:
+
+
+				ModifyDomainResult();
+				explicit ModifyDomainResult(const std::string &payload);
+				~ModifyDomainResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYDOMAINRESULT_H_

+ 60 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyLogRetrievalStatusRequest.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_WAF_OPENAPI_MODEL_MODIFYLOGRETRIEVALSTATUSREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYLOGRETRIEVALSTATUSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyLogRetrievalStatusRequest : public RpcServiceRequest
+			{
+
+			public:
+				ModifyLogRetrievalStatusRequest();
+				~ModifyLogRetrievalStatusRequest();
+
+				int getEnabled()const;
+				void setEnabled(int enabled);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				int enabled_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYLOGRETRIEVALSTATUSREQUEST_H_

+ 49 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyLogRetrievalStatusResult.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_WAF_OPENAPI_MODEL_MODIFYLOGRETRIEVALSTATUSRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYLOGRETRIEVALSTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyLogRetrievalStatusResult : public ServiceResult
+			{
+			public:
+
+
+				ModifyLogRetrievalStatusResult();
+				explicit ModifyLogRetrievalStatusResult(const std::string &payload);
+				~ModifyLogRetrievalStatusResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYLOGRETRIEVALSTATUSRESULT_H_

+ 60 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyLogServiceStatusRequest.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_WAF_OPENAPI_MODEL_MODIFYLOGSERVICESTATUSREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYLOGSERVICESTATUSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyLogServiceStatusRequest : public RpcServiceRequest
+			{
+
+			public:
+				ModifyLogServiceStatusRequest();
+				~ModifyLogServiceStatusRequest();
+
+				int getEnabled()const;
+				void setEnabled(int enabled);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				int enabled_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYLOGSERVICESTATUSREQUEST_H_

+ 49 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyLogServiceStatusResult.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_WAF_OPENAPI_MODEL_MODIFYLOGSERVICESTATUSRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYLOGSERVICESTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyLogServiceStatusResult : public ServiceResult
+			{
+			public:
+
+
+				ModifyLogServiceStatusResult();
+				explicit ModifyLogServiceStatusResult(const std::string &payload);
+				~ModifyLogServiceStatusResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYLOGSERVICESTATUSRESULT_H_

+ 63 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionModuleModeRequest.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_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULEMODEREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULEMODEREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyProtectionModuleModeRequest : public RpcServiceRequest
+			{
+
+			public:
+				ModifyProtectionModuleModeRequest();
+				~ModifyProtectionModuleModeRequest();
+
+				std::string getDefenseType()const;
+				void setDefenseType(const std::string& defenseType);
+				int getMode()const;
+				void setMode(int mode);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string defenseType_;
+				int mode_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULEMODEREQUEST_H_

+ 49 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionModuleModeResult.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_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULEMODERESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULEMODERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyProtectionModuleModeResult : public ServiceResult
+			{
+			public:
+
+
+				ModifyProtectionModuleModeResult();
+				explicit ModifyProtectionModuleModeResult(const std::string &payload);
+				~ModifyProtectionModuleModeResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULEMODERESULT_H_

+ 69 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionModuleRuleRequest.h

@@ -0,0 +1,69 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULERULEREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULERULEREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyProtectionModuleRuleRequest : public RpcServiceRequest
+			{
+
+			public:
+				ModifyProtectionModuleRuleRequest();
+				~ModifyProtectionModuleRuleRequest();
+
+				std::string getRule()const;
+				void setRule(const std::string& rule);
+				long getLockVersion()const;
+				void setLockVersion(long lockVersion);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getDefenseType()const;
+				void setDefenseType(const std::string& defenseType);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				long getRuleId()const;
+				void setRuleId(long ruleId);
+
+            private:
+				std::string rule_;
+				long lockVersion_;
+				std::string sourceIp_;
+				std::string lang_;
+				std::string defenseType_;
+				std::string instanceId_;
+				std::string domain_;
+				long ruleId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULERULEREQUEST_H_

+ 49 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionModuleRuleResult.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_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULERULERESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULERULERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyProtectionModuleRuleResult : public ServiceResult
+			{
+			public:
+
+
+				ModifyProtectionModuleRuleResult();
+				explicit ModifyProtectionModuleRuleResult(const std::string &payload);
+				~ModifyProtectionModuleRuleResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULERULERESULT_H_

+ 63 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionModuleStatusRequest.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_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULESTATUSREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULESTATUSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyProtectionModuleStatusRequest : public RpcServiceRequest
+			{
+
+			public:
+				ModifyProtectionModuleStatusRequest();
+				~ModifyProtectionModuleStatusRequest();
+
+				std::string getDefenseType()const;
+				void setDefenseType(const std::string& defenseType);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				int getModuleStatus()const;
+				void setModuleStatus(int moduleStatus);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string defenseType_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				int moduleStatus_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULESTATUSREQUEST_H_

+ 49 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionModuleStatusResult.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_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULESTATUSRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULESTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyProtectionModuleStatusResult : public ServiceResult
+			{
+			public:
+
+
+				ModifyProtectionModuleStatusResult();
+				explicit ModifyProtectionModuleStatusResult(const std::string &payload);
+				~ModifyProtectionModuleStatusResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONMODULESTATUSRESULT_H_

+ 63 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionRuleCacheStatusRequest.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_WAF_OPENAPI_MODEL_MODIFYPROTECTIONRULECACHESTATUSREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONRULECACHESTATUSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyProtectionRuleCacheStatusRequest : public RpcServiceRequest
+			{
+
+			public:
+				ModifyProtectionRuleCacheStatusRequest();
+				~ModifyProtectionRuleCacheStatusRequest();
+
+				std::string getDefenseType()const;
+				void setDefenseType(const std::string& defenseType);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				long getRuleId()const;
+				void setRuleId(long ruleId);
+
+            private:
+				std::string defenseType_;
+				std::string instanceId_;
+				std::string sourceIp_;
+				std::string domain_;
+				std::string lang_;
+				long ruleId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONRULECACHESTATUSREQUEST_H_

+ 49 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionRuleCacheStatusResult.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_WAF_OPENAPI_MODEL_MODIFYPROTECTIONRULECACHESTATUSRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONRULECACHESTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyProtectionRuleCacheStatusResult : public ServiceResult
+			{
+			public:
+
+
+				ModifyProtectionRuleCacheStatusResult();
+				explicit ModifyProtectionRuleCacheStatusResult(const std::string &payload);
+				~ModifyProtectionRuleCacheStatusResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONRULECACHESTATUSRESULT_H_

+ 69 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionRuleStatusRequest.h

@@ -0,0 +1,69 @@
+/*
+ * 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_WAF_OPENAPI_MODEL_MODIFYPROTECTIONRULESTATUSREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONRULESTATUSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyProtectionRuleStatusRequest : public RpcServiceRequest
+			{
+
+			public:
+				ModifyProtectionRuleStatusRequest();
+				~ModifyProtectionRuleStatusRequest();
+
+				long getLockVersion()const;
+				void setLockVersion(long lockVersion);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getDefenseType()const;
+				void setDefenseType(const std::string& defenseType);
+				int getRuleStatus()const;
+				void setRuleStatus(int ruleStatus);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getDomain()const;
+				void setDomain(const std::string& domain);
+				long getRuleId()const;
+				void setRuleId(long ruleId);
+
+            private:
+				long lockVersion_;
+				std::string sourceIp_;
+				std::string lang_;
+				std::string defenseType_;
+				int ruleStatus_;
+				std::string instanceId_;
+				std::string domain_;
+				long ruleId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONRULESTATUSREQUEST_H_

+ 49 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/ModifyProtectionRuleStatusResult.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_WAF_OPENAPI_MODEL_MODIFYPROTECTIONRULESTATUSRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONRULESTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT ModifyProtectionRuleStatusResult : public ServiceResult
+			{
+			public:
+
+
+				ModifyProtectionRuleStatusResult();
+				explicit ModifyProtectionRuleStatusResult(const std::string &payload);
+				~ModifyProtectionRuleStatusResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_MODIFYPROTECTIONRULESTATUSRESULT_H_

+ 66 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/SetDomainRuleGroupRequest.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_WAF_OPENAPI_MODEL_SETDOMAINRULEGROUPREQUEST_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_SETDOMAINRULEGROUPREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT SetDomainRuleGroupRequest : public RpcServiceRequest
+			{
+
+			public:
+				SetDomainRuleGroupRequest();
+				~SetDomainRuleGroupRequest();
+
+				long getWafVersion()const;
+				void setWafVersion(long wafVersion);
+				long getRuleGroupId()const;
+				void setRuleGroupId(long ruleGroupId);
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getSourceIp()const;
+				void setSourceIp(const std::string& sourceIp);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getDomains()const;
+				void setDomains(const std::string& domains);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+
+            private:
+				long wafVersion_;
+				long ruleGroupId_;
+				std::string resourceGroupId_;
+				std::string sourceIp_;
+				std::string lang_;
+				std::string domains_;
+				std::string instanceId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_SETDOMAINRULEGROUPREQUEST_H_

+ 49 - 0
waf-openapi/include/alibabacloud/waf-openapi/model/SetDomainRuleGroupResult.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_WAF_OPENAPI_MODEL_SETDOMAINRULEGROUPRESULT_H_
+#define ALIBABACLOUD_WAF_OPENAPI_MODEL_SETDOMAINRULEGROUPRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/waf-openapi/Waf_openapiExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Waf_openapi
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_WAF_OPENAPI_EXPORT SetDomainRuleGroupResult : public ServiceResult
+			{
+			public:
+
+
+				SetDomainRuleGroupResult();
+				explicit SetDomainRuleGroupResult(const std::string &payload);
+				~SetDomainRuleGroupResult();
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_WAF_OPENAPI_MODEL_SETDOMAINRULEGROUPRESULT_H_

+ 1277 - 0
waf-openapi/src/Waf-openapiClient.cc

@@ -0,0 +1,1277 @@
+/*
+ * 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/waf-openapi/Waf_openapiClient.h>
+#include <alibabacloud/core/SimpleCredentialsProvider.h>
+
+using namespace AlibabaCloud;
+using namespace AlibabaCloud::Location;
+using namespace AlibabaCloud::Waf_openapi;
+using namespace AlibabaCloud::Waf_openapi::Model;
+
+namespace
+{
+	const std::string SERVICE_NAME = "waf-openapi";
+}
+
+Waf_openapiClient::Waf_openapiClient(const Credentials &credentials, const ClientConfiguration &configuration) :
+	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(credentials), configuration)
+{
+	auto locationClient = std::make_shared<LocationClient>(credentials, configuration);
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "waf");
+}
+
+Waf_openapiClient::Waf_openapiClient(const std::shared_ptr<CredentialsProvider>& credentialsProvider, const ClientConfiguration & configuration) :
+	RpcServiceClient(SERVICE_NAME, credentialsProvider, configuration)
+{
+	auto locationClient = std::make_shared<LocationClient>(credentialsProvider, configuration);
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "waf");
+}
+
+Waf_openapiClient::Waf_openapiClient(const std::string & accessKeyId, const std::string & accessKeySecret, const ClientConfiguration & configuration) :
+	RpcServiceClient(SERVICE_NAME, std::make_shared<SimpleCredentialsProvider>(accessKeyId, accessKeySecret), configuration)
+{
+	auto locationClient = std::make_shared<LocationClient>(accessKeyId, accessKeySecret, configuration);
+	endpointProvider_ = std::make_shared<EndpointProvider>(locationClient, configuration.regionId(), SERVICE_NAME, "waf");
+}
+
+Waf_openapiClient::~Waf_openapiClient()
+{}
+
+Waf_openapiClient::CreateCertificateOutcome Waf_openapiClient::createCertificate(const CreateCertificateRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateCertificateOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateCertificateOutcome(CreateCertificateResult(outcome.result()));
+	else
+		return CreateCertificateOutcome(outcome.error());
+}
+
+void Waf_openapiClient::createCertificateAsync(const CreateCertificateRequest& request, const CreateCertificateAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createCertificate(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::CreateCertificateOutcomeCallable Waf_openapiClient::createCertificateCallable(const CreateCertificateRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateCertificateOutcome()>>(
+			[this, request]()
+			{
+			return this->createCertificate(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::CreateCertificateByCertificateIdOutcome Waf_openapiClient::createCertificateByCertificateId(const CreateCertificateByCertificateIdRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateCertificateByCertificateIdOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateCertificateByCertificateIdOutcome(CreateCertificateByCertificateIdResult(outcome.result()));
+	else
+		return CreateCertificateByCertificateIdOutcome(outcome.error());
+}
+
+void Waf_openapiClient::createCertificateByCertificateIdAsync(const CreateCertificateByCertificateIdRequest& request, const CreateCertificateByCertificateIdAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createCertificateByCertificateId(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::CreateCertificateByCertificateIdOutcomeCallable Waf_openapiClient::createCertificateByCertificateIdCallable(const CreateCertificateByCertificateIdRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateCertificateByCertificateIdOutcome()>>(
+			[this, request]()
+			{
+			return this->createCertificateByCertificateId(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::CreateDomainOutcome Waf_openapiClient::createDomain(const CreateDomainRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateDomainOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateDomainOutcome(CreateDomainResult(outcome.result()));
+	else
+		return CreateDomainOutcome(outcome.error());
+}
+
+void Waf_openapiClient::createDomainAsync(const CreateDomainRequest& request, const CreateDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createDomain(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::CreateDomainOutcomeCallable Waf_openapiClient::createDomainCallable(const CreateDomainRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateDomainOutcome()>>(
+			[this, request]()
+			{
+			return this->createDomain(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::CreateIPBlockOutcome Waf_openapiClient::createIPBlock(const CreateIPBlockRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateIPBlockOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateIPBlockOutcome(CreateIPBlockResult(outcome.result()));
+	else
+		return CreateIPBlockOutcome(outcome.error());
+}
+
+void Waf_openapiClient::createIPBlockAsync(const CreateIPBlockRequest& request, const CreateIPBlockAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createIPBlock(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::CreateIPBlockOutcomeCallable Waf_openapiClient::createIPBlockCallable(const CreateIPBlockRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateIPBlockOutcome()>>(
+			[this, request]()
+			{
+			return this->createIPBlock(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::CreateProtectionModuleRuleOutcome Waf_openapiClient::createProtectionModuleRule(const CreateProtectionModuleRuleRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateProtectionModuleRuleOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateProtectionModuleRuleOutcome(CreateProtectionModuleRuleResult(outcome.result()));
+	else
+		return CreateProtectionModuleRuleOutcome(outcome.error());
+}
+
+void Waf_openapiClient::createProtectionModuleRuleAsync(const CreateProtectionModuleRuleRequest& request, const CreateProtectionModuleRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createProtectionModuleRule(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::CreateProtectionModuleRuleOutcomeCallable Waf_openapiClient::createProtectionModuleRuleCallable(const CreateProtectionModuleRuleRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateProtectionModuleRuleOutcome()>>(
+			[this, request]()
+			{
+			return this->createProtectionModuleRule(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DeleteDomainOutcome Waf_openapiClient::deleteDomain(const DeleteDomainRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteDomainOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteDomainOutcome(DeleteDomainResult(outcome.result()));
+	else
+		return DeleteDomainOutcome(outcome.error());
+}
+
+void Waf_openapiClient::deleteDomainAsync(const DeleteDomainRequest& request, const DeleteDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteDomain(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DeleteDomainOutcomeCallable Waf_openapiClient::deleteDomainCallable(const DeleteDomainRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteDomainOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteDomain(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeCertMatchStatusOutcome Waf_openapiClient::describeCertMatchStatus(const DescribeCertMatchStatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeCertMatchStatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeCertMatchStatusOutcome(DescribeCertMatchStatusResult(outcome.result()));
+	else
+		return DescribeCertMatchStatusOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeCertMatchStatusAsync(const DescribeCertMatchStatusRequest& request, const DescribeCertMatchStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeCertMatchStatus(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeCertMatchStatusOutcomeCallable Waf_openapiClient::describeCertMatchStatusCallable(const DescribeCertMatchStatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeCertMatchStatusOutcome()>>(
+			[this, request]()
+			{
+			return this->describeCertMatchStatus(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeCertificatesOutcome Waf_openapiClient::describeCertificates(const DescribeCertificatesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeCertificatesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeCertificatesOutcome(DescribeCertificatesResult(outcome.result()));
+	else
+		return DescribeCertificatesOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeCertificatesAsync(const DescribeCertificatesRequest& request, const DescribeCertificatesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeCertificates(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeCertificatesOutcomeCallable Waf_openapiClient::describeCertificatesCallable(const DescribeCertificatesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeCertificatesOutcome()>>(
+			[this, request]()
+			{
+			return this->describeCertificates(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeDomainOutcome Waf_openapiClient::describeDomain(const DescribeDomainRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeDomainOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeDomainOutcome(DescribeDomainResult(outcome.result()));
+	else
+		return DescribeDomainOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeDomainAsync(const DescribeDomainRequest& request, const DescribeDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeDomain(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeDomainOutcomeCallable Waf_openapiClient::describeDomainCallable(const DescribeDomainRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeDomainOutcome()>>(
+			[this, request]()
+			{
+			return this->describeDomain(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeDomainAdvanceConfigsOutcome Waf_openapiClient::describeDomainAdvanceConfigs(const DescribeDomainAdvanceConfigsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeDomainAdvanceConfigsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeDomainAdvanceConfigsOutcome(DescribeDomainAdvanceConfigsResult(outcome.result()));
+	else
+		return DescribeDomainAdvanceConfigsOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeDomainAdvanceConfigsAsync(const DescribeDomainAdvanceConfigsRequest& request, const DescribeDomainAdvanceConfigsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeDomainAdvanceConfigs(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeDomainAdvanceConfigsOutcomeCallable Waf_openapiClient::describeDomainAdvanceConfigsCallable(const DescribeDomainAdvanceConfigsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeDomainAdvanceConfigsOutcome()>>(
+			[this, request]()
+			{
+			return this->describeDomainAdvanceConfigs(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeDomainBasicConfigsOutcome Waf_openapiClient::describeDomainBasicConfigs(const DescribeDomainBasicConfigsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeDomainBasicConfigsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeDomainBasicConfigsOutcome(DescribeDomainBasicConfigsResult(outcome.result()));
+	else
+		return DescribeDomainBasicConfigsOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeDomainBasicConfigsAsync(const DescribeDomainBasicConfigsRequest& request, const DescribeDomainBasicConfigsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeDomainBasicConfigs(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeDomainBasicConfigsOutcomeCallable Waf_openapiClient::describeDomainBasicConfigsCallable(const DescribeDomainBasicConfigsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeDomainBasicConfigsOutcome()>>(
+			[this, request]()
+			{
+			return this->describeDomainBasicConfigs(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeDomainNamesOutcome Waf_openapiClient::describeDomainNames(const DescribeDomainNamesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeDomainNamesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeDomainNamesOutcome(DescribeDomainNamesResult(outcome.result()));
+	else
+		return DescribeDomainNamesOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeDomainNamesAsync(const DescribeDomainNamesRequest& request, const DescribeDomainNamesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeDomainNames(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeDomainNamesOutcomeCallable Waf_openapiClient::describeDomainNamesCallable(const DescribeDomainNamesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeDomainNamesOutcome()>>(
+			[this, request]()
+			{
+			return this->describeDomainNames(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeDomainRuleGroupOutcome Waf_openapiClient::describeDomainRuleGroup(const DescribeDomainRuleGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeDomainRuleGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeDomainRuleGroupOutcome(DescribeDomainRuleGroupResult(outcome.result()));
+	else
+		return DescribeDomainRuleGroupOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeDomainRuleGroupAsync(const DescribeDomainRuleGroupRequest& request, const DescribeDomainRuleGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeDomainRuleGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeDomainRuleGroupOutcomeCallable Waf_openapiClient::describeDomainRuleGroupCallable(const DescribeDomainRuleGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeDomainRuleGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->describeDomainRuleGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeDomainStatusOutcome Waf_openapiClient::describeDomainStatus(const DescribeDomainStatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeDomainStatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeDomainStatusOutcome(DescribeDomainStatusResult(outcome.result()));
+	else
+		return DescribeDomainStatusOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeDomainStatusAsync(const DescribeDomainStatusRequest& request, const DescribeDomainStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeDomainStatus(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeDomainStatusOutcomeCallable Waf_openapiClient::describeDomainStatusCallable(const DescribeDomainStatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeDomainStatusOutcome()>>(
+			[this, request]()
+			{
+			return this->describeDomainStatus(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeInstanceInfoOutcome Waf_openapiClient::describeInstanceInfo(const DescribeInstanceInfoRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeInstanceInfoOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeInstanceInfoOutcome(DescribeInstanceInfoResult(outcome.result()));
+	else
+		return DescribeInstanceInfoOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeInstanceInfoAsync(const DescribeInstanceInfoRequest& request, const DescribeInstanceInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeInstanceInfo(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeInstanceInfoOutcomeCallable Waf_openapiClient::describeInstanceInfoCallable(const DescribeInstanceInfoRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeInstanceInfoOutcome()>>(
+			[this, request]()
+			{
+			return this->describeInstanceInfo(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeInstanceSpecInfoOutcome Waf_openapiClient::describeInstanceSpecInfo(const DescribeInstanceSpecInfoRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeInstanceSpecInfoOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeInstanceSpecInfoOutcome(DescribeInstanceSpecInfoResult(outcome.result()));
+	else
+		return DescribeInstanceSpecInfoOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeInstanceSpecInfoAsync(const DescribeInstanceSpecInfoRequest& request, const DescribeInstanceSpecInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeInstanceSpecInfo(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeInstanceSpecInfoOutcomeCallable Waf_openapiClient::describeInstanceSpecInfoCallable(const DescribeInstanceSpecInfoRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeInstanceSpecInfoOutcome()>>(
+			[this, request]()
+			{
+			return this->describeInstanceSpecInfo(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeProtectBlockSummaryOutcome Waf_openapiClient::describeProtectBlockSummary(const DescribeProtectBlockSummaryRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeProtectBlockSummaryOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeProtectBlockSummaryOutcome(DescribeProtectBlockSummaryResult(outcome.result()));
+	else
+		return DescribeProtectBlockSummaryOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeProtectBlockSummaryAsync(const DescribeProtectBlockSummaryRequest& request, const DescribeProtectBlockSummaryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeProtectBlockSummary(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeProtectBlockSummaryOutcomeCallable Waf_openapiClient::describeProtectBlockSummaryCallable(const DescribeProtectBlockSummaryRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeProtectBlockSummaryOutcome()>>(
+			[this, request]()
+			{
+			return this->describeProtectBlockSummary(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeProtectionModuleModeOutcome Waf_openapiClient::describeProtectionModuleMode(const DescribeProtectionModuleModeRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeProtectionModuleModeOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeProtectionModuleModeOutcome(DescribeProtectionModuleModeResult(outcome.result()));
+	else
+		return DescribeProtectionModuleModeOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeProtectionModuleModeAsync(const DescribeProtectionModuleModeRequest& request, const DescribeProtectionModuleModeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeProtectionModuleMode(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeProtectionModuleModeOutcomeCallable Waf_openapiClient::describeProtectionModuleModeCallable(const DescribeProtectionModuleModeRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeProtectionModuleModeOutcome()>>(
+			[this, request]()
+			{
+			return this->describeProtectionModuleMode(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeProtectionModuleRulesOutcome Waf_openapiClient::describeProtectionModuleRules(const DescribeProtectionModuleRulesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeProtectionModuleRulesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeProtectionModuleRulesOutcome(DescribeProtectionModuleRulesResult(outcome.result()));
+	else
+		return DescribeProtectionModuleRulesOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeProtectionModuleRulesAsync(const DescribeProtectionModuleRulesRequest& request, const DescribeProtectionModuleRulesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeProtectionModuleRules(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeProtectionModuleRulesOutcomeCallable Waf_openapiClient::describeProtectionModuleRulesCallable(const DescribeProtectionModuleRulesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeProtectionModuleRulesOutcome()>>(
+			[this, request]()
+			{
+			return this->describeProtectionModuleRules(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeProtectionModuleStatusOutcome Waf_openapiClient::describeProtectionModuleStatus(const DescribeProtectionModuleStatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeProtectionModuleStatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeProtectionModuleStatusOutcome(DescribeProtectionModuleStatusResult(outcome.result()));
+	else
+		return DescribeProtectionModuleStatusOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeProtectionModuleStatusAsync(const DescribeProtectionModuleStatusRequest& request, const DescribeProtectionModuleStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeProtectionModuleStatus(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeProtectionModuleStatusOutcomeCallable Waf_openapiClient::describeProtectionModuleStatusCallable(const DescribeProtectionModuleStatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeProtectionModuleStatusOutcome()>>(
+			[this, request]()
+			{
+			return this->describeProtectionModuleStatus(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeRealProtectSummaryOutcome Waf_openapiClient::describeRealProtectSummary(const DescribeRealProtectSummaryRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeRealProtectSummaryOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeRealProtectSummaryOutcome(DescribeRealProtectSummaryResult(outcome.result()));
+	else
+		return DescribeRealProtectSummaryOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeRealProtectSummaryAsync(const DescribeRealProtectSummaryRequest& request, const DescribeRealProtectSummaryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeRealProtectSummary(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeRealProtectSummaryOutcomeCallable Waf_openapiClient::describeRealProtectSummaryCallable(const DescribeRealProtectSummaryRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeRealProtectSummaryOutcome()>>(
+			[this, request]()
+			{
+			return this->describeRealProtectSummary(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeRuleMonitorOutcome Waf_openapiClient::describeRuleMonitor(const DescribeRuleMonitorRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeRuleMonitorOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeRuleMonitorOutcome(DescribeRuleMonitorResult(outcome.result()));
+	else
+		return DescribeRuleMonitorOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeRuleMonitorAsync(const DescribeRuleMonitorRequest& request, const DescribeRuleMonitorAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeRuleMonitor(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeRuleMonitorOutcomeCallable Waf_openapiClient::describeRuleMonitorCallable(const DescribeRuleMonitorRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeRuleMonitorOutcome()>>(
+			[this, request]()
+			{
+			return this->describeRuleMonitor(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::DescribeRuleSummaryOutcome Waf_openapiClient::describeRuleSummary(const DescribeRuleSummaryRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DescribeRuleSummaryOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DescribeRuleSummaryOutcome(DescribeRuleSummaryResult(outcome.result()));
+	else
+		return DescribeRuleSummaryOutcome(outcome.error());
+}
+
+void Waf_openapiClient::describeRuleSummaryAsync(const DescribeRuleSummaryRequest& request, const DescribeRuleSummaryAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, describeRuleSummary(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::DescribeRuleSummaryOutcomeCallable Waf_openapiClient::describeRuleSummaryCallable(const DescribeRuleSummaryRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DescribeRuleSummaryOutcome()>>(
+			[this, request]()
+			{
+			return this->describeRuleSummary(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::ModifyDomainOutcome Waf_openapiClient::modifyDomain(const ModifyDomainRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ModifyDomainOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ModifyDomainOutcome(ModifyDomainResult(outcome.result()));
+	else
+		return ModifyDomainOutcome(outcome.error());
+}
+
+void Waf_openapiClient::modifyDomainAsync(const ModifyDomainRequest& request, const ModifyDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, modifyDomain(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::ModifyDomainOutcomeCallable Waf_openapiClient::modifyDomainCallable(const ModifyDomainRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ModifyDomainOutcome()>>(
+			[this, request]()
+			{
+			return this->modifyDomain(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::ModifyDomainClusterTypeOutcome Waf_openapiClient::modifyDomainClusterType(const ModifyDomainClusterTypeRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ModifyDomainClusterTypeOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ModifyDomainClusterTypeOutcome(ModifyDomainClusterTypeResult(outcome.result()));
+	else
+		return ModifyDomainClusterTypeOutcome(outcome.error());
+}
+
+void Waf_openapiClient::modifyDomainClusterTypeAsync(const ModifyDomainClusterTypeRequest& request, const ModifyDomainClusterTypeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, modifyDomainClusterType(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::ModifyDomainClusterTypeOutcomeCallable Waf_openapiClient::modifyDomainClusterTypeCallable(const ModifyDomainClusterTypeRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ModifyDomainClusterTypeOutcome()>>(
+			[this, request]()
+			{
+			return this->modifyDomainClusterType(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::ModifyDomainIpv6StatusOutcome Waf_openapiClient::modifyDomainIpv6Status(const ModifyDomainIpv6StatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ModifyDomainIpv6StatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ModifyDomainIpv6StatusOutcome(ModifyDomainIpv6StatusResult(outcome.result()));
+	else
+		return ModifyDomainIpv6StatusOutcome(outcome.error());
+}
+
+void Waf_openapiClient::modifyDomainIpv6StatusAsync(const ModifyDomainIpv6StatusRequest& request, const ModifyDomainIpv6StatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, modifyDomainIpv6Status(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::ModifyDomainIpv6StatusOutcomeCallable Waf_openapiClient::modifyDomainIpv6StatusCallable(const ModifyDomainIpv6StatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ModifyDomainIpv6StatusOutcome()>>(
+			[this, request]()
+			{
+			return this->modifyDomainIpv6Status(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::ModifyLogRetrievalStatusOutcome Waf_openapiClient::modifyLogRetrievalStatus(const ModifyLogRetrievalStatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ModifyLogRetrievalStatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ModifyLogRetrievalStatusOutcome(ModifyLogRetrievalStatusResult(outcome.result()));
+	else
+		return ModifyLogRetrievalStatusOutcome(outcome.error());
+}
+
+void Waf_openapiClient::modifyLogRetrievalStatusAsync(const ModifyLogRetrievalStatusRequest& request, const ModifyLogRetrievalStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, modifyLogRetrievalStatus(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::ModifyLogRetrievalStatusOutcomeCallable Waf_openapiClient::modifyLogRetrievalStatusCallable(const ModifyLogRetrievalStatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ModifyLogRetrievalStatusOutcome()>>(
+			[this, request]()
+			{
+			return this->modifyLogRetrievalStatus(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::ModifyLogServiceStatusOutcome Waf_openapiClient::modifyLogServiceStatus(const ModifyLogServiceStatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ModifyLogServiceStatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ModifyLogServiceStatusOutcome(ModifyLogServiceStatusResult(outcome.result()));
+	else
+		return ModifyLogServiceStatusOutcome(outcome.error());
+}
+
+void Waf_openapiClient::modifyLogServiceStatusAsync(const ModifyLogServiceStatusRequest& request, const ModifyLogServiceStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, modifyLogServiceStatus(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::ModifyLogServiceStatusOutcomeCallable Waf_openapiClient::modifyLogServiceStatusCallable(const ModifyLogServiceStatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ModifyLogServiceStatusOutcome()>>(
+			[this, request]()
+			{
+			return this->modifyLogServiceStatus(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::ModifyProtectionModuleModeOutcome Waf_openapiClient::modifyProtectionModuleMode(const ModifyProtectionModuleModeRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ModifyProtectionModuleModeOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ModifyProtectionModuleModeOutcome(ModifyProtectionModuleModeResult(outcome.result()));
+	else
+		return ModifyProtectionModuleModeOutcome(outcome.error());
+}
+
+void Waf_openapiClient::modifyProtectionModuleModeAsync(const ModifyProtectionModuleModeRequest& request, const ModifyProtectionModuleModeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, modifyProtectionModuleMode(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::ModifyProtectionModuleModeOutcomeCallable Waf_openapiClient::modifyProtectionModuleModeCallable(const ModifyProtectionModuleModeRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ModifyProtectionModuleModeOutcome()>>(
+			[this, request]()
+			{
+			return this->modifyProtectionModuleMode(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::ModifyProtectionModuleRuleOutcome Waf_openapiClient::modifyProtectionModuleRule(const ModifyProtectionModuleRuleRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ModifyProtectionModuleRuleOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ModifyProtectionModuleRuleOutcome(ModifyProtectionModuleRuleResult(outcome.result()));
+	else
+		return ModifyProtectionModuleRuleOutcome(outcome.error());
+}
+
+void Waf_openapiClient::modifyProtectionModuleRuleAsync(const ModifyProtectionModuleRuleRequest& request, const ModifyProtectionModuleRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, modifyProtectionModuleRule(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::ModifyProtectionModuleRuleOutcomeCallable Waf_openapiClient::modifyProtectionModuleRuleCallable(const ModifyProtectionModuleRuleRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ModifyProtectionModuleRuleOutcome()>>(
+			[this, request]()
+			{
+			return this->modifyProtectionModuleRule(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::ModifyProtectionModuleStatusOutcome Waf_openapiClient::modifyProtectionModuleStatus(const ModifyProtectionModuleStatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ModifyProtectionModuleStatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ModifyProtectionModuleStatusOutcome(ModifyProtectionModuleStatusResult(outcome.result()));
+	else
+		return ModifyProtectionModuleStatusOutcome(outcome.error());
+}
+
+void Waf_openapiClient::modifyProtectionModuleStatusAsync(const ModifyProtectionModuleStatusRequest& request, const ModifyProtectionModuleStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, modifyProtectionModuleStatus(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::ModifyProtectionModuleStatusOutcomeCallable Waf_openapiClient::modifyProtectionModuleStatusCallable(const ModifyProtectionModuleStatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ModifyProtectionModuleStatusOutcome()>>(
+			[this, request]()
+			{
+			return this->modifyProtectionModuleStatus(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::ModifyProtectionRuleCacheStatusOutcome Waf_openapiClient::modifyProtectionRuleCacheStatus(const ModifyProtectionRuleCacheStatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ModifyProtectionRuleCacheStatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ModifyProtectionRuleCacheStatusOutcome(ModifyProtectionRuleCacheStatusResult(outcome.result()));
+	else
+		return ModifyProtectionRuleCacheStatusOutcome(outcome.error());
+}
+
+void Waf_openapiClient::modifyProtectionRuleCacheStatusAsync(const ModifyProtectionRuleCacheStatusRequest& request, const ModifyProtectionRuleCacheStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, modifyProtectionRuleCacheStatus(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::ModifyProtectionRuleCacheStatusOutcomeCallable Waf_openapiClient::modifyProtectionRuleCacheStatusCallable(const ModifyProtectionRuleCacheStatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ModifyProtectionRuleCacheStatusOutcome()>>(
+			[this, request]()
+			{
+			return this->modifyProtectionRuleCacheStatus(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::ModifyProtectionRuleStatusOutcome Waf_openapiClient::modifyProtectionRuleStatus(const ModifyProtectionRuleStatusRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ModifyProtectionRuleStatusOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ModifyProtectionRuleStatusOutcome(ModifyProtectionRuleStatusResult(outcome.result()));
+	else
+		return ModifyProtectionRuleStatusOutcome(outcome.error());
+}
+
+void Waf_openapiClient::modifyProtectionRuleStatusAsync(const ModifyProtectionRuleStatusRequest& request, const ModifyProtectionRuleStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, modifyProtectionRuleStatus(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::ModifyProtectionRuleStatusOutcomeCallable Waf_openapiClient::modifyProtectionRuleStatusCallable(const ModifyProtectionRuleStatusRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ModifyProtectionRuleStatusOutcome()>>(
+			[this, request]()
+			{
+			return this->modifyProtectionRuleStatus(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+Waf_openapiClient::SetDomainRuleGroupOutcome Waf_openapiClient::setDomainRuleGroup(const SetDomainRuleGroupRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return SetDomainRuleGroupOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return SetDomainRuleGroupOutcome(SetDomainRuleGroupResult(outcome.result()));
+	else
+		return SetDomainRuleGroupOutcome(outcome.error());
+}
+
+void Waf_openapiClient::setDomainRuleGroupAsync(const SetDomainRuleGroupRequest& request, const SetDomainRuleGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, setDomainRuleGroup(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+Waf_openapiClient::SetDomainRuleGroupOutcomeCallable Waf_openapiClient::setDomainRuleGroupCallable(const SetDomainRuleGroupRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<SetDomainRuleGroupOutcome()>>(
+			[this, request]()
+			{
+			return this->setDomainRuleGroup(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+

+ 84 - 0
waf-openapi/src/model/CreateCertificateByCertificateIdRequest.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/waf-openapi/model/CreateCertificateByCertificateIdRequest.h>
+
+using AlibabaCloud::Waf_openapi::Model::CreateCertificateByCertificateIdRequest;
+
+CreateCertificateByCertificateIdRequest::CreateCertificateByCertificateIdRequest() :
+	RpcServiceRequest("waf-openapi", "2019-09-10", "CreateCertificateByCertificateId")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CreateCertificateByCertificateIdRequest::~CreateCertificateByCertificateIdRequest()
+{}
+
+long CreateCertificateByCertificateIdRequest::getCertificateId()const
+{
+	return certificateId_;
+}
+
+void CreateCertificateByCertificateIdRequest::setCertificateId(long certificateId)
+{
+	certificateId_ = certificateId;
+	setParameter("CertificateId", std::to_string(certificateId));
+}
+
+std::string CreateCertificateByCertificateIdRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void CreateCertificateByCertificateIdRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string CreateCertificateByCertificateIdRequest::getSourceIp()const
+{
+	return sourceIp_;
+}
+
+void CreateCertificateByCertificateIdRequest::setSourceIp(const std::string& sourceIp)
+{
+	sourceIp_ = sourceIp;
+	setParameter("SourceIp", sourceIp);
+}
+
+std::string CreateCertificateByCertificateIdRequest::getDomain()const
+{
+	return domain_;
+}
+
+void CreateCertificateByCertificateIdRequest::setDomain(const std::string& domain)
+{
+	domain_ = domain;
+	setParameter("Domain", domain);
+}
+
+std::string CreateCertificateByCertificateIdRequest::getLang()const
+{
+	return lang_;
+}
+
+void CreateCertificateByCertificateIdRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+

+ 51 - 0
waf-openapi/src/model/CreateCertificateByCertificateIdResult.cc

@@ -0,0 +1,51 @@
+/*
+ * 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/waf-openapi/model/CreateCertificateByCertificateIdResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Waf_openapi;
+using namespace AlibabaCloud::Waf_openapi::Model;
+
+CreateCertificateByCertificateIdResult::CreateCertificateByCertificateIdResult() :
+	ServiceResult()
+{}
+
+CreateCertificateByCertificateIdResult::CreateCertificateByCertificateIdResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateCertificateByCertificateIdResult::~CreateCertificateByCertificateIdResult()
+{}
+
+void CreateCertificateByCertificateIdResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["CertificateId"].isNull())
+		certificateId_ = std::stol(value["CertificateId"].asString());
+
+}
+
+long CreateCertificateByCertificateIdResult::getCertificateId()const
+{
+	return certificateId_;
+}
+

+ 117 - 0
waf-openapi/src/model/CreateCertificateRequest.cc

@@ -0,0 +1,117 @@
+/*
+ * 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/waf-openapi/model/CreateCertificateRequest.h>
+
+using AlibabaCloud::Waf_openapi::Model::CreateCertificateRequest;
+
+CreateCertificateRequest::CreateCertificateRequest() :
+	RpcServiceRequest("waf-openapi", "2019-09-10", "CreateCertificate")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CreateCertificateRequest::~CreateCertificateRequest()
+{}
+
+std::string CreateCertificateRequest::getCertificate()const
+{
+	return certificate_;
+}
+
+void CreateCertificateRequest::setCertificate(const std::string& certificate)
+{
+	certificate_ = certificate;
+	setParameter("Certificate", certificate);
+}
+
+std::string CreateCertificateRequest::getPrivateKey()const
+{
+	return privateKey_;
+}
+
+void CreateCertificateRequest::setPrivateKey(const std::string& privateKey)
+{
+	privateKey_ = privateKey;
+	setParameter("PrivateKey", privateKey);
+}
+
+std::string CreateCertificateRequest::getSourceIp()const
+{
+	return sourceIp_;
+}
+
+void CreateCertificateRequest::setSourceIp(const std::string& sourceIp)
+{
+	sourceIp_ = sourceIp;
+	setParameter("SourceIp", sourceIp);
+}
+
+std::string CreateCertificateRequest::getLang()const
+{
+	return lang_;
+}
+
+void CreateCertificateRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+
+std::string CreateCertificateRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void CreateCertificateRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string CreateCertificateRequest::getDomain()const
+{
+	return domain_;
+}
+
+void CreateCertificateRequest::setDomain(const std::string& domain)
+{
+	domain_ = domain;
+	setParameter("Domain", domain);
+}
+
+std::string CreateCertificateRequest::getCertificateName()const
+{
+	return certificateName_;
+}
+
+void CreateCertificateRequest::setCertificateName(const std::string& certificateName)
+{
+	certificateName_ = certificateName;
+	setParameter("CertificateName", certificateName);
+}
+
+long CreateCertificateRequest::getHttpsCertId()const
+{
+	return httpsCertId_;
+}
+
+void CreateCertificateRequest::setHttpsCertId(long httpsCertId)
+{
+	httpsCertId_ = httpsCertId;
+	setParameter("HttpsCertId", std::to_string(httpsCertId));
+}
+

+ 51 - 0
waf-openapi/src/model/CreateCertificateResult.cc

@@ -0,0 +1,51 @@
+/*
+ * 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/waf-openapi/model/CreateCertificateResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Waf_openapi;
+using namespace AlibabaCloud::Waf_openapi::Model;
+
+CreateCertificateResult::CreateCertificateResult() :
+	ServiceResult()
+{}
+
+CreateCertificateResult::CreateCertificateResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateCertificateResult::~CreateCertificateResult()
+{}
+
+void CreateCertificateResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["CertificateId"].isNull())
+		certificateId_ = std::stol(value["CertificateId"].asString());
+
+}
+
+long CreateCertificateResult::getCertificateId()const
+{
+	return certificateId_;
+}
+

+ 227 - 0
waf-openapi/src/model/CreateDomainRequest.cc

@@ -0,0 +1,227 @@
+/*
+ * 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/waf-openapi/model/CreateDomainRequest.h>
+
+using AlibabaCloud::Waf_openapi::Model::CreateDomainRequest;
+
+CreateDomainRequest::CreateDomainRequest() :
+	RpcServiceRequest("waf-openapi", "2019-09-10", "CreateDomain")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CreateDomainRequest::~CreateDomainRequest()
+{}
+
+std::string CreateDomainRequest::getResourceGroupId()const
+{
+	return resourceGroupId_;
+}
+
+void CreateDomainRequest::setResourceGroupId(const std::string& resourceGroupId)
+{
+	resourceGroupId_ = resourceGroupId;
+	setParameter("ResourceGroupId", resourceGroupId);
+}
+
+std::string CreateDomainRequest::getSourceIp()const
+{
+	return sourceIp_;
+}
+
+void CreateDomainRequest::setSourceIp(const std::string& sourceIp)
+{
+	sourceIp_ = sourceIp;
+	setParameter("SourceIp", sourceIp);
+}
+
+std::string CreateDomainRequest::getHttpPort()const
+{
+	return httpPort_;
+}
+
+void CreateDomainRequest::setHttpPort(const std::string& httpPort)
+{
+	httpPort_ = httpPort;
+	setParameter("HttpPort", httpPort);
+}
+
+std::string CreateDomainRequest::getHttp2Port()const
+{
+	return http2Port_;
+}
+
+void CreateDomainRequest::setHttp2Port(const std::string& http2Port)
+{
+	http2Port_ = http2Port;
+	setParameter("Http2Port", http2Port);
+}
+
+int CreateDomainRequest::getWriteTime()const
+{
+	return writeTime_;
+}
+
+void CreateDomainRequest::setWriteTime(int writeTime)
+{
+	writeTime_ = writeTime;
+	setParameter("WriteTime", std::to_string(writeTime));
+}
+
+std::string CreateDomainRequest::getLang()const
+{
+	return lang_;
+}
+
+void CreateDomainRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+
+std::string CreateDomainRequest::getLogHeaders()const
+{
+	return logHeaders_;
+}
+
+void CreateDomainRequest::setLogHeaders(const std::string& logHeaders)
+{
+	logHeaders_ = logHeaders;
+	setParameter("LogHeaders", logHeaders);
+}
+
+int CreateDomainRequest::getConnectionTime()const
+{
+	return connectionTime_;
+}
+
+void CreateDomainRequest::setConnectionTime(int connectionTime)
+{
+	connectionTime_ = connectionTime;
+	setParameter("ConnectionTime", std::to_string(connectionTime));
+}
+
+int CreateDomainRequest::getClusterType()const
+{
+	return clusterType_;
+}
+
+void CreateDomainRequest::setClusterType(int clusterType)
+{
+	clusterType_ = clusterType;
+	setParameter("ClusterType", std::to_string(clusterType));
+}
+
+int CreateDomainRequest::getHttpsRedirect()const
+{
+	return httpsRedirect_;
+}
+
+void CreateDomainRequest::setHttpsRedirect(int httpsRedirect)
+{
+	httpsRedirect_ = httpsRedirect;
+	setParameter("HttpsRedirect", std::to_string(httpsRedirect));
+}
+
+std::string CreateDomainRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void CreateDomainRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string CreateDomainRequest::getSourceIps()const
+{
+	return sourceIps_;
+}
+
+void CreateDomainRequest::setSourceIps(const std::string& sourceIps)
+{
+	sourceIps_ = sourceIps;
+	setParameter("SourceIps", sourceIps);
+}
+
+std::string CreateDomainRequest::getDomain()const
+{
+	return domain_;
+}
+
+void CreateDomainRequest::setDomain(const std::string& domain)
+{
+	domain_ = domain;
+	setParameter("Domain", domain);
+}
+
+int CreateDomainRequest::getIsAccessProduct()const
+{
+	return isAccessProduct_;
+}
+
+void CreateDomainRequest::setIsAccessProduct(int isAccessProduct)
+{
+	isAccessProduct_ = isAccessProduct;
+	setParameter("IsAccessProduct", std::to_string(isAccessProduct));
+}
+
+int CreateDomainRequest::getReadTime()const
+{
+	return readTime_;
+}
+
+void CreateDomainRequest::setReadTime(int readTime)
+{
+	readTime_ = readTime;
+	setParameter("ReadTime", std::to_string(readTime));
+}
+
+std::string CreateDomainRequest::getHttpsPort()const
+{
+	return httpsPort_;
+}
+
+void CreateDomainRequest::setHttpsPort(const std::string& httpsPort)
+{
+	httpsPort_ = httpsPort;
+	setParameter("HttpsPort", httpsPort);
+}
+
+int CreateDomainRequest::getLoadBalancing()const
+{
+	return loadBalancing_;
+}
+
+void CreateDomainRequest::setLoadBalancing(int loadBalancing)
+{
+	loadBalancing_ = loadBalancing;
+	setParameter("LoadBalancing", std::to_string(loadBalancing));
+}
+
+int CreateDomainRequest::getHttpToUserIp()const
+{
+	return httpToUserIp_;
+}
+
+void CreateDomainRequest::setHttpToUserIp(int httpToUserIp)
+{
+	httpToUserIp_ = httpToUserIp;
+	setParameter("HttpToUserIp", std::to_string(httpToUserIp));
+}
+

+ 51 - 0
waf-openapi/src/model/CreateDomainResult.cc

@@ -0,0 +1,51 @@
+/*
+ * 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/waf-openapi/model/CreateDomainResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Waf_openapi;
+using namespace AlibabaCloud::Waf_openapi::Model;
+
+CreateDomainResult::CreateDomainResult() :
+	ServiceResult()
+{}
+
+CreateDomainResult::CreateDomainResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateDomainResult::~CreateDomainResult()
+{}
+
+void CreateDomainResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Cname"].isNull())
+		cname_ = value["Cname"].asString();
+
+}
+
+std::string CreateDomainResult::getCname()const
+{
+	return cname_;
+}
+

+ 117 - 0
waf-openapi/src/model/CreateIPBlockRequest.cc

@@ -0,0 +1,117 @@
+/*
+ * 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/waf-openapi/model/CreateIPBlockRequest.h>
+
+using AlibabaCloud::Waf_openapi::Model::CreateIPBlockRequest;
+
+CreateIPBlockRequest::CreateIPBlockRequest() :
+	RpcServiceRequest("waf-openapi", "2019-09-10", "CreateIPBlock")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CreateIPBlockRequest::~CreateIPBlockRequest()
+{}
+
+std::string CreateIPBlockRequest::getDomainList()const
+{
+	return domainList_;
+}
+
+void CreateIPBlockRequest::setDomainList(const std::string& domainList)
+{
+	domainList_ = domainList;
+	setParameter("DomainList", domainList);
+}
+
+std::string CreateIPBlockRequest::getIPList()const
+{
+	return iPList_;
+}
+
+void CreateIPBlockRequest::setIPList(const std::string& iPList)
+{
+	iPList_ = iPList;
+	setParameter("IPList", iPList);
+}
+
+std::string CreateIPBlockRequest::getResourceGroupId()const
+{
+	return resourceGroupId_;
+}
+
+void CreateIPBlockRequest::setResourceGroupId(const std::string& resourceGroupId)
+{
+	resourceGroupId_ = resourceGroupId;
+	setParameter("ResourceGroupId", resourceGroupId);
+}
+
+std::string CreateIPBlockRequest::getSourceIp()const
+{
+	return sourceIp_;
+}
+
+void CreateIPBlockRequest::setSourceIp(const std::string& sourceIp)
+{
+	sourceIp_ = sourceIp;
+	setParameter("SourceIp", sourceIp);
+}
+
+long CreateIPBlockRequest::getBlockInterval()const
+{
+	return blockInterval_;
+}
+
+void CreateIPBlockRequest::setBlockInterval(long blockInterval)
+{
+	blockInterval_ = blockInterval;
+	setParameter("BlockInterval", std::to_string(blockInterval));
+}
+
+std::string CreateIPBlockRequest::getLang()const
+{
+	return lang_;
+}
+
+void CreateIPBlockRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+
+std::string CreateIPBlockRequest::getOperationType()const
+{
+	return operationType_;
+}
+
+void CreateIPBlockRequest::setOperationType(const std::string& operationType)
+{
+	operationType_ = operationType;
+	setParameter("OperationType", operationType);
+}
+
+std::string CreateIPBlockRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void CreateIPBlockRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+

+ 51 - 0
waf-openapi/src/model/CreateIPBlockResult.cc

@@ -0,0 +1,51 @@
+/*
+ * 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/waf-openapi/model/CreateIPBlockResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Waf_openapi;
+using namespace AlibabaCloud::Waf_openapi::Model;
+
+CreateIPBlockResult::CreateIPBlockResult() :
+	ServiceResult()
+{}
+
+CreateIPBlockResult::CreateIPBlockResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+CreateIPBlockResult::~CreateIPBlockResult()
+{}
+
+void CreateIPBlockResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["Data"].isNull())
+		data_ = value["Data"].asString();
+
+}
+
+std::string CreateIPBlockResult::getData()const
+{
+	return data_;
+}
+

+ 95 - 0
waf-openapi/src/model/CreateProtectionModuleRuleRequest.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/waf-openapi/model/CreateProtectionModuleRuleRequest.h>
+
+using AlibabaCloud::Waf_openapi::Model::CreateProtectionModuleRuleRequest;
+
+CreateProtectionModuleRuleRequest::CreateProtectionModuleRuleRequest() :
+	RpcServiceRequest("waf-openapi", "2019-09-10", "CreateProtectionModuleRule")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+CreateProtectionModuleRuleRequest::~CreateProtectionModuleRuleRequest()
+{}
+
+std::string CreateProtectionModuleRuleRequest::getDefenseType()const
+{
+	return defenseType_;
+}
+
+void CreateProtectionModuleRuleRequest::setDefenseType(const std::string& defenseType)
+{
+	defenseType_ = defenseType;
+	setParameter("DefenseType", defenseType);
+}
+
+std::string CreateProtectionModuleRuleRequest::getRule()const
+{
+	return rule_;
+}
+
+void CreateProtectionModuleRuleRequest::setRule(const std::string& rule)
+{
+	rule_ = rule;
+	setParameter("Rule", rule);
+}
+
+std::string CreateProtectionModuleRuleRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void CreateProtectionModuleRuleRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string CreateProtectionModuleRuleRequest::getSourceIp()const
+{
+	return sourceIp_;
+}
+
+void CreateProtectionModuleRuleRequest::setSourceIp(const std::string& sourceIp)
+{
+	sourceIp_ = sourceIp;
+	setParameter("SourceIp", sourceIp);
+}
+
+std::string CreateProtectionModuleRuleRequest::getDomain()const
+{
+	return domain_;
+}
+
+void CreateProtectionModuleRuleRequest::setDomain(const std::string& domain)
+{
+	domain_ = domain;
+	setParameter("Domain", domain);
+}
+
+std::string CreateProtectionModuleRuleRequest::getLang()const
+{
+	return lang_;
+}
+
+void CreateProtectionModuleRuleRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+

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

+ 73 - 0
waf-openapi/src/model/DeleteDomainRequest.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/waf-openapi/model/DeleteDomainRequest.h>
+
+using AlibabaCloud::Waf_openapi::Model::DeleteDomainRequest;
+
+DeleteDomainRequest::DeleteDomainRequest() :
+	RpcServiceRequest("waf-openapi", "2019-09-10", "DeleteDomain")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DeleteDomainRequest::~DeleteDomainRequest()
+{}
+
+std::string DeleteDomainRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void DeleteDomainRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string DeleteDomainRequest::getSourceIp()const
+{
+	return sourceIp_;
+}
+
+void DeleteDomainRequest::setSourceIp(const std::string& sourceIp)
+{
+	sourceIp_ = sourceIp;
+	setParameter("SourceIp", sourceIp);
+}
+
+std::string DeleteDomainRequest::getDomain()const
+{
+	return domain_;
+}
+
+void DeleteDomainRequest::setDomain(const std::string& domain)
+{
+	domain_ = domain;
+	setParameter("Domain", domain);
+}
+
+std::string DeleteDomainRequest::getLang()const
+{
+	return lang_;
+}
+
+void DeleteDomainRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+

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

+ 95 - 0
waf-openapi/src/model/DescribeCertMatchStatusRequest.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/waf-openapi/model/DescribeCertMatchStatusRequest.h>
+
+using AlibabaCloud::Waf_openapi::Model::DescribeCertMatchStatusRequest;
+
+DescribeCertMatchStatusRequest::DescribeCertMatchStatusRequest() :
+	RpcServiceRequest("waf-openapi", "2019-09-10", "DescribeCertMatchStatus")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeCertMatchStatusRequest::~DescribeCertMatchStatusRequest()
+{}
+
+std::string DescribeCertMatchStatusRequest::getCertificate()const
+{
+	return certificate_;
+}
+
+void DescribeCertMatchStatusRequest::setCertificate(const std::string& certificate)
+{
+	certificate_ = certificate;
+	setParameter("Certificate", certificate);
+}
+
+std::string DescribeCertMatchStatusRequest::getPrivateKey()const
+{
+	return privateKey_;
+}
+
+void DescribeCertMatchStatusRequest::setPrivateKey(const std::string& privateKey)
+{
+	privateKey_ = privateKey;
+	setParameter("PrivateKey", privateKey);
+}
+
+std::string DescribeCertMatchStatusRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void DescribeCertMatchStatusRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string DescribeCertMatchStatusRequest::getSourceIp()const
+{
+	return sourceIp_;
+}
+
+void DescribeCertMatchStatusRequest::setSourceIp(const std::string& sourceIp)
+{
+	sourceIp_ = sourceIp;
+	setParameter("SourceIp", sourceIp);
+}
+
+std::string DescribeCertMatchStatusRequest::getDomain()const
+{
+	return domain_;
+}
+
+void DescribeCertMatchStatusRequest::setDomain(const std::string& domain)
+{
+	domain_ = domain;
+	setParameter("Domain", domain);
+}
+
+std::string DescribeCertMatchStatusRequest::getLang()const
+{
+	return lang_;
+}
+
+void DescribeCertMatchStatusRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+

+ 51 - 0
waf-openapi/src/model/DescribeCertMatchStatusResult.cc

@@ -0,0 +1,51 @@
+/*
+ * 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/waf-openapi/model/DescribeCertMatchStatusResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Waf_openapi;
+using namespace AlibabaCloud::Waf_openapi::Model;
+
+DescribeCertMatchStatusResult::DescribeCertMatchStatusResult() :
+	ServiceResult()
+{}
+
+DescribeCertMatchStatusResult::DescribeCertMatchStatusResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeCertMatchStatusResult::~DescribeCertMatchStatusResult()
+{}
+
+void DescribeCertMatchStatusResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["MatchStatus"].isNull())
+		matchStatus_ = value["MatchStatus"].asString() == "true";
+
+}
+
+bool DescribeCertMatchStatusResult::getMatchStatus()const
+{
+	return matchStatus_;
+}
+

+ 73 - 0
waf-openapi/src/model/DescribeCertificatesRequest.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/waf-openapi/model/DescribeCertificatesRequest.h>
+
+using AlibabaCloud::Waf_openapi::Model::DescribeCertificatesRequest;
+
+DescribeCertificatesRequest::DescribeCertificatesRequest() :
+	RpcServiceRequest("waf-openapi", "2019-09-10", "DescribeCertificates")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeCertificatesRequest::~DescribeCertificatesRequest()
+{}
+
+std::string DescribeCertificatesRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void DescribeCertificatesRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string DescribeCertificatesRequest::getSourceIp()const
+{
+	return sourceIp_;
+}
+
+void DescribeCertificatesRequest::setSourceIp(const std::string& sourceIp)
+{
+	sourceIp_ = sourceIp;
+	setParameter("SourceIp", sourceIp);
+}
+
+std::string DescribeCertificatesRequest::getDomain()const
+{
+	return domain_;
+}
+
+void DescribeCertificatesRequest::setDomain(const std::string& domain)
+{
+	domain_ = domain;
+	setParameter("Domain", domain);
+}
+
+std::string DescribeCertificatesRequest::getLang()const
+{
+	return lang_;
+}
+
+void DescribeCertificatesRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+

+ 66 - 0
waf-openapi/src/model/DescribeCertificatesResult.cc

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/waf-openapi/model/DescribeCertificatesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Waf_openapi;
+using namespace AlibabaCloud::Waf_openapi::Model;
+
+DescribeCertificatesResult::DescribeCertificatesResult() :
+	ServiceResult()
+{}
+
+DescribeCertificatesResult::DescribeCertificatesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeCertificatesResult::~DescribeCertificatesResult()
+{}
+
+void DescribeCertificatesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allCertificatesNode = value["Certificates"]["Certificate"];
+	for (auto valueCertificatesCertificate : allCertificatesNode)
+	{
+		Certificate certificatesObject;
+		if(!valueCertificatesCertificate["CommonName"].isNull())
+			certificatesObject.commonName = valueCertificatesCertificate["CommonName"].asString();
+		if(!valueCertificatesCertificate["IsUsing"].isNull())
+			certificatesObject.isUsing = valueCertificatesCertificate["IsUsing"].asString() == "true";
+		if(!valueCertificatesCertificate["CertificateName"].isNull())
+			certificatesObject.certificateName = valueCertificatesCertificate["CertificateName"].asString();
+		if(!valueCertificatesCertificate["CertificateId"].isNull())
+			certificatesObject.certificateId = std::stol(valueCertificatesCertificate["CertificateId"].asString());
+		auto allSans = value["Sans"]["San"];
+		for (auto value : allSans)
+			certificatesObject.sans.push_back(value.asString());
+		certificates_.push_back(certificatesObject);
+	}
+
+}
+
+std::vector<DescribeCertificatesResult::Certificate> DescribeCertificatesResult::getCertificates()const
+{
+	return certificates_;
+}
+

+ 84 - 0
waf-openapi/src/model/DescribeDomainAdvanceConfigsRequest.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/waf-openapi/model/DescribeDomainAdvanceConfigsRequest.h>
+
+using AlibabaCloud::Waf_openapi::Model::DescribeDomainAdvanceConfigsRequest;
+
+DescribeDomainAdvanceConfigsRequest::DescribeDomainAdvanceConfigsRequest() :
+	RpcServiceRequest("waf-openapi", "2019-09-10", "DescribeDomainAdvanceConfigs")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeDomainAdvanceConfigsRequest::~DescribeDomainAdvanceConfigsRequest()
+{}
+
+std::string DescribeDomainAdvanceConfigsRequest::getDomainList()const
+{
+	return domainList_;
+}
+
+void DescribeDomainAdvanceConfigsRequest::setDomainList(const std::string& domainList)
+{
+	domainList_ = domainList;
+	setParameter("DomainList", domainList);
+}
+
+std::string DescribeDomainAdvanceConfigsRequest::getResourceGroupId()const
+{
+	return resourceGroupId_;
+}
+
+void DescribeDomainAdvanceConfigsRequest::setResourceGroupId(const std::string& resourceGroupId)
+{
+	resourceGroupId_ = resourceGroupId;
+	setParameter("ResourceGroupId", resourceGroupId);
+}
+
+std::string DescribeDomainAdvanceConfigsRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void DescribeDomainAdvanceConfigsRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string DescribeDomainAdvanceConfigsRequest::getSourceIp()const
+{
+	return sourceIp_;
+}
+
+void DescribeDomainAdvanceConfigsRequest::setSourceIp(const std::string& sourceIp)
+{
+	sourceIp_ = sourceIp;
+	setParameter("SourceIp", sourceIp);
+}
+
+std::string DescribeDomainAdvanceConfigsRequest::getLang()const
+{
+	return lang_;
+}
+
+void DescribeDomainAdvanceConfigsRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+

+ 82 - 0
waf-openapi/src/model/DescribeDomainAdvanceConfigsResult.cc

@@ -0,0 +1,82 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/waf-openapi/model/DescribeDomainAdvanceConfigsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Waf_openapi;
+using namespace AlibabaCloud::Waf_openapi::Model;
+
+DescribeDomainAdvanceConfigsResult::DescribeDomainAdvanceConfigsResult() :
+	ServiceResult()
+{}
+
+DescribeDomainAdvanceConfigsResult::DescribeDomainAdvanceConfigsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDomainAdvanceConfigsResult::~DescribeDomainAdvanceConfigsResult()
+{}
+
+void DescribeDomainAdvanceConfigsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allDomainConfigsNode = value["DomainConfigs"]["DomainConfig"];
+	for (auto valueDomainConfigsDomainConfig : allDomainConfigsNode)
+	{
+		DomainConfig domainConfigsObject;
+		if(!valueDomainConfigsDomainConfig["Domain"].isNull())
+			domainConfigsObject.domain = valueDomainConfigsDomainConfig["Domain"].asString();
+		auto profileNode = value["Profile"];
+		if(!profileNode["Cname"].isNull())
+			domainConfigsObject.profile.cname = profileNode["Cname"].asString();
+		if(!profileNode["ResolvedType"].isNull())
+			domainConfigsObject.profile.resolvedType = std::stoi(profileNode["ResolvedType"].asString());
+		if(!profileNode["VipServiceStatus"].isNull())
+			domainConfigsObject.profile.vipServiceStatus = std::stoi(profileNode["VipServiceStatus"].asString());
+		if(!profileNode["CertStatus"].isNull())
+			domainConfigsObject.profile.certStatus = std::stoi(profileNode["CertStatus"].asString());
+		if(!profileNode["ExclusiveVipStatus"].isNull())
+			domainConfigsObject.profile.exclusiveVipStatus = std::stoi(profileNode["ExclusiveVipStatus"].asString());
+		if(!profileNode["Ipv6Status"].isNull())
+			domainConfigsObject.profile.ipv6Status = std::stoi(profileNode["Ipv6Status"].asString());
+		if(!profileNode["HttpPort"].isNull())
+			domainConfigsObject.profile.httpPort = profileNode["HttpPort"].asString();
+		if(!profileNode["HttpsPort"].isNull())
+			domainConfigsObject.profile.httpsPort = profileNode["HttpsPort"].asString();
+		if(!profileNode["Http2Port"].isNull())
+			domainConfigsObject.profile.http2Port = profileNode["Http2Port"].asString();
+		if(!profileNode["Rs"].isNull())
+			domainConfigsObject.profile.rs = profileNode["Rs"].asString();
+		if(!profileNode["ClusterType"].isNull())
+			domainConfigsObject.profile.clusterType = std::stoi(profileNode["ClusterType"].asString());
+		if(!profileNode["GSLBStatus"].isNull())
+			domainConfigsObject.profile.gSLBStatus = std::stoi(profileNode["GSLBStatus"].asString());
+		domainConfigs_.push_back(domainConfigsObject);
+	}
+
+}
+
+std::vector<DescribeDomainAdvanceConfigsResult::DomainConfig> DescribeDomainAdvanceConfigsResult::getDomainConfigs()const
+{
+	return domainConfigs_;
+}
+

+ 106 - 0
waf-openapi/src/model/DescribeDomainBasicConfigsRequest.cc

@@ -0,0 +1,106 @@
+/*
+ * 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/waf-openapi/model/DescribeDomainBasicConfigsRequest.h>
+
+using AlibabaCloud::Waf_openapi::Model::DescribeDomainBasicConfigsRequest;
+
+DescribeDomainBasicConfigsRequest::DescribeDomainBasicConfigsRequest() :
+	RpcServiceRequest("waf-openapi", "2019-09-10", "DescribeDomainBasicConfigs")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeDomainBasicConfigsRequest::~DescribeDomainBasicConfigsRequest()
+{}
+
+int DescribeDomainBasicConfigsRequest::getPageNumber()const
+{
+	return pageNumber_;
+}
+
+void DescribeDomainBasicConfigsRequest::setPageNumber(int pageNumber)
+{
+	pageNumber_ = pageNumber;
+	setParameter("PageNumber", std::to_string(pageNumber));
+}
+
+std::string DescribeDomainBasicConfigsRequest::getResourceGroupId()const
+{
+	return resourceGroupId_;
+}
+
+void DescribeDomainBasicConfigsRequest::setResourceGroupId(const std::string& resourceGroupId)
+{
+	resourceGroupId_ = resourceGroupId;
+	setParameter("ResourceGroupId", resourceGroupId);
+}
+
+std::string DescribeDomainBasicConfigsRequest::getSourceIp()const
+{
+	return sourceIp_;
+}
+
+void DescribeDomainBasicConfigsRequest::setSourceIp(const std::string& sourceIp)
+{
+	sourceIp_ = sourceIp;
+	setParameter("SourceIp", sourceIp);
+}
+
+int DescribeDomainBasicConfigsRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void DescribeDomainBasicConfigsRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+std::string DescribeDomainBasicConfigsRequest::getLang()const
+{
+	return lang_;
+}
+
+void DescribeDomainBasicConfigsRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+
+std::string DescribeDomainBasicConfigsRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void DescribeDomainBasicConfigsRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string DescribeDomainBasicConfigsRequest::getDomainKey()const
+{
+	return domainKey_;
+}
+
+void DescribeDomainBasicConfigsRequest::setDomainKey(const std::string& domainKey)
+{
+	domainKey_ = domainKey;
+	setParameter("DomainKey", domainKey);
+}
+

+ 80 - 0
waf-openapi/src/model/DescribeDomainBasicConfigsResult.cc

@@ -0,0 +1,80 @@
+/*
+ * 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/waf-openapi/model/DescribeDomainBasicConfigsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Waf_openapi;
+using namespace AlibabaCloud::Waf_openapi::Model;
+
+DescribeDomainBasicConfigsResult::DescribeDomainBasicConfigsResult() :
+	ServiceResult()
+{}
+
+DescribeDomainBasicConfigsResult::DescribeDomainBasicConfigsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDomainBasicConfigsResult::~DescribeDomainBasicConfigsResult()
+{}
+
+void DescribeDomainBasicConfigsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allDomainConfigsNode = value["DomainConfigs"]["DomainConfig"];
+	for (auto valueDomainConfigsDomainConfig : allDomainConfigsNode)
+	{
+		DomainConfig domainConfigsObject;
+		if(!valueDomainConfigsDomainConfig["Owner"].isNull())
+			domainConfigsObject.owner = valueDomainConfigsDomainConfig["Owner"].asString();
+		if(!valueDomainConfigsDomainConfig["WafStatus"].isNull())
+			domainConfigsObject.wafStatus = std::stoi(valueDomainConfigsDomainConfig["WafStatus"].asString());
+		if(!valueDomainConfigsDomainConfig["CcStatus"].isNull())
+			domainConfigsObject.ccStatus = std::stoi(valueDomainConfigsDomainConfig["CcStatus"].asString());
+		if(!valueDomainConfigsDomainConfig["CcMode"].isNull())
+			domainConfigsObject.ccMode = std::stoi(valueDomainConfigsDomainConfig["CcMode"].asString());
+		if(!valueDomainConfigsDomainConfig["AclStatus"].isNull())
+			domainConfigsObject.aclStatus = std::stoi(valueDomainConfigsDomainConfig["AclStatus"].asString());
+		if(!valueDomainConfigsDomainConfig["WafMode"].isNull())
+			domainConfigsObject.wafMode = std::stoi(valueDomainConfigsDomainConfig["WafMode"].asString());
+		if(!valueDomainConfigsDomainConfig["Version"].isNull())
+			domainConfigsObject.version = std::stol(valueDomainConfigsDomainConfig["Version"].asString());
+		if(!valueDomainConfigsDomainConfig["Domain"].isNull())
+			domainConfigsObject.domain = valueDomainConfigsDomainConfig["Domain"].asString();
+		if(!valueDomainConfigsDomainConfig["Status"].isNull())
+			domainConfigsObject.status = std::stoi(valueDomainConfigsDomainConfig["Status"].asString());
+		domainConfigs_.push_back(domainConfigsObject);
+	}
+	if(!value["TotalCount"].isNull())
+		totalCount_ = std::stoi(value["TotalCount"].asString());
+
+}
+
+int DescribeDomainBasicConfigsResult::getTotalCount()const
+{
+	return totalCount_;
+}
+
+std::vector<DescribeDomainBasicConfigsResult::DomainConfig> DescribeDomainBasicConfigsResult::getDomainConfigs()const
+{
+	return domainConfigs_;
+}
+

+ 84 - 0
waf-openapi/src/model/DescribeDomainNamesRequest.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/waf-openapi/model/DescribeDomainNamesRequest.h>
+
+using AlibabaCloud::Waf_openapi::Model::DescribeDomainNamesRequest;
+
+DescribeDomainNamesRequest::DescribeDomainNamesRequest() :
+	RpcServiceRequest("waf-openapi", "2019-09-10", "DescribeDomainNames")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeDomainNamesRequest::~DescribeDomainNamesRequest()
+{}
+
+std::string DescribeDomainNamesRequest::getResourceGroupId()const
+{
+	return resourceGroupId_;
+}
+
+void DescribeDomainNamesRequest::setResourceGroupId(const std::string& resourceGroupId)
+{
+	resourceGroupId_ = resourceGroupId;
+	setParameter("ResourceGroupId", resourceGroupId);
+}
+
+std::string DescribeDomainNamesRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void DescribeDomainNamesRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string DescribeDomainNamesRequest::getSourceIp()const
+{
+	return sourceIp_;
+}
+
+void DescribeDomainNamesRequest::setSourceIp(const std::string& sourceIp)
+{
+	sourceIp_ = sourceIp;
+	setParameter("SourceIp", sourceIp);
+}
+
+std::string DescribeDomainNamesRequest::getLang()const
+{
+	return lang_;
+}
+
+void DescribeDomainNamesRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+
+std::string DescribeDomainNamesRequest::getCallSource()const
+{
+	return callSource_;
+}
+
+void DescribeDomainNamesRequest::setCallSource(const std::string& callSource)
+{
+	callSource_ = callSource;
+	setParameter("CallSource", callSource);
+}
+

+ 52 - 0
waf-openapi/src/model/DescribeDomainNamesResult.cc

@@ -0,0 +1,52 @@
+/*
+ * 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/waf-openapi/model/DescribeDomainNamesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Waf_openapi;
+using namespace AlibabaCloud::Waf_openapi::Model;
+
+DescribeDomainNamesResult::DescribeDomainNamesResult() :
+	ServiceResult()
+{}
+
+DescribeDomainNamesResult::DescribeDomainNamesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDomainNamesResult::~DescribeDomainNamesResult()
+{}
+
+void DescribeDomainNamesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allDomainNames = value["DomainNames"]["DomainName"];
+	for (const auto &item : allDomainNames)
+		domainNames_.push_back(item.asString());
+
+}
+
+std::vector<std::string> DescribeDomainNamesResult::getDomainNames()const
+{
+	return domainNames_;
+}
+

+ 73 - 0
waf-openapi/src/model/DescribeDomainRequest.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/waf-openapi/model/DescribeDomainRequest.h>
+
+using AlibabaCloud::Waf_openapi::Model::DescribeDomainRequest;
+
+DescribeDomainRequest::DescribeDomainRequest() :
+	RpcServiceRequest("waf-openapi", "2019-09-10", "DescribeDomain")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeDomainRequest::~DescribeDomainRequest()
+{}
+
+std::string DescribeDomainRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void DescribeDomainRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string DescribeDomainRequest::getSourceIp()const
+{
+	return sourceIp_;
+}
+
+void DescribeDomainRequest::setSourceIp(const std::string& sourceIp)
+{
+	sourceIp_ = sourceIp;
+	setParameter("SourceIp", sourceIp);
+}
+
+std::string DescribeDomainRequest::getDomain()const
+{
+	return domain_;
+}
+
+void DescribeDomainRequest::setDomain(const std::string& domain)
+{
+	domain_ = domain;
+	setParameter("Domain", domain);
+}
+
+std::string DescribeDomainRequest::getLang()const
+{
+	return lang_;
+}
+
+void DescribeDomainRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+

+ 84 - 0
waf-openapi/src/model/DescribeDomainResult.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/waf-openapi/model/DescribeDomainResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Waf_openapi;
+using namespace AlibabaCloud::Waf_openapi::Model;
+
+DescribeDomainResult::DescribeDomainResult() :
+	ServiceResult()
+{}
+
+DescribeDomainResult::DescribeDomainResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDomainResult::~DescribeDomainResult()
+{}
+
+void DescribeDomainResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto domainNode = value["Domain"];
+	if(!domainNode["HttpToUserIp"].isNull())
+		domain_.httpToUserIp = std::stoi(domainNode["HttpToUserIp"].asString());
+	if(!domainNode["HttpsRedirect"].isNull())
+		domain_.httpsRedirect = std::stoi(domainNode["HttpsRedirect"].asString());
+	if(!domainNode["LoadBalancing"].isNull())
+		domain_.loadBalancing = std::stoi(domainNode["LoadBalancing"].asString());
+	if(!domainNode["Cname"].isNull())
+		domain_.cname = domainNode["Cname"].asString();
+	if(!domainNode["IsAccessProduct"].isNull())
+		domain_.isAccessProduct = std::stoi(domainNode["IsAccessProduct"].asString());
+	if(!domainNode["Version"].isNull())
+		domain_.version = std::stol(domainNode["Version"].asString());
+	if(!domainNode["LogHeaders"].isNull())
+		domain_.logHeaders = domainNode["LogHeaders"].asString();
+	if(!domainNode["ClusterType"].isNull())
+		domain_.clusterType = std::stoi(domainNode["ClusterType"].asString());
+	if(!domainNode["ConnectionTime"].isNull())
+		domain_.connectionTime = std::stoi(domainNode["ConnectionTime"].asString());
+	if(!domainNode["ReadTime"].isNull())
+		domain_.readTime = std::stoi(domainNode["ReadTime"].asString());
+	if(!domainNode["WriteTime"].isNull())
+		domain_.writeTime = std::stoi(domainNode["WriteTime"].asString());
+		auto allSourceIps = domainNode["SourceIps"]["SourceIp"];
+		for (auto value : allSourceIps)
+			domain_.sourceIps.push_back(value.asString());
+		auto allHttp2Port = domainNode["Http2Port"]["Http2Port"];
+		for (auto value : allHttp2Port)
+			domain_.http2Port.push_back(value.asString());
+		auto allHttpPort = domainNode["HttpPort"]["HttpPort"];
+		for (auto value : allHttpPort)
+			domain_.httpPort.push_back(value.asString());
+		auto allHttpsPort = domainNode["HttpsPort"]["HttpsPort"];
+		for (auto value : allHttpsPort)
+			domain_.httpsPort.push_back(value.asString());
+
+}
+
+DescribeDomainResult::Domain DescribeDomainResult::getDomain()const
+{
+	return domain_;
+}
+

+ 73 - 0
waf-openapi/src/model/DescribeDomainRuleGroupRequest.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/waf-openapi/model/DescribeDomainRuleGroupRequest.h>
+
+using AlibabaCloud::Waf_openapi::Model::DescribeDomainRuleGroupRequest;
+
+DescribeDomainRuleGroupRequest::DescribeDomainRuleGroupRequest() :
+	RpcServiceRequest("waf-openapi", "2019-09-10", "DescribeDomainRuleGroup")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeDomainRuleGroupRequest::~DescribeDomainRuleGroupRequest()
+{}
+
+std::string DescribeDomainRuleGroupRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void DescribeDomainRuleGroupRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string DescribeDomainRuleGroupRequest::getSourceIp()const
+{
+	return sourceIp_;
+}
+
+void DescribeDomainRuleGroupRequest::setSourceIp(const std::string& sourceIp)
+{
+	sourceIp_ = sourceIp;
+	setParameter("SourceIp", sourceIp);
+}
+
+std::string DescribeDomainRuleGroupRequest::getDomain()const
+{
+	return domain_;
+}
+
+void DescribeDomainRuleGroupRequest::setDomain(const std::string& domain)
+{
+	domain_ = domain;
+	setParameter("Domain", domain);
+}
+
+std::string DescribeDomainRuleGroupRequest::getLang()const
+{
+	return lang_;
+}
+
+void DescribeDomainRuleGroupRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+

+ 51 - 0
waf-openapi/src/model/DescribeDomainRuleGroupResult.cc

@@ -0,0 +1,51 @@
+/*
+ * 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/waf-openapi/model/DescribeDomainRuleGroupResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Waf_openapi;
+using namespace AlibabaCloud::Waf_openapi::Model;
+
+DescribeDomainRuleGroupResult::DescribeDomainRuleGroupResult() :
+	ServiceResult()
+{}
+
+DescribeDomainRuleGroupResult::DescribeDomainRuleGroupResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDomainRuleGroupResult::~DescribeDomainRuleGroupResult()
+{}
+
+void DescribeDomainRuleGroupResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["RuleGroupId"].isNull())
+		ruleGroupId_ = std::stol(value["RuleGroupId"].asString());
+
+}
+
+long DescribeDomainRuleGroupResult::getRuleGroupId()const
+{
+	return ruleGroupId_;
+}
+

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.