瀏覽代碼

Supported API for GTM.

sdk-team 5 年之前
父節點
當前提交
940ffd3643
共有 100 個文件被更改,包括 7704 次插入21 次删除
  1. 3 0
      CHANGELOG
  2. 116 0
      alidns/CMakeLists.txt
  3. 232 0
      alidns/include/alibabacloud/alidns/AlidnsClient.h
  4. 110 0
      alidns/include/alibabacloud/alidns/model/AddDnsGtmAccessStrategyRequest.h
  5. 51 0
      alidns/include/alibabacloud/alidns/model/AddDnsGtmAccessStrategyResult.h
  6. 101 0
      alidns/include/alibabacloud/alidns/model/AddDnsGtmAddressPoolRequest.h
  7. 53 0
      alidns/include/alibabacloud/alidns/model/AddDnsGtmAddressPoolResult.h
  8. 78 0
      alidns/include/alibabacloud/alidns/model/AddDnsGtmMonitorRequest.h
  9. 51 0
      alidns/include/alibabacloud/alidns/model/AddDnsGtmMonitorResult.h
  10. 54 0
      alidns/include/alibabacloud/alidns/model/DeleteDnsGtmAccessStrategyRequest.h
  11. 49 0
      alidns/include/alibabacloud/alidns/model/DeleteDnsGtmAccessStrategyResult.h
  12. 54 0
      alidns/include/alibabacloud/alidns/model/DeleteDnsGtmAddressPoolRequest.h
  13. 49 0
      alidns/include/alibabacloud/alidns/model/DeleteDnsGtmAddressPoolResult.h
  14. 63 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategiesRequest.h
  15. 85 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategiesResult.h
  16. 57 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategyAvailableConfigRequest.h
  17. 85 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategyAvailableConfigResult.h
  18. 54 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategyRequest.h
  19. 120 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategyResult.h
  20. 57 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAddrAttributeInfoRequest.h
  21. 64 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAddrAttributeInfoResult.h
  22. 54 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAddressPoolAvailableConfigRequest.h
  23. 59 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAddressPoolAvailableConfigResult.h
  24. 51 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAvailableAlertGroupRequest.h
  25. 51 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAvailableAlertGroupResult.h
  26. 54 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceAddressPoolRequest.h
  27. 86 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceAddressPoolResult.h
  28. 60 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceAddressPoolsRequest.h
  29. 73 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceAddressPoolsResult.h
  30. 54 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceRequest.h
  31. 97 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceResult.h
  32. 54 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceStatusRequest.h
  33. 59 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceStatusResult.h
  34. 54 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceSystemCnameRequest.h
  35. 51 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceSystemCnameResult.h
  36. 63 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstancesRequest.h
  37. 98 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstancesResult.h
  38. 69 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmLogsRequest.h
  39. 70 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmLogsResult.h
  40. 51 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmMonitorAvailableConfigRequest.h
  41. 97 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmMonitorAvailableConfigResult.h
  42. 54 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmMonitorConfigRequest.h
  43. 80 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsGtmMonitorConfigResult.h
  44. 2 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsProductInstanceResult.h
  45. 3 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsProductInstancesRequest.h
  46. 2 0
      alidns/include/alibabacloud/alidns/model/DescribeDnsProductInstancesResult.h
  47. 2 0
      alidns/include/alibabacloud/alidns/model/DescribeDomainInfoResult.h
  48. 3 0
      alidns/include/alibabacloud/alidns/model/DescribeDomainNsRequest.h
  49. 3 0
      alidns/include/alibabacloud/alidns/model/DescribeDomainStatisticsRequest.h
  50. 1 0
      alidns/include/alibabacloud/alidns/model/DescribeDomainStatisticsSummaryResult.h
  51. 3 0
      alidns/include/alibabacloud/alidns/model/DescribeRecordStatisticsRequest.h
  52. 3 0
      alidns/include/alibabacloud/alidns/model/DescribeRecordStatisticsSummaryRequest.h
  53. 57 0
      alidns/include/alibabacloud/alidns/model/MoveDomainResourceGroupRequest.h
  54. 49 0
      alidns/include/alibabacloud/alidns/model/MoveDomainResourceGroupResult.h
  55. 57 0
      alidns/include/alibabacloud/alidns/model/MoveGtmResourceGroupRequest.h
  56. 49 0
      alidns/include/alibabacloud/alidns/model/MoveGtmResourceGroupResult.h
  57. 57 0
      alidns/include/alibabacloud/alidns/model/SetDnsGtmAccessModeRequest.h
  58. 49 0
      alidns/include/alibabacloud/alidns/model/SetDnsGtmAccessModeResult.h
  59. 57 0
      alidns/include/alibabacloud/alidns/model/SetDnsGtmMonitorStatusRequest.h
  60. 49 0
      alidns/include/alibabacloud/alidns/model/SetDnsGtmMonitorStatusResult.h
  61. 57 0
      alidns/include/alibabacloud/alidns/model/SwitchDnsGtmInstanceStrategyModeRequest.h
  62. 49 0
      alidns/include/alibabacloud/alidns/model/SwitchDnsGtmInstanceStrategyModeResult.h
  63. 107 0
      alidns/include/alibabacloud/alidns/model/UpdateDnsGtmAccessStrategyRequest.h
  64. 51 0
      alidns/include/alibabacloud/alidns/model/UpdateDnsGtmAccessStrategyResult.h
  65. 72 0
      alidns/include/alibabacloud/alidns/model/UpdateDnsGtmAddressPoolRequest.h
  66. 49 0
      alidns/include/alibabacloud/alidns/model/UpdateDnsGtmAddressPoolResult.h
  67. 85 0
      alidns/include/alibabacloud/alidns/model/UpdateDnsGtmInstanceGlobalConfigRequest.h
  68. 49 0
      alidns/include/alibabacloud/alidns/model/UpdateDnsGtmInstanceGlobalConfigResult.h
  69. 78 0
      alidns/include/alibabacloud/alidns/model/UpdateDnsGtmMonitorRequest.h
  70. 49 0
      alidns/include/alibabacloud/alidns/model/UpdateDnsGtmMonitorResult.h
  71. 913 13
      alidns/src/AlidnsClient.cc
  72. 237 0
      alidns/src/model/AddDnsGtmAccessStrategyRequest.cc
  73. 51 0
      alidns/src/model/AddDnsGtmAccessStrategyResult.cc
  74. 196 0
      alidns/src/model/AddDnsGtmAddressPoolRequest.cc
  75. 58 0
      alidns/src/model/AddDnsGtmAddressPoolResult.cc
  76. 133 0
      alidns/src/model/AddDnsGtmMonitorRequest.cc
  77. 51 0
      alidns/src/model/AddDnsGtmMonitorResult.cc
  78. 62 0
      alidns/src/model/DeleteDnsGtmAccessStrategyRequest.cc
  79. 44 0
      alidns/src/model/DeleteDnsGtmAccessStrategyResult.cc
  80. 62 0
      alidns/src/model/DeleteDnsGtmAddressPoolRequest.cc
  81. 44 0
      alidns/src/model/DeleteDnsGtmAddressPoolResult.cc
  82. 8 8
      alidns/src/model/DescribeCustomLinesResult.cc
  83. 95 0
      alidns/src/model/DescribeDnsGtmAccessStrategiesRequest.cc
  84. 125 0
      alidns/src/model/DescribeDnsGtmAccessStrategiesResult.cc
  85. 73 0
      alidns/src/model/DescribeDnsGtmAccessStrategyAvailableConfigRequest.cc
  86. 123 0
      alidns/src/model/DescribeDnsGtmAccessStrategyAvailableConfigResult.cc
  87. 62 0
      alidns/src/model/DescribeDnsGtmAccessStrategyRequest.cc
  88. 255 0
      alidns/src/model/DescribeDnsGtmAccessStrategyResult.cc
  89. 73 0
      alidns/src/model/DescribeDnsGtmAddrAttributeInfoRequest.cc
  90. 68 0
      alidns/src/model/DescribeDnsGtmAddrAttributeInfoResult.cc
  91. 62 0
      alidns/src/model/DescribeDnsGtmAddressPoolAvailableConfigRequest.cc
  92. 65 0
      alidns/src/model/DescribeDnsGtmAddressPoolAvailableConfigResult.cc
  93. 51 0
      alidns/src/model/DescribeDnsGtmAvailableAlertGroupRequest.cc
  94. 51 0
      alidns/src/model/DescribeDnsGtmAvailableAlertGroupResult.cc
  95. 62 0
      alidns/src/model/DescribeDnsGtmInstanceAddressPoolRequest.cc
  96. 152 0
      alidns/src/model/DescribeDnsGtmInstanceAddressPoolResult.cc
  97. 84 0
      alidns/src/model/DescribeDnsGtmInstanceAddressPoolsRequest.cc
  98. 105 0
      alidns/src/model/DescribeDnsGtmInstanceAddressPoolsResult.cc
  99. 62 0
      alidns/src/model/DescribeDnsGtmInstanceRequest.cc
  100. 160 0
      alidns/src/model/DescribeDnsGtmInstanceResult.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2021-01-04 Version: patch
+- Supported API for GTM.
+
 2020-12-31 Version: patch
 - Add support for thing model function block features, including thing model APIs like CreateThingModel,UpdateThingModel,SetDeviceProperty,InvokeThingService etc.
 

+ 116 - 0
alidns/CMakeLists.txt

@@ -23,6 +23,12 @@ set(alidns_public_header
 set(alidns_public_header_model 
 	include/alibabacloud/alidns/model/AddCustomLineRequest.h
 	include/alibabacloud/alidns/model/AddCustomLineResult.h
+	include/alibabacloud/alidns/model/AddDnsGtmAccessStrategyRequest.h
+	include/alibabacloud/alidns/model/AddDnsGtmAccessStrategyResult.h
+	include/alibabacloud/alidns/model/AddDnsGtmAddressPoolRequest.h
+	include/alibabacloud/alidns/model/AddDnsGtmAddressPoolResult.h
+	include/alibabacloud/alidns/model/AddDnsGtmMonitorRequest.h
+	include/alibabacloud/alidns/model/AddDnsGtmMonitorResult.h
 	include/alibabacloud/alidns/model/AddDomainRequest.h
 	include/alibabacloud/alidns/model/AddDomainResult.h
 	include/alibabacloud/alidns/model/AddDomainBackupRequest.h
@@ -49,6 +55,10 @@ set(alidns_public_header_model
 	include/alibabacloud/alidns/model/CopyGtmConfigResult.h
 	include/alibabacloud/alidns/model/DeleteCustomLinesRequest.h
 	include/alibabacloud/alidns/model/DeleteCustomLinesResult.h
+	include/alibabacloud/alidns/model/DeleteDnsGtmAccessStrategyRequest.h
+	include/alibabacloud/alidns/model/DeleteDnsGtmAccessStrategyResult.h
+	include/alibabacloud/alidns/model/DeleteDnsGtmAddressPoolRequest.h
+	include/alibabacloud/alidns/model/DeleteDnsGtmAddressPoolResult.h
 	include/alibabacloud/alidns/model/DeleteDomainRequest.h
 	include/alibabacloud/alidns/model/DeleteDomainResult.h
 	include/alibabacloud/alidns/model/DeleteDomainGroupRequest.h
@@ -73,6 +83,36 @@ set(alidns_public_header_model
 	include/alibabacloud/alidns/model/DescribeCustomLinesResult.h
 	include/alibabacloud/alidns/model/DescribeDNSSLBSubDomainsRequest.h
 	include/alibabacloud/alidns/model/DescribeDNSSLBSubDomainsResult.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategiesRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategiesResult.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategyRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategyResult.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategyAvailableConfigRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategyAvailableConfigResult.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmAddrAttributeInfoRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmAddrAttributeInfoResult.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmAddressPoolAvailableConfigRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmAddressPoolAvailableConfigResult.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmAvailableAlertGroupRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmAvailableAlertGroupResult.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmInstanceRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmInstanceResult.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmInstanceAddressPoolRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmInstanceAddressPoolResult.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmInstanceAddressPoolsRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmInstanceAddressPoolsResult.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmInstanceStatusRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmInstanceStatusResult.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmInstanceSystemCnameRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmInstanceSystemCnameResult.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmInstancesRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmInstancesResult.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmLogsRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmLogsResult.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmMonitorAvailableConfigRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmMonitorAvailableConfigResult.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmMonitorConfigRequest.h
+	include/alibabacloud/alidns/model/DescribeDnsGtmMonitorConfigResult.h
 	include/alibabacloud/alidns/model/DescribeDnsProductInstanceRequest.h
 	include/alibabacloud/alidns/model/DescribeDnsProductInstanceResult.h
 	include/alibabacloud/alidns/model/DescribeDnsProductInstancesRequest.h
@@ -167,6 +207,10 @@ set(alidns_public_header_model
 	include/alibabacloud/alidns/model/ListTagResourcesResult.h
 	include/alibabacloud/alidns/model/ModifyHichinaDomainDNSRequest.h
 	include/alibabacloud/alidns/model/ModifyHichinaDomainDNSResult.h
+	include/alibabacloud/alidns/model/MoveDomainResourceGroupRequest.h
+	include/alibabacloud/alidns/model/MoveDomainResourceGroupResult.h
+	include/alibabacloud/alidns/model/MoveGtmResourceGroupRequest.h
+	include/alibabacloud/alidns/model/MoveGtmResourceGroupResult.h
 	include/alibabacloud/alidns/model/OperateBatchDomainRequest.h
 	include/alibabacloud/alidns/model/OperateBatchDomainResult.h
 	include/alibabacloud/alidns/model/PreviewGtmRecoveryPlanRequest.h
@@ -177,6 +221,10 @@ set(alidns_public_header_model
 	include/alibabacloud/alidns/model/RollbackGtmRecoveryPlanResult.h
 	include/alibabacloud/alidns/model/SetDNSSLBStatusRequest.h
 	include/alibabacloud/alidns/model/SetDNSSLBStatusResult.h
+	include/alibabacloud/alidns/model/SetDnsGtmAccessModeRequest.h
+	include/alibabacloud/alidns/model/SetDnsGtmAccessModeResult.h
+	include/alibabacloud/alidns/model/SetDnsGtmMonitorStatusRequest.h
+	include/alibabacloud/alidns/model/SetDnsGtmMonitorStatusResult.h
 	include/alibabacloud/alidns/model/SetDomainDnssecStatusRequest.h
 	include/alibabacloud/alidns/model/SetDomainDnssecStatusResult.h
 	include/alibabacloud/alidns/model/SetDomainRecordStatusRequest.h
@@ -185,6 +233,8 @@ set(alidns_public_header_model
 	include/alibabacloud/alidns/model/SetGtmAccessModeResult.h
 	include/alibabacloud/alidns/model/SetGtmMonitorStatusRequest.h
 	include/alibabacloud/alidns/model/SetGtmMonitorStatusResult.h
+	include/alibabacloud/alidns/model/SwitchDnsGtmInstanceStrategyModeRequest.h
+	include/alibabacloud/alidns/model/SwitchDnsGtmInstanceStrategyModeResult.h
 	include/alibabacloud/alidns/model/TagResourcesRequest.h
 	include/alibabacloud/alidns/model/TagResourcesResult.h
 	include/alibabacloud/alidns/model/TransferDomainRequest.h
@@ -197,6 +247,14 @@ set(alidns_public_header_model
 	include/alibabacloud/alidns/model/UpdateCustomLineResult.h
 	include/alibabacloud/alidns/model/UpdateDNSSLBWeightRequest.h
 	include/alibabacloud/alidns/model/UpdateDNSSLBWeightResult.h
+	include/alibabacloud/alidns/model/UpdateDnsGtmAccessStrategyRequest.h
+	include/alibabacloud/alidns/model/UpdateDnsGtmAccessStrategyResult.h
+	include/alibabacloud/alidns/model/UpdateDnsGtmAddressPoolRequest.h
+	include/alibabacloud/alidns/model/UpdateDnsGtmAddressPoolResult.h
+	include/alibabacloud/alidns/model/UpdateDnsGtmInstanceGlobalConfigRequest.h
+	include/alibabacloud/alidns/model/UpdateDnsGtmInstanceGlobalConfigResult.h
+	include/alibabacloud/alidns/model/UpdateDnsGtmMonitorRequest.h
+	include/alibabacloud/alidns/model/UpdateDnsGtmMonitorResult.h
 	include/alibabacloud/alidns/model/UpdateDomainGroupRequest.h
 	include/alibabacloud/alidns/model/UpdateDomainGroupResult.h
 	include/alibabacloud/alidns/model/UpdateDomainRecordRequest.h
@@ -220,6 +278,12 @@ set(alidns_src
 	src/AlidnsClient.cc
 	src/model/AddCustomLineRequest.cc
 	src/model/AddCustomLineResult.cc
+	src/model/AddDnsGtmAccessStrategyRequest.cc
+	src/model/AddDnsGtmAccessStrategyResult.cc
+	src/model/AddDnsGtmAddressPoolRequest.cc
+	src/model/AddDnsGtmAddressPoolResult.cc
+	src/model/AddDnsGtmMonitorRequest.cc
+	src/model/AddDnsGtmMonitorResult.cc
 	src/model/AddDomainRequest.cc
 	src/model/AddDomainResult.cc
 	src/model/AddDomainBackupRequest.cc
@@ -246,6 +310,10 @@ set(alidns_src
 	src/model/CopyGtmConfigResult.cc
 	src/model/DeleteCustomLinesRequest.cc
 	src/model/DeleteCustomLinesResult.cc
+	src/model/DeleteDnsGtmAccessStrategyRequest.cc
+	src/model/DeleteDnsGtmAccessStrategyResult.cc
+	src/model/DeleteDnsGtmAddressPoolRequest.cc
+	src/model/DeleteDnsGtmAddressPoolResult.cc
 	src/model/DeleteDomainRequest.cc
 	src/model/DeleteDomainResult.cc
 	src/model/DeleteDomainGroupRequest.cc
@@ -270,6 +338,36 @@ set(alidns_src
 	src/model/DescribeCustomLinesResult.cc
 	src/model/DescribeDNSSLBSubDomainsRequest.cc
 	src/model/DescribeDNSSLBSubDomainsResult.cc
+	src/model/DescribeDnsGtmAccessStrategiesRequest.cc
+	src/model/DescribeDnsGtmAccessStrategiesResult.cc
+	src/model/DescribeDnsGtmAccessStrategyRequest.cc
+	src/model/DescribeDnsGtmAccessStrategyResult.cc
+	src/model/DescribeDnsGtmAccessStrategyAvailableConfigRequest.cc
+	src/model/DescribeDnsGtmAccessStrategyAvailableConfigResult.cc
+	src/model/DescribeDnsGtmAddrAttributeInfoRequest.cc
+	src/model/DescribeDnsGtmAddrAttributeInfoResult.cc
+	src/model/DescribeDnsGtmAddressPoolAvailableConfigRequest.cc
+	src/model/DescribeDnsGtmAddressPoolAvailableConfigResult.cc
+	src/model/DescribeDnsGtmAvailableAlertGroupRequest.cc
+	src/model/DescribeDnsGtmAvailableAlertGroupResult.cc
+	src/model/DescribeDnsGtmInstanceRequest.cc
+	src/model/DescribeDnsGtmInstanceResult.cc
+	src/model/DescribeDnsGtmInstanceAddressPoolRequest.cc
+	src/model/DescribeDnsGtmInstanceAddressPoolResult.cc
+	src/model/DescribeDnsGtmInstanceAddressPoolsRequest.cc
+	src/model/DescribeDnsGtmInstanceAddressPoolsResult.cc
+	src/model/DescribeDnsGtmInstanceStatusRequest.cc
+	src/model/DescribeDnsGtmInstanceStatusResult.cc
+	src/model/DescribeDnsGtmInstanceSystemCnameRequest.cc
+	src/model/DescribeDnsGtmInstanceSystemCnameResult.cc
+	src/model/DescribeDnsGtmInstancesRequest.cc
+	src/model/DescribeDnsGtmInstancesResult.cc
+	src/model/DescribeDnsGtmLogsRequest.cc
+	src/model/DescribeDnsGtmLogsResult.cc
+	src/model/DescribeDnsGtmMonitorAvailableConfigRequest.cc
+	src/model/DescribeDnsGtmMonitorAvailableConfigResult.cc
+	src/model/DescribeDnsGtmMonitorConfigRequest.cc
+	src/model/DescribeDnsGtmMonitorConfigResult.cc
 	src/model/DescribeDnsProductInstanceRequest.cc
 	src/model/DescribeDnsProductInstanceResult.cc
 	src/model/DescribeDnsProductInstancesRequest.cc
@@ -364,6 +462,10 @@ set(alidns_src
 	src/model/ListTagResourcesResult.cc
 	src/model/ModifyHichinaDomainDNSRequest.cc
 	src/model/ModifyHichinaDomainDNSResult.cc
+	src/model/MoveDomainResourceGroupRequest.cc
+	src/model/MoveDomainResourceGroupResult.cc
+	src/model/MoveGtmResourceGroupRequest.cc
+	src/model/MoveGtmResourceGroupResult.cc
 	src/model/OperateBatchDomainRequest.cc
 	src/model/OperateBatchDomainResult.cc
 	src/model/PreviewGtmRecoveryPlanRequest.cc
@@ -374,6 +476,10 @@ set(alidns_src
 	src/model/RollbackGtmRecoveryPlanResult.cc
 	src/model/SetDNSSLBStatusRequest.cc
 	src/model/SetDNSSLBStatusResult.cc
+	src/model/SetDnsGtmAccessModeRequest.cc
+	src/model/SetDnsGtmAccessModeResult.cc
+	src/model/SetDnsGtmMonitorStatusRequest.cc
+	src/model/SetDnsGtmMonitorStatusResult.cc
 	src/model/SetDomainDnssecStatusRequest.cc
 	src/model/SetDomainDnssecStatusResult.cc
 	src/model/SetDomainRecordStatusRequest.cc
@@ -382,6 +488,8 @@ set(alidns_src
 	src/model/SetGtmAccessModeResult.cc
 	src/model/SetGtmMonitorStatusRequest.cc
 	src/model/SetGtmMonitorStatusResult.cc
+	src/model/SwitchDnsGtmInstanceStrategyModeRequest.cc
+	src/model/SwitchDnsGtmInstanceStrategyModeResult.cc
 	src/model/TagResourcesRequest.cc
 	src/model/TagResourcesResult.cc
 	src/model/TransferDomainRequest.cc
@@ -394,6 +502,14 @@ set(alidns_src
 	src/model/UpdateCustomLineResult.cc
 	src/model/UpdateDNSSLBWeightRequest.cc
 	src/model/UpdateDNSSLBWeightResult.cc
+	src/model/UpdateDnsGtmAccessStrategyRequest.cc
+	src/model/UpdateDnsGtmAccessStrategyResult.cc
+	src/model/UpdateDnsGtmAddressPoolRequest.cc
+	src/model/UpdateDnsGtmAddressPoolResult.cc
+	src/model/UpdateDnsGtmInstanceGlobalConfigRequest.cc
+	src/model/UpdateDnsGtmInstanceGlobalConfigResult.cc
+	src/model/UpdateDnsGtmMonitorRequest.cc
+	src/model/UpdateDnsGtmMonitorResult.cc
 	src/model/UpdateDomainGroupRequest.cc
 	src/model/UpdateDomainGroupResult.cc
 	src/model/UpdateDomainRecordRequest.cc

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

@@ -24,6 +24,12 @@
 #include "AlidnsExport.h"
 #include "model/AddCustomLineRequest.h"
 #include "model/AddCustomLineResult.h"
+#include "model/AddDnsGtmAccessStrategyRequest.h"
+#include "model/AddDnsGtmAccessStrategyResult.h"
+#include "model/AddDnsGtmAddressPoolRequest.h"
+#include "model/AddDnsGtmAddressPoolResult.h"
+#include "model/AddDnsGtmMonitorRequest.h"
+#include "model/AddDnsGtmMonitorResult.h"
 #include "model/AddDomainRequest.h"
 #include "model/AddDomainResult.h"
 #include "model/AddDomainBackupRequest.h"
@@ -50,6 +56,10 @@
 #include "model/CopyGtmConfigResult.h"
 #include "model/DeleteCustomLinesRequest.h"
 #include "model/DeleteCustomLinesResult.h"
+#include "model/DeleteDnsGtmAccessStrategyRequest.h"
+#include "model/DeleteDnsGtmAccessStrategyResult.h"
+#include "model/DeleteDnsGtmAddressPoolRequest.h"
+#include "model/DeleteDnsGtmAddressPoolResult.h"
 #include "model/DeleteDomainRequest.h"
 #include "model/DeleteDomainResult.h"
 #include "model/DeleteDomainGroupRequest.h"
@@ -74,6 +84,36 @@
 #include "model/DescribeCustomLinesResult.h"
 #include "model/DescribeDNSSLBSubDomainsRequest.h"
 #include "model/DescribeDNSSLBSubDomainsResult.h"
+#include "model/DescribeDnsGtmAccessStrategiesRequest.h"
+#include "model/DescribeDnsGtmAccessStrategiesResult.h"
+#include "model/DescribeDnsGtmAccessStrategyRequest.h"
+#include "model/DescribeDnsGtmAccessStrategyResult.h"
+#include "model/DescribeDnsGtmAccessStrategyAvailableConfigRequest.h"
+#include "model/DescribeDnsGtmAccessStrategyAvailableConfigResult.h"
+#include "model/DescribeDnsGtmAddrAttributeInfoRequest.h"
+#include "model/DescribeDnsGtmAddrAttributeInfoResult.h"
+#include "model/DescribeDnsGtmAddressPoolAvailableConfigRequest.h"
+#include "model/DescribeDnsGtmAddressPoolAvailableConfigResult.h"
+#include "model/DescribeDnsGtmAvailableAlertGroupRequest.h"
+#include "model/DescribeDnsGtmAvailableAlertGroupResult.h"
+#include "model/DescribeDnsGtmInstanceRequest.h"
+#include "model/DescribeDnsGtmInstanceResult.h"
+#include "model/DescribeDnsGtmInstanceAddressPoolRequest.h"
+#include "model/DescribeDnsGtmInstanceAddressPoolResult.h"
+#include "model/DescribeDnsGtmInstanceAddressPoolsRequest.h"
+#include "model/DescribeDnsGtmInstanceAddressPoolsResult.h"
+#include "model/DescribeDnsGtmInstanceStatusRequest.h"
+#include "model/DescribeDnsGtmInstanceStatusResult.h"
+#include "model/DescribeDnsGtmInstanceSystemCnameRequest.h"
+#include "model/DescribeDnsGtmInstanceSystemCnameResult.h"
+#include "model/DescribeDnsGtmInstancesRequest.h"
+#include "model/DescribeDnsGtmInstancesResult.h"
+#include "model/DescribeDnsGtmLogsRequest.h"
+#include "model/DescribeDnsGtmLogsResult.h"
+#include "model/DescribeDnsGtmMonitorAvailableConfigRequest.h"
+#include "model/DescribeDnsGtmMonitorAvailableConfigResult.h"
+#include "model/DescribeDnsGtmMonitorConfigRequest.h"
+#include "model/DescribeDnsGtmMonitorConfigResult.h"
 #include "model/DescribeDnsProductInstanceRequest.h"
 #include "model/DescribeDnsProductInstanceResult.h"
 #include "model/DescribeDnsProductInstancesRequest.h"
@@ -168,6 +208,10 @@
 #include "model/ListTagResourcesResult.h"
 #include "model/ModifyHichinaDomainDNSRequest.h"
 #include "model/ModifyHichinaDomainDNSResult.h"
+#include "model/MoveDomainResourceGroupRequest.h"
+#include "model/MoveDomainResourceGroupResult.h"
+#include "model/MoveGtmResourceGroupRequest.h"
+#include "model/MoveGtmResourceGroupResult.h"
 #include "model/OperateBatchDomainRequest.h"
 #include "model/OperateBatchDomainResult.h"
 #include "model/PreviewGtmRecoveryPlanRequest.h"
@@ -178,6 +222,10 @@
 #include "model/RollbackGtmRecoveryPlanResult.h"
 #include "model/SetDNSSLBStatusRequest.h"
 #include "model/SetDNSSLBStatusResult.h"
+#include "model/SetDnsGtmAccessModeRequest.h"
+#include "model/SetDnsGtmAccessModeResult.h"
+#include "model/SetDnsGtmMonitorStatusRequest.h"
+#include "model/SetDnsGtmMonitorStatusResult.h"
 #include "model/SetDomainDnssecStatusRequest.h"
 #include "model/SetDomainDnssecStatusResult.h"
 #include "model/SetDomainRecordStatusRequest.h"
@@ -186,6 +234,8 @@
 #include "model/SetGtmAccessModeResult.h"
 #include "model/SetGtmMonitorStatusRequest.h"
 #include "model/SetGtmMonitorStatusResult.h"
+#include "model/SwitchDnsGtmInstanceStrategyModeRequest.h"
+#include "model/SwitchDnsGtmInstanceStrategyModeResult.h"
 #include "model/TagResourcesRequest.h"
 #include "model/TagResourcesResult.h"
 #include "model/TransferDomainRequest.h"
@@ -198,6 +248,14 @@
 #include "model/UpdateCustomLineResult.h"
 #include "model/UpdateDNSSLBWeightRequest.h"
 #include "model/UpdateDNSSLBWeightResult.h"
+#include "model/UpdateDnsGtmAccessStrategyRequest.h"
+#include "model/UpdateDnsGtmAccessStrategyResult.h"
+#include "model/UpdateDnsGtmAddressPoolRequest.h"
+#include "model/UpdateDnsGtmAddressPoolResult.h"
+#include "model/UpdateDnsGtmInstanceGlobalConfigRequest.h"
+#include "model/UpdateDnsGtmInstanceGlobalConfigResult.h"
+#include "model/UpdateDnsGtmMonitorRequest.h"
+#include "model/UpdateDnsGtmMonitorResult.h"
 #include "model/UpdateDomainGroupRequest.h"
 #include "model/UpdateDomainGroupResult.h"
 #include "model/UpdateDomainRecordRequest.h"
@@ -228,6 +286,15 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::AddCustomLineResult> AddCustomLineOutcome;
 			typedef std::future<AddCustomLineOutcome> AddCustomLineOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::AddCustomLineRequest&, const AddCustomLineOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddCustomLineAsyncHandler;
+			typedef Outcome<Error, Model::AddDnsGtmAccessStrategyResult> AddDnsGtmAccessStrategyOutcome;
+			typedef std::future<AddDnsGtmAccessStrategyOutcome> AddDnsGtmAccessStrategyOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::AddDnsGtmAccessStrategyRequest&, const AddDnsGtmAccessStrategyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddDnsGtmAccessStrategyAsyncHandler;
+			typedef Outcome<Error, Model::AddDnsGtmAddressPoolResult> AddDnsGtmAddressPoolOutcome;
+			typedef std::future<AddDnsGtmAddressPoolOutcome> AddDnsGtmAddressPoolOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::AddDnsGtmAddressPoolRequest&, const AddDnsGtmAddressPoolOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddDnsGtmAddressPoolAsyncHandler;
+			typedef Outcome<Error, Model::AddDnsGtmMonitorResult> AddDnsGtmMonitorOutcome;
+			typedef std::future<AddDnsGtmMonitorOutcome> AddDnsGtmMonitorOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::AddDnsGtmMonitorRequest&, const AddDnsGtmMonitorOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddDnsGtmMonitorAsyncHandler;
 			typedef Outcome<Error, Model::AddDomainResult> AddDomainOutcome;
 			typedef std::future<AddDomainOutcome> AddDomainOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::AddDomainRequest&, const AddDomainOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> AddDomainAsyncHandler;
@@ -267,6 +334,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteCustomLinesResult> DeleteCustomLinesOutcome;
 			typedef std::future<DeleteCustomLinesOutcome> DeleteCustomLinesOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::DeleteCustomLinesRequest&, const DeleteCustomLinesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteCustomLinesAsyncHandler;
+			typedef Outcome<Error, Model::DeleteDnsGtmAccessStrategyResult> DeleteDnsGtmAccessStrategyOutcome;
+			typedef std::future<DeleteDnsGtmAccessStrategyOutcome> DeleteDnsGtmAccessStrategyOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DeleteDnsGtmAccessStrategyRequest&, const DeleteDnsGtmAccessStrategyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDnsGtmAccessStrategyAsyncHandler;
+			typedef Outcome<Error, Model::DeleteDnsGtmAddressPoolResult> DeleteDnsGtmAddressPoolOutcome;
+			typedef std::future<DeleteDnsGtmAddressPoolOutcome> DeleteDnsGtmAddressPoolOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DeleteDnsGtmAddressPoolRequest&, const DeleteDnsGtmAddressPoolOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDnsGtmAddressPoolAsyncHandler;
 			typedef Outcome<Error, Model::DeleteDomainResult> DeleteDomainOutcome;
 			typedef std::future<DeleteDomainOutcome> DeleteDomainOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::DeleteDomainRequest&, const DeleteDomainOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteDomainAsyncHandler;
@@ -303,6 +376,51 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DescribeDNSSLBSubDomainsResult> DescribeDNSSLBSubDomainsOutcome;
 			typedef std::future<DescribeDNSSLBSubDomainsOutcome> DescribeDNSSLBSubDomainsOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::DescribeDNSSLBSubDomainsRequest&, const DescribeDNSSLBSubDomainsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDNSSLBSubDomainsAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsGtmAccessStrategiesResult> DescribeDnsGtmAccessStrategiesOutcome;
+			typedef std::future<DescribeDnsGtmAccessStrategiesOutcome> DescribeDnsGtmAccessStrategiesOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmAccessStrategiesRequest&, const DescribeDnsGtmAccessStrategiesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmAccessStrategiesAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsGtmAccessStrategyResult> DescribeDnsGtmAccessStrategyOutcome;
+			typedef std::future<DescribeDnsGtmAccessStrategyOutcome> DescribeDnsGtmAccessStrategyOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmAccessStrategyRequest&, const DescribeDnsGtmAccessStrategyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmAccessStrategyAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsGtmAccessStrategyAvailableConfigResult> DescribeDnsGtmAccessStrategyAvailableConfigOutcome;
+			typedef std::future<DescribeDnsGtmAccessStrategyAvailableConfigOutcome> DescribeDnsGtmAccessStrategyAvailableConfigOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmAccessStrategyAvailableConfigRequest&, const DescribeDnsGtmAccessStrategyAvailableConfigOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmAccessStrategyAvailableConfigAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsGtmAddrAttributeInfoResult> DescribeDnsGtmAddrAttributeInfoOutcome;
+			typedef std::future<DescribeDnsGtmAddrAttributeInfoOutcome> DescribeDnsGtmAddrAttributeInfoOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmAddrAttributeInfoRequest&, const DescribeDnsGtmAddrAttributeInfoOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmAddrAttributeInfoAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsGtmAddressPoolAvailableConfigResult> DescribeDnsGtmAddressPoolAvailableConfigOutcome;
+			typedef std::future<DescribeDnsGtmAddressPoolAvailableConfigOutcome> DescribeDnsGtmAddressPoolAvailableConfigOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmAddressPoolAvailableConfigRequest&, const DescribeDnsGtmAddressPoolAvailableConfigOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmAddressPoolAvailableConfigAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsGtmAvailableAlertGroupResult> DescribeDnsGtmAvailableAlertGroupOutcome;
+			typedef std::future<DescribeDnsGtmAvailableAlertGroupOutcome> DescribeDnsGtmAvailableAlertGroupOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmAvailableAlertGroupRequest&, const DescribeDnsGtmAvailableAlertGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmAvailableAlertGroupAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsGtmInstanceResult> DescribeDnsGtmInstanceOutcome;
+			typedef std::future<DescribeDnsGtmInstanceOutcome> DescribeDnsGtmInstanceOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmInstanceRequest&, const DescribeDnsGtmInstanceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmInstanceAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsGtmInstanceAddressPoolResult> DescribeDnsGtmInstanceAddressPoolOutcome;
+			typedef std::future<DescribeDnsGtmInstanceAddressPoolOutcome> DescribeDnsGtmInstanceAddressPoolOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmInstanceAddressPoolRequest&, const DescribeDnsGtmInstanceAddressPoolOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmInstanceAddressPoolAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsGtmInstanceAddressPoolsResult> DescribeDnsGtmInstanceAddressPoolsOutcome;
+			typedef std::future<DescribeDnsGtmInstanceAddressPoolsOutcome> DescribeDnsGtmInstanceAddressPoolsOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmInstanceAddressPoolsRequest&, const DescribeDnsGtmInstanceAddressPoolsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmInstanceAddressPoolsAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsGtmInstanceStatusResult> DescribeDnsGtmInstanceStatusOutcome;
+			typedef std::future<DescribeDnsGtmInstanceStatusOutcome> DescribeDnsGtmInstanceStatusOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmInstanceStatusRequest&, const DescribeDnsGtmInstanceStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmInstanceStatusAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsGtmInstanceSystemCnameResult> DescribeDnsGtmInstanceSystemCnameOutcome;
+			typedef std::future<DescribeDnsGtmInstanceSystemCnameOutcome> DescribeDnsGtmInstanceSystemCnameOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmInstanceSystemCnameRequest&, const DescribeDnsGtmInstanceSystemCnameOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmInstanceSystemCnameAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsGtmInstancesResult> DescribeDnsGtmInstancesOutcome;
+			typedef std::future<DescribeDnsGtmInstancesOutcome> DescribeDnsGtmInstancesOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmInstancesRequest&, const DescribeDnsGtmInstancesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmInstancesAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsGtmLogsResult> DescribeDnsGtmLogsOutcome;
+			typedef std::future<DescribeDnsGtmLogsOutcome> DescribeDnsGtmLogsOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmLogsRequest&, const DescribeDnsGtmLogsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmLogsAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsGtmMonitorAvailableConfigResult> DescribeDnsGtmMonitorAvailableConfigOutcome;
+			typedef std::future<DescribeDnsGtmMonitorAvailableConfigOutcome> DescribeDnsGtmMonitorAvailableConfigOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmMonitorAvailableConfigRequest&, const DescribeDnsGtmMonitorAvailableConfigOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmMonitorAvailableConfigAsyncHandler;
+			typedef Outcome<Error, Model::DescribeDnsGtmMonitorConfigResult> DescribeDnsGtmMonitorConfigOutcome;
+			typedef std::future<DescribeDnsGtmMonitorConfigOutcome> DescribeDnsGtmMonitorConfigOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsGtmMonitorConfigRequest&, const DescribeDnsGtmMonitorConfigOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsGtmMonitorConfigAsyncHandler;
 			typedef Outcome<Error, Model::DescribeDnsProductInstanceResult> DescribeDnsProductInstanceOutcome;
 			typedef std::future<DescribeDnsProductInstanceOutcome> DescribeDnsProductInstanceOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::DescribeDnsProductInstanceRequest&, const DescribeDnsProductInstanceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DescribeDnsProductInstanceAsyncHandler;
@@ -444,6 +562,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ModifyHichinaDomainDNSResult> ModifyHichinaDomainDNSOutcome;
 			typedef std::future<ModifyHichinaDomainDNSOutcome> ModifyHichinaDomainDNSOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::ModifyHichinaDomainDNSRequest&, const ModifyHichinaDomainDNSOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ModifyHichinaDomainDNSAsyncHandler;
+			typedef Outcome<Error, Model::MoveDomainResourceGroupResult> MoveDomainResourceGroupOutcome;
+			typedef std::future<MoveDomainResourceGroupOutcome> MoveDomainResourceGroupOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::MoveDomainResourceGroupRequest&, const MoveDomainResourceGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> MoveDomainResourceGroupAsyncHandler;
+			typedef Outcome<Error, Model::MoveGtmResourceGroupResult> MoveGtmResourceGroupOutcome;
+			typedef std::future<MoveGtmResourceGroupOutcome> MoveGtmResourceGroupOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::MoveGtmResourceGroupRequest&, const MoveGtmResourceGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> MoveGtmResourceGroupAsyncHandler;
 			typedef Outcome<Error, Model::OperateBatchDomainResult> OperateBatchDomainOutcome;
 			typedef std::future<OperateBatchDomainOutcome> OperateBatchDomainOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::OperateBatchDomainRequest&, const OperateBatchDomainOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> OperateBatchDomainAsyncHandler;
@@ -459,6 +583,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::SetDNSSLBStatusResult> SetDNSSLBStatusOutcome;
 			typedef std::future<SetDNSSLBStatusOutcome> SetDNSSLBStatusOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::SetDNSSLBStatusRequest&, const SetDNSSLBStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SetDNSSLBStatusAsyncHandler;
+			typedef Outcome<Error, Model::SetDnsGtmAccessModeResult> SetDnsGtmAccessModeOutcome;
+			typedef std::future<SetDnsGtmAccessModeOutcome> SetDnsGtmAccessModeOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::SetDnsGtmAccessModeRequest&, const SetDnsGtmAccessModeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SetDnsGtmAccessModeAsyncHandler;
+			typedef Outcome<Error, Model::SetDnsGtmMonitorStatusResult> SetDnsGtmMonitorStatusOutcome;
+			typedef std::future<SetDnsGtmMonitorStatusOutcome> SetDnsGtmMonitorStatusOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::SetDnsGtmMonitorStatusRequest&, const SetDnsGtmMonitorStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SetDnsGtmMonitorStatusAsyncHandler;
 			typedef Outcome<Error, Model::SetDomainDnssecStatusResult> SetDomainDnssecStatusOutcome;
 			typedef std::future<SetDomainDnssecStatusOutcome> SetDomainDnssecStatusOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::SetDomainDnssecStatusRequest&, const SetDomainDnssecStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SetDomainDnssecStatusAsyncHandler;
@@ -471,6 +601,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::SetGtmMonitorStatusResult> SetGtmMonitorStatusOutcome;
 			typedef std::future<SetGtmMonitorStatusOutcome> SetGtmMonitorStatusOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::SetGtmMonitorStatusRequest&, const SetGtmMonitorStatusOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SetGtmMonitorStatusAsyncHandler;
+			typedef Outcome<Error, Model::SwitchDnsGtmInstanceStrategyModeResult> SwitchDnsGtmInstanceStrategyModeOutcome;
+			typedef std::future<SwitchDnsGtmInstanceStrategyModeOutcome> SwitchDnsGtmInstanceStrategyModeOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::SwitchDnsGtmInstanceStrategyModeRequest&, const SwitchDnsGtmInstanceStrategyModeOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> SwitchDnsGtmInstanceStrategyModeAsyncHandler;
 			typedef Outcome<Error, Model::TagResourcesResult> TagResourcesOutcome;
 			typedef std::future<TagResourcesOutcome> TagResourcesOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::TagResourcesRequest&, const TagResourcesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> TagResourcesAsyncHandler;
@@ -489,6 +622,18 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::UpdateDNSSLBWeightResult> UpdateDNSSLBWeightOutcome;
 			typedef std::future<UpdateDNSSLBWeightOutcome> UpdateDNSSLBWeightOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::UpdateDNSSLBWeightRequest&, const UpdateDNSSLBWeightOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateDNSSLBWeightAsyncHandler;
+			typedef Outcome<Error, Model::UpdateDnsGtmAccessStrategyResult> UpdateDnsGtmAccessStrategyOutcome;
+			typedef std::future<UpdateDnsGtmAccessStrategyOutcome> UpdateDnsGtmAccessStrategyOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::UpdateDnsGtmAccessStrategyRequest&, const UpdateDnsGtmAccessStrategyOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateDnsGtmAccessStrategyAsyncHandler;
+			typedef Outcome<Error, Model::UpdateDnsGtmAddressPoolResult> UpdateDnsGtmAddressPoolOutcome;
+			typedef std::future<UpdateDnsGtmAddressPoolOutcome> UpdateDnsGtmAddressPoolOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::UpdateDnsGtmAddressPoolRequest&, const UpdateDnsGtmAddressPoolOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateDnsGtmAddressPoolAsyncHandler;
+			typedef Outcome<Error, Model::UpdateDnsGtmInstanceGlobalConfigResult> UpdateDnsGtmInstanceGlobalConfigOutcome;
+			typedef std::future<UpdateDnsGtmInstanceGlobalConfigOutcome> UpdateDnsGtmInstanceGlobalConfigOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::UpdateDnsGtmInstanceGlobalConfigRequest&, const UpdateDnsGtmInstanceGlobalConfigOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateDnsGtmInstanceGlobalConfigAsyncHandler;
+			typedef Outcome<Error, Model::UpdateDnsGtmMonitorResult> UpdateDnsGtmMonitorOutcome;
+			typedef std::future<UpdateDnsGtmMonitorOutcome> UpdateDnsGtmMonitorOutcomeCallable;
+			typedef std::function<void(const AlidnsClient*, const Model::UpdateDnsGtmMonitorRequest&, const UpdateDnsGtmMonitorOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateDnsGtmMonitorAsyncHandler;
 			typedef Outcome<Error, Model::UpdateDomainGroupResult> UpdateDomainGroupOutcome;
 			typedef std::future<UpdateDomainGroupOutcome> UpdateDomainGroupOutcomeCallable;
 			typedef std::function<void(const AlidnsClient*, const Model::UpdateDomainGroupRequest&, const UpdateDomainGroupOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateDomainGroupAsyncHandler;
@@ -524,6 +669,15 @@ namespace AlibabaCloud
 			AddCustomLineOutcome addCustomLine(const Model::AddCustomLineRequest &request)const;
 			void addCustomLineAsync(const Model::AddCustomLineRequest& request, const AddCustomLineAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AddCustomLineOutcomeCallable addCustomLineCallable(const Model::AddCustomLineRequest& request) const;
+			AddDnsGtmAccessStrategyOutcome addDnsGtmAccessStrategy(const Model::AddDnsGtmAccessStrategyRequest &request)const;
+			void addDnsGtmAccessStrategyAsync(const Model::AddDnsGtmAccessStrategyRequest& request, const AddDnsGtmAccessStrategyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			AddDnsGtmAccessStrategyOutcomeCallable addDnsGtmAccessStrategyCallable(const Model::AddDnsGtmAccessStrategyRequest& request) const;
+			AddDnsGtmAddressPoolOutcome addDnsGtmAddressPool(const Model::AddDnsGtmAddressPoolRequest &request)const;
+			void addDnsGtmAddressPoolAsync(const Model::AddDnsGtmAddressPoolRequest& request, const AddDnsGtmAddressPoolAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			AddDnsGtmAddressPoolOutcomeCallable addDnsGtmAddressPoolCallable(const Model::AddDnsGtmAddressPoolRequest& request) const;
+			AddDnsGtmMonitorOutcome addDnsGtmMonitor(const Model::AddDnsGtmMonitorRequest &request)const;
+			void addDnsGtmMonitorAsync(const Model::AddDnsGtmMonitorRequest& request, const AddDnsGtmMonitorAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			AddDnsGtmMonitorOutcomeCallable addDnsGtmMonitorCallable(const Model::AddDnsGtmMonitorRequest& request) const;
 			AddDomainOutcome addDomain(const Model::AddDomainRequest &request)const;
 			void addDomainAsync(const Model::AddDomainRequest& request, const AddDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			AddDomainOutcomeCallable addDomainCallable(const Model::AddDomainRequest& request) const;
@@ -563,6 +717,12 @@ namespace AlibabaCloud
 			DeleteCustomLinesOutcome deleteCustomLines(const Model::DeleteCustomLinesRequest &request)const;
 			void deleteCustomLinesAsync(const Model::DeleteCustomLinesRequest& request, const DeleteCustomLinesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteCustomLinesOutcomeCallable deleteCustomLinesCallable(const Model::DeleteCustomLinesRequest& request) const;
+			DeleteDnsGtmAccessStrategyOutcome deleteDnsGtmAccessStrategy(const Model::DeleteDnsGtmAccessStrategyRequest &request)const;
+			void deleteDnsGtmAccessStrategyAsync(const Model::DeleteDnsGtmAccessStrategyRequest& request, const DeleteDnsGtmAccessStrategyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteDnsGtmAccessStrategyOutcomeCallable deleteDnsGtmAccessStrategyCallable(const Model::DeleteDnsGtmAccessStrategyRequest& request) const;
+			DeleteDnsGtmAddressPoolOutcome deleteDnsGtmAddressPool(const Model::DeleteDnsGtmAddressPoolRequest &request)const;
+			void deleteDnsGtmAddressPoolAsync(const Model::DeleteDnsGtmAddressPoolRequest& request, const DeleteDnsGtmAddressPoolAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteDnsGtmAddressPoolOutcomeCallable deleteDnsGtmAddressPoolCallable(const Model::DeleteDnsGtmAddressPoolRequest& 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;
@@ -599,6 +759,51 @@ namespace AlibabaCloud
 			DescribeDNSSLBSubDomainsOutcome describeDNSSLBSubDomains(const Model::DescribeDNSSLBSubDomainsRequest &request)const;
 			void describeDNSSLBSubDomainsAsync(const Model::DescribeDNSSLBSubDomainsRequest& request, const DescribeDNSSLBSubDomainsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeDNSSLBSubDomainsOutcomeCallable describeDNSSLBSubDomainsCallable(const Model::DescribeDNSSLBSubDomainsRequest& request) const;
+			DescribeDnsGtmAccessStrategiesOutcome describeDnsGtmAccessStrategies(const Model::DescribeDnsGtmAccessStrategiesRequest &request)const;
+			void describeDnsGtmAccessStrategiesAsync(const Model::DescribeDnsGtmAccessStrategiesRequest& request, const DescribeDnsGtmAccessStrategiesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsGtmAccessStrategiesOutcomeCallable describeDnsGtmAccessStrategiesCallable(const Model::DescribeDnsGtmAccessStrategiesRequest& request) const;
+			DescribeDnsGtmAccessStrategyOutcome describeDnsGtmAccessStrategy(const Model::DescribeDnsGtmAccessStrategyRequest &request)const;
+			void describeDnsGtmAccessStrategyAsync(const Model::DescribeDnsGtmAccessStrategyRequest& request, const DescribeDnsGtmAccessStrategyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsGtmAccessStrategyOutcomeCallable describeDnsGtmAccessStrategyCallable(const Model::DescribeDnsGtmAccessStrategyRequest& request) const;
+			DescribeDnsGtmAccessStrategyAvailableConfigOutcome describeDnsGtmAccessStrategyAvailableConfig(const Model::DescribeDnsGtmAccessStrategyAvailableConfigRequest &request)const;
+			void describeDnsGtmAccessStrategyAvailableConfigAsync(const Model::DescribeDnsGtmAccessStrategyAvailableConfigRequest& request, const DescribeDnsGtmAccessStrategyAvailableConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsGtmAccessStrategyAvailableConfigOutcomeCallable describeDnsGtmAccessStrategyAvailableConfigCallable(const Model::DescribeDnsGtmAccessStrategyAvailableConfigRequest& request) const;
+			DescribeDnsGtmAddrAttributeInfoOutcome describeDnsGtmAddrAttributeInfo(const Model::DescribeDnsGtmAddrAttributeInfoRequest &request)const;
+			void describeDnsGtmAddrAttributeInfoAsync(const Model::DescribeDnsGtmAddrAttributeInfoRequest& request, const DescribeDnsGtmAddrAttributeInfoAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsGtmAddrAttributeInfoOutcomeCallable describeDnsGtmAddrAttributeInfoCallable(const Model::DescribeDnsGtmAddrAttributeInfoRequest& request) const;
+			DescribeDnsGtmAddressPoolAvailableConfigOutcome describeDnsGtmAddressPoolAvailableConfig(const Model::DescribeDnsGtmAddressPoolAvailableConfigRequest &request)const;
+			void describeDnsGtmAddressPoolAvailableConfigAsync(const Model::DescribeDnsGtmAddressPoolAvailableConfigRequest& request, const DescribeDnsGtmAddressPoolAvailableConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsGtmAddressPoolAvailableConfigOutcomeCallable describeDnsGtmAddressPoolAvailableConfigCallable(const Model::DescribeDnsGtmAddressPoolAvailableConfigRequest& request) const;
+			DescribeDnsGtmAvailableAlertGroupOutcome describeDnsGtmAvailableAlertGroup(const Model::DescribeDnsGtmAvailableAlertGroupRequest &request)const;
+			void describeDnsGtmAvailableAlertGroupAsync(const Model::DescribeDnsGtmAvailableAlertGroupRequest& request, const DescribeDnsGtmAvailableAlertGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsGtmAvailableAlertGroupOutcomeCallable describeDnsGtmAvailableAlertGroupCallable(const Model::DescribeDnsGtmAvailableAlertGroupRequest& request) const;
+			DescribeDnsGtmInstanceOutcome describeDnsGtmInstance(const Model::DescribeDnsGtmInstanceRequest &request)const;
+			void describeDnsGtmInstanceAsync(const Model::DescribeDnsGtmInstanceRequest& request, const DescribeDnsGtmInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsGtmInstanceOutcomeCallable describeDnsGtmInstanceCallable(const Model::DescribeDnsGtmInstanceRequest& request) const;
+			DescribeDnsGtmInstanceAddressPoolOutcome describeDnsGtmInstanceAddressPool(const Model::DescribeDnsGtmInstanceAddressPoolRequest &request)const;
+			void describeDnsGtmInstanceAddressPoolAsync(const Model::DescribeDnsGtmInstanceAddressPoolRequest& request, const DescribeDnsGtmInstanceAddressPoolAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsGtmInstanceAddressPoolOutcomeCallable describeDnsGtmInstanceAddressPoolCallable(const Model::DescribeDnsGtmInstanceAddressPoolRequest& request) const;
+			DescribeDnsGtmInstanceAddressPoolsOutcome describeDnsGtmInstanceAddressPools(const Model::DescribeDnsGtmInstanceAddressPoolsRequest &request)const;
+			void describeDnsGtmInstanceAddressPoolsAsync(const Model::DescribeDnsGtmInstanceAddressPoolsRequest& request, const DescribeDnsGtmInstanceAddressPoolsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsGtmInstanceAddressPoolsOutcomeCallable describeDnsGtmInstanceAddressPoolsCallable(const Model::DescribeDnsGtmInstanceAddressPoolsRequest& request) const;
+			DescribeDnsGtmInstanceStatusOutcome describeDnsGtmInstanceStatus(const Model::DescribeDnsGtmInstanceStatusRequest &request)const;
+			void describeDnsGtmInstanceStatusAsync(const Model::DescribeDnsGtmInstanceStatusRequest& request, const DescribeDnsGtmInstanceStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsGtmInstanceStatusOutcomeCallable describeDnsGtmInstanceStatusCallable(const Model::DescribeDnsGtmInstanceStatusRequest& request) const;
+			DescribeDnsGtmInstanceSystemCnameOutcome describeDnsGtmInstanceSystemCname(const Model::DescribeDnsGtmInstanceSystemCnameRequest &request)const;
+			void describeDnsGtmInstanceSystemCnameAsync(const Model::DescribeDnsGtmInstanceSystemCnameRequest& request, const DescribeDnsGtmInstanceSystemCnameAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsGtmInstanceSystemCnameOutcomeCallable describeDnsGtmInstanceSystemCnameCallable(const Model::DescribeDnsGtmInstanceSystemCnameRequest& request) const;
+			DescribeDnsGtmInstancesOutcome describeDnsGtmInstances(const Model::DescribeDnsGtmInstancesRequest &request)const;
+			void describeDnsGtmInstancesAsync(const Model::DescribeDnsGtmInstancesRequest& request, const DescribeDnsGtmInstancesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsGtmInstancesOutcomeCallable describeDnsGtmInstancesCallable(const Model::DescribeDnsGtmInstancesRequest& request) const;
+			DescribeDnsGtmLogsOutcome describeDnsGtmLogs(const Model::DescribeDnsGtmLogsRequest &request)const;
+			void describeDnsGtmLogsAsync(const Model::DescribeDnsGtmLogsRequest& request, const DescribeDnsGtmLogsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsGtmLogsOutcomeCallable describeDnsGtmLogsCallable(const Model::DescribeDnsGtmLogsRequest& request) const;
+			DescribeDnsGtmMonitorAvailableConfigOutcome describeDnsGtmMonitorAvailableConfig(const Model::DescribeDnsGtmMonitorAvailableConfigRequest &request)const;
+			void describeDnsGtmMonitorAvailableConfigAsync(const Model::DescribeDnsGtmMonitorAvailableConfigRequest& request, const DescribeDnsGtmMonitorAvailableConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsGtmMonitorAvailableConfigOutcomeCallable describeDnsGtmMonitorAvailableConfigCallable(const Model::DescribeDnsGtmMonitorAvailableConfigRequest& request) const;
+			DescribeDnsGtmMonitorConfigOutcome describeDnsGtmMonitorConfig(const Model::DescribeDnsGtmMonitorConfigRequest &request)const;
+			void describeDnsGtmMonitorConfigAsync(const Model::DescribeDnsGtmMonitorConfigRequest& request, const DescribeDnsGtmMonitorConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DescribeDnsGtmMonitorConfigOutcomeCallable describeDnsGtmMonitorConfigCallable(const Model::DescribeDnsGtmMonitorConfigRequest& request) const;
 			DescribeDnsProductInstanceOutcome describeDnsProductInstance(const Model::DescribeDnsProductInstanceRequest &request)const;
 			void describeDnsProductInstanceAsync(const Model::DescribeDnsProductInstanceRequest& request, const DescribeDnsProductInstanceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DescribeDnsProductInstanceOutcomeCallable describeDnsProductInstanceCallable(const Model::DescribeDnsProductInstanceRequest& request) const;
@@ -740,6 +945,12 @@ namespace AlibabaCloud
 			ModifyHichinaDomainDNSOutcome modifyHichinaDomainDNS(const Model::ModifyHichinaDomainDNSRequest &request)const;
 			void modifyHichinaDomainDNSAsync(const Model::ModifyHichinaDomainDNSRequest& request, const ModifyHichinaDomainDNSAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ModifyHichinaDomainDNSOutcomeCallable modifyHichinaDomainDNSCallable(const Model::ModifyHichinaDomainDNSRequest& request) const;
+			MoveDomainResourceGroupOutcome moveDomainResourceGroup(const Model::MoveDomainResourceGroupRequest &request)const;
+			void moveDomainResourceGroupAsync(const Model::MoveDomainResourceGroupRequest& request, const MoveDomainResourceGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			MoveDomainResourceGroupOutcomeCallable moveDomainResourceGroupCallable(const Model::MoveDomainResourceGroupRequest& request) const;
+			MoveGtmResourceGroupOutcome moveGtmResourceGroup(const Model::MoveGtmResourceGroupRequest &request)const;
+			void moveGtmResourceGroupAsync(const Model::MoveGtmResourceGroupRequest& request, const MoveGtmResourceGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			MoveGtmResourceGroupOutcomeCallable moveGtmResourceGroupCallable(const Model::MoveGtmResourceGroupRequest& request) const;
 			OperateBatchDomainOutcome operateBatchDomain(const Model::OperateBatchDomainRequest &request)const;
 			void operateBatchDomainAsync(const Model::OperateBatchDomainRequest& request, const OperateBatchDomainAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			OperateBatchDomainOutcomeCallable operateBatchDomainCallable(const Model::OperateBatchDomainRequest& request) const;
@@ -755,6 +966,12 @@ namespace AlibabaCloud
 			SetDNSSLBStatusOutcome setDNSSLBStatus(const Model::SetDNSSLBStatusRequest &request)const;
 			void setDNSSLBStatusAsync(const Model::SetDNSSLBStatusRequest& request, const SetDNSSLBStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			SetDNSSLBStatusOutcomeCallable setDNSSLBStatusCallable(const Model::SetDNSSLBStatusRequest& request) const;
+			SetDnsGtmAccessModeOutcome setDnsGtmAccessMode(const Model::SetDnsGtmAccessModeRequest &request)const;
+			void setDnsGtmAccessModeAsync(const Model::SetDnsGtmAccessModeRequest& request, const SetDnsGtmAccessModeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SetDnsGtmAccessModeOutcomeCallable setDnsGtmAccessModeCallable(const Model::SetDnsGtmAccessModeRequest& request) const;
+			SetDnsGtmMonitorStatusOutcome setDnsGtmMonitorStatus(const Model::SetDnsGtmMonitorStatusRequest &request)const;
+			void setDnsGtmMonitorStatusAsync(const Model::SetDnsGtmMonitorStatusRequest& request, const SetDnsGtmMonitorStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SetDnsGtmMonitorStatusOutcomeCallable setDnsGtmMonitorStatusCallable(const Model::SetDnsGtmMonitorStatusRequest& request) const;
 			SetDomainDnssecStatusOutcome setDomainDnssecStatus(const Model::SetDomainDnssecStatusRequest &request)const;
 			void setDomainDnssecStatusAsync(const Model::SetDomainDnssecStatusRequest& request, const SetDomainDnssecStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			SetDomainDnssecStatusOutcomeCallable setDomainDnssecStatusCallable(const Model::SetDomainDnssecStatusRequest& request) const;
@@ -767,6 +984,9 @@ namespace AlibabaCloud
 			SetGtmMonitorStatusOutcome setGtmMonitorStatus(const Model::SetGtmMonitorStatusRequest &request)const;
 			void setGtmMonitorStatusAsync(const Model::SetGtmMonitorStatusRequest& request, const SetGtmMonitorStatusAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			SetGtmMonitorStatusOutcomeCallable setGtmMonitorStatusCallable(const Model::SetGtmMonitorStatusRequest& request) const;
+			SwitchDnsGtmInstanceStrategyModeOutcome switchDnsGtmInstanceStrategyMode(const Model::SwitchDnsGtmInstanceStrategyModeRequest &request)const;
+			void switchDnsGtmInstanceStrategyModeAsync(const Model::SwitchDnsGtmInstanceStrategyModeRequest& request, const SwitchDnsGtmInstanceStrategyModeAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			SwitchDnsGtmInstanceStrategyModeOutcomeCallable switchDnsGtmInstanceStrategyModeCallable(const Model::SwitchDnsGtmInstanceStrategyModeRequest& request) const;
 			TagResourcesOutcome tagResources(const Model::TagResourcesRequest &request)const;
 			void tagResourcesAsync(const Model::TagResourcesRequest& request, const TagResourcesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			TagResourcesOutcomeCallable tagResourcesCallable(const Model::TagResourcesRequest& request) const;
@@ -785,6 +1005,18 @@ namespace AlibabaCloud
 			UpdateDNSSLBWeightOutcome updateDNSSLBWeight(const Model::UpdateDNSSLBWeightRequest &request)const;
 			void updateDNSSLBWeightAsync(const Model::UpdateDNSSLBWeightRequest& request, const UpdateDNSSLBWeightAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateDNSSLBWeightOutcomeCallable updateDNSSLBWeightCallable(const Model::UpdateDNSSLBWeightRequest& request) const;
+			UpdateDnsGtmAccessStrategyOutcome updateDnsGtmAccessStrategy(const Model::UpdateDnsGtmAccessStrategyRequest &request)const;
+			void updateDnsGtmAccessStrategyAsync(const Model::UpdateDnsGtmAccessStrategyRequest& request, const UpdateDnsGtmAccessStrategyAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateDnsGtmAccessStrategyOutcomeCallable updateDnsGtmAccessStrategyCallable(const Model::UpdateDnsGtmAccessStrategyRequest& request) const;
+			UpdateDnsGtmAddressPoolOutcome updateDnsGtmAddressPool(const Model::UpdateDnsGtmAddressPoolRequest &request)const;
+			void updateDnsGtmAddressPoolAsync(const Model::UpdateDnsGtmAddressPoolRequest& request, const UpdateDnsGtmAddressPoolAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateDnsGtmAddressPoolOutcomeCallable updateDnsGtmAddressPoolCallable(const Model::UpdateDnsGtmAddressPoolRequest& request) const;
+			UpdateDnsGtmInstanceGlobalConfigOutcome updateDnsGtmInstanceGlobalConfig(const Model::UpdateDnsGtmInstanceGlobalConfigRequest &request)const;
+			void updateDnsGtmInstanceGlobalConfigAsync(const Model::UpdateDnsGtmInstanceGlobalConfigRequest& request, const UpdateDnsGtmInstanceGlobalConfigAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateDnsGtmInstanceGlobalConfigOutcomeCallable updateDnsGtmInstanceGlobalConfigCallable(const Model::UpdateDnsGtmInstanceGlobalConfigRequest& request) const;
+			UpdateDnsGtmMonitorOutcome updateDnsGtmMonitor(const Model::UpdateDnsGtmMonitorRequest &request)const;
+			void updateDnsGtmMonitorAsync(const Model::UpdateDnsGtmMonitorRequest& request, const UpdateDnsGtmMonitorAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateDnsGtmMonitorOutcomeCallable updateDnsGtmMonitorCallable(const Model::UpdateDnsGtmMonitorRequest& request) const;
 			UpdateDomainGroupOutcome updateDomainGroup(const Model::UpdateDomainGroupRequest &request)const;
 			void updateDomainGroupAsync(const Model::UpdateDomainGroupRequest& request, const UpdateDomainGroupAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateDomainGroupOutcomeCallable updateDomainGroupCallable(const Model::UpdateDomainGroupRequest& request) const;

+ 110 - 0
alidns/include/alibabacloud/alidns/model/AddDnsGtmAccessStrategyRequest.h

@@ -0,0 +1,110 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_ADDDNSGTMACCESSSTRATEGYREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_ADDDNSGTMACCESSSTRATEGYREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT AddDnsGtmAccessStrategyRequest : public RpcServiceRequest
+			{
+			public:
+				struct DefaultAddrPool
+				{
+					std::string id;
+					int lbaWeight;
+				};
+				struct FailoverAddrPool
+				{
+					std::string id;
+					int lbaWeight;
+				};
+
+			public:
+				AddDnsGtmAccessStrategyRequest();
+				~AddDnsGtmAccessStrategyRequest();
+
+				std::string getDefaultLbaStrategy()const;
+				void setDefaultLbaStrategy(const std::string& defaultLbaStrategy);
+				std::string getFailoverAddrPoolType()const;
+				void setFailoverAddrPoolType(const std::string& failoverAddrPoolType);
+				std::string getDefaultAddrPoolType()const;
+				void setDefaultAddrPoolType(const std::string& defaultAddrPoolType);
+				int getFailoverMaxReturnAddrNum()const;
+				void setFailoverMaxReturnAddrNum(int failoverMaxReturnAddrNum);
+				std::string getFailoverLbaStrategy()const;
+				void setFailoverLbaStrategy(const std::string& failoverLbaStrategy);
+				std::vector<DefaultAddrPool> getDefaultAddrPool()const;
+				void setDefaultAddrPool(const std::vector<DefaultAddrPool>& defaultAddrPool);
+				int getFailoverMinAvailableAddrNum()const;
+				void setFailoverMinAvailableAddrNum(int failoverMinAvailableAddrNum);
+				int getDefaultMaxReturnAddrNum()const;
+				void setDefaultMaxReturnAddrNum(int defaultMaxReturnAddrNum);
+				int getDefaultMinAvailableAddrNum()const;
+				void setDefaultMinAvailableAddrNum(int defaultMinAvailableAddrNum);
+				std::string getStrategyMode()const;
+				void setStrategyMode(const std::string& strategyMode);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getLines()const;
+				void setLines(const std::string& lines);
+				std::string getStrategyName()const;
+				void setStrategyName(const std::string& strategyName);
+				std::string getDefaultLatencyOptimization()const;
+				void setDefaultLatencyOptimization(const std::string& defaultLatencyOptimization);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getFailoverLatencyOptimization()const;
+				void setFailoverLatencyOptimization(const std::string& failoverLatencyOptimization);
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				std::vector<FailoverAddrPool> getFailoverAddrPool()const;
+				void setFailoverAddrPool(const std::vector<FailoverAddrPool>& failoverAddrPool);
+
+            private:
+				std::string defaultLbaStrategy_;
+				std::string failoverAddrPoolType_;
+				std::string defaultAddrPoolType_;
+				int failoverMaxReturnAddrNum_;
+				std::string failoverLbaStrategy_;
+				std::vector<DefaultAddrPool> defaultAddrPool_;
+				int failoverMinAvailableAddrNum_;
+				int defaultMaxReturnAddrNum_;
+				int defaultMinAvailableAddrNum_;
+				std::string strategyMode_;
+				std::string lang_;
+				std::string lines_;
+				std::string strategyName_;
+				std::string defaultLatencyOptimization_;
+				std::string instanceId_;
+				std::string failoverLatencyOptimization_;
+				std::string userClientIp_;
+				std::vector<FailoverAddrPool> failoverAddrPool_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_ADDDNSGTMACCESSSTRATEGYREQUEST_H_

+ 51 - 0
alidns/include/alibabacloud/alidns/model/AddDnsGtmAccessStrategyResult.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_ALIDNS_MODEL_ADDDNSGTMACCESSSTRATEGYRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_ADDDNSGTMACCESSSTRATEGYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT AddDnsGtmAccessStrategyResult : public ServiceResult
+			{
+			public:
+
+
+				AddDnsGtmAccessStrategyResult();
+				explicit AddDnsGtmAccessStrategyResult(const std::string &payload);
+				~AddDnsGtmAccessStrategyResult();
+				std::string getStrategyId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string strategyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_ADDDNSGTMACCESSSTRATEGYRESULT_H_

+ 101 - 0
alidns/include/alibabacloud/alidns/model/AddDnsGtmAddressPoolRequest.h

@@ -0,0 +1,101 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_ADDDNSGTMADDRESSPOOLREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_ADDDNSGTMADDRESSPOOLREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT AddDnsGtmAddressPoolRequest : public RpcServiceRequest
+			{
+			public:
+				struct Addr
+				{
+					std::string mode;
+					std::string attributeInfo;
+					std::string remark;
+					std::string addr;
+					int lbaWeight;
+				};
+				struct IspCityNode
+				{
+					std::string cityCode;
+					std::string ispCode;
+				};
+
+			public:
+				AddDnsGtmAddressPoolRequest();
+				~AddDnsGtmAddressPoolRequest();
+
+				std::string getMonitorExtendInfo()const;
+				void setMonitorExtendInfo(const std::string& monitorExtendInfo);
+				std::string getLbaStrategy()const;
+				void setLbaStrategy(const std::string& lbaStrategy);
+				std::string getType()const;
+				void setType(const std::string& type);
+				int getTimeout()const;
+				void setTimeout(int timeout);
+				int getEvaluationCount()const;
+				void setEvaluationCount(int evaluationCount);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::vector<Addr> getAddr()const;
+				void setAddr(const std::vector<Addr>& addr);
+				std::string getMonitorStatus()const;
+				void setMonitorStatus(const std::string& monitorStatus);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				std::string getName()const;
+				void setName(const std::string& name);
+				std::string getProtocolType()const;
+				void setProtocolType(const std::string& protocolType);
+				int getInterval()const;
+				void setInterval(int interval);
+				std::vector<IspCityNode> getIspCityNode()const;
+				void setIspCityNode(const std::vector<IspCityNode>& ispCityNode);
+
+            private:
+				std::string monitorExtendInfo_;
+				std::string lbaStrategy_;
+				std::string type_;
+				int timeout_;
+				int evaluationCount_;
+				std::string lang_;
+				std::vector<Addr> addr_;
+				std::string monitorStatus_;
+				std::string instanceId_;
+				std::string userClientIp_;
+				std::string name_;
+				std::string protocolType_;
+				int interval_;
+				std::vector<IspCityNode> ispCityNode_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_ADDDNSGTMADDRESSPOOLREQUEST_H_

+ 53 - 0
alidns/include/alibabacloud/alidns/model/AddDnsGtmAddressPoolResult.h

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

+ 78 - 0
alidns/include/alibabacloud/alidns/model/AddDnsGtmMonitorRequest.h

@@ -0,0 +1,78 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_ADDDNSGTMMONITORREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_ADDDNSGTMMONITORREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT AddDnsGtmMonitorRequest : public RpcServiceRequest
+			{
+			public:
+				struct IspCityNode
+				{
+					std::string cityCode;
+					std::string ispCode;
+				};
+
+			public:
+				AddDnsGtmMonitorRequest();
+				~AddDnsGtmMonitorRequest();
+
+				std::string getMonitorExtendInfo()const;
+				void setMonitorExtendInfo(const std::string& monitorExtendInfo);
+				int getTimeout()const;
+				void setTimeout(int timeout);
+				std::string getAddrPoolId()const;
+				void setAddrPoolId(const std::string& addrPoolId);
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				int getEvaluationCount()const;
+				void setEvaluationCount(int evaluationCount);
+				std::string getProtocolType()const;
+				void setProtocolType(const std::string& protocolType);
+				int getInterval()const;
+				void setInterval(int interval);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::vector<IspCityNode> getIspCityNode()const;
+				void setIspCityNode(const std::vector<IspCityNode>& ispCityNode);
+
+            private:
+				std::string monitorExtendInfo_;
+				int timeout_;
+				std::string addrPoolId_;
+				std::string userClientIp_;
+				int evaluationCount_;
+				std::string protocolType_;
+				int interval_;
+				std::string lang_;
+				std::vector<IspCityNode> ispCityNode_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_ADDDNSGTMMONITORREQUEST_H_

+ 51 - 0
alidns/include/alibabacloud/alidns/model/AddDnsGtmMonitorResult.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_ALIDNS_MODEL_ADDDNSGTMMONITORRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_ADDDNSGTMMONITORRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT AddDnsGtmMonitorResult : public ServiceResult
+			{
+			public:
+
+
+				AddDnsGtmMonitorResult();
+				explicit AddDnsGtmMonitorResult(const std::string &payload);
+				~AddDnsGtmMonitorResult();
+				std::string getMonitorConfigId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string monitorConfigId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_ADDDNSGTMMONITORRESULT_H_

+ 54 - 0
alidns/include/alibabacloud/alidns/model/DeleteDnsGtmAccessStrategyRequest.h

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

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

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

+ 54 - 0
alidns/include/alibabacloud/alidns/model/DeleteDnsGtmAddressPoolRequest.h

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

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

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

+ 63 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategiesRequest.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_ALIDNS_MODEL_DESCRIBEDNSGTMACCESSSTRATEGIESREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMACCESSSTRATEGIESREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmAccessStrategiesRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeDnsGtmAccessStrategiesRequest();
+				~DescribeDnsGtmAccessStrategiesRequest();
+
+				int getPageNumber()const;
+				void setPageNumber(int pageNumber);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				std::string getStrategyMode()const;
+				void setStrategyMode(const std::string& strategyMode);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				int pageNumber_;
+				std::string instanceId_;
+				std::string userClientIp_;
+				int pageSize_;
+				std::string strategyMode_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMACCESSSTRATEGIESREQUEST_H_

+ 85 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategiesResult.h

@@ -0,0 +1,85 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMACCESSSTRATEGIESRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMACCESSSTRATEGIESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmAccessStrategiesResult : public ServiceResult
+			{
+			public:
+				struct Strategy
+				{
+					struct Line
+					{
+						std::string groupName;
+						std::string groupCode;
+						std::string lineCode;
+						std::string lineName;
+					};
+					struct EffectiveAddrPool
+					{
+						int lbaWeight;
+						std::string id;
+						std::string name;
+						int addrCount;
+					};
+					std::vector<Strategy::EffectiveAddrPool> effectiveAddrPools;
+					std::string strategyName;
+					std::string effectiveAddrPoolType;
+					std::string createTime;
+					std::string effectiveAddrPoolGroupType;
+					std::string strategyId;
+					long createTimestamp;
+					std::vector<Strategy::Line> lines;
+					std::string effectiveLbaStrategy;
+				};
+
+
+				DescribeDnsGtmAccessStrategiesResult();
+				explicit DescribeDnsGtmAccessStrategiesResult(const std::string &payload);
+				~DescribeDnsGtmAccessStrategiesResult();
+				int getPageSize()const;
+				int getPageNumber()const;
+				std::vector<Strategy> getStrategies()const;
+				int getTotalPages()const;
+				int getTotalItems()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int pageSize_;
+				int pageNumber_;
+				std::vector<Strategy> strategies_;
+				int totalPages_;
+				int totalItems_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMACCESSSTRATEGIESRESULT_H_

+ 57 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategyAvailableConfigRequest.h

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

+ 85 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategyAvailableConfigResult.h

@@ -0,0 +1,85 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMACCESSSTRATEGYAVAILABLECONFIGRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMACCESSSTRATEGYAVAILABLECONFIGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmAccessStrategyAvailableConfigResult : public ServiceResult
+			{
+			public:
+				struct Ipv4AddrPool
+				{
+					std::string id;
+					std::string name;
+					int addrCount;
+				};
+				struct Line
+				{
+					std::string groupName;
+					std::string groupCode;
+					std::string fatherCode;
+					std::string lineCode;
+					std::string lineName;
+				};
+				struct Ipv6AddrPool
+				{
+					std::string id;
+					std::string name;
+					int addrCount;
+				};
+				struct DomainAddrPool
+				{
+					std::string id;
+					std::string name;
+					int addrCount;
+				};
+
+
+				DescribeDnsGtmAccessStrategyAvailableConfigResult();
+				explicit DescribeDnsGtmAccessStrategyAvailableConfigResult(const std::string &payload);
+				~DescribeDnsGtmAccessStrategyAvailableConfigResult();
+				std::vector<Ipv4AddrPool> getIpv4AddrPools()const;
+				std::vector<DomainAddrPool> getDomainAddrPools()const;
+				std::vector<Ipv6AddrPool> getIpv6AddrPools()const;
+				std::vector<Line> getLines()const;
+				bool getSuggestSetDefaultLine()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Ipv4AddrPool> ipv4AddrPools_;
+				std::vector<DomainAddrPool> domainAddrPools_;
+				std::vector<Ipv6AddrPool> ipv6AddrPools_;
+				std::vector<Line> lines_;
+				bool suggestSetDefaultLine_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMACCESSSTRATEGYAVAILABLECONFIGRESULT_H_

+ 54 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategyRequest.h

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

+ 120 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAccessStrategyResult.h

@@ -0,0 +1,120 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMACCESSSTRATEGYRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMACCESSSTRATEGYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmAccessStrategyResult : public ServiceResult
+			{
+			public:
+				struct Line
+				{
+					std::string groupName;
+					std::string groupCode;
+					std::string lineCode;
+					std::string lineName;
+				};
+				struct DefaultAddrPool
+				{
+					int lbaWeight;
+					std::string id;
+					std::string name;
+					int addrCount;
+				};
+				struct FailoverAddrPool
+				{
+					int lbaWeight;
+					std::string id;
+					std::string name;
+					int addrCount;
+				};
+
+
+				DescribeDnsGtmAccessStrategyResult();
+				explicit DescribeDnsGtmAccessStrategyResult(const std::string &payload);
+				~DescribeDnsGtmAccessStrategyResult();
+				int getFailoverMinAvailableAddrNum()const;
+				std::string getDefaultAddrPoolType()const;
+				std::string getStrategyId()const;
+				std::string getFailoverAddrPoolGroupStatus()const;
+				int getDefaultAvailableAddrNum()const;
+				int getFailoverAvailableAddrNum()const;
+				std::string getFailoverLbaStrategy()const;
+				int getDefaultMaxReturnAddrNum()const;
+				std::string getStrategyMode()const;
+				long getCreateTimestamp()const;
+				std::string getDefaultLbaStrategy()const;
+				std::string getDefaultAddrPoolGroupStatus()const;
+				std::string getFailoverAddrPoolType()const;
+				std::vector<FailoverAddrPool> getFailoverAddrPools()const;
+				std::string getInstanceId()const;
+				std::string getDefaultLatencyOptimization()const;
+				std::string getEffectiveAddrPoolGroupType()const;
+				std::string getCreateTime()const;
+				std::vector<DefaultAddrPool> getDefaultAddrPools()const;
+				int getDefaultMinAvailableAddrNum()const;
+				std::string getFailoverLatencyOptimization()const;
+				std::string getStrategyName()const;
+				int getFailoverMaxReturnAddrNum()const;
+				std::string getAccessMode()const;
+				std::vector<Line> getLines()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int failoverMinAvailableAddrNum_;
+				std::string defaultAddrPoolType_;
+				std::string strategyId_;
+				std::string failoverAddrPoolGroupStatus_;
+				int defaultAvailableAddrNum_;
+				int failoverAvailableAddrNum_;
+				std::string failoverLbaStrategy_;
+				int defaultMaxReturnAddrNum_;
+				std::string strategyMode_;
+				long createTimestamp_;
+				std::string defaultLbaStrategy_;
+				std::string defaultAddrPoolGroupStatus_;
+				std::string failoverAddrPoolType_;
+				std::vector<FailoverAddrPool> failoverAddrPools_;
+				std::string instanceId_;
+				std::string defaultLatencyOptimization_;
+				std::string effectiveAddrPoolGroupType_;
+				std::string createTime_;
+				std::vector<DefaultAddrPool> defaultAddrPools_;
+				int defaultMinAvailableAddrNum_;
+				std::string failoverLatencyOptimization_;
+				std::string strategyName_;
+				int failoverMaxReturnAddrNum_;
+				std::string accessMode_;
+				std::vector<Line> lines_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMACCESSSTRATEGYRESULT_H_

+ 57 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAddrAttributeInfoRequest.h

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

+ 64 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAddrAttributeInfoResult.h

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

+ 54 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAddressPoolAvailableConfigRequest.h

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

+ 59 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAddressPoolAvailableConfigResult.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_ALIDNS_MODEL_DESCRIBEDNSGTMADDRESSPOOLAVAILABLECONFIGRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMADDRESSPOOLAVAILABLECONFIGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmAddressPoolAvailableConfigResult : public ServiceResult
+			{
+			public:
+				struct AttributeInfo
+				{
+					std::string groupName;
+					std::string groupCode;
+					std::string fatherCode;
+					std::string lineCode;
+					std::string lineName;
+				};
+
+
+				DescribeDnsGtmAddressPoolAvailableConfigResult();
+				explicit DescribeDnsGtmAddressPoolAvailableConfigResult(const std::string &payload);
+				~DescribeDnsGtmAddressPoolAvailableConfigResult();
+				std::vector<AttributeInfo> getAttributeInfos()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<AttributeInfo> attributeInfos_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMADDRESSPOOLAVAILABLECONFIGRESULT_H_

+ 51 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAvailableAlertGroupRequest.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_ALIDNS_MODEL_DESCRIBEDNSGTMAVAILABLEALERTGROUPREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMAVAILABLEALERTGROUPREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmAvailableAlertGroupRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeDnsGtmAvailableAlertGroupRequest();
+				~DescribeDnsGtmAvailableAlertGroupRequest();
+
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string userClientIp_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMAVAILABLEALERTGROUPREQUEST_H_

+ 51 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmAvailableAlertGroupResult.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_ALIDNS_MODEL_DESCRIBEDNSGTMAVAILABLEALERTGROUPRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMAVAILABLEALERTGROUPRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmAvailableAlertGroupResult : public ServiceResult
+			{
+			public:
+
+
+				DescribeDnsGtmAvailableAlertGroupResult();
+				explicit DescribeDnsGtmAvailableAlertGroupResult(const std::string &payload);
+				~DescribeDnsGtmAvailableAlertGroupResult();
+				std::string getAvailableAlertGroup()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string availableAlertGroup_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMAVAILABLEALERTGROUPRESULT_H_

+ 54 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceAddressPoolRequest.h

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

+ 86 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceAddressPoolResult.h

@@ -0,0 +1,86 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCEADDRESSPOOLRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCEADDRESSPOOLRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmInstanceAddressPoolResult : public ServiceResult
+			{
+			public:
+				struct Addr
+				{
+					std::string attributeInfo;
+					int lbaWeight;
+					std::string alertStatus;
+					std::string createTime;
+					std::string mode;
+					std::string updateTime;
+					long updateTimestamp;
+					long createTimestamp;
+					std::string addr;
+					std::string remark;
+				};
+
+
+				DescribeDnsGtmInstanceAddressPoolResult();
+				explicit DescribeDnsGtmInstanceAddressPoolResult(const std::string &payload);
+				~DescribeDnsGtmInstanceAddressPoolResult();
+				std::vector<Addr> getAddrs()const;
+				std::string getType()const;
+				std::string getLbaStrategy()const;
+				std::string getCreateTime()const;
+				std::string getAddrPoolId()const;
+				std::string getUpdateTime()const;
+				long getUpdateTimestamp()const;
+				std::string getMonitorConfigId()const;
+				long getCreateTimestamp()const;
+				std::string getMonitorStatus()const;
+				int getAddrCount()const;
+				std::string getName()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Addr> addrs_;
+				std::string type_;
+				std::string lbaStrategy_;
+				std::string createTime_;
+				std::string addrPoolId_;
+				std::string updateTime_;
+				long updateTimestamp_;
+				std::string monitorConfigId_;
+				long createTimestamp_;
+				std::string monitorStatus_;
+				int addrCount_;
+				std::string name_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCEADDRESSPOOLRESULT_H_

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

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

+ 73 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceAddressPoolsResult.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCEADDRESSPOOLSRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCEADDRESSPOOLSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmInstanceAddressPoolsResult : public ServiceResult
+			{
+			public:
+				struct AddrPool
+				{
+					std::string type;
+					std::string lbaStrategy;
+					std::string createTime;
+					std::string addrPoolId;
+					std::string updateTime;
+					long updateTimestamp;
+					std::string monitorConfigId;
+					long createTimestamp;
+					std::string monitorStatus;
+					int addrCount;
+					std::string name;
+				};
+
+
+				DescribeDnsGtmInstanceAddressPoolsResult();
+				explicit DescribeDnsGtmInstanceAddressPoolsResult(const std::string &payload);
+				~DescribeDnsGtmInstanceAddressPoolsResult();
+				int getPageSize()const;
+				int getPageNumber()const;
+				int getTotalPages()const;
+				int getTotalItems()const;
+				std::vector<AddrPool> getAddrPools()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int pageSize_;
+				int pageNumber_;
+				int totalPages_;
+				int totalItems_;
+				std::vector<AddrPool> addrPools_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCEADDRESSPOOLSRESULT_H_

+ 54 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceRequest.h

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

+ 97 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceResult.h

@@ -0,0 +1,97 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCERESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmInstanceResult : public ServiceResult
+			{
+			public:
+				struct Config
+				{
+					struct AlertConfigItem
+					{
+						bool emailNotice;
+						std::string noticeType;
+						bool smsNotice;
+					};
+					std::string instanceName;
+					std::string pubicZoneName;
+					std::string alertGroup;
+					std::vector<AlertConfigItem> alertConfig;
+					std::string cnameType;
+					std::string publicUserDomainName;
+					std::string strategyMode;
+					int ttl;
+					std::string publicCnameMode;
+				};
+				struct UsedQuota
+				{
+					int taskUsedCount;
+					int smsUsedCount;
+					int emailUsedCount;
+				};
+
+
+				DescribeDnsGtmInstanceResult();
+				explicit DescribeDnsGtmInstanceResult(const std::string &payload);
+				~DescribeDnsGtmInstanceResult();
+				std::string getVersionCode()const;
+				long getExpireTimestamp()const;
+				std::string getResourceGroupId()const;
+				std::string getInstanceId()const;
+				Config getConfig()const;
+				int getTaskQuota()const;
+				std::string getCreateTime()const;
+				std::string getPaymentType()const;
+				std::string getExpireTime()const;
+				UsedQuota getUsedQuota()const;
+				int getSmsQuota()const;
+				long getCreateTimestamp()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string versionCode_;
+				long expireTimestamp_;
+				std::string resourceGroupId_;
+				std::string instanceId_;
+				Config config_;
+				int taskQuota_;
+				std::string createTime_;
+				std::string paymentType_;
+				std::string expireTime_;
+				UsedQuota usedQuota_;
+				int smsQuota_;
+				long createTimestamp_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCERESULT_H_

+ 54 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceStatusRequest.h

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

+ 59 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceStatusResult.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_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCESTATUSRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCESTATUSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmInstanceStatusResult : public ServiceResult
+			{
+			public:
+
+
+				DescribeDnsGtmInstanceStatusResult();
+				explicit DescribeDnsGtmInstanceStatusResult(const std::string &payload);
+				~DescribeDnsGtmInstanceStatusResult();
+				int getStrategyNotAvailableNum()const;
+				int getAddrAvailableNum()const;
+				int getSwitchToFailoverStrategyNum()const;
+				int getAddrNotAvailableNum()const;
+				int getAddrPoolGroupNotAvailableNum()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int strategyNotAvailableNum_;
+				int addrAvailableNum_;
+				int switchToFailoverStrategyNum_;
+				int addrNotAvailableNum_;
+				int addrPoolGroupNotAvailableNum_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCESTATUSRESULT_H_

+ 54 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceSystemCnameRequest.h

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

+ 51 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstanceSystemCnameResult.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_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCESYSTEMCNAMERESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCESYSTEMCNAMERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmInstanceSystemCnameResult : public ServiceResult
+			{
+			public:
+
+
+				DescribeDnsGtmInstanceSystemCnameResult();
+				explicit DescribeDnsGtmInstanceSystemCnameResult(const std::string &payload);
+				~DescribeDnsGtmInstanceSystemCnameResult();
+				std::string getSystemCname()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string systemCname_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCESYSTEMCNAMERESULT_H_

+ 63 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstancesRequest.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_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCESREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCESREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmInstancesRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeDnsGtmInstancesRequest();
+				~DescribeDnsGtmInstancesRequest();
+
+				int getPageNumber()const;
+				void setPageNumber(int pageNumber);
+				std::string getResourceGroupId()const;
+				void setResourceGroupId(const std::string& resourceGroupId);
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getKeyword()const;
+				void setKeyword(const std::string& keyword);
+
+            private:
+				int pageNumber_;
+				std::string resourceGroupId_;
+				std::string userClientIp_;
+				int pageSize_;
+				std::string lang_;
+				std::string keyword_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCESREQUEST_H_

+ 98 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmInstancesResult.h

@@ -0,0 +1,98 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCESRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmInstancesResult : public ServiceResult
+			{
+			public:
+				struct GtmInstance
+				{
+					struct Config
+					{
+						struct AlertConfigItem
+						{
+							std::string emailNotice;
+							std::string noticeType;
+							std::string smsNotice;
+						};
+						std::string instanceName;
+						std::string alertGroup;
+						std::vector<AlertConfigItem> alertConfig;
+						std::string cnameType;
+						std::string publicUserDomainName;
+						std::string publicZoneName;
+						std::string strategyMode;
+						int ttl;
+						std::string publicCnameMode;
+					};
+					struct UsedQuota
+					{
+						int taskUsedCount;
+						int smsUsedCount;
+						int emailUsedCount;
+					};
+					std::string versionCode;
+					long expireTimestamp;
+					std::string resourceGroupId;
+					std::string instanceId;
+					Config config;
+					int taskQuota;
+					std::string createTime;
+					std::string paymentType;
+					std::string expireTime;
+					UsedQuota usedQuota;
+					int smsQuota;
+					long createTimestamp;
+				};
+
+
+				DescribeDnsGtmInstancesResult();
+				explicit DescribeDnsGtmInstancesResult(const std::string &payload);
+				~DescribeDnsGtmInstancesResult();
+				int getPageSize()const;
+				int getPageNumber()const;
+				std::vector<GtmInstance> getGtmInstances()const;
+				int getTotalPages()const;
+				int getTotalItems()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				int pageSize_;
+				int pageNumber_;
+				std::vector<GtmInstance> gtmInstances_;
+				int totalPages_;
+				int totalItems_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMINSTANCESRESULT_H_

+ 69 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmLogsRequest.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_ALIDNS_MODEL_DESCRIBEDNSGTMLOGSREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMLOGSREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmLogsRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeDnsGtmLogsRequest();
+				~DescribeDnsGtmLogsRequest();
+
+				long getStartTimestamp()const;
+				void setStartTimestamp(long startTimestamp);
+				int getPageNumber()const;
+				void setPageNumber(int pageNumber);
+				long getEndTimestamp()const;
+				void setEndTimestamp(long endTimestamp);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				int getPageSize()const;
+				void setPageSize(int pageSize);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getKeyword()const;
+				void setKeyword(const std::string& keyword);
+
+            private:
+				long startTimestamp_;
+				int pageNumber_;
+				long endTimestamp_;
+				std::string instanceId_;
+				std::string userClientIp_;
+				int pageSize_;
+				std::string lang_;
+				std::string keyword_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMLOGSREQUEST_H_

+ 70 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmLogsResult.h

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

+ 51 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmMonitorAvailableConfigRequest.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_ALIDNS_MODEL_DESCRIBEDNSGTMMONITORAVAILABLECONFIGREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMMONITORAVAILABLECONFIGREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmMonitorAvailableConfigRequest : public RpcServiceRequest
+			{
+
+			public:
+				DescribeDnsGtmMonitorAvailableConfigRequest();
+				~DescribeDnsGtmMonitorAvailableConfigRequest();
+
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+
+            private:
+				std::string userClientIp_;
+				std::string lang_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMMONITORAVAILABLECONFIGREQUEST_H_

+ 97 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmMonitorAvailableConfigResult.h

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

+ 54 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmMonitorConfigRequest.h

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

+ 80 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsGtmMonitorConfigResult.h

@@ -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.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMMONITORCONFIGRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMMONITORCONFIGRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT DescribeDnsGtmMonitorConfigResult : public ServiceResult
+			{
+			public:
+				struct IspCityNode
+				{
+					std::string cityCode;
+					std::string ispName;
+					std::string countryName;
+					std::string cityName;
+					std::string countryCode;
+					std::string ispCode;
+				};
+
+
+				DescribeDnsGtmMonitorConfigResult();
+				explicit DescribeDnsGtmMonitorConfigResult(const std::string &payload);
+				~DescribeDnsGtmMonitorConfigResult();
+				std::vector<IspCityNode> getIspCityNodes()const;
+				std::string getProtocolType()const;
+				int getTimeout()const;
+				std::string getCreateTime()const;
+				std::string getUpdateTime()const;
+				int getEvaluationCount()const;
+				long getUpdateTimestamp()const;
+				std::string getMonitorExtendInfo()const;
+				std::string getMonitorConfigId()const;
+				long getCreateTimestamp()const;
+				int getInterval()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<IspCityNode> ispCityNodes_;
+				std::string protocolType_;
+				int timeout_;
+				std::string createTime_;
+				std::string updateTime_;
+				int evaluationCount_;
+				long updateTimestamp_;
+				std::string monitorExtendInfo_;
+				std::string monitorConfigId_;
+				long createTimestamp_;
+				int interval_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_DESCRIBEDNSGTMMONITORCONFIGRESULT_H_

+ 2 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsProductInstanceResult.h

@@ -49,6 +49,7 @@ namespace AlibabaCloud
 				long getEndTimestamp()const;
 				long getDDosDefendQuery()const;
 				std::string getDnsSecurity()const;
+				std::string getDomainType()const;
 				long getURLForwardCount()const;
 				long getTTLMinValue()const;
 				std::string getPaymentType()const;
@@ -86,6 +87,7 @@ namespace AlibabaCloud
 				long endTimestamp_;
 				long dDosDefendQuery_;
 				std::string dnsSecurity_;
+				std::string domainType_;
 				long uRLForwardCount_;
 				long tTLMinValue_;
 				std::string paymentType_;

+ 3 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsProductInstancesRequest.h

@@ -39,6 +39,8 @@ namespace AlibabaCloud
 				void setPageNumber(long pageNumber);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getDomainType()const;
+				void setDomainType(const std::string& domainType);
 				std::string getUserClientIp()const;
 				void setUserClientIp(const std::string& userClientIp);
 				long getPageSize()const;
@@ -51,6 +53,7 @@ namespace AlibabaCloud
             private:
 				long pageNumber_;
 				std::string accessKeyId_;
+				std::string domainType_;
 				std::string userClientIp_;
 				long pageSize_;
 				std::string lang_;

+ 2 - 0
alidns/include/alibabacloud/alidns/model/DescribeDnsProductInstancesResult.h

@@ -73,6 +73,7 @@ namespace AlibabaCloud
 				explicit DescribeDnsProductInstancesResult(const std::string &payload);
 				~DescribeDnsProductInstancesResult();
 				long getTotalCount()const;
+				std::string getDomainType()const;
 				long getPageSize()const;
 				long getPageNumber()const;
 				std::vector<DnsProduct> getDnsProducts()const;
@@ -81,6 +82,7 @@ namespace AlibabaCloud
 				void parse(const std::string &payload);
 			private:
 				long totalCount_;
+				std::string domainType_;
 				long pageSize_;
 				long pageNumber_;
 				std::vector<DnsProduct> dnsProducts_;

+ 2 - 0
alidns/include/alibabacloud/alidns/model/DescribeDomainInfoResult.h

@@ -53,6 +53,7 @@ namespace AlibabaCloud
 				std::string getResourceGroupId()const;
 				std::string getDomainName()const;
 				std::string getInstanceId()const;
+				std::string getCreateTime()const;
 				std::string getPunyCode()const;
 				std::vector<std::string> getDnsServers()const;
 				std::string getRemark()const;
@@ -78,6 +79,7 @@ namespace AlibabaCloud
 				std::string resourceGroupId_;
 				std::string domainName_;
 				std::string instanceId_;
+				std::string createTime_;
 				std::string punyCode_;
 				std::vector<std::string> dnsServers_;
 				std::string remark_;

+ 3 - 0
alidns/include/alibabacloud/alidns/model/DescribeDomainNsRequest.h

@@ -39,6 +39,8 @@ namespace AlibabaCloud
 				void setDomainName(const std::string& domainName);
 				std::string getAccessKeyId()const;
 				void setAccessKeyId(const std::string& accessKeyId);
+				std::string getDomainType()const;
+				void setDomainType(const std::string& domainType);
 				std::string getUserClientIp()const;
 				void setUserClientIp(const std::string& userClientIp);
 				std::string getLang()const;
@@ -47,6 +49,7 @@ namespace AlibabaCloud
             private:
 				std::string domainName_;
 				std::string accessKeyId_;
+				std::string domainType_;
 				std::string userClientIp_;
 				std::string lang_;
 

+ 3 - 0
alidns/include/alibabacloud/alidns/model/DescribeDomainStatisticsRequest.h

@@ -41,6 +41,8 @@ namespace AlibabaCloud
 				void setStartDate(const std::string& startDate);
 				std::string getEndDate()const;
 				void setEndDate(const std::string& endDate);
+				std::string getDomainType()const;
+				void setDomainType(const std::string& domainType);
 				std::string getUserClientIp()const;
 				void setUserClientIp(const std::string& userClientIp);
 				std::string getLang()const;
@@ -50,6 +52,7 @@ namespace AlibabaCloud
 				std::string domainName_;
 				std::string startDate_;
 				std::string endDate_;
+				std::string domainType_;
 				std::string userClientIp_;
 				std::string lang_;
 

+ 1 - 0
alidns/include/alibabacloud/alidns/model/DescribeDomainStatisticsSummaryResult.h

@@ -34,6 +34,7 @@ namespace AlibabaCloud
 			public:
 				struct Statistic
 				{
+					std::string domainType;
 					std::string domainName;
 					long count;
 				};

+ 3 - 0
alidns/include/alibabacloud/alidns/model/DescribeRecordStatisticsRequest.h

@@ -43,6 +43,8 @@ namespace AlibabaCloud
 				void setStartDate(const std::string& startDate);
 				std::string getEndDate()const;
 				void setEndDate(const std::string& endDate);
+				std::string getDomainType()const;
+				void setDomainType(const std::string& domainType);
 				std::string getUserClientIp()const;
 				void setUserClientIp(const std::string& userClientIp);
 				std::string getLang()const;
@@ -53,6 +55,7 @@ namespace AlibabaCloud
 				std::string domainName_;
 				std::string startDate_;
 				std::string endDate_;
+				std::string domainType_;
 				std::string userClientIp_;
 				std::string lang_;
 

+ 3 - 0
alidns/include/alibabacloud/alidns/model/DescribeRecordStatisticsSummaryRequest.h

@@ -41,6 +41,8 @@ namespace AlibabaCloud
 				void setStartDate(const std::string& startDate);
 				long getPageNumber()const;
 				void setPageNumber(long pageNumber);
+				std::string getDomainType()const;
+				void setDomainType(const std::string& domainType);
 				long getPageSize()const;
 				void setPageSize(long pageSize);
 				std::string getLang()const;
@@ -64,6 +66,7 @@ namespace AlibabaCloud
 				long threshold_;
 				std::string startDate_;
 				long pageNumber_;
+				std::string domainType_;
 				long pageSize_;
 				std::string lang_;
 				std::string keyword_;

+ 57 - 0
alidns/include/alibabacloud/alidns/model/MoveDomainResourceGroupRequest.h

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

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

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

+ 57 - 0
alidns/include/alibabacloud/alidns/model/MoveGtmResourceGroupRequest.h

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

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

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

+ 57 - 0
alidns/include/alibabacloud/alidns/model/SetDnsGtmAccessModeRequest.h

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

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

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

+ 57 - 0
alidns/include/alibabacloud/alidns/model/SetDnsGtmMonitorStatusRequest.h

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

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

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

+ 57 - 0
alidns/include/alibabacloud/alidns/model/SwitchDnsGtmInstanceStrategyModeRequest.h

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

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

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

+ 107 - 0
alidns/include/alibabacloud/alidns/model/UpdateDnsGtmAccessStrategyRequest.h

@@ -0,0 +1,107 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSGTMACCESSSTRATEGYREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSGTMACCESSSTRATEGYREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT UpdateDnsGtmAccessStrategyRequest : public RpcServiceRequest
+			{
+			public:
+				struct DefaultAddrPool
+				{
+					std::string id;
+					int lbaWeight;
+				};
+				struct FailoverAddrPool
+				{
+					std::string id;
+					int lbaWeight;
+				};
+
+			public:
+				UpdateDnsGtmAccessStrategyRequest();
+				~UpdateDnsGtmAccessStrategyRequest();
+
+				std::string getDefaultLbaStrategy()const;
+				void setDefaultLbaStrategy(const std::string& defaultLbaStrategy);
+				std::string getFailoverAddrPoolType()const;
+				void setFailoverAddrPoolType(const std::string& failoverAddrPoolType);
+				std::string getDefaultAddrPoolType()const;
+				void setDefaultAddrPoolType(const std::string& defaultAddrPoolType);
+				int getFailoverMaxReturnAddrNum()const;
+				void setFailoverMaxReturnAddrNum(int failoverMaxReturnAddrNum);
+				std::string getFailoverLbaStrategy()const;
+				void setFailoverLbaStrategy(const std::string& failoverLbaStrategy);
+				std::vector<DefaultAddrPool> getDefaultAddrPool()const;
+				void setDefaultAddrPool(const std::vector<DefaultAddrPool>& defaultAddrPool);
+				int getFailoverMinAvailableAddrNum()const;
+				void setFailoverMinAvailableAddrNum(int failoverMinAvailableAddrNum);
+				int getDefaultMaxReturnAddrNum()const;
+				void setDefaultMaxReturnAddrNum(int defaultMaxReturnAddrNum);
+				int getDefaultMinAvailableAddrNum()const;
+				void setDefaultMinAvailableAddrNum(int defaultMinAvailableAddrNum);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::string getLines()const;
+				void setLines(const std::string& lines);
+				std::string getStrategyName()const;
+				void setStrategyName(const std::string& strategyName);
+				std::string getDefaultLatencyOptimization()const;
+				void setDefaultLatencyOptimization(const std::string& defaultLatencyOptimization);
+				std::string getFailoverLatencyOptimization()const;
+				void setFailoverLatencyOptimization(const std::string& failoverLatencyOptimization);
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				std::string getStrategyId()const;
+				void setStrategyId(const std::string& strategyId);
+				std::vector<FailoverAddrPool> getFailoverAddrPool()const;
+				void setFailoverAddrPool(const std::vector<FailoverAddrPool>& failoverAddrPool);
+
+            private:
+				std::string defaultLbaStrategy_;
+				std::string failoverAddrPoolType_;
+				std::string defaultAddrPoolType_;
+				int failoverMaxReturnAddrNum_;
+				std::string failoverLbaStrategy_;
+				std::vector<DefaultAddrPool> defaultAddrPool_;
+				int failoverMinAvailableAddrNum_;
+				int defaultMaxReturnAddrNum_;
+				int defaultMinAvailableAddrNum_;
+				std::string lang_;
+				std::string lines_;
+				std::string strategyName_;
+				std::string defaultLatencyOptimization_;
+				std::string failoverLatencyOptimization_;
+				std::string userClientIp_;
+				std::string strategyId_;
+				std::vector<FailoverAddrPool> failoverAddrPool_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSGTMACCESSSTRATEGYREQUEST_H_

+ 51 - 0
alidns/include/alibabacloud/alidns/model/UpdateDnsGtmAccessStrategyResult.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_ALIDNS_MODEL_UPDATEDNSGTMACCESSSTRATEGYRESULT_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSGTMACCESSSTRATEGYRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT UpdateDnsGtmAccessStrategyResult : public ServiceResult
+			{
+			public:
+
+
+				UpdateDnsGtmAccessStrategyResult();
+				explicit UpdateDnsGtmAccessStrategyResult(const std::string &payload);
+				~UpdateDnsGtmAccessStrategyResult();
+				std::string getStrategyId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string strategyId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSGTMACCESSSTRATEGYRESULT_H_

+ 72 - 0
alidns/include/alibabacloud/alidns/model/UpdateDnsGtmAddressPoolRequest.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_ALIDNS_MODEL_UPDATEDNSGTMADDRESSPOOLREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSGTMADDRESSPOOLREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT UpdateDnsGtmAddressPoolRequest : public RpcServiceRequest
+			{
+			public:
+				struct Addr
+				{
+					std::string mode;
+					std::string attributeInfo;
+					std::string remark;
+					std::string addr;
+					int lbaWeight;
+				};
+
+			public:
+				UpdateDnsGtmAddressPoolRequest();
+				~UpdateDnsGtmAddressPoolRequest();
+
+				std::string getLbaStrategy()const;
+				void setLbaStrategy(const std::string& lbaStrategy);
+				std::string getAddrPoolId()const;
+				void setAddrPoolId(const std::string& addrPoolId);
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				std::string getName()const;
+				void setName(const std::string& name);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::vector<Addr> getAddr()const;
+				void setAddr(const std::vector<Addr>& addr);
+
+            private:
+				std::string lbaStrategy_;
+				std::string addrPoolId_;
+				std::string userClientIp_;
+				std::string name_;
+				std::string lang_;
+				std::vector<Addr> addr_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSGTMADDRESSPOOLREQUEST_H_

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

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

+ 85 - 0
alidns/include/alibabacloud/alidns/model/UpdateDnsGtmInstanceGlobalConfigRequest.h

@@ -0,0 +1,85 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSGTMINSTANCEGLOBALCONFIGREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSGTMINSTANCEGLOBALCONFIGREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT UpdateDnsGtmInstanceGlobalConfigRequest : public RpcServiceRequest
+			{
+			public:
+				struct AlertConfig
+				{
+					bool smsNotice;
+					std::string noticeType;
+					bool emailNotice;
+				};
+
+			public:
+				UpdateDnsGtmInstanceGlobalConfigRequest();
+				~UpdateDnsGtmInstanceGlobalConfigRequest();
+
+				std::string getAlertGroup()const;
+				void setAlertGroup(const std::string& alertGroup);
+				std::string getCnameType()const;
+				void setCnameType(const std::string& cnameType);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::vector<AlertConfig> getAlertConfig()const;
+				void setAlertConfig(const std::vector<AlertConfig>& alertConfig);
+				std::string getPublicCnameMode()const;
+				void setPublicCnameMode(const std::string& publicCnameMode);
+				std::string getPublicUserDomainName()const;
+				void setPublicUserDomainName(const std::string& publicUserDomainName);
+				int getTtl()const;
+				void setTtl(int ttl);
+				std::string getInstanceId()const;
+				void setInstanceId(const std::string& instanceId);
+				std::string getInstanceName()const;
+				void setInstanceName(const std::string& instanceName);
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				std::string getPublicZoneName()const;
+				void setPublicZoneName(const std::string& publicZoneName);
+
+            private:
+				std::string alertGroup_;
+				std::string cnameType_;
+				std::string lang_;
+				std::vector<AlertConfig> alertConfig_;
+				std::string publicCnameMode_;
+				std::string publicUserDomainName_;
+				int ttl_;
+				std::string instanceId_;
+				std::string instanceName_;
+				std::string userClientIp_;
+				std::string publicZoneName_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSGTMINSTANCEGLOBALCONFIGREQUEST_H_

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

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

+ 78 - 0
alidns/include/alibabacloud/alidns/model/UpdateDnsGtmMonitorRequest.h

@@ -0,0 +1,78 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSGTMMONITORREQUEST_H_
+#define ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSGTMMONITORREQUEST_H_
+
+#include <string>
+#include <vector>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <alibabacloud/alidns/AlidnsExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Alidns
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_ALIDNS_EXPORT UpdateDnsGtmMonitorRequest : public RpcServiceRequest
+			{
+			public:
+				struct IspCityNode
+				{
+					std::string cityCode;
+					std::string ispCode;
+				};
+
+			public:
+				UpdateDnsGtmMonitorRequest();
+				~UpdateDnsGtmMonitorRequest();
+
+				std::string getMonitorExtendInfo()const;
+				void setMonitorExtendInfo(const std::string& monitorExtendInfo);
+				std::string getMonitorConfigId()const;
+				void setMonitorConfigId(const std::string& monitorConfigId);
+				int getTimeout()const;
+				void setTimeout(int timeout);
+				std::string getUserClientIp()const;
+				void setUserClientIp(const std::string& userClientIp);
+				int getEvaluationCount()const;
+				void setEvaluationCount(int evaluationCount);
+				std::string getProtocolType()const;
+				void setProtocolType(const std::string& protocolType);
+				int getInterval()const;
+				void setInterval(int interval);
+				std::string getLang()const;
+				void setLang(const std::string& lang);
+				std::vector<IspCityNode> getIspCityNode()const;
+				void setIspCityNode(const std::vector<IspCityNode>& ispCityNode);
+
+            private:
+				std::string monitorExtendInfo_;
+				std::string monitorConfigId_;
+				int timeout_;
+				std::string userClientIp_;
+				int evaluationCount_;
+				std::string protocolType_;
+				int interval_;
+				std::string lang_;
+				std::vector<IspCityNode> ispCityNode_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_ALIDNS_MODEL_UPDATEDNSGTMMONITORREQUEST_H_

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

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

文件差異過大導致無法顯示
+ 913 - 13
alidns/src/AlidnsClient.cc


+ 237 - 0
alidns/src/model/AddDnsGtmAccessStrategyRequest.cc

@@ -0,0 +1,237 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/alidns/model/AddDnsGtmAccessStrategyRequest.h>
+
+using AlibabaCloud::Alidns::Model::AddDnsGtmAccessStrategyRequest;
+
+AddDnsGtmAccessStrategyRequest::AddDnsGtmAccessStrategyRequest() :
+	RpcServiceRequest("alidns", "2015-01-09", "AddDnsGtmAccessStrategy")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+AddDnsGtmAccessStrategyRequest::~AddDnsGtmAccessStrategyRequest()
+{}
+
+std::string AddDnsGtmAccessStrategyRequest::getDefaultLbaStrategy()const
+{
+	return defaultLbaStrategy_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setDefaultLbaStrategy(const std::string& defaultLbaStrategy)
+{
+	defaultLbaStrategy_ = defaultLbaStrategy;
+	setParameter("DefaultLbaStrategy", defaultLbaStrategy);
+}
+
+std::string AddDnsGtmAccessStrategyRequest::getFailoverAddrPoolType()const
+{
+	return failoverAddrPoolType_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setFailoverAddrPoolType(const std::string& failoverAddrPoolType)
+{
+	failoverAddrPoolType_ = failoverAddrPoolType;
+	setParameter("FailoverAddrPoolType", failoverAddrPoolType);
+}
+
+std::string AddDnsGtmAccessStrategyRequest::getDefaultAddrPoolType()const
+{
+	return defaultAddrPoolType_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setDefaultAddrPoolType(const std::string& defaultAddrPoolType)
+{
+	defaultAddrPoolType_ = defaultAddrPoolType;
+	setParameter("DefaultAddrPoolType", defaultAddrPoolType);
+}
+
+int AddDnsGtmAccessStrategyRequest::getFailoverMaxReturnAddrNum()const
+{
+	return failoverMaxReturnAddrNum_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setFailoverMaxReturnAddrNum(int failoverMaxReturnAddrNum)
+{
+	failoverMaxReturnAddrNum_ = failoverMaxReturnAddrNum;
+	setParameter("FailoverMaxReturnAddrNum", std::to_string(failoverMaxReturnAddrNum));
+}
+
+std::string AddDnsGtmAccessStrategyRequest::getFailoverLbaStrategy()const
+{
+	return failoverLbaStrategy_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setFailoverLbaStrategy(const std::string& failoverLbaStrategy)
+{
+	failoverLbaStrategy_ = failoverLbaStrategy;
+	setParameter("FailoverLbaStrategy", failoverLbaStrategy);
+}
+
+std::vector<AddDnsGtmAccessStrategyRequest::DefaultAddrPool> AddDnsGtmAccessStrategyRequest::getDefaultAddrPool()const
+{
+	return defaultAddrPool_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setDefaultAddrPool(const std::vector<DefaultAddrPool>& defaultAddrPool)
+{
+	defaultAddrPool_ = defaultAddrPool;
+	for(int dep1 = 0; dep1!= defaultAddrPool.size(); dep1++) {
+		auto defaultAddrPoolObj = defaultAddrPool.at(dep1);
+		std::string defaultAddrPoolObjStr = "DefaultAddrPool." + std::to_string(dep1 + 1);
+		setParameter(defaultAddrPoolObjStr + ".Id", defaultAddrPoolObj.id);
+		setParameter(defaultAddrPoolObjStr + ".LbaWeight", std::to_string(defaultAddrPoolObj.lbaWeight));
+	}
+}
+
+int AddDnsGtmAccessStrategyRequest::getFailoverMinAvailableAddrNum()const
+{
+	return failoverMinAvailableAddrNum_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setFailoverMinAvailableAddrNum(int failoverMinAvailableAddrNum)
+{
+	failoverMinAvailableAddrNum_ = failoverMinAvailableAddrNum;
+	setParameter("FailoverMinAvailableAddrNum", std::to_string(failoverMinAvailableAddrNum));
+}
+
+int AddDnsGtmAccessStrategyRequest::getDefaultMaxReturnAddrNum()const
+{
+	return defaultMaxReturnAddrNum_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setDefaultMaxReturnAddrNum(int defaultMaxReturnAddrNum)
+{
+	defaultMaxReturnAddrNum_ = defaultMaxReturnAddrNum;
+	setParameter("DefaultMaxReturnAddrNum", std::to_string(defaultMaxReturnAddrNum));
+}
+
+int AddDnsGtmAccessStrategyRequest::getDefaultMinAvailableAddrNum()const
+{
+	return defaultMinAvailableAddrNum_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setDefaultMinAvailableAddrNum(int defaultMinAvailableAddrNum)
+{
+	defaultMinAvailableAddrNum_ = defaultMinAvailableAddrNum;
+	setParameter("DefaultMinAvailableAddrNum", std::to_string(defaultMinAvailableAddrNum));
+}
+
+std::string AddDnsGtmAccessStrategyRequest::getStrategyMode()const
+{
+	return strategyMode_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setStrategyMode(const std::string& strategyMode)
+{
+	strategyMode_ = strategyMode;
+	setParameter("StrategyMode", strategyMode);
+}
+
+std::string AddDnsGtmAccessStrategyRequest::getLang()const
+{
+	return lang_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+
+std::string AddDnsGtmAccessStrategyRequest::getLines()const
+{
+	return lines_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setLines(const std::string& lines)
+{
+	lines_ = lines;
+	setParameter("Lines", lines);
+}
+
+std::string AddDnsGtmAccessStrategyRequest::getStrategyName()const
+{
+	return strategyName_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setStrategyName(const std::string& strategyName)
+{
+	strategyName_ = strategyName;
+	setParameter("StrategyName", strategyName);
+}
+
+std::string AddDnsGtmAccessStrategyRequest::getDefaultLatencyOptimization()const
+{
+	return defaultLatencyOptimization_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setDefaultLatencyOptimization(const std::string& defaultLatencyOptimization)
+{
+	defaultLatencyOptimization_ = defaultLatencyOptimization;
+	setParameter("DefaultLatencyOptimization", defaultLatencyOptimization);
+}
+
+std::string AddDnsGtmAccessStrategyRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string AddDnsGtmAccessStrategyRequest::getFailoverLatencyOptimization()const
+{
+	return failoverLatencyOptimization_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setFailoverLatencyOptimization(const std::string& failoverLatencyOptimization)
+{
+	failoverLatencyOptimization_ = failoverLatencyOptimization;
+	setParameter("FailoverLatencyOptimization", failoverLatencyOptimization);
+}
+
+std::string AddDnsGtmAccessStrategyRequest::getUserClientIp()const
+{
+	return userClientIp_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setUserClientIp(const std::string& userClientIp)
+{
+	userClientIp_ = userClientIp;
+	setParameter("UserClientIp", userClientIp);
+}
+
+std::vector<AddDnsGtmAccessStrategyRequest::FailoverAddrPool> AddDnsGtmAccessStrategyRequest::getFailoverAddrPool()const
+{
+	return failoverAddrPool_;
+}
+
+void AddDnsGtmAccessStrategyRequest::setFailoverAddrPool(const std::vector<FailoverAddrPool>& failoverAddrPool)
+{
+	failoverAddrPool_ = failoverAddrPool;
+	for(int dep1 = 0; dep1!= failoverAddrPool.size(); dep1++) {
+		auto failoverAddrPoolObj = failoverAddrPool.at(dep1);
+		std::string failoverAddrPoolObjStr = "FailoverAddrPool." + std::to_string(dep1 + 1);
+		setParameter(failoverAddrPoolObjStr + ".Id", failoverAddrPoolObj.id);
+		setParameter(failoverAddrPoolObjStr + ".LbaWeight", std::to_string(failoverAddrPoolObj.lbaWeight));
+	}
+}
+

+ 51 - 0
alidns/src/model/AddDnsGtmAccessStrategyResult.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/alidns/model/AddDnsGtmAccessStrategyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+AddDnsGtmAccessStrategyResult::AddDnsGtmAccessStrategyResult() :
+	ServiceResult()
+{}
+
+AddDnsGtmAccessStrategyResult::AddDnsGtmAccessStrategyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+AddDnsGtmAccessStrategyResult::~AddDnsGtmAccessStrategyResult()
+{}
+
+void AddDnsGtmAccessStrategyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["StrategyId"].isNull())
+		strategyId_ = value["StrategyId"].asString();
+
+}
+
+std::string AddDnsGtmAccessStrategyResult::getStrategyId()const
+{
+	return strategyId_;
+}
+

+ 196 - 0
alidns/src/model/AddDnsGtmAddressPoolRequest.cc

@@ -0,0 +1,196 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/alidns/model/AddDnsGtmAddressPoolRequest.h>
+
+using AlibabaCloud::Alidns::Model::AddDnsGtmAddressPoolRequest;
+
+AddDnsGtmAddressPoolRequest::AddDnsGtmAddressPoolRequest() :
+	RpcServiceRequest("alidns", "2015-01-09", "AddDnsGtmAddressPool")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+AddDnsGtmAddressPoolRequest::~AddDnsGtmAddressPoolRequest()
+{}
+
+std::string AddDnsGtmAddressPoolRequest::getMonitorExtendInfo()const
+{
+	return monitorExtendInfo_;
+}
+
+void AddDnsGtmAddressPoolRequest::setMonitorExtendInfo(const std::string& monitorExtendInfo)
+{
+	monitorExtendInfo_ = monitorExtendInfo;
+	setParameter("MonitorExtendInfo", monitorExtendInfo);
+}
+
+std::string AddDnsGtmAddressPoolRequest::getLbaStrategy()const
+{
+	return lbaStrategy_;
+}
+
+void AddDnsGtmAddressPoolRequest::setLbaStrategy(const std::string& lbaStrategy)
+{
+	lbaStrategy_ = lbaStrategy;
+	setParameter("LbaStrategy", lbaStrategy);
+}
+
+std::string AddDnsGtmAddressPoolRequest::getType()const
+{
+	return type_;
+}
+
+void AddDnsGtmAddressPoolRequest::setType(const std::string& type)
+{
+	type_ = type;
+	setParameter("Type", type);
+}
+
+int AddDnsGtmAddressPoolRequest::getTimeout()const
+{
+	return timeout_;
+}
+
+void AddDnsGtmAddressPoolRequest::setTimeout(int timeout)
+{
+	timeout_ = timeout;
+	setParameter("Timeout", std::to_string(timeout));
+}
+
+int AddDnsGtmAddressPoolRequest::getEvaluationCount()const
+{
+	return evaluationCount_;
+}
+
+void AddDnsGtmAddressPoolRequest::setEvaluationCount(int evaluationCount)
+{
+	evaluationCount_ = evaluationCount;
+	setParameter("EvaluationCount", std::to_string(evaluationCount));
+}
+
+std::string AddDnsGtmAddressPoolRequest::getLang()const
+{
+	return lang_;
+}
+
+void AddDnsGtmAddressPoolRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+
+std::vector<AddDnsGtmAddressPoolRequest::Addr> AddDnsGtmAddressPoolRequest::getAddr()const
+{
+	return addr_;
+}
+
+void AddDnsGtmAddressPoolRequest::setAddr(const std::vector<Addr>& addr)
+{
+	addr_ = addr;
+	for(int dep1 = 0; dep1!= addr.size(); dep1++) {
+		auto addrObj = addr.at(dep1);
+		std::string addrObjStr = "Addr." + std::to_string(dep1 + 1);
+		setParameter(addrObjStr + ".Mode", addrObj.mode);
+		setParameter(addrObjStr + ".AttributeInfo", addrObj.attributeInfo);
+		setParameter(addrObjStr + ".Remark", addrObj.remark);
+		setParameter(addrObjStr + ".Addr", addrObj.addr);
+		setParameter(addrObjStr + ".LbaWeight", std::to_string(addrObj.lbaWeight));
+	}
+}
+
+std::string AddDnsGtmAddressPoolRequest::getMonitorStatus()const
+{
+	return monitorStatus_;
+}
+
+void AddDnsGtmAddressPoolRequest::setMonitorStatus(const std::string& monitorStatus)
+{
+	monitorStatus_ = monitorStatus;
+	setParameter("MonitorStatus", monitorStatus);
+}
+
+std::string AddDnsGtmAddressPoolRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void AddDnsGtmAddressPoolRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string AddDnsGtmAddressPoolRequest::getUserClientIp()const
+{
+	return userClientIp_;
+}
+
+void AddDnsGtmAddressPoolRequest::setUserClientIp(const std::string& userClientIp)
+{
+	userClientIp_ = userClientIp;
+	setParameter("UserClientIp", userClientIp);
+}
+
+std::string AddDnsGtmAddressPoolRequest::getName()const
+{
+	return name_;
+}
+
+void AddDnsGtmAddressPoolRequest::setName(const std::string& name)
+{
+	name_ = name;
+	setParameter("Name", name);
+}
+
+std::string AddDnsGtmAddressPoolRequest::getProtocolType()const
+{
+	return protocolType_;
+}
+
+void AddDnsGtmAddressPoolRequest::setProtocolType(const std::string& protocolType)
+{
+	protocolType_ = protocolType;
+	setParameter("ProtocolType", protocolType);
+}
+
+int AddDnsGtmAddressPoolRequest::getInterval()const
+{
+	return interval_;
+}
+
+void AddDnsGtmAddressPoolRequest::setInterval(int interval)
+{
+	interval_ = interval;
+	setParameter("Interval", std::to_string(interval));
+}
+
+std::vector<AddDnsGtmAddressPoolRequest::IspCityNode> AddDnsGtmAddressPoolRequest::getIspCityNode()const
+{
+	return ispCityNode_;
+}
+
+void AddDnsGtmAddressPoolRequest::setIspCityNode(const std::vector<IspCityNode>& ispCityNode)
+{
+	ispCityNode_ = ispCityNode;
+	for(int dep1 = 0; dep1!= ispCityNode.size(); dep1++) {
+		auto ispCityNodeObj = ispCityNode.at(dep1);
+		std::string ispCityNodeObjStr = "IspCityNode." + std::to_string(dep1 + 1);
+		setParameter(ispCityNodeObjStr + ".CityCode", ispCityNodeObj.cityCode);
+		setParameter(ispCityNodeObjStr + ".IspCode", ispCityNodeObj.ispCode);
+	}
+}
+

+ 58 - 0
alidns/src/model/AddDnsGtmAddressPoolResult.cc

@@ -0,0 +1,58 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/alidns/model/AddDnsGtmAddressPoolResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+AddDnsGtmAddressPoolResult::AddDnsGtmAddressPoolResult() :
+	ServiceResult()
+{}
+
+AddDnsGtmAddressPoolResult::AddDnsGtmAddressPoolResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+AddDnsGtmAddressPoolResult::~AddDnsGtmAddressPoolResult()
+{}
+
+void AddDnsGtmAddressPoolResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["AddrPoolId"].isNull())
+		addrPoolId_ = value["AddrPoolId"].asString();
+	if(!value["MonitorConfigId"].isNull())
+		monitorConfigId_ = value["MonitorConfigId"].asString();
+
+}
+
+std::string AddDnsGtmAddressPoolResult::getAddrPoolId()const
+{
+	return addrPoolId_;
+}
+
+std::string AddDnsGtmAddressPoolResult::getMonitorConfigId()const
+{
+	return monitorConfigId_;
+}
+

+ 133 - 0
alidns/src/model/AddDnsGtmMonitorRequest.cc

@@ -0,0 +1,133 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/alidns/model/AddDnsGtmMonitorRequest.h>
+
+using AlibabaCloud::Alidns::Model::AddDnsGtmMonitorRequest;
+
+AddDnsGtmMonitorRequest::AddDnsGtmMonitorRequest() :
+	RpcServiceRequest("alidns", "2015-01-09", "AddDnsGtmMonitor")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+AddDnsGtmMonitorRequest::~AddDnsGtmMonitorRequest()
+{}
+
+std::string AddDnsGtmMonitorRequest::getMonitorExtendInfo()const
+{
+	return monitorExtendInfo_;
+}
+
+void AddDnsGtmMonitorRequest::setMonitorExtendInfo(const std::string& monitorExtendInfo)
+{
+	monitorExtendInfo_ = monitorExtendInfo;
+	setParameter("MonitorExtendInfo", monitorExtendInfo);
+}
+
+int AddDnsGtmMonitorRequest::getTimeout()const
+{
+	return timeout_;
+}
+
+void AddDnsGtmMonitorRequest::setTimeout(int timeout)
+{
+	timeout_ = timeout;
+	setParameter("Timeout", std::to_string(timeout));
+}
+
+std::string AddDnsGtmMonitorRequest::getAddrPoolId()const
+{
+	return addrPoolId_;
+}
+
+void AddDnsGtmMonitorRequest::setAddrPoolId(const std::string& addrPoolId)
+{
+	addrPoolId_ = addrPoolId;
+	setParameter("AddrPoolId", addrPoolId);
+}
+
+std::string AddDnsGtmMonitorRequest::getUserClientIp()const
+{
+	return userClientIp_;
+}
+
+void AddDnsGtmMonitorRequest::setUserClientIp(const std::string& userClientIp)
+{
+	userClientIp_ = userClientIp;
+	setParameter("UserClientIp", userClientIp);
+}
+
+int AddDnsGtmMonitorRequest::getEvaluationCount()const
+{
+	return evaluationCount_;
+}
+
+void AddDnsGtmMonitorRequest::setEvaluationCount(int evaluationCount)
+{
+	evaluationCount_ = evaluationCount;
+	setParameter("EvaluationCount", std::to_string(evaluationCount));
+}
+
+std::string AddDnsGtmMonitorRequest::getProtocolType()const
+{
+	return protocolType_;
+}
+
+void AddDnsGtmMonitorRequest::setProtocolType(const std::string& protocolType)
+{
+	protocolType_ = protocolType;
+	setParameter("ProtocolType", protocolType);
+}
+
+int AddDnsGtmMonitorRequest::getInterval()const
+{
+	return interval_;
+}
+
+void AddDnsGtmMonitorRequest::setInterval(int interval)
+{
+	interval_ = interval;
+	setParameter("Interval", std::to_string(interval));
+}
+
+std::string AddDnsGtmMonitorRequest::getLang()const
+{
+	return lang_;
+}
+
+void AddDnsGtmMonitorRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+
+std::vector<AddDnsGtmMonitorRequest::IspCityNode> AddDnsGtmMonitorRequest::getIspCityNode()const
+{
+	return ispCityNode_;
+}
+
+void AddDnsGtmMonitorRequest::setIspCityNode(const std::vector<IspCityNode>& ispCityNode)
+{
+	ispCityNode_ = ispCityNode;
+	for(int dep1 = 0; dep1!= ispCityNode.size(); dep1++) {
+		auto ispCityNodeObj = ispCityNode.at(dep1);
+		std::string ispCityNodeObjStr = "IspCityNode." + std::to_string(dep1 + 1);
+		setParameter(ispCityNodeObjStr + ".CityCode", ispCityNodeObj.cityCode);
+		setParameter(ispCityNodeObjStr + ".IspCode", ispCityNodeObj.ispCode);
+	}
+}
+

+ 51 - 0
alidns/src/model/AddDnsGtmMonitorResult.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/alidns/model/AddDnsGtmMonitorResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+AddDnsGtmMonitorResult::AddDnsGtmMonitorResult() :
+	ServiceResult()
+{}
+
+AddDnsGtmMonitorResult::AddDnsGtmMonitorResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+AddDnsGtmMonitorResult::~AddDnsGtmMonitorResult()
+{}
+
+void AddDnsGtmMonitorResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["MonitorConfigId"].isNull())
+		monitorConfigId_ = value["MonitorConfigId"].asString();
+
+}
+
+std::string AddDnsGtmMonitorResult::getMonitorConfigId()const
+{
+	return monitorConfigId_;
+}
+

+ 62 - 0
alidns/src/model/DeleteDnsGtmAccessStrategyRequest.cc

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

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

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/alidns/model/DeleteDnsGtmAccessStrategyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+DeleteDnsGtmAccessStrategyResult::DeleteDnsGtmAccessStrategyResult() :
+	ServiceResult()
+{}
+
+DeleteDnsGtmAccessStrategyResult::DeleteDnsGtmAccessStrategyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteDnsGtmAccessStrategyResult::~DeleteDnsGtmAccessStrategyResult()
+{}
+
+void DeleteDnsGtmAccessStrategyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 62 - 0
alidns/src/model/DeleteDnsGtmAddressPoolRequest.cc

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

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

@@ -0,0 +1,44 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/alidns/model/DeleteDnsGtmAddressPoolResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+DeleteDnsGtmAddressPoolResult::DeleteDnsGtmAddressPoolResult() :
+	ServiceResult()
+{}
+
+DeleteDnsGtmAddressPoolResult::DeleteDnsGtmAddressPoolResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DeleteDnsGtmAddressPoolResult::~DeleteDnsGtmAddressPoolResult()
+{}
+
+void DeleteDnsGtmAddressPoolResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+
+}
+

+ 8 - 8
alidns/src/model/DescribeCustomLinesResult.cc

@@ -55,16 +55,16 @@ void DescribeCustomLinesResult::parse(const std::string &payload)
 			customLinesObject.ipSegments = valueCustomLinesCustomLine["IpSegments"].asString();
 		if(!valueCustomLinesCustomLine["Code"].isNull())
 			customLinesObject.code = valueCustomLinesCustomLine["Code"].asString();
-		auto allIpSegmentListNode = allCustomLinesNode["IpSegmentList"]["IpSegment"];
-		for (auto allCustomLinesNodeIpSegmentListIpSegment : allIpSegmentListNode)
+		auto allIpSegmentListNode = valueCustomLinesCustomLine["IpSegmentList"]["IpSegment"];
+		for (auto valueCustomLinesCustomLineIpSegmentListIpSegment : allIpSegmentListNode)
 		{
 			CustomLine::IpSegment ipSegmentListObject;
-			if(!allCustomLinesNodeIpSegmentListIpSegment["Name"].isNull())
-				ipSegmentListObject.name = allCustomLinesNodeIpSegmentListIpSegment["Name"].asString();
-			if(!allCustomLinesNodeIpSegmentListIpSegment["StartIp"].isNull())
-				ipSegmentListObject.startIp = allCustomLinesNodeIpSegmentListIpSegment["StartIp"].asString();
-			if(!allCustomLinesNodeIpSegmentListIpSegment["EndIp"].isNull())
-				ipSegmentListObject.endIp = allCustomLinesNodeIpSegmentListIpSegment["EndIp"].asString();
+			if(!valueCustomLinesCustomLineIpSegmentListIpSegment["Name"].isNull())
+				ipSegmentListObject.name = valueCustomLinesCustomLineIpSegmentListIpSegment["Name"].asString();
+			if(!valueCustomLinesCustomLineIpSegmentListIpSegment["StartIp"].isNull())
+				ipSegmentListObject.startIp = valueCustomLinesCustomLineIpSegmentListIpSegment["StartIp"].asString();
+			if(!valueCustomLinesCustomLineIpSegmentListIpSegment["EndIp"].isNull())
+				ipSegmentListObject.endIp = valueCustomLinesCustomLineIpSegmentListIpSegment["EndIp"].asString();
 			customLinesObject.ipSegmentList.push_back(ipSegmentListObject);
 		}
 		customLines_.push_back(customLinesObject);

+ 95 - 0
alidns/src/model/DescribeDnsGtmAccessStrategiesRequest.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/alidns/model/DescribeDnsGtmAccessStrategiesRequest.h>
+
+using AlibabaCloud::Alidns::Model::DescribeDnsGtmAccessStrategiesRequest;
+
+DescribeDnsGtmAccessStrategiesRequest::DescribeDnsGtmAccessStrategiesRequest() :
+	RpcServiceRequest("alidns", "2015-01-09", "DescribeDnsGtmAccessStrategies")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeDnsGtmAccessStrategiesRequest::~DescribeDnsGtmAccessStrategiesRequest()
+{}
+
+int DescribeDnsGtmAccessStrategiesRequest::getPageNumber()const
+{
+	return pageNumber_;
+}
+
+void DescribeDnsGtmAccessStrategiesRequest::setPageNumber(int pageNumber)
+{
+	pageNumber_ = pageNumber;
+	setParameter("PageNumber", std::to_string(pageNumber));
+}
+
+std::string DescribeDnsGtmAccessStrategiesRequest::getInstanceId()const
+{
+	return instanceId_;
+}
+
+void DescribeDnsGtmAccessStrategiesRequest::setInstanceId(const std::string& instanceId)
+{
+	instanceId_ = instanceId;
+	setParameter("InstanceId", instanceId);
+}
+
+std::string DescribeDnsGtmAccessStrategiesRequest::getUserClientIp()const
+{
+	return userClientIp_;
+}
+
+void DescribeDnsGtmAccessStrategiesRequest::setUserClientIp(const std::string& userClientIp)
+{
+	userClientIp_ = userClientIp;
+	setParameter("UserClientIp", userClientIp);
+}
+
+int DescribeDnsGtmAccessStrategiesRequest::getPageSize()const
+{
+	return pageSize_;
+}
+
+void DescribeDnsGtmAccessStrategiesRequest::setPageSize(int pageSize)
+{
+	pageSize_ = pageSize;
+	setParameter("PageSize", std::to_string(pageSize));
+}
+
+std::string DescribeDnsGtmAccessStrategiesRequest::getStrategyMode()const
+{
+	return strategyMode_;
+}
+
+void DescribeDnsGtmAccessStrategiesRequest::setStrategyMode(const std::string& strategyMode)
+{
+	strategyMode_ = strategyMode;
+	setParameter("StrategyMode", strategyMode);
+}
+
+std::string DescribeDnsGtmAccessStrategiesRequest::getLang()const
+{
+	return lang_;
+}
+
+void DescribeDnsGtmAccessStrategiesRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+

+ 125 - 0
alidns/src/model/DescribeDnsGtmAccessStrategiesResult.cc

@@ -0,0 +1,125 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/alidns/model/DescribeDnsGtmAccessStrategiesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+DescribeDnsGtmAccessStrategiesResult::DescribeDnsGtmAccessStrategiesResult() :
+	ServiceResult()
+{}
+
+DescribeDnsGtmAccessStrategiesResult::DescribeDnsGtmAccessStrategiesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDnsGtmAccessStrategiesResult::~DescribeDnsGtmAccessStrategiesResult()
+{}
+
+void DescribeDnsGtmAccessStrategiesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allStrategiesNode = value["Strategies"]["Strategy"];
+	for (auto valueStrategiesStrategy : allStrategiesNode)
+	{
+		Strategy strategiesObject;
+		if(!valueStrategiesStrategy["StrategyId"].isNull())
+			strategiesObject.strategyId = valueStrategiesStrategy["StrategyId"].asString();
+		if(!valueStrategiesStrategy["StrategyName"].isNull())
+			strategiesObject.strategyName = valueStrategiesStrategy["StrategyName"].asString();
+		if(!valueStrategiesStrategy["CreateTime"].isNull())
+			strategiesObject.createTime = valueStrategiesStrategy["CreateTime"].asString();
+		if(!valueStrategiesStrategy["CreateTimestamp"].isNull())
+			strategiesObject.createTimestamp = std::stol(valueStrategiesStrategy["CreateTimestamp"].asString());
+		if(!valueStrategiesStrategy["EffectiveAddrPoolGroupType"].isNull())
+			strategiesObject.effectiveAddrPoolGroupType = valueStrategiesStrategy["EffectiveAddrPoolGroupType"].asString();
+		if(!valueStrategiesStrategy["EffectiveAddrPoolType"].isNull())
+			strategiesObject.effectiveAddrPoolType = valueStrategiesStrategy["EffectiveAddrPoolType"].asString();
+		if(!valueStrategiesStrategy["EffectiveLbaStrategy"].isNull())
+			strategiesObject.effectiveLbaStrategy = valueStrategiesStrategy["EffectiveLbaStrategy"].asString();
+		auto allLinesNode = valueStrategiesStrategy["Lines"]["Line"];
+		for (auto valueStrategiesStrategyLinesLine : allLinesNode)
+		{
+			Strategy::Line linesObject;
+			if(!valueStrategiesStrategyLinesLine["LineCode"].isNull())
+				linesObject.lineCode = valueStrategiesStrategyLinesLine["LineCode"].asString();
+			if(!valueStrategiesStrategyLinesLine["LineName"].isNull())
+				linesObject.lineName = valueStrategiesStrategyLinesLine["LineName"].asString();
+			if(!valueStrategiesStrategyLinesLine["GroupCode"].isNull())
+				linesObject.groupCode = valueStrategiesStrategyLinesLine["GroupCode"].asString();
+			if(!valueStrategiesStrategyLinesLine["GroupName"].isNull())
+				linesObject.groupName = valueStrategiesStrategyLinesLine["GroupName"].asString();
+			strategiesObject.lines.push_back(linesObject);
+		}
+		auto allEffectiveAddrPoolsNode = valueStrategiesStrategy["EffectiveAddrPools"]["EffectiveAddrPool"];
+		for (auto valueStrategiesStrategyEffectiveAddrPoolsEffectiveAddrPool : allEffectiveAddrPoolsNode)
+		{
+			Strategy::EffectiveAddrPool effectiveAddrPoolsObject;
+			if(!valueStrategiesStrategyEffectiveAddrPoolsEffectiveAddrPool["Id"].isNull())
+				effectiveAddrPoolsObject.id = valueStrategiesStrategyEffectiveAddrPoolsEffectiveAddrPool["Id"].asString();
+			if(!valueStrategiesStrategyEffectiveAddrPoolsEffectiveAddrPool["Name"].isNull())
+				effectiveAddrPoolsObject.name = valueStrategiesStrategyEffectiveAddrPoolsEffectiveAddrPool["Name"].asString();
+			if(!valueStrategiesStrategyEffectiveAddrPoolsEffectiveAddrPool["AddrCount"].isNull())
+				effectiveAddrPoolsObject.addrCount = std::stoi(valueStrategiesStrategyEffectiveAddrPoolsEffectiveAddrPool["AddrCount"].asString());
+			if(!valueStrategiesStrategyEffectiveAddrPoolsEffectiveAddrPool["LbaWeight"].isNull())
+				effectiveAddrPoolsObject.lbaWeight = std::stoi(valueStrategiesStrategyEffectiveAddrPoolsEffectiveAddrPool["LbaWeight"].asString());
+			strategiesObject.effectiveAddrPools.push_back(effectiveAddrPoolsObject);
+		}
+		strategies_.push_back(strategiesObject);
+	}
+	if(!value["TotalItems"].isNull())
+		totalItems_ = std::stoi(value["TotalItems"].asString());
+	if(!value["TotalPages"].isNull())
+		totalPages_ = std::stoi(value["TotalPages"].asString());
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stoi(value["PageNumber"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+
+}
+
+int DescribeDnsGtmAccessStrategiesResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+int DescribeDnsGtmAccessStrategiesResult::getPageNumber()const
+{
+	return pageNumber_;
+}
+
+std::vector<DescribeDnsGtmAccessStrategiesResult::Strategy> DescribeDnsGtmAccessStrategiesResult::getStrategies()const
+{
+	return strategies_;
+}
+
+int DescribeDnsGtmAccessStrategiesResult::getTotalPages()const
+{
+	return totalPages_;
+}
+
+int DescribeDnsGtmAccessStrategiesResult::getTotalItems()const
+{
+	return totalItems_;
+}
+

+ 73 - 0
alidns/src/model/DescribeDnsGtmAccessStrategyAvailableConfigRequest.cc

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

+ 123 - 0
alidns/src/model/DescribeDnsGtmAccessStrategyAvailableConfigResult.cc

@@ -0,0 +1,123 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/alidns/model/DescribeDnsGtmAccessStrategyAvailableConfigResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+DescribeDnsGtmAccessStrategyAvailableConfigResult::DescribeDnsGtmAccessStrategyAvailableConfigResult() :
+	ServiceResult()
+{}
+
+DescribeDnsGtmAccessStrategyAvailableConfigResult::DescribeDnsGtmAccessStrategyAvailableConfigResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDnsGtmAccessStrategyAvailableConfigResult::~DescribeDnsGtmAccessStrategyAvailableConfigResult()
+{}
+
+void DescribeDnsGtmAccessStrategyAvailableConfigResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allIpv4AddrPoolsNode = value["Ipv4AddrPools"]["Ipv4AddrPool"];
+	for (auto valueIpv4AddrPoolsIpv4AddrPool : allIpv4AddrPoolsNode)
+	{
+		Ipv4AddrPool ipv4AddrPoolsObject;
+		if(!valueIpv4AddrPoolsIpv4AddrPool["Id"].isNull())
+			ipv4AddrPoolsObject.id = valueIpv4AddrPoolsIpv4AddrPool["Id"].asString();
+		if(!valueIpv4AddrPoolsIpv4AddrPool["Name"].isNull())
+			ipv4AddrPoolsObject.name = valueIpv4AddrPoolsIpv4AddrPool["Name"].asString();
+		if(!valueIpv4AddrPoolsIpv4AddrPool["AddrCount"].isNull())
+			ipv4AddrPoolsObject.addrCount = std::stoi(valueIpv4AddrPoolsIpv4AddrPool["AddrCount"].asString());
+		ipv4AddrPools_.push_back(ipv4AddrPoolsObject);
+	}
+	auto allLinesNode = value["Lines"]["Line"];
+	for (auto valueLinesLine : allLinesNode)
+	{
+		Line linesObject;
+		if(!valueLinesLine["LineCode"].isNull())
+			linesObject.lineCode = valueLinesLine["LineCode"].asString();
+		if(!valueLinesLine["LineName"].isNull())
+			linesObject.lineName = valueLinesLine["LineName"].asString();
+		if(!valueLinesLine["GroupCode"].isNull())
+			linesObject.groupCode = valueLinesLine["GroupCode"].asString();
+		if(!valueLinesLine["GroupName"].isNull())
+			linesObject.groupName = valueLinesLine["GroupName"].asString();
+		if(!valueLinesLine["FatherCode"].isNull())
+			linesObject.fatherCode = valueLinesLine["FatherCode"].asString();
+		lines_.push_back(linesObject);
+	}
+	auto allIpv6AddrPoolsNode = value["Ipv6AddrPools"]["Ipv6AddrPool"];
+	for (auto valueIpv6AddrPoolsIpv6AddrPool : allIpv6AddrPoolsNode)
+	{
+		Ipv6AddrPool ipv6AddrPoolsObject;
+		if(!valueIpv6AddrPoolsIpv6AddrPool["Id"].isNull())
+			ipv6AddrPoolsObject.id = valueIpv6AddrPoolsIpv6AddrPool["Id"].asString();
+		if(!valueIpv6AddrPoolsIpv6AddrPool["Name"].isNull())
+			ipv6AddrPoolsObject.name = valueIpv6AddrPoolsIpv6AddrPool["Name"].asString();
+		if(!valueIpv6AddrPoolsIpv6AddrPool["AddrCount"].isNull())
+			ipv6AddrPoolsObject.addrCount = std::stoi(valueIpv6AddrPoolsIpv6AddrPool["AddrCount"].asString());
+		ipv6AddrPools_.push_back(ipv6AddrPoolsObject);
+	}
+	auto allDomainAddrPoolsNode = value["DomainAddrPools"]["DomainAddrPool"];
+	for (auto valueDomainAddrPoolsDomainAddrPool : allDomainAddrPoolsNode)
+	{
+		DomainAddrPool domainAddrPoolsObject;
+		if(!valueDomainAddrPoolsDomainAddrPool["Id"].isNull())
+			domainAddrPoolsObject.id = valueDomainAddrPoolsDomainAddrPool["Id"].asString();
+		if(!valueDomainAddrPoolsDomainAddrPool["Name"].isNull())
+			domainAddrPoolsObject.name = valueDomainAddrPoolsDomainAddrPool["Name"].asString();
+		if(!valueDomainAddrPoolsDomainAddrPool["AddrCount"].isNull())
+			domainAddrPoolsObject.addrCount = std::stoi(valueDomainAddrPoolsDomainAddrPool["AddrCount"].asString());
+		domainAddrPools_.push_back(domainAddrPoolsObject);
+	}
+	if(!value["SuggestSetDefaultLine"].isNull())
+		suggestSetDefaultLine_ = value["SuggestSetDefaultLine"].asString() == "true";
+
+}
+
+std::vector<DescribeDnsGtmAccessStrategyAvailableConfigResult::Ipv4AddrPool> DescribeDnsGtmAccessStrategyAvailableConfigResult::getIpv4AddrPools()const
+{
+	return ipv4AddrPools_;
+}
+
+std::vector<DescribeDnsGtmAccessStrategyAvailableConfigResult::DomainAddrPool> DescribeDnsGtmAccessStrategyAvailableConfigResult::getDomainAddrPools()const
+{
+	return domainAddrPools_;
+}
+
+std::vector<DescribeDnsGtmAccessStrategyAvailableConfigResult::Ipv6AddrPool> DescribeDnsGtmAccessStrategyAvailableConfigResult::getIpv6AddrPools()const
+{
+	return ipv6AddrPools_;
+}
+
+std::vector<DescribeDnsGtmAccessStrategyAvailableConfigResult::Line> DescribeDnsGtmAccessStrategyAvailableConfigResult::getLines()const
+{
+	return lines_;
+}
+
+bool DescribeDnsGtmAccessStrategyAvailableConfigResult::getSuggestSetDefaultLine()const
+{
+	return suggestSetDefaultLine_;
+}
+

+ 62 - 0
alidns/src/model/DescribeDnsGtmAccessStrategyRequest.cc

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

+ 255 - 0
alidns/src/model/DescribeDnsGtmAccessStrategyResult.cc

@@ -0,0 +1,255 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/alidns/model/DescribeDnsGtmAccessStrategyResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+DescribeDnsGtmAccessStrategyResult::DescribeDnsGtmAccessStrategyResult() :
+	ServiceResult()
+{}
+
+DescribeDnsGtmAccessStrategyResult::DescribeDnsGtmAccessStrategyResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDnsGtmAccessStrategyResult::~DescribeDnsGtmAccessStrategyResult()
+{}
+
+void DescribeDnsGtmAccessStrategyResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allLinesNode = value["Lines"]["Line"];
+	for (auto valueLinesLine : allLinesNode)
+	{
+		Line linesObject;
+		if(!valueLinesLine["LineCode"].isNull())
+			linesObject.lineCode = valueLinesLine["LineCode"].asString();
+		if(!valueLinesLine["LineName"].isNull())
+			linesObject.lineName = valueLinesLine["LineName"].asString();
+		if(!valueLinesLine["GroupCode"].isNull())
+			linesObject.groupCode = valueLinesLine["GroupCode"].asString();
+		if(!valueLinesLine["GroupName"].isNull())
+			linesObject.groupName = valueLinesLine["GroupName"].asString();
+		lines_.push_back(linesObject);
+	}
+	auto allDefaultAddrPoolsNode = value["DefaultAddrPools"]["DefaultAddrPool"];
+	for (auto valueDefaultAddrPoolsDefaultAddrPool : allDefaultAddrPoolsNode)
+	{
+		DefaultAddrPool defaultAddrPoolsObject;
+		if(!valueDefaultAddrPoolsDefaultAddrPool["Id"].isNull())
+			defaultAddrPoolsObject.id = valueDefaultAddrPoolsDefaultAddrPool["Id"].asString();
+		if(!valueDefaultAddrPoolsDefaultAddrPool["Name"].isNull())
+			defaultAddrPoolsObject.name = valueDefaultAddrPoolsDefaultAddrPool["Name"].asString();
+		if(!valueDefaultAddrPoolsDefaultAddrPool["AddrCount"].isNull())
+			defaultAddrPoolsObject.addrCount = std::stoi(valueDefaultAddrPoolsDefaultAddrPool["AddrCount"].asString());
+		if(!valueDefaultAddrPoolsDefaultAddrPool["LbaWeight"].isNull())
+			defaultAddrPoolsObject.lbaWeight = std::stoi(valueDefaultAddrPoolsDefaultAddrPool["LbaWeight"].asString());
+		defaultAddrPools_.push_back(defaultAddrPoolsObject);
+	}
+	auto allFailoverAddrPoolsNode = value["FailoverAddrPools"]["FailoverAddrPool"];
+	for (auto valueFailoverAddrPoolsFailoverAddrPool : allFailoverAddrPoolsNode)
+	{
+		FailoverAddrPool failoverAddrPoolsObject;
+		if(!valueFailoverAddrPoolsFailoverAddrPool["Id"].isNull())
+			failoverAddrPoolsObject.id = valueFailoverAddrPoolsFailoverAddrPool["Id"].asString();
+		if(!valueFailoverAddrPoolsFailoverAddrPool["Name"].isNull())
+			failoverAddrPoolsObject.name = valueFailoverAddrPoolsFailoverAddrPool["Name"].asString();
+		if(!valueFailoverAddrPoolsFailoverAddrPool["AddrCount"].isNull())
+			failoverAddrPoolsObject.addrCount = std::stoi(valueFailoverAddrPoolsFailoverAddrPool["AddrCount"].asString());
+		if(!valueFailoverAddrPoolsFailoverAddrPool["LbaWeight"].isNull())
+			failoverAddrPoolsObject.lbaWeight = std::stoi(valueFailoverAddrPoolsFailoverAddrPool["LbaWeight"].asString());
+		failoverAddrPools_.push_back(failoverAddrPoolsObject);
+	}
+	if(!value["StrategyId"].isNull())
+		strategyId_ = value["StrategyId"].asString();
+	if(!value["StrategyName"].isNull())
+		strategyName_ = value["StrategyName"].asString();
+	if(!value["StrategyMode"].isNull())
+		strategyMode_ = value["StrategyMode"].asString();
+	if(!value["InstanceId"].isNull())
+		instanceId_ = value["InstanceId"].asString();
+	if(!value["DefaultAddrPoolType"].isNull())
+		defaultAddrPoolType_ = value["DefaultAddrPoolType"].asString();
+	if(!value["DefaultLbaStrategy"].isNull())
+		defaultLbaStrategy_ = value["DefaultLbaStrategy"].asString();
+	if(!value["DefaultMinAvailableAddrNum"].isNull())
+		defaultMinAvailableAddrNum_ = std::stoi(value["DefaultMinAvailableAddrNum"].asString());
+	if(!value["DefaultMaxReturnAddrNum"].isNull())
+		defaultMaxReturnAddrNum_ = std::stoi(value["DefaultMaxReturnAddrNum"].asString());
+	if(!value["DefaultLatencyOptimization"].isNull())
+		defaultLatencyOptimization_ = value["DefaultLatencyOptimization"].asString();
+	if(!value["DefaultAddrPoolGroupStatus"].isNull())
+		defaultAddrPoolGroupStatus_ = value["DefaultAddrPoolGroupStatus"].asString();
+	if(!value["FailoverAddrPoolType"].isNull())
+		failoverAddrPoolType_ = value["FailoverAddrPoolType"].asString();
+	if(!value["FailoverLbaStrategy"].isNull())
+		failoverLbaStrategy_ = value["FailoverLbaStrategy"].asString();
+	if(!value["FailoverMinAvailableAddrNum"].isNull())
+		failoverMinAvailableAddrNum_ = std::stoi(value["FailoverMinAvailableAddrNum"].asString());
+	if(!value["FailoverMaxReturnAddrNum"].isNull())
+		failoverMaxReturnAddrNum_ = std::stoi(value["FailoverMaxReturnAddrNum"].asString());
+	if(!value["FailoverLatencyOptimization"].isNull())
+		failoverLatencyOptimization_ = value["FailoverLatencyOptimization"].asString();
+	if(!value["FailoverAddrPoolGroupStatus"].isNull())
+		failoverAddrPoolGroupStatus_ = value["FailoverAddrPoolGroupStatus"].asString();
+	if(!value["AccessMode"].isNull())
+		accessMode_ = value["AccessMode"].asString();
+	if(!value["EffectiveAddrPoolGroupType"].isNull())
+		effectiveAddrPoolGroupType_ = value["EffectiveAddrPoolGroupType"].asString();
+	if(!value["CreateTime"].isNull())
+		createTime_ = value["CreateTime"].asString();
+	if(!value["CreateTimestamp"].isNull())
+		createTimestamp_ = std::stol(value["CreateTimestamp"].asString());
+	if(!value["DefaultAvailableAddrNum"].isNull())
+		defaultAvailableAddrNum_ = std::stoi(value["DefaultAvailableAddrNum"].asString());
+	if(!value["FailoverAvailableAddrNum"].isNull())
+		failoverAvailableAddrNum_ = std::stoi(value["FailoverAvailableAddrNum"].asString());
+
+}
+
+int DescribeDnsGtmAccessStrategyResult::getFailoverMinAvailableAddrNum()const
+{
+	return failoverMinAvailableAddrNum_;
+}
+
+std::string DescribeDnsGtmAccessStrategyResult::getDefaultAddrPoolType()const
+{
+	return defaultAddrPoolType_;
+}
+
+std::string DescribeDnsGtmAccessStrategyResult::getStrategyId()const
+{
+	return strategyId_;
+}
+
+std::string DescribeDnsGtmAccessStrategyResult::getFailoverAddrPoolGroupStatus()const
+{
+	return failoverAddrPoolGroupStatus_;
+}
+
+int DescribeDnsGtmAccessStrategyResult::getDefaultAvailableAddrNum()const
+{
+	return defaultAvailableAddrNum_;
+}
+
+int DescribeDnsGtmAccessStrategyResult::getFailoverAvailableAddrNum()const
+{
+	return failoverAvailableAddrNum_;
+}
+
+std::string DescribeDnsGtmAccessStrategyResult::getFailoverLbaStrategy()const
+{
+	return failoverLbaStrategy_;
+}
+
+int DescribeDnsGtmAccessStrategyResult::getDefaultMaxReturnAddrNum()const
+{
+	return defaultMaxReturnAddrNum_;
+}
+
+std::string DescribeDnsGtmAccessStrategyResult::getStrategyMode()const
+{
+	return strategyMode_;
+}
+
+long DescribeDnsGtmAccessStrategyResult::getCreateTimestamp()const
+{
+	return createTimestamp_;
+}
+
+std::string DescribeDnsGtmAccessStrategyResult::getDefaultLbaStrategy()const
+{
+	return defaultLbaStrategy_;
+}
+
+std::string DescribeDnsGtmAccessStrategyResult::getDefaultAddrPoolGroupStatus()const
+{
+	return defaultAddrPoolGroupStatus_;
+}
+
+std::string DescribeDnsGtmAccessStrategyResult::getFailoverAddrPoolType()const
+{
+	return failoverAddrPoolType_;
+}
+
+std::vector<DescribeDnsGtmAccessStrategyResult::FailoverAddrPool> DescribeDnsGtmAccessStrategyResult::getFailoverAddrPools()const
+{
+	return failoverAddrPools_;
+}
+
+std::string DescribeDnsGtmAccessStrategyResult::getInstanceId()const
+{
+	return instanceId_;
+}
+
+std::string DescribeDnsGtmAccessStrategyResult::getDefaultLatencyOptimization()const
+{
+	return defaultLatencyOptimization_;
+}
+
+std::string DescribeDnsGtmAccessStrategyResult::getEffectiveAddrPoolGroupType()const
+{
+	return effectiveAddrPoolGroupType_;
+}
+
+std::string DescribeDnsGtmAccessStrategyResult::getCreateTime()const
+{
+	return createTime_;
+}
+
+std::vector<DescribeDnsGtmAccessStrategyResult::DefaultAddrPool> DescribeDnsGtmAccessStrategyResult::getDefaultAddrPools()const
+{
+	return defaultAddrPools_;
+}
+
+int DescribeDnsGtmAccessStrategyResult::getDefaultMinAvailableAddrNum()const
+{
+	return defaultMinAvailableAddrNum_;
+}
+
+std::string DescribeDnsGtmAccessStrategyResult::getFailoverLatencyOptimization()const
+{
+	return failoverLatencyOptimization_;
+}
+
+std::string DescribeDnsGtmAccessStrategyResult::getStrategyName()const
+{
+	return strategyName_;
+}
+
+int DescribeDnsGtmAccessStrategyResult::getFailoverMaxReturnAddrNum()const
+{
+	return failoverMaxReturnAddrNum_;
+}
+
+std::string DescribeDnsGtmAccessStrategyResult::getAccessMode()const
+{
+	return accessMode_;
+}
+
+std::vector<DescribeDnsGtmAccessStrategyResult::Line> DescribeDnsGtmAccessStrategyResult::getLines()const
+{
+	return lines_;
+}
+

+ 73 - 0
alidns/src/model/DescribeDnsGtmAddrAttributeInfoRequest.cc

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

+ 68 - 0
alidns/src/model/DescribeDnsGtmAddrAttributeInfoResult.cc

@@ -0,0 +1,68 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/alidns/model/DescribeDnsGtmAddrAttributeInfoResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+DescribeDnsGtmAddrAttributeInfoResult::DescribeDnsGtmAddrAttributeInfoResult() :
+	ServiceResult()
+{}
+
+DescribeDnsGtmAddrAttributeInfoResult::DescribeDnsGtmAddrAttributeInfoResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDnsGtmAddrAttributeInfoResult::~DescribeDnsGtmAddrAttributeInfoResult()
+{}
+
+void DescribeDnsGtmAddrAttributeInfoResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allAddrNode = value["Addr"]["AddrItem"];
+	for (auto valueAddrAddrItem : allAddrNode)
+	{
+		AddrItem addrObject;
+		if(!valueAddrAddrItem["Addr"].isNull())
+			addrObject.addr = valueAddrAddrItem["Addr"].asString();
+		auto attributeInfoNode = value["AttributeInfo"];
+		if(!attributeInfoNode["LineCode"].isNull())
+			addrObject.attributeInfo.lineCode = attributeInfoNode["LineCode"].asString();
+		if(!attributeInfoNode["LineName"].isNull())
+			addrObject.attributeInfo.lineName = attributeInfoNode["LineName"].asString();
+		if(!attributeInfoNode["GroupCode"].isNull())
+			addrObject.attributeInfo.groupCode = attributeInfoNode["GroupCode"].asString();
+		if(!attributeInfoNode["GroupName"].isNull())
+			addrObject.attributeInfo.groupName = attributeInfoNode["GroupName"].asString();
+		if(!attributeInfoNode["FatherCode"].isNull())
+			addrObject.attributeInfo.fatherCode = attributeInfoNode["FatherCode"].asString();
+		addr_.push_back(addrObject);
+	}
+
+}
+
+std::vector<DescribeDnsGtmAddrAttributeInfoResult::AddrItem> DescribeDnsGtmAddrAttributeInfoResult::getAddr()const
+{
+	return addr_;
+}
+

+ 62 - 0
alidns/src/model/DescribeDnsGtmAddressPoolAvailableConfigRequest.cc

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

+ 65 - 0
alidns/src/model/DescribeDnsGtmAddressPoolAvailableConfigResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/alidns/model/DescribeDnsGtmAddressPoolAvailableConfigResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+DescribeDnsGtmAddressPoolAvailableConfigResult::DescribeDnsGtmAddressPoolAvailableConfigResult() :
+	ServiceResult()
+{}
+
+DescribeDnsGtmAddressPoolAvailableConfigResult::DescribeDnsGtmAddressPoolAvailableConfigResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDnsGtmAddressPoolAvailableConfigResult::~DescribeDnsGtmAddressPoolAvailableConfigResult()
+{}
+
+void DescribeDnsGtmAddressPoolAvailableConfigResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allAttributeInfosNode = value["AttributeInfos"]["AttributeInfo"];
+	for (auto valueAttributeInfosAttributeInfo : allAttributeInfosNode)
+	{
+		AttributeInfo attributeInfosObject;
+		if(!valueAttributeInfosAttributeInfo["LineCode"].isNull())
+			attributeInfosObject.lineCode = valueAttributeInfosAttributeInfo["LineCode"].asString();
+		if(!valueAttributeInfosAttributeInfo["LineName"].isNull())
+			attributeInfosObject.lineName = valueAttributeInfosAttributeInfo["LineName"].asString();
+		if(!valueAttributeInfosAttributeInfo["GroupCode"].isNull())
+			attributeInfosObject.groupCode = valueAttributeInfosAttributeInfo["GroupCode"].asString();
+		if(!valueAttributeInfosAttributeInfo["GroupName"].isNull())
+			attributeInfosObject.groupName = valueAttributeInfosAttributeInfo["GroupName"].asString();
+		if(!valueAttributeInfosAttributeInfo["FatherCode"].isNull())
+			attributeInfosObject.fatherCode = valueAttributeInfosAttributeInfo["FatherCode"].asString();
+		attributeInfos_.push_back(attributeInfosObject);
+	}
+
+}
+
+std::vector<DescribeDnsGtmAddressPoolAvailableConfigResult::AttributeInfo> DescribeDnsGtmAddressPoolAvailableConfigResult::getAttributeInfos()const
+{
+	return attributeInfos_;
+}
+

+ 51 - 0
alidns/src/model/DescribeDnsGtmAvailableAlertGroupRequest.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/alidns/model/DescribeDnsGtmAvailableAlertGroupRequest.h>
+
+using AlibabaCloud::Alidns::Model::DescribeDnsGtmAvailableAlertGroupRequest;
+
+DescribeDnsGtmAvailableAlertGroupRequest::DescribeDnsGtmAvailableAlertGroupRequest() :
+	RpcServiceRequest("alidns", "2015-01-09", "DescribeDnsGtmAvailableAlertGroup")
+{
+	setMethod(HttpRequest::Method::Post);
+}
+
+DescribeDnsGtmAvailableAlertGroupRequest::~DescribeDnsGtmAvailableAlertGroupRequest()
+{}
+
+std::string DescribeDnsGtmAvailableAlertGroupRequest::getUserClientIp()const
+{
+	return userClientIp_;
+}
+
+void DescribeDnsGtmAvailableAlertGroupRequest::setUserClientIp(const std::string& userClientIp)
+{
+	userClientIp_ = userClientIp;
+	setParameter("UserClientIp", userClientIp);
+}
+
+std::string DescribeDnsGtmAvailableAlertGroupRequest::getLang()const
+{
+	return lang_;
+}
+
+void DescribeDnsGtmAvailableAlertGroupRequest::setLang(const std::string& lang)
+{
+	lang_ = lang;
+	setParameter("Lang", lang);
+}
+

+ 51 - 0
alidns/src/model/DescribeDnsGtmAvailableAlertGroupResult.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/alidns/model/DescribeDnsGtmAvailableAlertGroupResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+DescribeDnsGtmAvailableAlertGroupResult::DescribeDnsGtmAvailableAlertGroupResult() :
+	ServiceResult()
+{}
+
+DescribeDnsGtmAvailableAlertGroupResult::DescribeDnsGtmAvailableAlertGroupResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDnsGtmAvailableAlertGroupResult::~DescribeDnsGtmAvailableAlertGroupResult()
+{}
+
+void DescribeDnsGtmAvailableAlertGroupResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	if(!value["AvailableAlertGroup"].isNull())
+		availableAlertGroup_ = value["AvailableAlertGroup"].asString();
+
+}
+
+std::string DescribeDnsGtmAvailableAlertGroupResult::getAvailableAlertGroup()const
+{
+	return availableAlertGroup_;
+}
+

+ 62 - 0
alidns/src/model/DescribeDnsGtmInstanceAddressPoolRequest.cc

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

+ 152 - 0
alidns/src/model/DescribeDnsGtmInstanceAddressPoolResult.cc

@@ -0,0 +1,152 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/alidns/model/DescribeDnsGtmInstanceAddressPoolResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+DescribeDnsGtmInstanceAddressPoolResult::DescribeDnsGtmInstanceAddressPoolResult() :
+	ServiceResult()
+{}
+
+DescribeDnsGtmInstanceAddressPoolResult::DescribeDnsGtmInstanceAddressPoolResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDnsGtmInstanceAddressPoolResult::~DescribeDnsGtmInstanceAddressPoolResult()
+{}
+
+void DescribeDnsGtmInstanceAddressPoolResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allAddrsNode = value["Addrs"]["Addr"];
+	for (auto valueAddrsAddr : allAddrsNode)
+	{
+		Addr addrsObject;
+		if(!valueAddrsAddr["CreateTime"].isNull())
+			addrsObject.createTime = valueAddrsAddr["CreateTime"].asString();
+		if(!valueAddrsAddr["CreateTimestamp"].isNull())
+			addrsObject.createTimestamp = std::stol(valueAddrsAddr["CreateTimestamp"].asString());
+		if(!valueAddrsAddr["UpdateTime"].isNull())
+			addrsObject.updateTime = valueAddrsAddr["UpdateTime"].asString();
+		if(!valueAddrsAddr["UpdateTimestamp"].isNull())
+			addrsObject.updateTimestamp = std::stol(valueAddrsAddr["UpdateTimestamp"].asString());
+		if(!valueAddrsAddr["Addr"].isNull())
+			addrsObject.addr = valueAddrsAddr["Addr"].asString();
+		if(!valueAddrsAddr["LbaWeight"].isNull())
+			addrsObject.lbaWeight = std::stoi(valueAddrsAddr["LbaWeight"].asString());
+		if(!valueAddrsAddr["Mode"].isNull())
+			addrsObject.mode = valueAddrsAddr["Mode"].asString();
+		if(!valueAddrsAddr["AlertStatus"].isNull())
+			addrsObject.alertStatus = valueAddrsAddr["AlertStatus"].asString();
+		if(!valueAddrsAddr["Remark"].isNull())
+			addrsObject.remark = valueAddrsAddr["Remark"].asString();
+		if(!valueAddrsAddr["AttributeInfo"].isNull())
+			addrsObject.attributeInfo = valueAddrsAddr["AttributeInfo"].asString();
+		addrs_.push_back(addrsObject);
+	}
+	if(!value["AddrPoolId"].isNull())
+		addrPoolId_ = value["AddrPoolId"].asString();
+	if(!value["CreateTime"].isNull())
+		createTime_ = value["CreateTime"].asString();
+	if(!value["CreateTimestamp"].isNull())
+		createTimestamp_ = std::stol(value["CreateTimestamp"].asString());
+	if(!value["UpdateTime"].isNull())
+		updateTime_ = value["UpdateTime"].asString();
+	if(!value["UpdateTimestamp"].isNull())
+		updateTimestamp_ = std::stol(value["UpdateTimestamp"].asString());
+	if(!value["AddrCount"].isNull())
+		addrCount_ = std::stoi(value["AddrCount"].asString());
+	if(!value["MonitorConfigId"].isNull())
+		monitorConfigId_ = value["MonitorConfigId"].asString();
+	if(!value["MonitorStatus"].isNull())
+		monitorStatus_ = value["MonitorStatus"].asString();
+	if(!value["Name"].isNull())
+		name_ = value["Name"].asString();
+	if(!value["Type"].isNull())
+		type_ = value["Type"].asString();
+	if(!value["LbaStrategy"].isNull())
+		lbaStrategy_ = value["LbaStrategy"].asString();
+
+}
+
+std::vector<DescribeDnsGtmInstanceAddressPoolResult::Addr> DescribeDnsGtmInstanceAddressPoolResult::getAddrs()const
+{
+	return addrs_;
+}
+
+std::string DescribeDnsGtmInstanceAddressPoolResult::getType()const
+{
+	return type_;
+}
+
+std::string DescribeDnsGtmInstanceAddressPoolResult::getLbaStrategy()const
+{
+	return lbaStrategy_;
+}
+
+std::string DescribeDnsGtmInstanceAddressPoolResult::getCreateTime()const
+{
+	return createTime_;
+}
+
+std::string DescribeDnsGtmInstanceAddressPoolResult::getAddrPoolId()const
+{
+	return addrPoolId_;
+}
+
+std::string DescribeDnsGtmInstanceAddressPoolResult::getUpdateTime()const
+{
+	return updateTime_;
+}
+
+long DescribeDnsGtmInstanceAddressPoolResult::getUpdateTimestamp()const
+{
+	return updateTimestamp_;
+}
+
+std::string DescribeDnsGtmInstanceAddressPoolResult::getMonitorConfigId()const
+{
+	return monitorConfigId_;
+}
+
+long DescribeDnsGtmInstanceAddressPoolResult::getCreateTimestamp()const
+{
+	return createTimestamp_;
+}
+
+std::string DescribeDnsGtmInstanceAddressPoolResult::getMonitorStatus()const
+{
+	return monitorStatus_;
+}
+
+int DescribeDnsGtmInstanceAddressPoolResult::getAddrCount()const
+{
+	return addrCount_;
+}
+
+std::string DescribeDnsGtmInstanceAddressPoolResult::getName()const
+{
+	return name_;
+}
+

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

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

+ 105 - 0
alidns/src/model/DescribeDnsGtmInstanceAddressPoolsResult.cc

@@ -0,0 +1,105 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/alidns/model/DescribeDnsGtmInstanceAddressPoolsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+DescribeDnsGtmInstanceAddressPoolsResult::DescribeDnsGtmInstanceAddressPoolsResult() :
+	ServiceResult()
+{}
+
+DescribeDnsGtmInstanceAddressPoolsResult::DescribeDnsGtmInstanceAddressPoolsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDnsGtmInstanceAddressPoolsResult::~DescribeDnsGtmInstanceAddressPoolsResult()
+{}
+
+void DescribeDnsGtmInstanceAddressPoolsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allAddrPoolsNode = value["AddrPools"]["AddrPool"];
+	for (auto valueAddrPoolsAddrPool : allAddrPoolsNode)
+	{
+		AddrPool addrPoolsObject;
+		if(!valueAddrPoolsAddrPool["AddrPoolId"].isNull())
+			addrPoolsObject.addrPoolId = valueAddrPoolsAddrPool["AddrPoolId"].asString();
+		if(!valueAddrPoolsAddrPool["CreateTime"].isNull())
+			addrPoolsObject.createTime = valueAddrPoolsAddrPool["CreateTime"].asString();
+		if(!valueAddrPoolsAddrPool["CreateTimestamp"].isNull())
+			addrPoolsObject.createTimestamp = std::stol(valueAddrPoolsAddrPool["CreateTimestamp"].asString());
+		if(!valueAddrPoolsAddrPool["UpdateTime"].isNull())
+			addrPoolsObject.updateTime = valueAddrPoolsAddrPool["UpdateTime"].asString();
+		if(!valueAddrPoolsAddrPool["UpdateTimestamp"].isNull())
+			addrPoolsObject.updateTimestamp = std::stol(valueAddrPoolsAddrPool["UpdateTimestamp"].asString());
+		if(!valueAddrPoolsAddrPool["AddrCount"].isNull())
+			addrPoolsObject.addrCount = std::stoi(valueAddrPoolsAddrPool["AddrCount"].asString());
+		if(!valueAddrPoolsAddrPool["MonitorConfigId"].isNull())
+			addrPoolsObject.monitorConfigId = valueAddrPoolsAddrPool["MonitorConfigId"].asString();
+		if(!valueAddrPoolsAddrPool["MonitorStatus"].isNull())
+			addrPoolsObject.monitorStatus = valueAddrPoolsAddrPool["MonitorStatus"].asString();
+		if(!valueAddrPoolsAddrPool["Name"].isNull())
+			addrPoolsObject.name = valueAddrPoolsAddrPool["Name"].asString();
+		if(!valueAddrPoolsAddrPool["Type"].isNull())
+			addrPoolsObject.type = valueAddrPoolsAddrPool["Type"].asString();
+		if(!valueAddrPoolsAddrPool["LbaStrategy"].isNull())
+			addrPoolsObject.lbaStrategy = valueAddrPoolsAddrPool["LbaStrategy"].asString();
+		addrPools_.push_back(addrPoolsObject);
+	}
+	if(!value["TotalItems"].isNull())
+		totalItems_ = std::stoi(value["TotalItems"].asString());
+	if(!value["TotalPages"].isNull())
+		totalPages_ = std::stoi(value["TotalPages"].asString());
+	if(!value["PageNumber"].isNull())
+		pageNumber_ = std::stoi(value["PageNumber"].asString());
+	if(!value["PageSize"].isNull())
+		pageSize_ = std::stoi(value["PageSize"].asString());
+
+}
+
+int DescribeDnsGtmInstanceAddressPoolsResult::getPageSize()const
+{
+	return pageSize_;
+}
+
+int DescribeDnsGtmInstanceAddressPoolsResult::getPageNumber()const
+{
+	return pageNumber_;
+}
+
+int DescribeDnsGtmInstanceAddressPoolsResult::getTotalPages()const
+{
+	return totalPages_;
+}
+
+int DescribeDnsGtmInstanceAddressPoolsResult::getTotalItems()const
+{
+	return totalItems_;
+}
+
+std::vector<DescribeDnsGtmInstanceAddressPoolsResult::AddrPool> DescribeDnsGtmInstanceAddressPoolsResult::getAddrPools()const
+{
+	return addrPools_;
+}
+

+ 62 - 0
alidns/src/model/DescribeDnsGtmInstanceRequest.cc

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

+ 160 - 0
alidns/src/model/DescribeDnsGtmInstanceResult.cc

@@ -0,0 +1,160 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/alidns/model/DescribeDnsGtmInstanceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Alidns;
+using namespace AlibabaCloud::Alidns::Model;
+
+DescribeDnsGtmInstanceResult::DescribeDnsGtmInstanceResult() :
+	ServiceResult()
+{}
+
+DescribeDnsGtmInstanceResult::DescribeDnsGtmInstanceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+DescribeDnsGtmInstanceResult::~DescribeDnsGtmInstanceResult()
+{}
+
+void DescribeDnsGtmInstanceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto configNode = value["Config"];
+	if(!configNode["InstanceName"].isNull())
+		config_.instanceName = configNode["InstanceName"].asString();
+	if(!configNode["CnameType"].isNull())
+		config_.cnameType = configNode["CnameType"].asString();
+	if(!configNode["PublicUserDomainName"].isNull())
+		config_.publicUserDomainName = configNode["PublicUserDomainName"].asString();
+	if(!configNode["PublicCnameMode"].isNull())
+		config_.publicCnameMode = configNode["PublicCnameMode"].asString();
+	if(!configNode["PubicZoneName"].isNull())
+		config_.pubicZoneName = configNode["PubicZoneName"].asString();
+	if(!configNode["Ttl"].isNull())
+		config_.ttl = std::stoi(configNode["Ttl"].asString());
+	if(!configNode["StrategyMode"].isNull())
+		config_.strategyMode = configNode["StrategyMode"].asString();
+	if(!configNode["AlertGroup"].isNull())
+		config_.alertGroup = configNode["AlertGroup"].asString();
+	auto allAlertConfigNode = configNode["AlertConfig"]["AlertConfigItem"];
+	for (auto configNodeAlertConfigAlertConfigItem : allAlertConfigNode)
+	{
+		Config::AlertConfigItem alertConfigItemObject;
+		if(!configNodeAlertConfigAlertConfigItem["NoticeType"].isNull())
+			alertConfigItemObject.noticeType = configNodeAlertConfigAlertConfigItem["NoticeType"].asString();
+		if(!configNodeAlertConfigAlertConfigItem["SmsNotice"].isNull())
+			alertConfigItemObject.smsNotice = configNodeAlertConfigAlertConfigItem["SmsNotice"].asString() == "true";
+		if(!configNodeAlertConfigAlertConfigItem["EmailNotice"].isNull())
+			alertConfigItemObject.emailNotice = configNodeAlertConfigAlertConfigItem["EmailNotice"].asString() == "true";
+		config_.alertConfig.push_back(alertConfigItemObject);
+	}
+	auto usedQuotaNode = value["UsedQuota"];
+	if(!usedQuotaNode["TaskUsedCount"].isNull())
+		usedQuota_.taskUsedCount = std::stoi(usedQuotaNode["TaskUsedCount"].asString());
+	if(!usedQuotaNode["SmsUsedCount"].isNull())
+		usedQuota_.smsUsedCount = std::stoi(usedQuotaNode["SmsUsedCount"].asString());
+	if(!usedQuotaNode["EmailUsedCount"].isNull())
+		usedQuota_.emailUsedCount = std::stoi(usedQuotaNode["EmailUsedCount"].asString());
+	if(!value["InstanceId"].isNull())
+		instanceId_ = value["InstanceId"].asString();
+	if(!value["VersionCode"].isNull())
+		versionCode_ = value["VersionCode"].asString();
+	if(!value["SmsQuota"].isNull())
+		smsQuota_ = std::stoi(value["SmsQuota"].asString());
+	if(!value["TaskQuota"].isNull())
+		taskQuota_ = std::stoi(value["TaskQuota"].asString());
+	if(!value["CreateTime"].isNull())
+		createTime_ = value["CreateTime"].asString();
+	if(!value["CreateTimestamp"].isNull())
+		createTimestamp_ = std::stol(value["CreateTimestamp"].asString());
+	if(!value["ExpireTime"].isNull())
+		expireTime_ = value["ExpireTime"].asString();
+	if(!value["ExpireTimestamp"].isNull())
+		expireTimestamp_ = std::stol(value["ExpireTimestamp"].asString());
+	if(!value["ResourceGroupId"].isNull())
+		resourceGroupId_ = value["ResourceGroupId"].asString();
+	if(!value["PaymentType"].isNull())
+		paymentType_ = value["PaymentType"].asString();
+
+}
+
+std::string DescribeDnsGtmInstanceResult::getVersionCode()const
+{
+	return versionCode_;
+}
+
+long DescribeDnsGtmInstanceResult::getExpireTimestamp()const
+{
+	return expireTimestamp_;
+}
+
+std::string DescribeDnsGtmInstanceResult::getResourceGroupId()const
+{
+	return resourceGroupId_;
+}
+
+std::string DescribeDnsGtmInstanceResult::getInstanceId()const
+{
+	return instanceId_;
+}
+
+DescribeDnsGtmInstanceResult::Config DescribeDnsGtmInstanceResult::getConfig()const
+{
+	return config_;
+}
+
+int DescribeDnsGtmInstanceResult::getTaskQuota()const
+{
+	return taskQuota_;
+}
+
+std::string DescribeDnsGtmInstanceResult::getCreateTime()const
+{
+	return createTime_;
+}
+
+std::string DescribeDnsGtmInstanceResult::getPaymentType()const
+{
+	return paymentType_;
+}
+
+std::string DescribeDnsGtmInstanceResult::getExpireTime()const
+{
+	return expireTime_;
+}
+
+DescribeDnsGtmInstanceResult::UsedQuota DescribeDnsGtmInstanceResult::getUsedQuota()const
+{
+	return usedQuota_;
+}
+
+int DescribeDnsGtmInstanceResult::getSmsQuota()const
+{
+	return smsQuota_;
+}
+
+long DescribeDnsGtmInstanceResult::getCreateTimestamp()const
+{
+	return createTimestamp_;
+}
+

部分文件因文件數量過多而無法顯示