ソースを参照

Support remediation.

sdk-team 4 年 前
コミット
d5af7a4c61
63 ファイル変更4021 行追加1 行削除
  1. 3 0
      CHANGELOG
  2. 1 1
      VERSION
  3. 56 0
      config/CMakeLists.txt
  4. 112 0
      config/include/alibabacloud/config/ConfigClient.h
  5. 63 0
      config/include/alibabacloud/config/model/CreateAggregateRemediationRequest.h
  6. 51 0
      config/include/alibabacloud/config/model/CreateAggregateRemediationResult.h
  7. 60 0
      config/include/alibabacloud/config/model/CreateRemediationRequest.h
  8. 51 0
      config/include/alibabacloud/config/model/CreateRemediationResult.h
  9. 45 0
      config/include/alibabacloud/config/model/DeleteAggregateRemediationsRequest.h
  10. 57 0
      config/include/alibabacloud/config/model/DeleteAggregateRemediationsResult.h
  11. 42 0
      config/include/alibabacloud/config/model/DeleteRemediationsRequest.h
  12. 57 0
      config/include/alibabacloud/config/model/DeleteRemediationsResult.h
  13. 54 0
      config/include/alibabacloud/config/model/GetAggregateDiscoveredResourceRequest.h
  14. 65 0
      config/include/alibabacloud/config/model/GetAggregateDiscoveredResourceResult.h
  15. 3 0
      config/include/alibabacloud/config/model/GetAggregateResourceComplianceByConfigRuleRequest.h
  16. 48 0
      config/include/alibabacloud/config/model/GetDiscoveredResourceRequest.h
  17. 65 0
      config/include/alibabacloud/config/model/GetDiscoveredResourceResult.h
  18. 66 0
      config/include/alibabacloud/config/model/ListAggregateDiscoveredResourcesRequest.h
  19. 71 0
      config/include/alibabacloud/config/model/ListAggregateDiscoveredResourcesResult.h
  20. 45 0
      config/include/alibabacloud/config/model/ListAggregateRemediationsRequest.h
  21. 66 0
      config/include/alibabacloud/config/model/ListAggregateRemediationsResult.h
  22. 57 0
      config/include/alibabacloud/config/model/ListDiscoveredResourcesRequest.h
  23. 70 0
      config/include/alibabacloud/config/model/ListDiscoveredResourcesResult.h
  24. 45 0
      config/include/alibabacloud/config/model/ListRemediationTemplatesRequest.h
  25. 59 0
      config/include/alibabacloud/config/model/ListRemediationTemplatesResult.h
  26. 42 0
      config/include/alibabacloud/config/model/ListRemediationsRequest.h
  27. 66 0
      config/include/alibabacloud/config/model/ListRemediationsResult.h
  28. 45 0
      config/include/alibabacloud/config/model/StartAggregateRemediationRequest.h
  29. 51 0
      config/include/alibabacloud/config/model/StartAggregateRemediationResult.h
  30. 42 0
      config/include/alibabacloud/config/model/StartRemediationRequest.h
  31. 51 0
      config/include/alibabacloud/config/model/StartRemediationResult.h
  32. 60 0
      config/include/alibabacloud/config/model/UpdateAggregateRemediationRequest.h
  33. 51 0
      config/include/alibabacloud/config/model/UpdateAggregateRemediationResult.h
  34. 504 0
      config/src/ConfigClient.cc
  35. 99 0
      config/src/model/CreateAggregateRemediationRequest.cc
  36. 51 0
      config/src/model/CreateAggregateRemediationResult.cc
  37. 90 0
      config/src/model/CreateRemediationRequest.cc
  38. 51 0
      config/src/model/CreateRemediationResult.cc
  39. 45 0
      config/src/model/DeleteAggregateRemediationsRequest.cc
  40. 61 0
      config/src/model/DeleteAggregateRemediationsResult.cc
  41. 36 0
      config/src/model/DeleteRemediationsRequest.cc
  42. 61 0
      config/src/model/DeleteRemediationsResult.cc
  43. 72 0
      config/src/model/GetAggregateDiscoveredResourceRequest.cc
  44. 72 0
      config/src/model/GetAggregateDiscoveredResourceResult.cc
  45. 9 0
      config/src/model/GetAggregateResourceComplianceByConfigRuleRequest.cc
  46. 54 0
      config/src/model/GetDiscoveredResourceRequest.cc
  47. 72 0
      config/src/model/GetDiscoveredResourceResult.cc
  48. 108 0
      config/src/model/ListAggregateDiscoveredResourcesRequest.cc
  49. 82 0
      config/src/model/ListAggregateDiscoveredResourcesResult.cc
  50. 45 0
      config/src/model/ListAggregateRemediationsRequest.cc
  51. 79 0
      config/src/model/ListAggregateRemediationsResult.cc
  52. 81 0
      config/src/model/ListDiscoveredResourcesRequest.cc
  53. 80 0
      config/src/model/ListDiscoveredResourcesResult.cc
  54. 45 0
      config/src/model/ListRemediationTemplatesRequest.cc
  55. 65 0
      config/src/model/ListRemediationTemplatesResult.cc
  56. 36 0
      config/src/model/ListRemediationsRequest.cc
  57. 79 0
      config/src/model/ListRemediationsResult.cc
  58. 45 0
      config/src/model/StartAggregateRemediationRequest.cc
  59. 51 0
      config/src/model/StartAggregateRemediationResult.cc
  60. 36 0
      config/src/model/StartRemediationRequest.cc
  61. 51 0
      config/src/model/StartRemediationResult.cc
  62. 90 0
      config/src/model/UpdateAggregateRemediationRequest.cc
  63. 51 0
      config/src/model/UpdateAggregateRemediationResult.cc

+ 3 - 0
CHANGELOG

@@ -1,3 +1,6 @@
+2022-02-23 Version: 1.36.1065
+- Support remediation.
+
 2022-02-22 Version: 1.36.1064
 - Deprecated the OnsTopicUpdate api, and will be offline soon.
 

+ 1 - 1
VERSION

@@ -1 +1 @@
-1.36.1064
+1.36.1065

+ 56 - 0
config/CMakeLists.txt

@@ -31,12 +31,16 @@ set(config_public_header_model
 	include/alibabacloud/config/model/CreateAggregateCompliancePackResult.h
 	include/alibabacloud/config/model/CreateAggregateConfigRuleRequest.h
 	include/alibabacloud/config/model/CreateAggregateConfigRuleResult.h
+	include/alibabacloud/config/model/CreateAggregateRemediationRequest.h
+	include/alibabacloud/config/model/CreateAggregateRemediationResult.h
 	include/alibabacloud/config/model/CreateAggregatorRequest.h
 	include/alibabacloud/config/model/CreateAggregatorResult.h
 	include/alibabacloud/config/model/CreateCompliancePackRequest.h
 	include/alibabacloud/config/model/CreateCompliancePackResult.h
 	include/alibabacloud/config/model/CreateConfigRuleRequest.h
 	include/alibabacloud/config/model/CreateConfigRuleResult.h
+	include/alibabacloud/config/model/CreateRemediationRequest.h
+	include/alibabacloud/config/model/CreateRemediationResult.h
 	include/alibabacloud/config/model/DeactiveAggregateConfigRulesRequest.h
 	include/alibabacloud/config/model/DeactiveAggregateConfigRulesResult.h
 	include/alibabacloud/config/model/DeactiveConfigRulesRequest.h
@@ -45,10 +49,14 @@ set(config_public_header_model
 	include/alibabacloud/config/model/DeleteAggregateCompliancePacksResult.h
 	include/alibabacloud/config/model/DeleteAggregateConfigRulesRequest.h
 	include/alibabacloud/config/model/DeleteAggregateConfigRulesResult.h
+	include/alibabacloud/config/model/DeleteAggregateRemediationsRequest.h
+	include/alibabacloud/config/model/DeleteAggregateRemediationsResult.h
 	include/alibabacloud/config/model/DeleteAggregatorsRequest.h
 	include/alibabacloud/config/model/DeleteAggregatorsResult.h
 	include/alibabacloud/config/model/DeleteCompliancePacksRequest.h
 	include/alibabacloud/config/model/DeleteCompliancePacksResult.h
+	include/alibabacloud/config/model/DeleteRemediationsRequest.h
+	include/alibabacloud/config/model/DeleteRemediationsResult.h
 	include/alibabacloud/config/model/DetachAggregateConfigRuleToCompliancePackRequest.h
 	include/alibabacloud/config/model/DetachAggregateConfigRuleToCompliancePackResult.h
 	include/alibabacloud/config/model/DetachConfigRuleToCompliancePackRequest.h
@@ -75,6 +83,8 @@ set(config_public_header_model
 	include/alibabacloud/config/model/GetAggregateConfigRuleSummaryByRiskLevelResult.h
 	include/alibabacloud/config/model/GetAggregateConfigRulesReportRequest.h
 	include/alibabacloud/config/model/GetAggregateConfigRulesReportResult.h
+	include/alibabacloud/config/model/GetAggregateDiscoveredResourceRequest.h
+	include/alibabacloud/config/model/GetAggregateDiscoveredResourceResult.h
 	include/alibabacloud/config/model/GetAggregateResourceComplianceByConfigRuleRequest.h
 	include/alibabacloud/config/model/GetAggregateResourceComplianceByConfigRuleResult.h
 	include/alibabacloud/config/model/GetAggregateResourceComplianceByPackRequest.h
@@ -105,6 +115,8 @@ set(config_public_header_model
 	include/alibabacloud/config/model/GetConfigRuleSummaryByRiskLevelResult.h
 	include/alibabacloud/config/model/GetConfigRulesReportRequest.h
 	include/alibabacloud/config/model/GetConfigRulesReportResult.h
+	include/alibabacloud/config/model/GetDiscoveredResourceRequest.h
+	include/alibabacloud/config/model/GetDiscoveredResourceResult.h
 	include/alibabacloud/config/model/GetDiscoveredResourceCountsGroupByRegionRequest.h
 	include/alibabacloud/config/model/GetDiscoveredResourceCountsGroupByRegionResult.h
 	include/alibabacloud/config/model/GetDiscoveredResourceCountsGroupByResourceTypeRequest.h
@@ -133,6 +145,10 @@ set(config_public_header_model
 	include/alibabacloud/config/model/ListAggregateConfigRuleEvaluationResultsResult.h
 	include/alibabacloud/config/model/ListAggregateConfigRulesRequest.h
 	include/alibabacloud/config/model/ListAggregateConfigRulesResult.h
+	include/alibabacloud/config/model/ListAggregateDiscoveredResourcesRequest.h
+	include/alibabacloud/config/model/ListAggregateDiscoveredResourcesResult.h
+	include/alibabacloud/config/model/ListAggregateRemediationsRequest.h
+	include/alibabacloud/config/model/ListAggregateRemediationsResult.h
 	include/alibabacloud/config/model/ListAggregateResourceEvaluationResultsRequest.h
 	include/alibabacloud/config/model/ListAggregateResourceEvaluationResultsResult.h
 	include/alibabacloud/config/model/ListAggregatorsRequest.h
@@ -143,8 +159,14 @@ set(config_public_header_model
 	include/alibabacloud/config/model/ListCompliancePacksResult.h
 	include/alibabacloud/config/model/ListConfigRuleEvaluationResultsRequest.h
 	include/alibabacloud/config/model/ListConfigRuleEvaluationResultsResult.h
+	include/alibabacloud/config/model/ListDiscoveredResourcesRequest.h
+	include/alibabacloud/config/model/ListDiscoveredResourcesResult.h
 	include/alibabacloud/config/model/ListManagedRulesRequest.h
 	include/alibabacloud/config/model/ListManagedRulesResult.h
+	include/alibabacloud/config/model/ListRemediationTemplatesRequest.h
+	include/alibabacloud/config/model/ListRemediationTemplatesResult.h
+	include/alibabacloud/config/model/ListRemediationsRequest.h
+	include/alibabacloud/config/model/ListRemediationsResult.h
 	include/alibabacloud/config/model/ListResourceEvaluationResultsRequest.h
 	include/alibabacloud/config/model/ListResourceEvaluationResultsResult.h
 	include/alibabacloud/config/model/RevertAggregateEvaluationResultsRequest.h
@@ -153,10 +175,16 @@ set(config_public_header_model
 	include/alibabacloud/config/model/RevertEvaluationResultsResult.h
 	include/alibabacloud/config/model/StartAggregateConfigRuleEvaluationRequest.h
 	include/alibabacloud/config/model/StartAggregateConfigRuleEvaluationResult.h
+	include/alibabacloud/config/model/StartAggregateRemediationRequest.h
+	include/alibabacloud/config/model/StartAggregateRemediationResult.h
+	include/alibabacloud/config/model/StartRemediationRequest.h
+	include/alibabacloud/config/model/StartRemediationResult.h
 	include/alibabacloud/config/model/UpdateAggregateCompliancePackRequest.h
 	include/alibabacloud/config/model/UpdateAggregateCompliancePackResult.h
 	include/alibabacloud/config/model/UpdateAggregateConfigRuleRequest.h
 	include/alibabacloud/config/model/UpdateAggregateConfigRuleResult.h
+	include/alibabacloud/config/model/UpdateAggregateRemediationRequest.h
+	include/alibabacloud/config/model/UpdateAggregateRemediationResult.h
 	include/alibabacloud/config/model/UpdateAggregatorRequest.h
 	include/alibabacloud/config/model/UpdateAggregatorResult.h
 	include/alibabacloud/config/model/UpdateCompliancePackRequest.h
@@ -176,12 +204,16 @@ set(config_src
 	src/model/CreateAggregateCompliancePackResult.cc
 	src/model/CreateAggregateConfigRuleRequest.cc
 	src/model/CreateAggregateConfigRuleResult.cc
+	src/model/CreateAggregateRemediationRequest.cc
+	src/model/CreateAggregateRemediationResult.cc
 	src/model/CreateAggregatorRequest.cc
 	src/model/CreateAggregatorResult.cc
 	src/model/CreateCompliancePackRequest.cc
 	src/model/CreateCompliancePackResult.cc
 	src/model/CreateConfigRuleRequest.cc
 	src/model/CreateConfigRuleResult.cc
+	src/model/CreateRemediationRequest.cc
+	src/model/CreateRemediationResult.cc
 	src/model/DeactiveAggregateConfigRulesRequest.cc
 	src/model/DeactiveAggregateConfigRulesResult.cc
 	src/model/DeactiveConfigRulesRequest.cc
@@ -190,10 +222,14 @@ set(config_src
 	src/model/DeleteAggregateCompliancePacksResult.cc
 	src/model/DeleteAggregateConfigRulesRequest.cc
 	src/model/DeleteAggregateConfigRulesResult.cc
+	src/model/DeleteAggregateRemediationsRequest.cc
+	src/model/DeleteAggregateRemediationsResult.cc
 	src/model/DeleteAggregatorsRequest.cc
 	src/model/DeleteAggregatorsResult.cc
 	src/model/DeleteCompliancePacksRequest.cc
 	src/model/DeleteCompliancePacksResult.cc
+	src/model/DeleteRemediationsRequest.cc
+	src/model/DeleteRemediationsResult.cc
 	src/model/DetachAggregateConfigRuleToCompliancePackRequest.cc
 	src/model/DetachAggregateConfigRuleToCompliancePackResult.cc
 	src/model/DetachConfigRuleToCompliancePackRequest.cc
@@ -220,6 +256,8 @@ set(config_src
 	src/model/GetAggregateConfigRuleSummaryByRiskLevelResult.cc
 	src/model/GetAggregateConfigRulesReportRequest.cc
 	src/model/GetAggregateConfigRulesReportResult.cc
+	src/model/GetAggregateDiscoveredResourceRequest.cc
+	src/model/GetAggregateDiscoveredResourceResult.cc
 	src/model/GetAggregateResourceComplianceByConfigRuleRequest.cc
 	src/model/GetAggregateResourceComplianceByConfigRuleResult.cc
 	src/model/GetAggregateResourceComplianceByPackRequest.cc
@@ -250,6 +288,8 @@ set(config_src
 	src/model/GetConfigRuleSummaryByRiskLevelResult.cc
 	src/model/GetConfigRulesReportRequest.cc
 	src/model/GetConfigRulesReportResult.cc
+	src/model/GetDiscoveredResourceRequest.cc
+	src/model/GetDiscoveredResourceResult.cc
 	src/model/GetDiscoveredResourceCountsGroupByRegionRequest.cc
 	src/model/GetDiscoveredResourceCountsGroupByRegionResult.cc
 	src/model/GetDiscoveredResourceCountsGroupByResourceTypeRequest.cc
@@ -278,6 +318,10 @@ set(config_src
 	src/model/ListAggregateConfigRuleEvaluationResultsResult.cc
 	src/model/ListAggregateConfigRulesRequest.cc
 	src/model/ListAggregateConfigRulesResult.cc
+	src/model/ListAggregateDiscoveredResourcesRequest.cc
+	src/model/ListAggregateDiscoveredResourcesResult.cc
+	src/model/ListAggregateRemediationsRequest.cc
+	src/model/ListAggregateRemediationsResult.cc
 	src/model/ListAggregateResourceEvaluationResultsRequest.cc
 	src/model/ListAggregateResourceEvaluationResultsResult.cc
 	src/model/ListAggregatorsRequest.cc
@@ -288,8 +332,14 @@ set(config_src
 	src/model/ListCompliancePacksResult.cc
 	src/model/ListConfigRuleEvaluationResultsRequest.cc
 	src/model/ListConfigRuleEvaluationResultsResult.cc
+	src/model/ListDiscoveredResourcesRequest.cc
+	src/model/ListDiscoveredResourcesResult.cc
 	src/model/ListManagedRulesRequest.cc
 	src/model/ListManagedRulesResult.cc
+	src/model/ListRemediationTemplatesRequest.cc
+	src/model/ListRemediationTemplatesResult.cc
+	src/model/ListRemediationsRequest.cc
+	src/model/ListRemediationsResult.cc
 	src/model/ListResourceEvaluationResultsRequest.cc
 	src/model/ListResourceEvaluationResultsResult.cc
 	src/model/RevertAggregateEvaluationResultsRequest.cc
@@ -298,10 +348,16 @@ set(config_src
 	src/model/RevertEvaluationResultsResult.cc
 	src/model/StartAggregateConfigRuleEvaluationRequest.cc
 	src/model/StartAggregateConfigRuleEvaluationResult.cc
+	src/model/StartAggregateRemediationRequest.cc
+	src/model/StartAggregateRemediationResult.cc
+	src/model/StartRemediationRequest.cc
+	src/model/StartRemediationResult.cc
 	src/model/UpdateAggregateCompliancePackRequest.cc
 	src/model/UpdateAggregateCompliancePackResult.cc
 	src/model/UpdateAggregateConfigRuleRequest.cc
 	src/model/UpdateAggregateConfigRuleResult.cc
+	src/model/UpdateAggregateRemediationRequest.cc
+	src/model/UpdateAggregateRemediationResult.cc
 	src/model/UpdateAggregatorRequest.cc
 	src/model/UpdateAggregatorResult.cc
 	src/model/UpdateCompliancePackRequest.cc

+ 112 - 0
config/include/alibabacloud/config/ConfigClient.h

@@ -32,12 +32,16 @@
 #include "model/CreateAggregateCompliancePackResult.h"
 #include "model/CreateAggregateConfigRuleRequest.h"
 #include "model/CreateAggregateConfigRuleResult.h"
+#include "model/CreateAggregateRemediationRequest.h"
+#include "model/CreateAggregateRemediationResult.h"
 #include "model/CreateAggregatorRequest.h"
 #include "model/CreateAggregatorResult.h"
 #include "model/CreateCompliancePackRequest.h"
 #include "model/CreateCompliancePackResult.h"
 #include "model/CreateConfigRuleRequest.h"
 #include "model/CreateConfigRuleResult.h"
+#include "model/CreateRemediationRequest.h"
+#include "model/CreateRemediationResult.h"
 #include "model/DeactiveAggregateConfigRulesRequest.h"
 #include "model/DeactiveAggregateConfigRulesResult.h"
 #include "model/DeactiveConfigRulesRequest.h"
@@ -46,10 +50,14 @@
 #include "model/DeleteAggregateCompliancePacksResult.h"
 #include "model/DeleteAggregateConfigRulesRequest.h"
 #include "model/DeleteAggregateConfigRulesResult.h"
+#include "model/DeleteAggregateRemediationsRequest.h"
+#include "model/DeleteAggregateRemediationsResult.h"
 #include "model/DeleteAggregatorsRequest.h"
 #include "model/DeleteAggregatorsResult.h"
 #include "model/DeleteCompliancePacksRequest.h"
 #include "model/DeleteCompliancePacksResult.h"
+#include "model/DeleteRemediationsRequest.h"
+#include "model/DeleteRemediationsResult.h"
 #include "model/DetachAggregateConfigRuleToCompliancePackRequest.h"
 #include "model/DetachAggregateConfigRuleToCompliancePackResult.h"
 #include "model/DetachConfigRuleToCompliancePackRequest.h"
@@ -76,6 +84,8 @@
 #include "model/GetAggregateConfigRuleSummaryByRiskLevelResult.h"
 #include "model/GetAggregateConfigRulesReportRequest.h"
 #include "model/GetAggregateConfigRulesReportResult.h"
+#include "model/GetAggregateDiscoveredResourceRequest.h"
+#include "model/GetAggregateDiscoveredResourceResult.h"
 #include "model/GetAggregateResourceComplianceByConfigRuleRequest.h"
 #include "model/GetAggregateResourceComplianceByConfigRuleResult.h"
 #include "model/GetAggregateResourceComplianceByPackRequest.h"
@@ -106,6 +116,8 @@
 #include "model/GetConfigRuleSummaryByRiskLevelResult.h"
 #include "model/GetConfigRulesReportRequest.h"
 #include "model/GetConfigRulesReportResult.h"
+#include "model/GetDiscoveredResourceRequest.h"
+#include "model/GetDiscoveredResourceResult.h"
 #include "model/GetDiscoveredResourceCountsGroupByRegionRequest.h"
 #include "model/GetDiscoveredResourceCountsGroupByRegionResult.h"
 #include "model/GetDiscoveredResourceCountsGroupByResourceTypeRequest.h"
@@ -134,6 +146,10 @@
 #include "model/ListAggregateConfigRuleEvaluationResultsResult.h"
 #include "model/ListAggregateConfigRulesRequest.h"
 #include "model/ListAggregateConfigRulesResult.h"
+#include "model/ListAggregateDiscoveredResourcesRequest.h"
+#include "model/ListAggregateDiscoveredResourcesResult.h"
+#include "model/ListAggregateRemediationsRequest.h"
+#include "model/ListAggregateRemediationsResult.h"
 #include "model/ListAggregateResourceEvaluationResultsRequest.h"
 #include "model/ListAggregateResourceEvaluationResultsResult.h"
 #include "model/ListAggregatorsRequest.h"
@@ -144,8 +160,14 @@
 #include "model/ListCompliancePacksResult.h"
 #include "model/ListConfigRuleEvaluationResultsRequest.h"
 #include "model/ListConfigRuleEvaluationResultsResult.h"
+#include "model/ListDiscoveredResourcesRequest.h"
+#include "model/ListDiscoveredResourcesResult.h"
 #include "model/ListManagedRulesRequest.h"
 #include "model/ListManagedRulesResult.h"
+#include "model/ListRemediationTemplatesRequest.h"
+#include "model/ListRemediationTemplatesResult.h"
+#include "model/ListRemediationsRequest.h"
+#include "model/ListRemediationsResult.h"
 #include "model/ListResourceEvaluationResultsRequest.h"
 #include "model/ListResourceEvaluationResultsResult.h"
 #include "model/RevertAggregateEvaluationResultsRequest.h"
@@ -154,10 +176,16 @@
 #include "model/RevertEvaluationResultsResult.h"
 #include "model/StartAggregateConfigRuleEvaluationRequest.h"
 #include "model/StartAggregateConfigRuleEvaluationResult.h"
+#include "model/StartAggregateRemediationRequest.h"
+#include "model/StartAggregateRemediationResult.h"
+#include "model/StartRemediationRequest.h"
+#include "model/StartRemediationResult.h"
 #include "model/UpdateAggregateCompliancePackRequest.h"
 #include "model/UpdateAggregateCompliancePackResult.h"
 #include "model/UpdateAggregateConfigRuleRequest.h"
 #include "model/UpdateAggregateConfigRuleResult.h"
+#include "model/UpdateAggregateRemediationRequest.h"
+#include "model/UpdateAggregateRemediationResult.h"
 #include "model/UpdateAggregatorRequest.h"
 #include "model/UpdateAggregatorResult.h"
 #include "model/UpdateCompliancePackRequest.h"
@@ -188,6 +216,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateAggregateConfigRuleResult> CreateAggregateConfigRuleOutcome;
 			typedef std::future<CreateAggregateConfigRuleOutcome> CreateAggregateConfigRuleOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::CreateAggregateConfigRuleRequest&, const CreateAggregateConfigRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateAggregateConfigRuleAsyncHandler;
+			typedef Outcome<Error, Model::CreateAggregateRemediationResult> CreateAggregateRemediationOutcome;
+			typedef std::future<CreateAggregateRemediationOutcome> CreateAggregateRemediationOutcomeCallable;
+			typedef std::function<void(const ConfigClient*, const Model::CreateAggregateRemediationRequest&, const CreateAggregateRemediationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateAggregateRemediationAsyncHandler;
 			typedef Outcome<Error, Model::CreateAggregatorResult> CreateAggregatorOutcome;
 			typedef std::future<CreateAggregatorOutcome> CreateAggregatorOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::CreateAggregatorRequest&, const CreateAggregatorOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateAggregatorAsyncHandler;
@@ -197,6 +228,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::CreateConfigRuleResult> CreateConfigRuleOutcome;
 			typedef std::future<CreateConfigRuleOutcome> CreateConfigRuleOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::CreateConfigRuleRequest&, const CreateConfigRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateConfigRuleAsyncHandler;
+			typedef Outcome<Error, Model::CreateRemediationResult> CreateRemediationOutcome;
+			typedef std::future<CreateRemediationOutcome> CreateRemediationOutcomeCallable;
+			typedef std::function<void(const ConfigClient*, const Model::CreateRemediationRequest&, const CreateRemediationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> CreateRemediationAsyncHandler;
 			typedef Outcome<Error, Model::DeactiveAggregateConfigRulesResult> DeactiveAggregateConfigRulesOutcome;
 			typedef std::future<DeactiveAggregateConfigRulesOutcome> DeactiveAggregateConfigRulesOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::DeactiveAggregateConfigRulesRequest&, const DeactiveAggregateConfigRulesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeactiveAggregateConfigRulesAsyncHandler;
@@ -209,12 +243,18 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::DeleteAggregateConfigRulesResult> DeleteAggregateConfigRulesOutcome;
 			typedef std::future<DeleteAggregateConfigRulesOutcome> DeleteAggregateConfigRulesOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::DeleteAggregateConfigRulesRequest&, const DeleteAggregateConfigRulesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteAggregateConfigRulesAsyncHandler;
+			typedef Outcome<Error, Model::DeleteAggregateRemediationsResult> DeleteAggregateRemediationsOutcome;
+			typedef std::future<DeleteAggregateRemediationsOutcome> DeleteAggregateRemediationsOutcomeCallable;
+			typedef std::function<void(const ConfigClient*, const Model::DeleteAggregateRemediationsRequest&, const DeleteAggregateRemediationsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteAggregateRemediationsAsyncHandler;
 			typedef Outcome<Error, Model::DeleteAggregatorsResult> DeleteAggregatorsOutcome;
 			typedef std::future<DeleteAggregatorsOutcome> DeleteAggregatorsOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::DeleteAggregatorsRequest&, const DeleteAggregatorsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteAggregatorsAsyncHandler;
 			typedef Outcome<Error, Model::DeleteCompliancePacksResult> DeleteCompliancePacksOutcome;
 			typedef std::future<DeleteCompliancePacksOutcome> DeleteCompliancePacksOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::DeleteCompliancePacksRequest&, const DeleteCompliancePacksOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteCompliancePacksAsyncHandler;
+			typedef Outcome<Error, Model::DeleteRemediationsResult> DeleteRemediationsOutcome;
+			typedef std::future<DeleteRemediationsOutcome> DeleteRemediationsOutcomeCallable;
+			typedef std::function<void(const ConfigClient*, const Model::DeleteRemediationsRequest&, const DeleteRemediationsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DeleteRemediationsAsyncHandler;
 			typedef Outcome<Error, Model::DetachAggregateConfigRuleToCompliancePackResult> DetachAggregateConfigRuleToCompliancePackOutcome;
 			typedef std::future<DetachAggregateConfigRuleToCompliancePackOutcome> DetachAggregateConfigRuleToCompliancePackOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::DetachAggregateConfigRuleToCompliancePackRequest&, const DetachAggregateConfigRuleToCompliancePackOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> DetachAggregateConfigRuleToCompliancePackAsyncHandler;
@@ -254,6 +294,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetAggregateConfigRulesReportResult> GetAggregateConfigRulesReportOutcome;
 			typedef std::future<GetAggregateConfigRulesReportOutcome> GetAggregateConfigRulesReportOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::GetAggregateConfigRulesReportRequest&, const GetAggregateConfigRulesReportOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetAggregateConfigRulesReportAsyncHandler;
+			typedef Outcome<Error, Model::GetAggregateDiscoveredResourceResult> GetAggregateDiscoveredResourceOutcome;
+			typedef std::future<GetAggregateDiscoveredResourceOutcome> GetAggregateDiscoveredResourceOutcomeCallable;
+			typedef std::function<void(const ConfigClient*, const Model::GetAggregateDiscoveredResourceRequest&, const GetAggregateDiscoveredResourceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetAggregateDiscoveredResourceAsyncHandler;
 			typedef Outcome<Error, Model::GetAggregateResourceComplianceByConfigRuleResult> GetAggregateResourceComplianceByConfigRuleOutcome;
 			typedef std::future<GetAggregateResourceComplianceByConfigRuleOutcome> GetAggregateResourceComplianceByConfigRuleOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::GetAggregateResourceComplianceByConfigRuleRequest&, const GetAggregateResourceComplianceByConfigRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetAggregateResourceComplianceByConfigRuleAsyncHandler;
@@ -299,6 +342,9 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::GetConfigRulesReportResult> GetConfigRulesReportOutcome;
 			typedef std::future<GetConfigRulesReportOutcome> GetConfigRulesReportOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::GetConfigRulesReportRequest&, const GetConfigRulesReportOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetConfigRulesReportAsyncHandler;
+			typedef Outcome<Error, Model::GetDiscoveredResourceResult> GetDiscoveredResourceOutcome;
+			typedef std::future<GetDiscoveredResourceOutcome> GetDiscoveredResourceOutcomeCallable;
+			typedef std::function<void(const ConfigClient*, const Model::GetDiscoveredResourceRequest&, const GetDiscoveredResourceOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetDiscoveredResourceAsyncHandler;
 			typedef Outcome<Error, Model::GetDiscoveredResourceCountsGroupByRegionResult> GetDiscoveredResourceCountsGroupByRegionOutcome;
 			typedef std::future<GetDiscoveredResourceCountsGroupByRegionOutcome> GetDiscoveredResourceCountsGroupByRegionOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::GetDiscoveredResourceCountsGroupByRegionRequest&, const GetDiscoveredResourceCountsGroupByRegionOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> GetDiscoveredResourceCountsGroupByRegionAsyncHandler;
@@ -341,6 +387,12 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ListAggregateConfigRulesResult> ListAggregateConfigRulesOutcome;
 			typedef std::future<ListAggregateConfigRulesOutcome> ListAggregateConfigRulesOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::ListAggregateConfigRulesRequest&, const ListAggregateConfigRulesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListAggregateConfigRulesAsyncHandler;
+			typedef Outcome<Error, Model::ListAggregateDiscoveredResourcesResult> ListAggregateDiscoveredResourcesOutcome;
+			typedef std::future<ListAggregateDiscoveredResourcesOutcome> ListAggregateDiscoveredResourcesOutcomeCallable;
+			typedef std::function<void(const ConfigClient*, const Model::ListAggregateDiscoveredResourcesRequest&, const ListAggregateDiscoveredResourcesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListAggregateDiscoveredResourcesAsyncHandler;
+			typedef Outcome<Error, Model::ListAggregateRemediationsResult> ListAggregateRemediationsOutcome;
+			typedef std::future<ListAggregateRemediationsOutcome> ListAggregateRemediationsOutcomeCallable;
+			typedef std::function<void(const ConfigClient*, const Model::ListAggregateRemediationsRequest&, const ListAggregateRemediationsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListAggregateRemediationsAsyncHandler;
 			typedef Outcome<Error, Model::ListAggregateResourceEvaluationResultsResult> ListAggregateResourceEvaluationResultsOutcome;
 			typedef std::future<ListAggregateResourceEvaluationResultsOutcome> ListAggregateResourceEvaluationResultsOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::ListAggregateResourceEvaluationResultsRequest&, const ListAggregateResourceEvaluationResultsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListAggregateResourceEvaluationResultsAsyncHandler;
@@ -356,9 +408,18 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::ListConfigRuleEvaluationResultsResult> ListConfigRuleEvaluationResultsOutcome;
 			typedef std::future<ListConfigRuleEvaluationResultsOutcome> ListConfigRuleEvaluationResultsOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::ListConfigRuleEvaluationResultsRequest&, const ListConfigRuleEvaluationResultsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListConfigRuleEvaluationResultsAsyncHandler;
+			typedef Outcome<Error, Model::ListDiscoveredResourcesResult> ListDiscoveredResourcesOutcome;
+			typedef std::future<ListDiscoveredResourcesOutcome> ListDiscoveredResourcesOutcomeCallable;
+			typedef std::function<void(const ConfigClient*, const Model::ListDiscoveredResourcesRequest&, const ListDiscoveredResourcesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListDiscoveredResourcesAsyncHandler;
 			typedef Outcome<Error, Model::ListManagedRulesResult> ListManagedRulesOutcome;
 			typedef std::future<ListManagedRulesOutcome> ListManagedRulesOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::ListManagedRulesRequest&, const ListManagedRulesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListManagedRulesAsyncHandler;
+			typedef Outcome<Error, Model::ListRemediationTemplatesResult> ListRemediationTemplatesOutcome;
+			typedef std::future<ListRemediationTemplatesOutcome> ListRemediationTemplatesOutcomeCallable;
+			typedef std::function<void(const ConfigClient*, const Model::ListRemediationTemplatesRequest&, const ListRemediationTemplatesOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListRemediationTemplatesAsyncHandler;
+			typedef Outcome<Error, Model::ListRemediationsResult> ListRemediationsOutcome;
+			typedef std::future<ListRemediationsOutcome> ListRemediationsOutcomeCallable;
+			typedef std::function<void(const ConfigClient*, const Model::ListRemediationsRequest&, const ListRemediationsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListRemediationsAsyncHandler;
 			typedef Outcome<Error, Model::ListResourceEvaluationResultsResult> ListResourceEvaluationResultsOutcome;
 			typedef std::future<ListResourceEvaluationResultsOutcome> ListResourceEvaluationResultsOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::ListResourceEvaluationResultsRequest&, const ListResourceEvaluationResultsOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> ListResourceEvaluationResultsAsyncHandler;
@@ -371,12 +432,21 @@ namespace AlibabaCloud
 			typedef Outcome<Error, Model::StartAggregateConfigRuleEvaluationResult> StartAggregateConfigRuleEvaluationOutcome;
 			typedef std::future<StartAggregateConfigRuleEvaluationOutcome> StartAggregateConfigRuleEvaluationOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::StartAggregateConfigRuleEvaluationRequest&, const StartAggregateConfigRuleEvaluationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> StartAggregateConfigRuleEvaluationAsyncHandler;
+			typedef Outcome<Error, Model::StartAggregateRemediationResult> StartAggregateRemediationOutcome;
+			typedef std::future<StartAggregateRemediationOutcome> StartAggregateRemediationOutcomeCallable;
+			typedef std::function<void(const ConfigClient*, const Model::StartAggregateRemediationRequest&, const StartAggregateRemediationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> StartAggregateRemediationAsyncHandler;
+			typedef Outcome<Error, Model::StartRemediationResult> StartRemediationOutcome;
+			typedef std::future<StartRemediationOutcome> StartRemediationOutcomeCallable;
+			typedef std::function<void(const ConfigClient*, const Model::StartRemediationRequest&, const StartRemediationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> StartRemediationAsyncHandler;
 			typedef Outcome<Error, Model::UpdateAggregateCompliancePackResult> UpdateAggregateCompliancePackOutcome;
 			typedef std::future<UpdateAggregateCompliancePackOutcome> UpdateAggregateCompliancePackOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::UpdateAggregateCompliancePackRequest&, const UpdateAggregateCompliancePackOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateAggregateCompliancePackAsyncHandler;
 			typedef Outcome<Error, Model::UpdateAggregateConfigRuleResult> UpdateAggregateConfigRuleOutcome;
 			typedef std::future<UpdateAggregateConfigRuleOutcome> UpdateAggregateConfigRuleOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::UpdateAggregateConfigRuleRequest&, const UpdateAggregateConfigRuleOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateAggregateConfigRuleAsyncHandler;
+			typedef Outcome<Error, Model::UpdateAggregateRemediationResult> UpdateAggregateRemediationOutcome;
+			typedef std::future<UpdateAggregateRemediationOutcome> UpdateAggregateRemediationOutcomeCallable;
+			typedef std::function<void(const ConfigClient*, const Model::UpdateAggregateRemediationRequest&, const UpdateAggregateRemediationOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateAggregateRemediationAsyncHandler;
 			typedef Outcome<Error, Model::UpdateAggregatorResult> UpdateAggregatorOutcome;
 			typedef std::future<UpdateAggregatorOutcome> UpdateAggregatorOutcomeCallable;
 			typedef std::function<void(const ConfigClient*, const Model::UpdateAggregatorRequest&, const UpdateAggregatorOutcome&, const std::shared_ptr<const AsyncCallerContext>&)> UpdateAggregatorAsyncHandler;
@@ -406,6 +476,9 @@ namespace AlibabaCloud
 			CreateAggregateConfigRuleOutcome createAggregateConfigRule(const Model::CreateAggregateConfigRuleRequest &request)const;
 			void createAggregateConfigRuleAsync(const Model::CreateAggregateConfigRuleRequest& request, const CreateAggregateConfigRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateAggregateConfigRuleOutcomeCallable createAggregateConfigRuleCallable(const Model::CreateAggregateConfigRuleRequest& request) const;
+			CreateAggregateRemediationOutcome createAggregateRemediation(const Model::CreateAggregateRemediationRequest &request)const;
+			void createAggregateRemediationAsync(const Model::CreateAggregateRemediationRequest& request, const CreateAggregateRemediationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateAggregateRemediationOutcomeCallable createAggregateRemediationCallable(const Model::CreateAggregateRemediationRequest& request) const;
 			CreateAggregatorOutcome createAggregator(const Model::CreateAggregatorRequest &request)const;
 			void createAggregatorAsync(const Model::CreateAggregatorRequest& request, const CreateAggregatorAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateAggregatorOutcomeCallable createAggregatorCallable(const Model::CreateAggregatorRequest& request) const;
@@ -415,6 +488,9 @@ namespace AlibabaCloud
 			CreateConfigRuleOutcome createConfigRule(const Model::CreateConfigRuleRequest &request)const;
 			void createConfigRuleAsync(const Model::CreateConfigRuleRequest& request, const CreateConfigRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			CreateConfigRuleOutcomeCallable createConfigRuleCallable(const Model::CreateConfigRuleRequest& request) const;
+			CreateRemediationOutcome createRemediation(const Model::CreateRemediationRequest &request)const;
+			void createRemediationAsync(const Model::CreateRemediationRequest& request, const CreateRemediationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			CreateRemediationOutcomeCallable createRemediationCallable(const Model::CreateRemediationRequest& request) const;
 			DeactiveAggregateConfigRulesOutcome deactiveAggregateConfigRules(const Model::DeactiveAggregateConfigRulesRequest &request)const;
 			void deactiveAggregateConfigRulesAsync(const Model::DeactiveAggregateConfigRulesRequest& request, const DeactiveAggregateConfigRulesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeactiveAggregateConfigRulesOutcomeCallable deactiveAggregateConfigRulesCallable(const Model::DeactiveAggregateConfigRulesRequest& request) const;
@@ -427,12 +503,18 @@ namespace AlibabaCloud
 			DeleteAggregateConfigRulesOutcome deleteAggregateConfigRules(const Model::DeleteAggregateConfigRulesRequest &request)const;
 			void deleteAggregateConfigRulesAsync(const Model::DeleteAggregateConfigRulesRequest& request, const DeleteAggregateConfigRulesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteAggregateConfigRulesOutcomeCallable deleteAggregateConfigRulesCallable(const Model::DeleteAggregateConfigRulesRequest& request) const;
+			DeleteAggregateRemediationsOutcome deleteAggregateRemediations(const Model::DeleteAggregateRemediationsRequest &request)const;
+			void deleteAggregateRemediationsAsync(const Model::DeleteAggregateRemediationsRequest& request, const DeleteAggregateRemediationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteAggregateRemediationsOutcomeCallable deleteAggregateRemediationsCallable(const Model::DeleteAggregateRemediationsRequest& request) const;
 			DeleteAggregatorsOutcome deleteAggregators(const Model::DeleteAggregatorsRequest &request)const;
 			void deleteAggregatorsAsync(const Model::DeleteAggregatorsRequest& request, const DeleteAggregatorsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteAggregatorsOutcomeCallable deleteAggregatorsCallable(const Model::DeleteAggregatorsRequest& request) const;
 			DeleteCompliancePacksOutcome deleteCompliancePacks(const Model::DeleteCompliancePacksRequest &request)const;
 			void deleteCompliancePacksAsync(const Model::DeleteCompliancePacksRequest& request, const DeleteCompliancePacksAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DeleteCompliancePacksOutcomeCallable deleteCompliancePacksCallable(const Model::DeleteCompliancePacksRequest& request) const;
+			DeleteRemediationsOutcome deleteRemediations(const Model::DeleteRemediationsRequest &request)const;
+			void deleteRemediationsAsync(const Model::DeleteRemediationsRequest& request, const DeleteRemediationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			DeleteRemediationsOutcomeCallable deleteRemediationsCallable(const Model::DeleteRemediationsRequest& request) const;
 			DetachAggregateConfigRuleToCompliancePackOutcome detachAggregateConfigRuleToCompliancePack(const Model::DetachAggregateConfigRuleToCompliancePackRequest &request)const;
 			void detachAggregateConfigRuleToCompliancePackAsync(const Model::DetachAggregateConfigRuleToCompliancePackRequest& request, const DetachAggregateConfigRuleToCompliancePackAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			DetachAggregateConfigRuleToCompliancePackOutcomeCallable detachAggregateConfigRuleToCompliancePackCallable(const Model::DetachAggregateConfigRuleToCompliancePackRequest& request) const;
@@ -472,6 +554,9 @@ namespace AlibabaCloud
 			GetAggregateConfigRulesReportOutcome getAggregateConfigRulesReport(const Model::GetAggregateConfigRulesReportRequest &request)const;
 			void getAggregateConfigRulesReportAsync(const Model::GetAggregateConfigRulesReportRequest& request, const GetAggregateConfigRulesReportAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetAggregateConfigRulesReportOutcomeCallable getAggregateConfigRulesReportCallable(const Model::GetAggregateConfigRulesReportRequest& request) const;
+			GetAggregateDiscoveredResourceOutcome getAggregateDiscoveredResource(const Model::GetAggregateDiscoveredResourceRequest &request)const;
+			void getAggregateDiscoveredResourceAsync(const Model::GetAggregateDiscoveredResourceRequest& request, const GetAggregateDiscoveredResourceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetAggregateDiscoveredResourceOutcomeCallable getAggregateDiscoveredResourceCallable(const Model::GetAggregateDiscoveredResourceRequest& request) const;
 			GetAggregateResourceComplianceByConfigRuleOutcome getAggregateResourceComplianceByConfigRule(const Model::GetAggregateResourceComplianceByConfigRuleRequest &request)const;
 			void getAggregateResourceComplianceByConfigRuleAsync(const Model::GetAggregateResourceComplianceByConfigRuleRequest& request, const GetAggregateResourceComplianceByConfigRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetAggregateResourceComplianceByConfigRuleOutcomeCallable getAggregateResourceComplianceByConfigRuleCallable(const Model::GetAggregateResourceComplianceByConfigRuleRequest& request) const;
@@ -517,6 +602,9 @@ namespace AlibabaCloud
 			GetConfigRulesReportOutcome getConfigRulesReport(const Model::GetConfigRulesReportRequest &request)const;
 			void getConfigRulesReportAsync(const Model::GetConfigRulesReportRequest& request, const GetConfigRulesReportAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetConfigRulesReportOutcomeCallable getConfigRulesReportCallable(const Model::GetConfigRulesReportRequest& request) const;
+			GetDiscoveredResourceOutcome getDiscoveredResource(const Model::GetDiscoveredResourceRequest &request)const;
+			void getDiscoveredResourceAsync(const Model::GetDiscoveredResourceRequest& request, const GetDiscoveredResourceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			GetDiscoveredResourceOutcomeCallable getDiscoveredResourceCallable(const Model::GetDiscoveredResourceRequest& request) const;
 			GetDiscoveredResourceCountsGroupByRegionOutcome getDiscoveredResourceCountsGroupByRegion(const Model::GetDiscoveredResourceCountsGroupByRegionRequest &request)const;
 			void getDiscoveredResourceCountsGroupByRegionAsync(const Model::GetDiscoveredResourceCountsGroupByRegionRequest& request, const GetDiscoveredResourceCountsGroupByRegionAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			GetDiscoveredResourceCountsGroupByRegionOutcomeCallable getDiscoveredResourceCountsGroupByRegionCallable(const Model::GetDiscoveredResourceCountsGroupByRegionRequest& request) const;
@@ -559,6 +647,12 @@ namespace AlibabaCloud
 			ListAggregateConfigRulesOutcome listAggregateConfigRules(const Model::ListAggregateConfigRulesRequest &request)const;
 			void listAggregateConfigRulesAsync(const Model::ListAggregateConfigRulesRequest& request, const ListAggregateConfigRulesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListAggregateConfigRulesOutcomeCallable listAggregateConfigRulesCallable(const Model::ListAggregateConfigRulesRequest& request) const;
+			ListAggregateDiscoveredResourcesOutcome listAggregateDiscoveredResources(const Model::ListAggregateDiscoveredResourcesRequest &request)const;
+			void listAggregateDiscoveredResourcesAsync(const Model::ListAggregateDiscoveredResourcesRequest& request, const ListAggregateDiscoveredResourcesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListAggregateDiscoveredResourcesOutcomeCallable listAggregateDiscoveredResourcesCallable(const Model::ListAggregateDiscoveredResourcesRequest& request) const;
+			ListAggregateRemediationsOutcome listAggregateRemediations(const Model::ListAggregateRemediationsRequest &request)const;
+			void listAggregateRemediationsAsync(const Model::ListAggregateRemediationsRequest& request, const ListAggregateRemediationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListAggregateRemediationsOutcomeCallable listAggregateRemediationsCallable(const Model::ListAggregateRemediationsRequest& request) const;
 			ListAggregateResourceEvaluationResultsOutcome listAggregateResourceEvaluationResults(const Model::ListAggregateResourceEvaluationResultsRequest &request)const;
 			void listAggregateResourceEvaluationResultsAsync(const Model::ListAggregateResourceEvaluationResultsRequest& request, const ListAggregateResourceEvaluationResultsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListAggregateResourceEvaluationResultsOutcomeCallable listAggregateResourceEvaluationResultsCallable(const Model::ListAggregateResourceEvaluationResultsRequest& request) const;
@@ -574,9 +668,18 @@ namespace AlibabaCloud
 			ListConfigRuleEvaluationResultsOutcome listConfigRuleEvaluationResults(const Model::ListConfigRuleEvaluationResultsRequest &request)const;
 			void listConfigRuleEvaluationResultsAsync(const Model::ListConfigRuleEvaluationResultsRequest& request, const ListConfigRuleEvaluationResultsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListConfigRuleEvaluationResultsOutcomeCallable listConfigRuleEvaluationResultsCallable(const Model::ListConfigRuleEvaluationResultsRequest& request) const;
+			ListDiscoveredResourcesOutcome listDiscoveredResources(const Model::ListDiscoveredResourcesRequest &request)const;
+			void listDiscoveredResourcesAsync(const Model::ListDiscoveredResourcesRequest& request, const ListDiscoveredResourcesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListDiscoveredResourcesOutcomeCallable listDiscoveredResourcesCallable(const Model::ListDiscoveredResourcesRequest& request) const;
 			ListManagedRulesOutcome listManagedRules(const Model::ListManagedRulesRequest &request)const;
 			void listManagedRulesAsync(const Model::ListManagedRulesRequest& request, const ListManagedRulesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListManagedRulesOutcomeCallable listManagedRulesCallable(const Model::ListManagedRulesRequest& request) const;
+			ListRemediationTemplatesOutcome listRemediationTemplates(const Model::ListRemediationTemplatesRequest &request)const;
+			void listRemediationTemplatesAsync(const Model::ListRemediationTemplatesRequest& request, const ListRemediationTemplatesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListRemediationTemplatesOutcomeCallable listRemediationTemplatesCallable(const Model::ListRemediationTemplatesRequest& request) const;
+			ListRemediationsOutcome listRemediations(const Model::ListRemediationsRequest &request)const;
+			void listRemediationsAsync(const Model::ListRemediationsRequest& request, const ListRemediationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			ListRemediationsOutcomeCallable listRemediationsCallable(const Model::ListRemediationsRequest& request) const;
 			ListResourceEvaluationResultsOutcome listResourceEvaluationResults(const Model::ListResourceEvaluationResultsRequest &request)const;
 			void listResourceEvaluationResultsAsync(const Model::ListResourceEvaluationResultsRequest& request, const ListResourceEvaluationResultsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			ListResourceEvaluationResultsOutcomeCallable listResourceEvaluationResultsCallable(const Model::ListResourceEvaluationResultsRequest& request) const;
@@ -589,12 +692,21 @@ namespace AlibabaCloud
 			StartAggregateConfigRuleEvaluationOutcome startAggregateConfigRuleEvaluation(const Model::StartAggregateConfigRuleEvaluationRequest &request)const;
 			void startAggregateConfigRuleEvaluationAsync(const Model::StartAggregateConfigRuleEvaluationRequest& request, const StartAggregateConfigRuleEvaluationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			StartAggregateConfigRuleEvaluationOutcomeCallable startAggregateConfigRuleEvaluationCallable(const Model::StartAggregateConfigRuleEvaluationRequest& request) const;
+			StartAggregateRemediationOutcome startAggregateRemediation(const Model::StartAggregateRemediationRequest &request)const;
+			void startAggregateRemediationAsync(const Model::StartAggregateRemediationRequest& request, const StartAggregateRemediationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			StartAggregateRemediationOutcomeCallable startAggregateRemediationCallable(const Model::StartAggregateRemediationRequest& request) const;
+			StartRemediationOutcome startRemediation(const Model::StartRemediationRequest &request)const;
+			void startRemediationAsync(const Model::StartRemediationRequest& request, const StartRemediationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			StartRemediationOutcomeCallable startRemediationCallable(const Model::StartRemediationRequest& request) const;
 			UpdateAggregateCompliancePackOutcome updateAggregateCompliancePack(const Model::UpdateAggregateCompliancePackRequest &request)const;
 			void updateAggregateCompliancePackAsync(const Model::UpdateAggregateCompliancePackRequest& request, const UpdateAggregateCompliancePackAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateAggregateCompliancePackOutcomeCallable updateAggregateCompliancePackCallable(const Model::UpdateAggregateCompliancePackRequest& request) const;
 			UpdateAggregateConfigRuleOutcome updateAggregateConfigRule(const Model::UpdateAggregateConfigRuleRequest &request)const;
 			void updateAggregateConfigRuleAsync(const Model::UpdateAggregateConfigRuleRequest& request, const UpdateAggregateConfigRuleAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateAggregateConfigRuleOutcomeCallable updateAggregateConfigRuleCallable(const Model::UpdateAggregateConfigRuleRequest& request) const;
+			UpdateAggregateRemediationOutcome updateAggregateRemediation(const Model::UpdateAggregateRemediationRequest &request)const;
+			void updateAggregateRemediationAsync(const Model::UpdateAggregateRemediationRequest& request, const UpdateAggregateRemediationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
+			UpdateAggregateRemediationOutcomeCallable updateAggregateRemediationCallable(const Model::UpdateAggregateRemediationRequest& request) const;
 			UpdateAggregatorOutcome updateAggregator(const Model::UpdateAggregatorRequest &request)const;
 			void updateAggregatorAsync(const Model::UpdateAggregatorRequest& request, const UpdateAggregatorAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context = nullptr) const;
 			UpdateAggregatorOutcomeCallable updateAggregatorCallable(const Model::UpdateAggregatorRequest& request) const;

+ 63 - 0
config/include/alibabacloud/config/model/CreateAggregateRemediationRequest.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_CONFIG_MODEL_CREATEAGGREGATEREMEDIATIONREQUEST_H_
+#define ALIBABACLOUD_CONFIG_MODEL_CREATEAGGREGATEREMEDIATIONREQUEST_H_
+
+#include <alibabacloud/config/ConfigExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Config {
+namespace Model {
+class ALIBABACLOUD_CONFIG_EXPORT CreateAggregateRemediationRequest : public RpcServiceRequest {
+public:
+	CreateAggregateRemediationRequest();
+	~CreateAggregateRemediationRequest();
+	std::string getConfigRuleId() const;
+	void setConfigRuleId(const std::string &configRuleId);
+	std::string getRemediationType() const;
+	void setRemediationType(const std::string &remediationType);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::string getAggregatorId() const;
+	void setAggregatorId(const std::string &aggregatorId);
+	std::string getSourceType() const;
+	void setSourceType(const std::string &sourceType);
+	std::string getRemediationTemplateId() const;
+	void setRemediationTemplateId(const std::string &remediationTemplateId);
+	std::string getParams() const;
+	void setParams(const std::string &params);
+	std::string getInvokeType() const;
+	void setInvokeType(const std::string &invokeType);
+
+private:
+	std::string configRuleId_;
+	std::string remediationType_;
+	std::string clientToken_;
+	std::string aggregatorId_;
+	std::string sourceType_;
+	std::string remediationTemplateId_;
+	std::string params_;
+	std::string invokeType_;
+};
+} // namespace Model
+} // namespace Config
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CONFIG_MODEL_CREATEAGGREGATEREMEDIATIONREQUEST_H_

+ 51 - 0
config/include/alibabacloud/config/model/CreateAggregateRemediationResult.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_CONFIG_MODEL_CREATEAGGREGATEREMEDIATIONRESULT_H_
+#define ALIBABACLOUD_CONFIG_MODEL_CREATEAGGREGATEREMEDIATIONRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/config/ConfigExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Config
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CONFIG_EXPORT CreateAggregateRemediationResult : public ServiceResult
+			{
+			public:
+
+
+				CreateAggregateRemediationResult();
+				explicit CreateAggregateRemediationResult(const std::string &payload);
+				~CreateAggregateRemediationResult();
+				std::string getRemediationId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string remediationId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CONFIG_MODEL_CREATEAGGREGATEREMEDIATIONRESULT_H_

+ 60 - 0
config/include/alibabacloud/config/model/CreateRemediationRequest.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_CONFIG_MODEL_CREATEREMEDIATIONREQUEST_H_
+#define ALIBABACLOUD_CONFIG_MODEL_CREATEREMEDIATIONREQUEST_H_
+
+#include <alibabacloud/config/ConfigExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Config {
+namespace Model {
+class ALIBABACLOUD_CONFIG_EXPORT CreateRemediationRequest : public RpcServiceRequest {
+public:
+	CreateRemediationRequest();
+	~CreateRemediationRequest();
+	std::string getConfigRuleId() const;
+	void setConfigRuleId(const std::string &configRuleId);
+	std::string getRemediationType() const;
+	void setRemediationType(const std::string &remediationType);
+	std::string getClientToken() const;
+	void setClientToken(const std::string &clientToken);
+	std::string getSourceType() const;
+	void setSourceType(const std::string &sourceType);
+	std::string getRemediationTemplateId() const;
+	void setRemediationTemplateId(const std::string &remediationTemplateId);
+	std::string getParams() const;
+	void setParams(const std::string &params);
+	std::string getInvokeType() const;
+	void setInvokeType(const std::string &invokeType);
+
+private:
+	std::string configRuleId_;
+	std::string remediationType_;
+	std::string clientToken_;
+	std::string sourceType_;
+	std::string remediationTemplateId_;
+	std::string params_;
+	std::string invokeType_;
+};
+} // namespace Model
+} // namespace Config
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CONFIG_MODEL_CREATEREMEDIATIONREQUEST_H_

+ 51 - 0
config/include/alibabacloud/config/model/CreateRemediationResult.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_CONFIG_MODEL_CREATEREMEDIATIONRESULT_H_
+#define ALIBABACLOUD_CONFIG_MODEL_CREATEREMEDIATIONRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/config/ConfigExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Config
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CONFIG_EXPORT CreateRemediationResult : public ServiceResult
+			{
+			public:
+
+
+				CreateRemediationResult();
+				explicit CreateRemediationResult(const std::string &payload);
+				~CreateRemediationResult();
+				std::string getRemediationId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string remediationId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CONFIG_MODEL_CREATEREMEDIATIONRESULT_H_

+ 45 - 0
config/include/alibabacloud/config/model/DeleteAggregateRemediationsRequest.h

@@ -0,0 +1,45 @@
+/*
+ * 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_CONFIG_MODEL_DELETEAGGREGATEREMEDIATIONSREQUEST_H_
+#define ALIBABACLOUD_CONFIG_MODEL_DELETEAGGREGATEREMEDIATIONSREQUEST_H_
+
+#include <alibabacloud/config/ConfigExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Config {
+namespace Model {
+class ALIBABACLOUD_CONFIG_EXPORT DeleteAggregateRemediationsRequest : public RpcServiceRequest {
+public:
+	DeleteAggregateRemediationsRequest();
+	~DeleteAggregateRemediationsRequest();
+	std::string getRemediationIds() const;
+	void setRemediationIds(const std::string &remediationIds);
+	std::string getAggregatorId() const;
+	void setAggregatorId(const std::string &aggregatorId);
+
+private:
+	std::string remediationIds_;
+	std::string aggregatorId_;
+};
+} // namespace Model
+} // namespace Config
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CONFIG_MODEL_DELETEAGGREGATEREMEDIATIONSREQUEST_H_

+ 57 - 0
config/include/alibabacloud/config/model/DeleteAggregateRemediationsResult.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_CONFIG_MODEL_DELETEAGGREGATEREMEDIATIONSRESULT_H_
+#define ALIBABACLOUD_CONFIG_MODEL_DELETEAGGREGATEREMEDIATIONSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/config/ConfigExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Config
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CONFIG_EXPORT DeleteAggregateRemediationsResult : public ServiceResult
+			{
+			public:
+				struct RemediationDeleteResult
+				{
+					std::string remediationId;
+					std::string errorMessage;
+					bool success;
+				};
+
+
+				DeleteAggregateRemediationsResult();
+				explicit DeleteAggregateRemediationsResult(const std::string &payload);
+				~DeleteAggregateRemediationsResult();
+				std::vector<RemediationDeleteResult> getRemediationDeleteResults()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<RemediationDeleteResult> remediationDeleteResults_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CONFIG_MODEL_DELETEAGGREGATEREMEDIATIONSRESULT_H_

+ 42 - 0
config/include/alibabacloud/config/model/DeleteRemediationsRequest.h

@@ -0,0 +1,42 @@
+/*
+ * 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_CONFIG_MODEL_DELETEREMEDIATIONSREQUEST_H_
+#define ALIBABACLOUD_CONFIG_MODEL_DELETEREMEDIATIONSREQUEST_H_
+
+#include <alibabacloud/config/ConfigExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Config {
+namespace Model {
+class ALIBABACLOUD_CONFIG_EXPORT DeleteRemediationsRequest : public RpcServiceRequest {
+public:
+	DeleteRemediationsRequest();
+	~DeleteRemediationsRequest();
+	std::string getRemediationIds() const;
+	void setRemediationIds(const std::string &remediationIds);
+
+private:
+	std::string remediationIds_;
+};
+} // namespace Model
+} // namespace Config
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CONFIG_MODEL_DELETEREMEDIATIONSREQUEST_H_

+ 57 - 0
config/include/alibabacloud/config/model/DeleteRemediationsResult.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_CONFIG_MODEL_DELETEREMEDIATIONSRESULT_H_
+#define ALIBABACLOUD_CONFIG_MODEL_DELETEREMEDIATIONSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/config/ConfigExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Config
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CONFIG_EXPORT DeleteRemediationsResult : public ServiceResult
+			{
+			public:
+				struct RemediationDeleteResult
+				{
+					std::string remediationId;
+					std::string errorMessage;
+					bool success;
+				};
+
+
+				DeleteRemediationsResult();
+				explicit DeleteRemediationsResult(const std::string &payload);
+				~DeleteRemediationsResult();
+				std::vector<RemediationDeleteResult> getRemediationDeleteResults()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<RemediationDeleteResult> remediationDeleteResults_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CONFIG_MODEL_DELETEREMEDIATIONSRESULT_H_

+ 54 - 0
config/include/alibabacloud/config/model/GetAggregateDiscoveredResourceRequest.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_CONFIG_MODEL_GETAGGREGATEDISCOVEREDRESOURCEREQUEST_H_
+#define ALIBABACLOUD_CONFIG_MODEL_GETAGGREGATEDISCOVEREDRESOURCEREQUEST_H_
+
+#include <alibabacloud/config/ConfigExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Config {
+namespace Model {
+class ALIBABACLOUD_CONFIG_EXPORT GetAggregateDiscoveredResourceRequest : public RpcServiceRequest {
+public:
+	GetAggregateDiscoveredResourceRequest();
+	~GetAggregateDiscoveredResourceRequest();
+	std::string getResourceId() const;
+	void setResourceId(const std::string &resourceId);
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getAggregatorId() const;
+	void setAggregatorId(const std::string &aggregatorId);
+	std::string getResourceType() const;
+	void setResourceType(const std::string &resourceType);
+	std::string getRegion() const;
+	void setRegion(const std::string &region);
+
+private:
+	std::string resourceId_;
+	long resourceOwnerId_;
+	std::string aggregatorId_;
+	std::string resourceType_;
+	std::string region_;
+};
+} // namespace Model
+} // namespace Config
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CONFIG_MODEL_GETAGGREGATEDISCOVEREDRESOURCEREQUEST_H_

+ 65 - 0
config/include/alibabacloud/config/model/GetAggregateDiscoveredResourceResult.h

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CONFIG_MODEL_GETAGGREGATEDISCOVEREDRESOURCERESULT_H_
+#define ALIBABACLOUD_CONFIG_MODEL_GETAGGREGATEDISCOVEREDRESOURCERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/config/ConfigExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Config
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CONFIG_EXPORT GetAggregateDiscoveredResourceResult : public ServiceResult
+			{
+			public:
+				struct DiscoveredResourceDetail
+				{
+					long resourceCreationTime;
+					long accountId;
+					std::string configuration;
+					std::string resourceId;
+					std::string resourceName;
+					std::string availabilityZone;
+					std::string region;
+					std::string resourceStatus;
+					std::string resourceType;
+					std::string tags;
+					int resourceDeleted;
+				};
+
+
+				GetAggregateDiscoveredResourceResult();
+				explicit GetAggregateDiscoveredResourceResult(const std::string &payload);
+				~GetAggregateDiscoveredResourceResult();
+				DiscoveredResourceDetail getDiscoveredResourceDetail()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				DiscoveredResourceDetail discoveredResourceDetail_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CONFIG_MODEL_GETAGGREGATEDISCOVEREDRESOURCERESULT_H_

+ 3 - 0
config/include/alibabacloud/config/model/GetAggregateResourceComplianceByConfigRuleRequest.h

@@ -32,6 +32,8 @@ public:
 	~GetAggregateResourceComplianceByConfigRuleRequest();
 	std::string getConfigRuleId() const;
 	void setConfigRuleId(const std::string &configRuleId);
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
 	std::string getAggregatorId() const;
 	void setAggregatorId(const std::string &aggregatorId);
 	std::string getComplianceType() const;
@@ -39,6 +41,7 @@ public:
 
 private:
 	std::string configRuleId_;
+	long resourceOwnerId_;
 	std::string aggregatorId_;
 	std::string complianceType_;
 };

+ 48 - 0
config/include/alibabacloud/config/model/GetDiscoveredResourceRequest.h

@@ -0,0 +1,48 @@
+/*
+ * 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_CONFIG_MODEL_GETDISCOVEREDRESOURCEREQUEST_H_
+#define ALIBABACLOUD_CONFIG_MODEL_GETDISCOVEREDRESOURCEREQUEST_H_
+
+#include <alibabacloud/config/ConfigExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Config {
+namespace Model {
+class ALIBABACLOUD_CONFIG_EXPORT GetDiscoveredResourceRequest : public RpcServiceRequest {
+public:
+	GetDiscoveredResourceRequest();
+	~GetDiscoveredResourceRequest();
+	std::string getResourceId() const;
+	void setResourceId(const std::string &resourceId);
+	std::string getResourceType() const;
+	void setResourceType(const std::string &resourceType);
+	std::string getRegion() const;
+	void setRegion(const std::string &region);
+
+private:
+	std::string resourceId_;
+	std::string resourceType_;
+	std::string region_;
+};
+} // namespace Model
+} // namespace Config
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CONFIG_MODEL_GETDISCOVEREDRESOURCEREQUEST_H_

+ 65 - 0
config/include/alibabacloud/config/model/GetDiscoveredResourceResult.h

@@ -0,0 +1,65 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CONFIG_MODEL_GETDISCOVEREDRESOURCERESULT_H_
+#define ALIBABACLOUD_CONFIG_MODEL_GETDISCOVEREDRESOURCERESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/config/ConfigExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Config
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CONFIG_EXPORT GetDiscoveredResourceResult : public ServiceResult
+			{
+			public:
+				struct DiscoveredResourceDetail
+				{
+					long resourceCreationTime;
+					long accountId;
+					std::string configuration;
+					std::string resourceId;
+					std::string resourceName;
+					std::string availabilityZone;
+					std::string region;
+					std::string resourceStatus;
+					std::string resourceType;
+					std::string tags;
+					int resourceDeleted;
+				};
+
+
+				GetDiscoveredResourceResult();
+				explicit GetDiscoveredResourceResult(const std::string &payload);
+				~GetDiscoveredResourceResult();
+				DiscoveredResourceDetail getDiscoveredResourceDetail()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				DiscoveredResourceDetail discoveredResourceDetail_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CONFIG_MODEL_GETDISCOVEREDRESOURCERESULT_H_

+ 66 - 0
config/include/alibabacloud/config/model/ListAggregateDiscoveredResourcesRequest.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CONFIG_MODEL_LISTAGGREGATEDISCOVEREDRESOURCESREQUEST_H_
+#define ALIBABACLOUD_CONFIG_MODEL_LISTAGGREGATEDISCOVEREDRESOURCESREQUEST_H_
+
+#include <alibabacloud/config/ConfigExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Config {
+namespace Model {
+class ALIBABACLOUD_CONFIG_EXPORT ListAggregateDiscoveredResourcesRequest : public RpcServiceRequest {
+public:
+	ListAggregateDiscoveredResourcesRequest();
+	~ListAggregateDiscoveredResourcesRequest();
+	int getResourceDeleted() const;
+	void setResourceDeleted(int resourceDeleted);
+	long getResourceOwnerId() const;
+	void setResourceOwnerId(long resourceOwnerId);
+	std::string getRegions() const;
+	void setRegions(const std::string &regions);
+	std::string getAggregatorId() const;
+	void setAggregatorId(const std::string &aggregatorId);
+	std::string getFolderId() const;
+	void setFolderId(const std::string &folderId);
+	std::string getNextToken() const;
+	void setNextToken(const std::string &nextToken);
+	std::string getResourceId() const;
+	void setResourceId(const std::string &resourceId);
+	std::string getResourceTypes() const;
+	void setResourceTypes(const std::string &resourceTypes);
+	int getMaxResults() const;
+	void setMaxResults(int maxResults);
+
+private:
+	int resourceDeleted_;
+	long resourceOwnerId_;
+	std::string regions_;
+	std::string aggregatorId_;
+	std::string folderId_;
+	std::string nextToken_;
+	std::string resourceId_;
+	std::string resourceTypes_;
+	int maxResults_;
+};
+} // namespace Model
+} // namespace Config
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CONFIG_MODEL_LISTAGGREGATEDISCOVEREDRESOURCESREQUEST_H_

+ 71 - 0
config/include/alibabacloud/config/model/ListAggregateDiscoveredResourcesResult.h

@@ -0,0 +1,71 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CONFIG_MODEL_LISTAGGREGATEDISCOVEREDRESOURCESRESULT_H_
+#define ALIBABACLOUD_CONFIG_MODEL_LISTAGGREGATEDISCOVEREDRESOURCESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/config/ConfigExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Config
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CONFIG_EXPORT ListAggregateDiscoveredResourcesResult : public ServiceResult
+			{
+			public:
+				struct DiscoveredResourceProfiles
+				{
+					struct DiscoveredResourceProfile
+					{
+						long resourceCreationTime;
+						long accountId;
+						std::string resourceId;
+						std::string resourceName;
+						std::string region;
+						std::string resourceStatus;
+						std::string resourceType;
+						long resourceOwnerId;
+						std::string tags;
+						int resourceDeleted;
+					};
+					std::string previousToken;
+					std::string nextToken;
+					int maxResults;
+					std::vector<DiscoveredResourceProfile> discoveredResourceProfileList;
+				};
+
+
+				ListAggregateDiscoveredResourcesResult();
+				explicit ListAggregateDiscoveredResourcesResult(const std::string &payload);
+				~ListAggregateDiscoveredResourcesResult();
+				DiscoveredResourceProfiles getDiscoveredResourceProfiles()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				DiscoveredResourceProfiles discoveredResourceProfiles_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CONFIG_MODEL_LISTAGGREGATEDISCOVEREDRESOURCESRESULT_H_

+ 45 - 0
config/include/alibabacloud/config/model/ListAggregateRemediationsRequest.h

@@ -0,0 +1,45 @@
+/*
+ * 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_CONFIG_MODEL_LISTAGGREGATEREMEDIATIONSREQUEST_H_
+#define ALIBABACLOUD_CONFIG_MODEL_LISTAGGREGATEREMEDIATIONSREQUEST_H_
+
+#include <alibabacloud/config/ConfigExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Config {
+namespace Model {
+class ALIBABACLOUD_CONFIG_EXPORT ListAggregateRemediationsRequest : public RpcServiceRequest {
+public:
+	ListAggregateRemediationsRequest();
+	~ListAggregateRemediationsRequest();
+	std::string getConfigRuleIds() const;
+	void setConfigRuleIds(const std::string &configRuleIds);
+	std::string getAggregatorId() const;
+	void setAggregatorId(const std::string &aggregatorId);
+
+private:
+	std::string configRuleIds_;
+	std::string aggregatorId_;
+};
+} // namespace Model
+} // namespace Config
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CONFIG_MODEL_LISTAGGREGATEREMEDIATIONSREQUEST_H_

+ 66 - 0
config/include/alibabacloud/config/model/ListAggregateRemediationsResult.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CONFIG_MODEL_LISTAGGREGATEREMEDIATIONSRESULT_H_
+#define ALIBABACLOUD_CONFIG_MODEL_LISTAGGREGATEREMEDIATIONSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/config/ConfigExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Config
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CONFIG_EXPORT ListAggregateRemediationsResult : public ServiceResult
+			{
+			public:
+				struct Remediation
+				{
+					std::string lastSuccessfulInvocationType;
+					std::string configRuleId;
+					std::string remediationTemplateId;
+					long accountId;
+					std::string remediationSourceType;
+					long lastSuccessfulInvocationTime;
+					std::string invokeType;
+					std::string remediationId;
+					std::string lastSuccessfulInvocationId;
+					std::string remediationDynamicParams;
+					std::string remediationType;
+					std::string aggregatorId;
+				};
+
+
+				ListAggregateRemediationsResult();
+				explicit ListAggregateRemediationsResult(const std::string &payload);
+				~ListAggregateRemediationsResult();
+				std::vector<Remediation> getRemediations()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Remediation> remediations_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CONFIG_MODEL_LISTAGGREGATEREMEDIATIONSRESULT_H_

+ 57 - 0
config/include/alibabacloud/config/model/ListDiscoveredResourcesRequest.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_CONFIG_MODEL_LISTDISCOVEREDRESOURCESREQUEST_H_
+#define ALIBABACLOUD_CONFIG_MODEL_LISTDISCOVEREDRESOURCESREQUEST_H_
+
+#include <alibabacloud/config/ConfigExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Config {
+namespace Model {
+class ALIBABACLOUD_CONFIG_EXPORT ListDiscoveredResourcesRequest : public RpcServiceRequest {
+public:
+	ListDiscoveredResourcesRequest();
+	~ListDiscoveredResourcesRequest();
+	int getResourceDeleted() const;
+	void setResourceDeleted(int resourceDeleted);
+	std::string getResourceId() const;
+	void setResourceId(const std::string &resourceId);
+	std::string getRegions() const;
+	void setRegions(const std::string &regions);
+	std::string getResourceTypes() const;
+	void setResourceTypes(const std::string &resourceTypes);
+	std::string getNextToken() const;
+	void setNextToken(const std::string &nextToken);
+	int getMaxResults() const;
+	void setMaxResults(int maxResults);
+
+private:
+	int resourceDeleted_;
+	std::string resourceId_;
+	std::string regions_;
+	std::string resourceTypes_;
+	std::string nextToken_;
+	int maxResults_;
+};
+} // namespace Model
+} // namespace Config
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CONFIG_MODEL_LISTDISCOVEREDRESOURCESREQUEST_H_

+ 70 - 0
config/include/alibabacloud/config/model/ListDiscoveredResourcesResult.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_CONFIG_MODEL_LISTDISCOVEREDRESOURCESRESULT_H_
+#define ALIBABACLOUD_CONFIG_MODEL_LISTDISCOVEREDRESOURCESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/config/ConfigExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Config
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CONFIG_EXPORT ListDiscoveredResourcesResult : public ServiceResult
+			{
+			public:
+				struct DiscoveredResourceProfiles
+				{
+					struct DiscoveredResourceProfile
+					{
+						long resourceCreationTime;
+						long accountId;
+						std::string resourceId;
+						std::string resourceName;
+						std::string region;
+						std::string resourceStatus;
+						std::string resourceType;
+						std::string tags;
+						int resourceDeleted;
+					};
+					std::string previousToken;
+					std::string nextToken;
+					int maxResults;
+					std::vector<DiscoveredResourceProfile> discoveredResourceProfileList;
+				};
+
+
+				ListDiscoveredResourcesResult();
+				explicit ListDiscoveredResourcesResult(const std::string &payload);
+				~ListDiscoveredResourcesResult();
+				DiscoveredResourceProfiles getDiscoveredResourceProfiles()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				DiscoveredResourceProfiles discoveredResourceProfiles_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CONFIG_MODEL_LISTDISCOVEREDRESOURCESRESULT_H_

+ 45 - 0
config/include/alibabacloud/config/model/ListRemediationTemplatesRequest.h

@@ -0,0 +1,45 @@
+/*
+ * 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_CONFIG_MODEL_LISTREMEDIATIONTEMPLATESREQUEST_H_
+#define ALIBABACLOUD_CONFIG_MODEL_LISTREMEDIATIONTEMPLATESREQUEST_H_
+
+#include <alibabacloud/config/ConfigExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Config {
+namespace Model {
+class ALIBABACLOUD_CONFIG_EXPORT ListRemediationTemplatesRequest : public RpcServiceRequest {
+public:
+	ListRemediationTemplatesRequest();
+	~ListRemediationTemplatesRequest();
+	std::string getManagedRuleIdentifier() const;
+	void setManagedRuleIdentifier(const std::string &managedRuleIdentifier);
+	std::string getRemediationType() const;
+	void setRemediationType(const std::string &remediationType);
+
+private:
+	std::string managedRuleIdentifier_;
+	std::string remediationType_;
+};
+} // namespace Model
+} // namespace Config
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CONFIG_MODEL_LISTREMEDIATIONTEMPLATESREQUEST_H_

+ 59 - 0
config/include/alibabacloud/config/model/ListRemediationTemplatesResult.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_CONFIG_MODEL_LISTREMEDIATIONTEMPLATESRESULT_H_
+#define ALIBABACLOUD_CONFIG_MODEL_LISTREMEDIATIONTEMPLATESRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/config/ConfigExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Config
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CONFIG_EXPORT ListRemediationTemplatesResult : public ServiceResult
+			{
+			public:
+				struct RemediationTemplate
+				{
+					std::string templateIdentifier;
+					std::string compulsoryParameters;
+					std::string templateName;
+					std::string templateDefinition;
+					std::string remediationType;
+				};
+
+
+				ListRemediationTemplatesResult();
+				explicit ListRemediationTemplatesResult(const std::string &payload);
+				~ListRemediationTemplatesResult();
+				std::vector<RemediationTemplate> getRemediationTemplates()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<RemediationTemplate> remediationTemplates_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CONFIG_MODEL_LISTREMEDIATIONTEMPLATESRESULT_H_

+ 42 - 0
config/include/alibabacloud/config/model/ListRemediationsRequest.h

@@ -0,0 +1,42 @@
+/*
+ * 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_CONFIG_MODEL_LISTREMEDIATIONSREQUEST_H_
+#define ALIBABACLOUD_CONFIG_MODEL_LISTREMEDIATIONSREQUEST_H_
+
+#include <alibabacloud/config/ConfigExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Config {
+namespace Model {
+class ALIBABACLOUD_CONFIG_EXPORT ListRemediationsRequest : public RpcServiceRequest {
+public:
+	ListRemediationsRequest();
+	~ListRemediationsRequest();
+	std::string getConfigRuleIds() const;
+	void setConfigRuleIds(const std::string &configRuleIds);
+
+private:
+	std::string configRuleIds_;
+};
+} // namespace Model
+} // namespace Config
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CONFIG_MODEL_LISTREMEDIATIONSREQUEST_H_

+ 66 - 0
config/include/alibabacloud/config/model/ListRemediationsResult.h

@@ -0,0 +1,66 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef ALIBABACLOUD_CONFIG_MODEL_LISTREMEDIATIONSRESULT_H_
+#define ALIBABACLOUD_CONFIG_MODEL_LISTREMEDIATIONSRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/config/ConfigExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Config
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CONFIG_EXPORT ListRemediationsResult : public ServiceResult
+			{
+			public:
+				struct Remediation
+				{
+					std::string lastSuccessfulInvocationType;
+					std::string configRuleId;
+					std::string remediationTemplateId;
+					long accountId;
+					std::string remediationSourceType;
+					long lastSuccessfulInvocationTime;
+					std::string invokeType;
+					std::string remediationOriginParams;
+					std::string remediationId;
+					std::string lastSuccessfulInvocationId;
+					std::string remediationDynamicParams;
+					std::string remediationType;
+				};
+
+
+				ListRemediationsResult();
+				explicit ListRemediationsResult(const std::string &payload);
+				~ListRemediationsResult();
+				std::vector<Remediation> getRemediations()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::vector<Remediation> remediations_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CONFIG_MODEL_LISTREMEDIATIONSRESULT_H_

+ 45 - 0
config/include/alibabacloud/config/model/StartAggregateRemediationRequest.h

@@ -0,0 +1,45 @@
+/*
+ * 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_CONFIG_MODEL_STARTAGGREGATEREMEDIATIONREQUEST_H_
+#define ALIBABACLOUD_CONFIG_MODEL_STARTAGGREGATEREMEDIATIONREQUEST_H_
+
+#include <alibabacloud/config/ConfigExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Config {
+namespace Model {
+class ALIBABACLOUD_CONFIG_EXPORT StartAggregateRemediationRequest : public RpcServiceRequest {
+public:
+	StartAggregateRemediationRequest();
+	~StartAggregateRemediationRequest();
+	std::string getConfigRuleId() const;
+	void setConfigRuleId(const std::string &configRuleId);
+	std::string getAggregatorId() const;
+	void setAggregatorId(const std::string &aggregatorId);
+
+private:
+	std::string configRuleId_;
+	std::string aggregatorId_;
+};
+} // namespace Model
+} // namespace Config
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CONFIG_MODEL_STARTAGGREGATEREMEDIATIONREQUEST_H_

+ 51 - 0
config/include/alibabacloud/config/model/StartAggregateRemediationResult.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_CONFIG_MODEL_STARTAGGREGATEREMEDIATIONRESULT_H_
+#define ALIBABACLOUD_CONFIG_MODEL_STARTAGGREGATEREMEDIATIONRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/config/ConfigExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Config
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CONFIG_EXPORT StartAggregateRemediationResult : public ServiceResult
+			{
+			public:
+
+
+				StartAggregateRemediationResult();
+				explicit StartAggregateRemediationResult(const std::string &payload);
+				~StartAggregateRemediationResult();
+				bool getData()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				bool data_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CONFIG_MODEL_STARTAGGREGATEREMEDIATIONRESULT_H_

+ 42 - 0
config/include/alibabacloud/config/model/StartRemediationRequest.h

@@ -0,0 +1,42 @@
+/*
+ * 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_CONFIG_MODEL_STARTREMEDIATIONREQUEST_H_
+#define ALIBABACLOUD_CONFIG_MODEL_STARTREMEDIATIONREQUEST_H_
+
+#include <alibabacloud/config/ConfigExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Config {
+namespace Model {
+class ALIBABACLOUD_CONFIG_EXPORT StartRemediationRequest : public RpcServiceRequest {
+public:
+	StartRemediationRequest();
+	~StartRemediationRequest();
+	std::string getConfigRuleId() const;
+	void setConfigRuleId(const std::string &configRuleId);
+
+private:
+	std::string configRuleId_;
+};
+} // namespace Model
+} // namespace Config
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CONFIG_MODEL_STARTREMEDIATIONREQUEST_H_

+ 51 - 0
config/include/alibabacloud/config/model/StartRemediationResult.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_CONFIG_MODEL_STARTREMEDIATIONRESULT_H_
+#define ALIBABACLOUD_CONFIG_MODEL_STARTREMEDIATIONRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/config/ConfigExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Config
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CONFIG_EXPORT StartRemediationResult : public ServiceResult
+			{
+			public:
+
+
+				StartRemediationResult();
+				explicit StartRemediationResult(const std::string &payload);
+				~StartRemediationResult();
+				bool getData()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				bool data_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CONFIG_MODEL_STARTREMEDIATIONRESULT_H_

+ 60 - 0
config/include/alibabacloud/config/model/UpdateAggregateRemediationRequest.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_CONFIG_MODEL_UPDATEAGGREGATEREMEDIATIONREQUEST_H_
+#define ALIBABACLOUD_CONFIG_MODEL_UPDATEAGGREGATEREMEDIATIONREQUEST_H_
+
+#include <alibabacloud/config/ConfigExport.h>
+#include <alibabacloud/core/RpcServiceRequest.h>
+#include <string>
+#include <vector>
+#include <map>
+
+namespace AlibabaCloud {
+namespace Config {
+namespace Model {
+class ALIBABACLOUD_CONFIG_EXPORT UpdateAggregateRemediationRequest : public RpcServiceRequest {
+public:
+	UpdateAggregateRemediationRequest();
+	~UpdateAggregateRemediationRequest();
+	std::string getRemediationType() const;
+	void setRemediationType(const std::string &remediationType);
+	std::string getRemediationId() const;
+	void setRemediationId(const std::string &remediationId);
+	std::string getAggregatorId() const;
+	void setAggregatorId(const std::string &aggregatorId);
+	std::string getSourceType() const;
+	void setSourceType(const std::string &sourceType);
+	std::string getRemediationTemplateId() const;
+	void setRemediationTemplateId(const std::string &remediationTemplateId);
+	std::string getParams() const;
+	void setParams(const std::string &params);
+	std::string getInvokeType() const;
+	void setInvokeType(const std::string &invokeType);
+
+private:
+	std::string remediationType_;
+	std::string remediationId_;
+	std::string aggregatorId_;
+	std::string sourceType_;
+	std::string remediationTemplateId_;
+	std::string params_;
+	std::string invokeType_;
+};
+} // namespace Model
+} // namespace Config
+} // namespace AlibabaCloud
+#endif // !ALIBABACLOUD_CONFIG_MODEL_UPDATEAGGREGATEREMEDIATIONREQUEST_H_

+ 51 - 0
config/include/alibabacloud/config/model/UpdateAggregateRemediationResult.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_CONFIG_MODEL_UPDATEAGGREGATEREMEDIATIONRESULT_H_
+#define ALIBABACLOUD_CONFIG_MODEL_UPDATEAGGREGATEREMEDIATIONRESULT_H_
+
+#include <string>
+#include <vector>
+#include <utility>
+#include <alibabacloud/core/ServiceResult.h>
+#include <alibabacloud/config/ConfigExport.h>
+
+namespace AlibabaCloud
+{
+	namespace Config
+	{
+		namespace Model
+		{
+			class ALIBABACLOUD_CONFIG_EXPORT UpdateAggregateRemediationResult : public ServiceResult
+			{
+			public:
+
+
+				UpdateAggregateRemediationResult();
+				explicit UpdateAggregateRemediationResult(const std::string &payload);
+				~UpdateAggregateRemediationResult();
+				std::string getRemediationId()const;
+
+			protected:
+				void parse(const std::string &payload);
+			private:
+				std::string remediationId_;
+
+			};
+		}
+	}
+}
+#endif // !ALIBABACLOUD_CONFIG_MODEL_UPDATEAGGREGATEREMEDIATIONRESULT_H_

+ 504 - 0
config/src/ConfigClient.cc

@@ -231,6 +231,42 @@ ConfigClient::CreateAggregateConfigRuleOutcomeCallable ConfigClient::createAggre
 	return task->get_future();
 }
 
+ConfigClient::CreateAggregateRemediationOutcome ConfigClient::createAggregateRemediation(const CreateAggregateRemediationRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateAggregateRemediationOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateAggregateRemediationOutcome(CreateAggregateRemediationResult(outcome.result()));
+	else
+		return CreateAggregateRemediationOutcome(outcome.error());
+}
+
+void ConfigClient::createAggregateRemediationAsync(const CreateAggregateRemediationRequest& request, const CreateAggregateRemediationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createAggregateRemediation(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ConfigClient::CreateAggregateRemediationOutcomeCallable ConfigClient::createAggregateRemediationCallable(const CreateAggregateRemediationRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateAggregateRemediationOutcome()>>(
+			[this, request]()
+			{
+			return this->createAggregateRemediation(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 ConfigClient::CreateAggregatorOutcome ConfigClient::createAggregator(const CreateAggregatorRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -339,6 +375,42 @@ ConfigClient::CreateConfigRuleOutcomeCallable ConfigClient::createConfigRuleCall
 	return task->get_future();
 }
 
+ConfigClient::CreateRemediationOutcome ConfigClient::createRemediation(const CreateRemediationRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return CreateRemediationOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return CreateRemediationOutcome(CreateRemediationResult(outcome.result()));
+	else
+		return CreateRemediationOutcome(outcome.error());
+}
+
+void ConfigClient::createRemediationAsync(const CreateRemediationRequest& request, const CreateRemediationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, createRemediation(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ConfigClient::CreateRemediationOutcomeCallable ConfigClient::createRemediationCallable(const CreateRemediationRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<CreateRemediationOutcome()>>(
+			[this, request]()
+			{
+			return this->createRemediation(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 ConfigClient::DeactiveAggregateConfigRulesOutcome ConfigClient::deactiveAggregateConfigRules(const DeactiveAggregateConfigRulesRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -483,6 +555,42 @@ ConfigClient::DeleteAggregateConfigRulesOutcomeCallable ConfigClient::deleteAggr
 	return task->get_future();
 }
 
+ConfigClient::DeleteAggregateRemediationsOutcome ConfigClient::deleteAggregateRemediations(const DeleteAggregateRemediationsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteAggregateRemediationsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteAggregateRemediationsOutcome(DeleteAggregateRemediationsResult(outcome.result()));
+	else
+		return DeleteAggregateRemediationsOutcome(outcome.error());
+}
+
+void ConfigClient::deleteAggregateRemediationsAsync(const DeleteAggregateRemediationsRequest& request, const DeleteAggregateRemediationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteAggregateRemediations(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ConfigClient::DeleteAggregateRemediationsOutcomeCallable ConfigClient::deleteAggregateRemediationsCallable(const DeleteAggregateRemediationsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteAggregateRemediationsOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteAggregateRemediations(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 ConfigClient::DeleteAggregatorsOutcome ConfigClient::deleteAggregators(const DeleteAggregatorsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -555,6 +663,42 @@ ConfigClient::DeleteCompliancePacksOutcomeCallable ConfigClient::deleteComplianc
 	return task->get_future();
 }
 
+ConfigClient::DeleteRemediationsOutcome ConfigClient::deleteRemediations(const DeleteRemediationsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return DeleteRemediationsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return DeleteRemediationsOutcome(DeleteRemediationsResult(outcome.result()));
+	else
+		return DeleteRemediationsOutcome(outcome.error());
+}
+
+void ConfigClient::deleteRemediationsAsync(const DeleteRemediationsRequest& request, const DeleteRemediationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, deleteRemediations(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ConfigClient::DeleteRemediationsOutcomeCallable ConfigClient::deleteRemediationsCallable(const DeleteRemediationsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<DeleteRemediationsOutcome()>>(
+			[this, request]()
+			{
+			return this->deleteRemediations(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 ConfigClient::DetachAggregateConfigRuleToCompliancePackOutcome ConfigClient::detachAggregateConfigRuleToCompliancePack(const DetachAggregateConfigRuleToCompliancePackRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1023,6 +1167,42 @@ ConfigClient::GetAggregateConfigRulesReportOutcomeCallable ConfigClient::getAggr
 	return task->get_future();
 }
 
+ConfigClient::GetAggregateDiscoveredResourceOutcome ConfigClient::getAggregateDiscoveredResource(const GetAggregateDiscoveredResourceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetAggregateDiscoveredResourceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetAggregateDiscoveredResourceOutcome(GetAggregateDiscoveredResourceResult(outcome.result()));
+	else
+		return GetAggregateDiscoveredResourceOutcome(outcome.error());
+}
+
+void ConfigClient::getAggregateDiscoveredResourceAsync(const GetAggregateDiscoveredResourceRequest& request, const GetAggregateDiscoveredResourceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getAggregateDiscoveredResource(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ConfigClient::GetAggregateDiscoveredResourceOutcomeCallable ConfigClient::getAggregateDiscoveredResourceCallable(const GetAggregateDiscoveredResourceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetAggregateDiscoveredResourceOutcome()>>(
+			[this, request]()
+			{
+			return this->getAggregateDiscoveredResource(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 ConfigClient::GetAggregateResourceComplianceByConfigRuleOutcome ConfigClient::getAggregateResourceComplianceByConfigRule(const GetAggregateResourceComplianceByConfigRuleRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -1563,6 +1743,42 @@ ConfigClient::GetConfigRulesReportOutcomeCallable ConfigClient::getConfigRulesRe
 	return task->get_future();
 }
 
+ConfigClient::GetDiscoveredResourceOutcome ConfigClient::getDiscoveredResource(const GetDiscoveredResourceRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return GetDiscoveredResourceOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return GetDiscoveredResourceOutcome(GetDiscoveredResourceResult(outcome.result()));
+	else
+		return GetDiscoveredResourceOutcome(outcome.error());
+}
+
+void ConfigClient::getDiscoveredResourceAsync(const GetDiscoveredResourceRequest& request, const GetDiscoveredResourceAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, getDiscoveredResource(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ConfigClient::GetDiscoveredResourceOutcomeCallable ConfigClient::getDiscoveredResourceCallable(const GetDiscoveredResourceRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<GetDiscoveredResourceOutcome()>>(
+			[this, request]()
+			{
+			return this->getDiscoveredResource(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 ConfigClient::GetDiscoveredResourceCountsGroupByRegionOutcome ConfigClient::getDiscoveredResourceCountsGroupByRegion(const GetDiscoveredResourceCountsGroupByRegionRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2067,6 +2283,78 @@ ConfigClient::ListAggregateConfigRulesOutcomeCallable ConfigClient::listAggregat
 	return task->get_future();
 }
 
+ConfigClient::ListAggregateDiscoveredResourcesOutcome ConfigClient::listAggregateDiscoveredResources(const ListAggregateDiscoveredResourcesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListAggregateDiscoveredResourcesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListAggregateDiscoveredResourcesOutcome(ListAggregateDiscoveredResourcesResult(outcome.result()));
+	else
+		return ListAggregateDiscoveredResourcesOutcome(outcome.error());
+}
+
+void ConfigClient::listAggregateDiscoveredResourcesAsync(const ListAggregateDiscoveredResourcesRequest& request, const ListAggregateDiscoveredResourcesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listAggregateDiscoveredResources(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ConfigClient::ListAggregateDiscoveredResourcesOutcomeCallable ConfigClient::listAggregateDiscoveredResourcesCallable(const ListAggregateDiscoveredResourcesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListAggregateDiscoveredResourcesOutcome()>>(
+			[this, request]()
+			{
+			return this->listAggregateDiscoveredResources(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+ConfigClient::ListAggregateRemediationsOutcome ConfigClient::listAggregateRemediations(const ListAggregateRemediationsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListAggregateRemediationsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListAggregateRemediationsOutcome(ListAggregateRemediationsResult(outcome.result()));
+	else
+		return ListAggregateRemediationsOutcome(outcome.error());
+}
+
+void ConfigClient::listAggregateRemediationsAsync(const ListAggregateRemediationsRequest& request, const ListAggregateRemediationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listAggregateRemediations(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ConfigClient::ListAggregateRemediationsOutcomeCallable ConfigClient::listAggregateRemediationsCallable(const ListAggregateRemediationsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListAggregateRemediationsOutcome()>>(
+			[this, request]()
+			{
+			return this->listAggregateRemediations(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 ConfigClient::ListAggregateResourceEvaluationResultsOutcome ConfigClient::listAggregateResourceEvaluationResults(const ListAggregateResourceEvaluationResultsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2247,6 +2535,42 @@ ConfigClient::ListConfigRuleEvaluationResultsOutcomeCallable ConfigClient::listC
 	return task->get_future();
 }
 
+ConfigClient::ListDiscoveredResourcesOutcome ConfigClient::listDiscoveredResources(const ListDiscoveredResourcesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListDiscoveredResourcesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListDiscoveredResourcesOutcome(ListDiscoveredResourcesResult(outcome.result()));
+	else
+		return ListDiscoveredResourcesOutcome(outcome.error());
+}
+
+void ConfigClient::listDiscoveredResourcesAsync(const ListDiscoveredResourcesRequest& request, const ListDiscoveredResourcesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listDiscoveredResources(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ConfigClient::ListDiscoveredResourcesOutcomeCallable ConfigClient::listDiscoveredResourcesCallable(const ListDiscoveredResourcesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListDiscoveredResourcesOutcome()>>(
+			[this, request]()
+			{
+			return this->listDiscoveredResources(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 ConfigClient::ListManagedRulesOutcome ConfigClient::listManagedRules(const ListManagedRulesRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2283,6 +2607,78 @@ ConfigClient::ListManagedRulesOutcomeCallable ConfigClient::listManagedRulesCall
 	return task->get_future();
 }
 
+ConfigClient::ListRemediationTemplatesOutcome ConfigClient::listRemediationTemplates(const ListRemediationTemplatesRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListRemediationTemplatesOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListRemediationTemplatesOutcome(ListRemediationTemplatesResult(outcome.result()));
+	else
+		return ListRemediationTemplatesOutcome(outcome.error());
+}
+
+void ConfigClient::listRemediationTemplatesAsync(const ListRemediationTemplatesRequest& request, const ListRemediationTemplatesAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listRemediationTemplates(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ConfigClient::ListRemediationTemplatesOutcomeCallable ConfigClient::listRemediationTemplatesCallable(const ListRemediationTemplatesRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListRemediationTemplatesOutcome()>>(
+			[this, request]()
+			{
+			return this->listRemediationTemplates(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+ConfigClient::ListRemediationsOutcome ConfigClient::listRemediations(const ListRemediationsRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return ListRemediationsOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return ListRemediationsOutcome(ListRemediationsResult(outcome.result()));
+	else
+		return ListRemediationsOutcome(outcome.error());
+}
+
+void ConfigClient::listRemediationsAsync(const ListRemediationsRequest& request, const ListRemediationsAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, listRemediations(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ConfigClient::ListRemediationsOutcomeCallable ConfigClient::listRemediationsCallable(const ListRemediationsRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<ListRemediationsOutcome()>>(
+			[this, request]()
+			{
+			return this->listRemediations(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 ConfigClient::ListResourceEvaluationResultsOutcome ConfigClient::listResourceEvaluationResults(const ListResourceEvaluationResultsRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2427,6 +2823,78 @@ ConfigClient::StartAggregateConfigRuleEvaluationOutcomeCallable ConfigClient::st
 	return task->get_future();
 }
 
+ConfigClient::StartAggregateRemediationOutcome ConfigClient::startAggregateRemediation(const StartAggregateRemediationRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return StartAggregateRemediationOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return StartAggregateRemediationOutcome(StartAggregateRemediationResult(outcome.result()));
+	else
+		return StartAggregateRemediationOutcome(outcome.error());
+}
+
+void ConfigClient::startAggregateRemediationAsync(const StartAggregateRemediationRequest& request, const StartAggregateRemediationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, startAggregateRemediation(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ConfigClient::StartAggregateRemediationOutcomeCallable ConfigClient::startAggregateRemediationCallable(const StartAggregateRemediationRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<StartAggregateRemediationOutcome()>>(
+			[this, request]()
+			{
+			return this->startAggregateRemediation(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
+ConfigClient::StartRemediationOutcome ConfigClient::startRemediation(const StartRemediationRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return StartRemediationOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return StartRemediationOutcome(StartRemediationResult(outcome.result()));
+	else
+		return StartRemediationOutcome(outcome.error());
+}
+
+void ConfigClient::startRemediationAsync(const StartRemediationRequest& request, const StartRemediationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, startRemediation(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ConfigClient::StartRemediationOutcomeCallable ConfigClient::startRemediationCallable(const StartRemediationRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<StartRemediationOutcome()>>(
+			[this, request]()
+			{
+			return this->startRemediation(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 ConfigClient::UpdateAggregateCompliancePackOutcome ConfigClient::updateAggregateCompliancePack(const UpdateAggregateCompliancePackRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();
@@ -2499,6 +2967,42 @@ ConfigClient::UpdateAggregateConfigRuleOutcomeCallable ConfigClient::updateAggre
 	return task->get_future();
 }
 
+ConfigClient::UpdateAggregateRemediationOutcome ConfigClient::updateAggregateRemediation(const UpdateAggregateRemediationRequest &request) const
+{
+	auto endpointOutcome = endpointProvider_->getEndpoint();
+	if (!endpointOutcome.isSuccess())
+		return UpdateAggregateRemediationOutcome(endpointOutcome.error());
+
+	auto outcome = makeRequest(endpointOutcome.result(), request);
+
+	if (outcome.isSuccess())
+		return UpdateAggregateRemediationOutcome(UpdateAggregateRemediationResult(outcome.result()));
+	else
+		return UpdateAggregateRemediationOutcome(outcome.error());
+}
+
+void ConfigClient::updateAggregateRemediationAsync(const UpdateAggregateRemediationRequest& request, const UpdateAggregateRemediationAsyncHandler& handler, const std::shared_ptr<const AsyncCallerContext>& context) const
+{
+	auto fn = [this, request, handler, context]()
+	{
+		handler(this, request, updateAggregateRemediation(request), context);
+	};
+
+	asyncExecute(new Runnable(fn));
+}
+
+ConfigClient::UpdateAggregateRemediationOutcomeCallable ConfigClient::updateAggregateRemediationCallable(const UpdateAggregateRemediationRequest &request) const
+{
+	auto task = std::make_shared<std::packaged_task<UpdateAggregateRemediationOutcome()>>(
+			[this, request]()
+			{
+			return this->updateAggregateRemediation(request);
+			});
+
+	asyncExecute(new Runnable([task]() { (*task)(); }));
+	return task->get_future();
+}
+
 ConfigClient::UpdateAggregatorOutcome ConfigClient::updateAggregator(const UpdateAggregatorRequest &request) const
 {
 	auto endpointOutcome = endpointProvider_->getEndpoint();

+ 99 - 0
config/src/model/CreateAggregateRemediationRequest.cc

@@ -0,0 +1,99 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/config/model/CreateAggregateRemediationRequest.h>
+
+using AlibabaCloud::Config::Model::CreateAggregateRemediationRequest;
+
+CreateAggregateRemediationRequest::CreateAggregateRemediationRequest()
+    : RpcServiceRequest("config", "2020-09-07", "CreateAggregateRemediation") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateAggregateRemediationRequest::~CreateAggregateRemediationRequest() {}
+
+std::string CreateAggregateRemediationRequest::getConfigRuleId() const {
+  return configRuleId_;
+}
+
+void CreateAggregateRemediationRequest::setConfigRuleId(const std::string &configRuleId) {
+  configRuleId_ = configRuleId;
+  setBodyParameter(std::string("ConfigRuleId"), configRuleId);
+}
+
+std::string CreateAggregateRemediationRequest::getRemediationType() const {
+  return remediationType_;
+}
+
+void CreateAggregateRemediationRequest::setRemediationType(const std::string &remediationType) {
+  remediationType_ = remediationType;
+  setBodyParameter(std::string("RemediationType"), remediationType);
+}
+
+std::string CreateAggregateRemediationRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void CreateAggregateRemediationRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setBodyParameter(std::string("ClientToken"), clientToken);
+}
+
+std::string CreateAggregateRemediationRequest::getAggregatorId() const {
+  return aggregatorId_;
+}
+
+void CreateAggregateRemediationRequest::setAggregatorId(const std::string &aggregatorId) {
+  aggregatorId_ = aggregatorId;
+  setBodyParameter(std::string("AggregatorId"), aggregatorId);
+}
+
+std::string CreateAggregateRemediationRequest::getSourceType() const {
+  return sourceType_;
+}
+
+void CreateAggregateRemediationRequest::setSourceType(const std::string &sourceType) {
+  sourceType_ = sourceType;
+  setBodyParameter(std::string("SourceType"), sourceType);
+}
+
+std::string CreateAggregateRemediationRequest::getRemediationTemplateId() const {
+  return remediationTemplateId_;
+}
+
+void CreateAggregateRemediationRequest::setRemediationTemplateId(const std::string &remediationTemplateId) {
+  remediationTemplateId_ = remediationTemplateId;
+  setBodyParameter(std::string("RemediationTemplateId"), remediationTemplateId);
+}
+
+std::string CreateAggregateRemediationRequest::getParams() const {
+  return params_;
+}
+
+void CreateAggregateRemediationRequest::setParams(const std::string &params) {
+  params_ = params;
+  setBodyParameter(std::string("Params"), params);
+}
+
+std::string CreateAggregateRemediationRequest::getInvokeType() const {
+  return invokeType_;
+}
+
+void CreateAggregateRemediationRequest::setInvokeType(const std::string &invokeType) {
+  invokeType_ = invokeType;
+  setBodyParameter(std::string("InvokeType"), invokeType);
+}
+

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

+ 90 - 0
config/src/model/CreateRemediationRequest.cc

@@ -0,0 +1,90 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/config/model/CreateRemediationRequest.h>
+
+using AlibabaCloud::Config::Model::CreateRemediationRequest;
+
+CreateRemediationRequest::CreateRemediationRequest()
+    : RpcServiceRequest("config", "2020-09-07", "CreateRemediation") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+CreateRemediationRequest::~CreateRemediationRequest() {}
+
+std::string CreateRemediationRequest::getConfigRuleId() const {
+  return configRuleId_;
+}
+
+void CreateRemediationRequest::setConfigRuleId(const std::string &configRuleId) {
+  configRuleId_ = configRuleId;
+  setBodyParameter(std::string("ConfigRuleId"), configRuleId);
+}
+
+std::string CreateRemediationRequest::getRemediationType() const {
+  return remediationType_;
+}
+
+void CreateRemediationRequest::setRemediationType(const std::string &remediationType) {
+  remediationType_ = remediationType;
+  setBodyParameter(std::string("RemediationType"), remediationType);
+}
+
+std::string CreateRemediationRequest::getClientToken() const {
+  return clientToken_;
+}
+
+void CreateRemediationRequest::setClientToken(const std::string &clientToken) {
+  clientToken_ = clientToken;
+  setBodyParameter(std::string("ClientToken"), clientToken);
+}
+
+std::string CreateRemediationRequest::getSourceType() const {
+  return sourceType_;
+}
+
+void CreateRemediationRequest::setSourceType(const std::string &sourceType) {
+  sourceType_ = sourceType;
+  setBodyParameter(std::string("SourceType"), sourceType);
+}
+
+std::string CreateRemediationRequest::getRemediationTemplateId() const {
+  return remediationTemplateId_;
+}
+
+void CreateRemediationRequest::setRemediationTemplateId(const std::string &remediationTemplateId) {
+  remediationTemplateId_ = remediationTemplateId;
+  setBodyParameter(std::string("RemediationTemplateId"), remediationTemplateId);
+}
+
+std::string CreateRemediationRequest::getParams() const {
+  return params_;
+}
+
+void CreateRemediationRequest::setParams(const std::string &params) {
+  params_ = params;
+  setBodyParameter(std::string("Params"), params);
+}
+
+std::string CreateRemediationRequest::getInvokeType() const {
+  return invokeType_;
+}
+
+void CreateRemediationRequest::setInvokeType(const std::string &invokeType) {
+  invokeType_ = invokeType;
+  setBodyParameter(std::string("InvokeType"), invokeType);
+}
+

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

+ 45 - 0
config/src/model/DeleteAggregateRemediationsRequest.cc

@@ -0,0 +1,45 @@
+/*
+ * 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/config/model/DeleteAggregateRemediationsRequest.h>
+
+using AlibabaCloud::Config::Model::DeleteAggregateRemediationsRequest;
+
+DeleteAggregateRemediationsRequest::DeleteAggregateRemediationsRequest()
+    : RpcServiceRequest("config", "2020-09-07", "DeleteAggregateRemediations") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteAggregateRemediationsRequest::~DeleteAggregateRemediationsRequest() {}
+
+std::string DeleteAggregateRemediationsRequest::getRemediationIds() const {
+  return remediationIds_;
+}
+
+void DeleteAggregateRemediationsRequest::setRemediationIds(const std::string &remediationIds) {
+  remediationIds_ = remediationIds;
+  setBodyParameter(std::string("RemediationIds"), remediationIds);
+}
+
+std::string DeleteAggregateRemediationsRequest::getAggregatorId() const {
+  return aggregatorId_;
+}
+
+void DeleteAggregateRemediationsRequest::setAggregatorId(const std::string &aggregatorId) {
+  aggregatorId_ = aggregatorId;
+  setBodyParameter(std::string("AggregatorId"), aggregatorId);
+}
+

+ 61 - 0
config/src/model/DeleteAggregateRemediationsResult.cc

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

+ 36 - 0
config/src/model/DeleteRemediationsRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * 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/config/model/DeleteRemediationsRequest.h>
+
+using AlibabaCloud::Config::Model::DeleteRemediationsRequest;
+
+DeleteRemediationsRequest::DeleteRemediationsRequest()
+    : RpcServiceRequest("config", "2020-09-07", "DeleteRemediations") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+DeleteRemediationsRequest::~DeleteRemediationsRequest() {}
+
+std::string DeleteRemediationsRequest::getRemediationIds() const {
+  return remediationIds_;
+}
+
+void DeleteRemediationsRequest::setRemediationIds(const std::string &remediationIds) {
+  remediationIds_ = remediationIds;
+  setBodyParameter(std::string("RemediationIds"), remediationIds);
+}
+

+ 61 - 0
config/src/model/DeleteRemediationsResult.cc

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

+ 72 - 0
config/src/model/GetAggregateDiscoveredResourceRequest.cc

@@ -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.
+ */
+
+#include <alibabacloud/config/model/GetAggregateDiscoveredResourceRequest.h>
+
+using AlibabaCloud::Config::Model::GetAggregateDiscoveredResourceRequest;
+
+GetAggregateDiscoveredResourceRequest::GetAggregateDiscoveredResourceRequest()
+    : RpcServiceRequest("config", "2020-09-07", "GetAggregateDiscoveredResource") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+GetAggregateDiscoveredResourceRequest::~GetAggregateDiscoveredResourceRequest() {}
+
+std::string GetAggregateDiscoveredResourceRequest::getResourceId() const {
+  return resourceId_;
+}
+
+void GetAggregateDiscoveredResourceRequest::setResourceId(const std::string &resourceId) {
+  resourceId_ = resourceId;
+  setParameter(std::string("ResourceId"), resourceId);
+}
+
+long GetAggregateDiscoveredResourceRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void GetAggregateDiscoveredResourceRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string GetAggregateDiscoveredResourceRequest::getAggregatorId() const {
+  return aggregatorId_;
+}
+
+void GetAggregateDiscoveredResourceRequest::setAggregatorId(const std::string &aggregatorId) {
+  aggregatorId_ = aggregatorId;
+  setParameter(std::string("AggregatorId"), aggregatorId);
+}
+
+std::string GetAggregateDiscoveredResourceRequest::getResourceType() const {
+  return resourceType_;
+}
+
+void GetAggregateDiscoveredResourceRequest::setResourceType(const std::string &resourceType) {
+  resourceType_ = resourceType;
+  setParameter(std::string("ResourceType"), resourceType);
+}
+
+std::string GetAggregateDiscoveredResourceRequest::getRegion() const {
+  return region_;
+}
+
+void GetAggregateDiscoveredResourceRequest::setRegion(const std::string &region) {
+  region_ = region;
+  setParameter(std::string("Region"), region);
+}
+

+ 72 - 0
config/src/model/GetAggregateDiscoveredResourceResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/config/model/GetAggregateDiscoveredResourceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Config;
+using namespace AlibabaCloud::Config::Model;
+
+GetAggregateDiscoveredResourceResult::GetAggregateDiscoveredResourceResult() :
+	ServiceResult()
+{}
+
+GetAggregateDiscoveredResourceResult::GetAggregateDiscoveredResourceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetAggregateDiscoveredResourceResult::~GetAggregateDiscoveredResourceResult()
+{}
+
+void GetAggregateDiscoveredResourceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto discoveredResourceDetailNode = value["DiscoveredResourceDetail"];
+	if(!discoveredResourceDetailNode["AvailabilityZone"].isNull())
+		discoveredResourceDetail_.availabilityZone = discoveredResourceDetailNode["AvailabilityZone"].asString();
+	if(!discoveredResourceDetailNode["ResourceType"].isNull())
+		discoveredResourceDetail_.resourceType = discoveredResourceDetailNode["ResourceType"].asString();
+	if(!discoveredResourceDetailNode["Configuration"].isNull())
+		discoveredResourceDetail_.configuration = discoveredResourceDetailNode["Configuration"].asString();
+	if(!discoveredResourceDetailNode["Region"].isNull())
+		discoveredResourceDetail_.region = discoveredResourceDetailNode["Region"].asString();
+	if(!discoveredResourceDetailNode["ResourceCreationTime"].isNull())
+		discoveredResourceDetail_.resourceCreationTime = std::stol(discoveredResourceDetailNode["ResourceCreationTime"].asString());
+	if(!discoveredResourceDetailNode["Tags"].isNull())
+		discoveredResourceDetail_.tags = discoveredResourceDetailNode["Tags"].asString();
+	if(!discoveredResourceDetailNode["AccountId"].isNull())
+		discoveredResourceDetail_.accountId = std::stol(discoveredResourceDetailNode["AccountId"].asString());
+	if(!discoveredResourceDetailNode["ResourceId"].isNull())
+		discoveredResourceDetail_.resourceId = discoveredResourceDetailNode["ResourceId"].asString();
+	if(!discoveredResourceDetailNode["ResourceDeleted"].isNull())
+		discoveredResourceDetail_.resourceDeleted = std::stoi(discoveredResourceDetailNode["ResourceDeleted"].asString());
+	if(!discoveredResourceDetailNode["ResourceName"].isNull())
+		discoveredResourceDetail_.resourceName = discoveredResourceDetailNode["ResourceName"].asString();
+	if(!discoveredResourceDetailNode["ResourceStatus"].isNull())
+		discoveredResourceDetail_.resourceStatus = discoveredResourceDetailNode["ResourceStatus"].asString();
+
+}
+
+GetAggregateDiscoveredResourceResult::DiscoveredResourceDetail GetAggregateDiscoveredResourceResult::getDiscoveredResourceDetail()const
+{
+	return discoveredResourceDetail_;
+}
+

+ 9 - 0
config/src/model/GetAggregateResourceComplianceByConfigRuleRequest.cc

@@ -34,6 +34,15 @@ void GetAggregateResourceComplianceByConfigRuleRequest::setConfigRuleId(const st
   setParameter(std::string("ConfigRuleId"), configRuleId);
 }
 
+long GetAggregateResourceComplianceByConfigRuleRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void GetAggregateResourceComplianceByConfigRuleRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
 std::string GetAggregateResourceComplianceByConfigRuleRequest::getAggregatorId() const {
   return aggregatorId_;
 }

+ 54 - 0
config/src/model/GetDiscoveredResourceRequest.cc

@@ -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.
+ */
+
+#include <alibabacloud/config/model/GetDiscoveredResourceRequest.h>
+
+using AlibabaCloud::Config::Model::GetDiscoveredResourceRequest;
+
+GetDiscoveredResourceRequest::GetDiscoveredResourceRequest()
+    : RpcServiceRequest("config", "2020-09-07", "GetDiscoveredResource") {
+  setMethod(HttpRequest::Method::Get);
+}
+
+GetDiscoveredResourceRequest::~GetDiscoveredResourceRequest() {}
+
+std::string GetDiscoveredResourceRequest::getResourceId() const {
+  return resourceId_;
+}
+
+void GetDiscoveredResourceRequest::setResourceId(const std::string &resourceId) {
+  resourceId_ = resourceId;
+  setParameter(std::string("ResourceId"), resourceId);
+}
+
+std::string GetDiscoveredResourceRequest::getResourceType() const {
+  return resourceType_;
+}
+
+void GetDiscoveredResourceRequest::setResourceType(const std::string &resourceType) {
+  resourceType_ = resourceType;
+  setParameter(std::string("ResourceType"), resourceType);
+}
+
+std::string GetDiscoveredResourceRequest::getRegion() const {
+  return region_;
+}
+
+void GetDiscoveredResourceRequest::setRegion(const std::string &region) {
+  region_ = region;
+  setParameter(std::string("Region"), region);
+}
+

+ 72 - 0
config/src/model/GetDiscoveredResourceResult.cc

@@ -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.
+ */
+
+#include <alibabacloud/config/model/GetDiscoveredResourceResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Config;
+using namespace AlibabaCloud::Config::Model;
+
+GetDiscoveredResourceResult::GetDiscoveredResourceResult() :
+	ServiceResult()
+{}
+
+GetDiscoveredResourceResult::GetDiscoveredResourceResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+GetDiscoveredResourceResult::~GetDiscoveredResourceResult()
+{}
+
+void GetDiscoveredResourceResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto discoveredResourceDetailNode = value["DiscoveredResourceDetail"];
+	if(!discoveredResourceDetailNode["AvailabilityZone"].isNull())
+		discoveredResourceDetail_.availabilityZone = discoveredResourceDetailNode["AvailabilityZone"].asString();
+	if(!discoveredResourceDetailNode["ResourceType"].isNull())
+		discoveredResourceDetail_.resourceType = discoveredResourceDetailNode["ResourceType"].asString();
+	if(!discoveredResourceDetailNode["Configuration"].isNull())
+		discoveredResourceDetail_.configuration = discoveredResourceDetailNode["Configuration"].asString();
+	if(!discoveredResourceDetailNode["Region"].isNull())
+		discoveredResourceDetail_.region = discoveredResourceDetailNode["Region"].asString();
+	if(!discoveredResourceDetailNode["ResourceCreationTime"].isNull())
+		discoveredResourceDetail_.resourceCreationTime = std::stol(discoveredResourceDetailNode["ResourceCreationTime"].asString());
+	if(!discoveredResourceDetailNode["Tags"].isNull())
+		discoveredResourceDetail_.tags = discoveredResourceDetailNode["Tags"].asString();
+	if(!discoveredResourceDetailNode["AccountId"].isNull())
+		discoveredResourceDetail_.accountId = std::stol(discoveredResourceDetailNode["AccountId"].asString());
+	if(!discoveredResourceDetailNode["ResourceId"].isNull())
+		discoveredResourceDetail_.resourceId = discoveredResourceDetailNode["ResourceId"].asString();
+	if(!discoveredResourceDetailNode["ResourceDeleted"].isNull())
+		discoveredResourceDetail_.resourceDeleted = std::stoi(discoveredResourceDetailNode["ResourceDeleted"].asString());
+	if(!discoveredResourceDetailNode["ResourceName"].isNull())
+		discoveredResourceDetail_.resourceName = discoveredResourceDetailNode["ResourceName"].asString();
+	if(!discoveredResourceDetailNode["ResourceStatus"].isNull())
+		discoveredResourceDetail_.resourceStatus = discoveredResourceDetailNode["ResourceStatus"].asString();
+
+}
+
+GetDiscoveredResourceResult::DiscoveredResourceDetail GetDiscoveredResourceResult::getDiscoveredResourceDetail()const
+{
+	return discoveredResourceDetail_;
+}
+

+ 108 - 0
config/src/model/ListAggregateDiscoveredResourcesRequest.cc

@@ -0,0 +1,108 @@
+/*
+ * 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/config/model/ListAggregateDiscoveredResourcesRequest.h>
+
+using AlibabaCloud::Config::Model::ListAggregateDiscoveredResourcesRequest;
+
+ListAggregateDiscoveredResourcesRequest::ListAggregateDiscoveredResourcesRequest()
+    : RpcServiceRequest("config", "2020-09-07", "ListAggregateDiscoveredResources") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListAggregateDiscoveredResourcesRequest::~ListAggregateDiscoveredResourcesRequest() {}
+
+int ListAggregateDiscoveredResourcesRequest::getResourceDeleted() const {
+  return resourceDeleted_;
+}
+
+void ListAggregateDiscoveredResourcesRequest::setResourceDeleted(int resourceDeleted) {
+  resourceDeleted_ = resourceDeleted;
+  setParameter(std::string("ResourceDeleted"), std::to_string(resourceDeleted));
+}
+
+long ListAggregateDiscoveredResourcesRequest::getResourceOwnerId() const {
+  return resourceOwnerId_;
+}
+
+void ListAggregateDiscoveredResourcesRequest::setResourceOwnerId(long resourceOwnerId) {
+  resourceOwnerId_ = resourceOwnerId;
+  setParameter(std::string("ResourceOwnerId"), std::to_string(resourceOwnerId));
+}
+
+std::string ListAggregateDiscoveredResourcesRequest::getRegions() const {
+  return regions_;
+}
+
+void ListAggregateDiscoveredResourcesRequest::setRegions(const std::string &regions) {
+  regions_ = regions;
+  setParameter(std::string("Regions"), regions);
+}
+
+std::string ListAggregateDiscoveredResourcesRequest::getAggregatorId() const {
+  return aggregatorId_;
+}
+
+void ListAggregateDiscoveredResourcesRequest::setAggregatorId(const std::string &aggregatorId) {
+  aggregatorId_ = aggregatorId;
+  setParameter(std::string("AggregatorId"), aggregatorId);
+}
+
+std::string ListAggregateDiscoveredResourcesRequest::getFolderId() const {
+  return folderId_;
+}
+
+void ListAggregateDiscoveredResourcesRequest::setFolderId(const std::string &folderId) {
+  folderId_ = folderId;
+  setParameter(std::string("FolderId"), folderId);
+}
+
+std::string ListAggregateDiscoveredResourcesRequest::getNextToken() const {
+  return nextToken_;
+}
+
+void ListAggregateDiscoveredResourcesRequest::setNextToken(const std::string &nextToken) {
+  nextToken_ = nextToken;
+  setParameter(std::string("NextToken"), nextToken);
+}
+
+std::string ListAggregateDiscoveredResourcesRequest::getResourceId() const {
+  return resourceId_;
+}
+
+void ListAggregateDiscoveredResourcesRequest::setResourceId(const std::string &resourceId) {
+  resourceId_ = resourceId;
+  setParameter(std::string("ResourceId"), resourceId);
+}
+
+std::string ListAggregateDiscoveredResourcesRequest::getResourceTypes() const {
+  return resourceTypes_;
+}
+
+void ListAggregateDiscoveredResourcesRequest::setResourceTypes(const std::string &resourceTypes) {
+  resourceTypes_ = resourceTypes;
+  setParameter(std::string("ResourceTypes"), resourceTypes);
+}
+
+int ListAggregateDiscoveredResourcesRequest::getMaxResults() const {
+  return maxResults_;
+}
+
+void ListAggregateDiscoveredResourcesRequest::setMaxResults(int maxResults) {
+  maxResults_ = maxResults;
+  setParameter(std::string("MaxResults"), std::to_string(maxResults));
+}
+

+ 82 - 0
config/src/model/ListAggregateDiscoveredResourcesResult.cc

@@ -0,0 +1,82 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/config/model/ListAggregateDiscoveredResourcesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Config;
+using namespace AlibabaCloud::Config::Model;
+
+ListAggregateDiscoveredResourcesResult::ListAggregateDiscoveredResourcesResult() :
+	ServiceResult()
+{}
+
+ListAggregateDiscoveredResourcesResult::ListAggregateDiscoveredResourcesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListAggregateDiscoveredResourcesResult::~ListAggregateDiscoveredResourcesResult()
+{}
+
+void ListAggregateDiscoveredResourcesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto discoveredResourceProfilesNode = value["DiscoveredResourceProfiles"];
+	if(!discoveredResourceProfilesNode["NextToken"].isNull())
+		discoveredResourceProfiles_.nextToken = discoveredResourceProfilesNode["NextToken"].asString();
+	if(!discoveredResourceProfilesNode["MaxResults"].isNull())
+		discoveredResourceProfiles_.maxResults = std::stoi(discoveredResourceProfilesNode["MaxResults"].asString());
+	if(!discoveredResourceProfilesNode["PreviousToken"].isNull())
+		discoveredResourceProfiles_.previousToken = discoveredResourceProfilesNode["PreviousToken"].asString();
+	auto allDiscoveredResourceProfileListNode = discoveredResourceProfilesNode["DiscoveredResourceProfileList"]["DiscoveredResourceProfile"];
+	for (auto discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile : allDiscoveredResourceProfileListNode)
+	{
+		DiscoveredResourceProfiles::DiscoveredResourceProfile discoveredResourceProfileObject;
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceType"].isNull())
+			discoveredResourceProfileObject.resourceType = discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceType"].asString();
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["Region"].isNull())
+			discoveredResourceProfileObject.region = discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["Region"].asString();
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceCreationTime"].isNull())
+			discoveredResourceProfileObject.resourceCreationTime = std::stol(discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceCreationTime"].asString());
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["Tags"].isNull())
+			discoveredResourceProfileObject.tags = discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["Tags"].asString();
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["AccountId"].isNull())
+			discoveredResourceProfileObject.accountId = std::stol(discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["AccountId"].asString());
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceId"].isNull())
+			discoveredResourceProfileObject.resourceId = discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceId"].asString();
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceName"].isNull())
+			discoveredResourceProfileObject.resourceName = discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceName"].asString();
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceDeleted"].isNull())
+			discoveredResourceProfileObject.resourceDeleted = std::stoi(discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceDeleted"].asString());
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceStatus"].isNull())
+			discoveredResourceProfileObject.resourceStatus = discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceStatus"].asString();
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceOwnerId"].isNull())
+			discoveredResourceProfileObject.resourceOwnerId = std::stol(discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceOwnerId"].asString());
+		discoveredResourceProfiles_.discoveredResourceProfileList.push_back(discoveredResourceProfileObject);
+	}
+
+}
+
+ListAggregateDiscoveredResourcesResult::DiscoveredResourceProfiles ListAggregateDiscoveredResourcesResult::getDiscoveredResourceProfiles()const
+{
+	return discoveredResourceProfiles_;
+}
+

+ 45 - 0
config/src/model/ListAggregateRemediationsRequest.cc

@@ -0,0 +1,45 @@
+/*
+ * 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/config/model/ListAggregateRemediationsRequest.h>
+
+using AlibabaCloud::Config::Model::ListAggregateRemediationsRequest;
+
+ListAggregateRemediationsRequest::ListAggregateRemediationsRequest()
+    : RpcServiceRequest("config", "2020-09-07", "ListAggregateRemediations") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListAggregateRemediationsRequest::~ListAggregateRemediationsRequest() {}
+
+std::string ListAggregateRemediationsRequest::getConfigRuleIds() const {
+  return configRuleIds_;
+}
+
+void ListAggregateRemediationsRequest::setConfigRuleIds(const std::string &configRuleIds) {
+  configRuleIds_ = configRuleIds;
+  setParameter(std::string("ConfigRuleIds"), configRuleIds);
+}
+
+std::string ListAggregateRemediationsRequest::getAggregatorId() const {
+  return aggregatorId_;
+}
+
+void ListAggregateRemediationsRequest::setAggregatorId(const std::string &aggregatorId) {
+  aggregatorId_ = aggregatorId;
+  setParameter(std::string("AggregatorId"), aggregatorId);
+}
+

+ 79 - 0
config/src/model/ListAggregateRemediationsResult.cc

@@ -0,0 +1,79 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/config/model/ListAggregateRemediationsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Config;
+using namespace AlibabaCloud::Config::Model;
+
+ListAggregateRemediationsResult::ListAggregateRemediationsResult() :
+	ServiceResult()
+{}
+
+ListAggregateRemediationsResult::ListAggregateRemediationsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListAggregateRemediationsResult::~ListAggregateRemediationsResult()
+{}
+
+void ListAggregateRemediationsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allRemediationsNode = value["Remediations"]["Remediation"];
+	for (auto valueRemediationsRemediation : allRemediationsNode)
+	{
+		Remediation remediationsObject;
+		if(!valueRemediationsRemediation["RemediationTemplateId"].isNull())
+			remediationsObject.remediationTemplateId = valueRemediationsRemediation["RemediationTemplateId"].asString();
+		if(!valueRemediationsRemediation["RemediationDynamicParams"].isNull())
+			remediationsObject.remediationDynamicParams = valueRemediationsRemediation["RemediationDynamicParams"].asString();
+		if(!valueRemediationsRemediation["RemediationSourceType"].isNull())
+			remediationsObject.remediationSourceType = valueRemediationsRemediation["RemediationSourceType"].asString();
+		if(!valueRemediationsRemediation["RemediationType"].isNull())
+			remediationsObject.remediationType = valueRemediationsRemediation["RemediationType"].asString();
+		if(!valueRemediationsRemediation["LastSuccessfulInvocationId"].isNull())
+			remediationsObject.lastSuccessfulInvocationId = valueRemediationsRemediation["LastSuccessfulInvocationId"].asString();
+		if(!valueRemediationsRemediation["AccountId"].isNull())
+			remediationsObject.accountId = std::stol(valueRemediationsRemediation["AccountId"].asString());
+		if(!valueRemediationsRemediation["AggregatorId"].isNull())
+			remediationsObject.aggregatorId = valueRemediationsRemediation["AggregatorId"].asString();
+		if(!valueRemediationsRemediation["LastSuccessfulInvocationType"].isNull())
+			remediationsObject.lastSuccessfulInvocationType = valueRemediationsRemediation["LastSuccessfulInvocationType"].asString();
+		if(!valueRemediationsRemediation["RemediationId"].isNull())
+			remediationsObject.remediationId = valueRemediationsRemediation["RemediationId"].asString();
+		if(!valueRemediationsRemediation["InvokeType"].isNull())
+			remediationsObject.invokeType = valueRemediationsRemediation["InvokeType"].asString();
+		if(!valueRemediationsRemediation["ConfigRuleId"].isNull())
+			remediationsObject.configRuleId = valueRemediationsRemediation["ConfigRuleId"].asString();
+		if(!valueRemediationsRemediation["LastSuccessfulInvocationTime"].isNull())
+			remediationsObject.lastSuccessfulInvocationTime = std::stol(valueRemediationsRemediation["LastSuccessfulInvocationTime"].asString());
+		remediations_.push_back(remediationsObject);
+	}
+
+}
+
+std::vector<ListAggregateRemediationsResult::Remediation> ListAggregateRemediationsResult::getRemediations()const
+{
+	return remediations_;
+}
+

+ 81 - 0
config/src/model/ListDiscoveredResourcesRequest.cc

@@ -0,0 +1,81 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/config/model/ListDiscoveredResourcesRequest.h>
+
+using AlibabaCloud::Config::Model::ListDiscoveredResourcesRequest;
+
+ListDiscoveredResourcesRequest::ListDiscoveredResourcesRequest()
+    : RpcServiceRequest("config", "2020-09-07", "ListDiscoveredResources") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListDiscoveredResourcesRequest::~ListDiscoveredResourcesRequest() {}
+
+int ListDiscoveredResourcesRequest::getResourceDeleted() const {
+  return resourceDeleted_;
+}
+
+void ListDiscoveredResourcesRequest::setResourceDeleted(int resourceDeleted) {
+  resourceDeleted_ = resourceDeleted;
+  setParameter(std::string("ResourceDeleted"), std::to_string(resourceDeleted));
+}
+
+std::string ListDiscoveredResourcesRequest::getResourceId() const {
+  return resourceId_;
+}
+
+void ListDiscoveredResourcesRequest::setResourceId(const std::string &resourceId) {
+  resourceId_ = resourceId;
+  setParameter(std::string("ResourceId"), resourceId);
+}
+
+std::string ListDiscoveredResourcesRequest::getRegions() const {
+  return regions_;
+}
+
+void ListDiscoveredResourcesRequest::setRegions(const std::string &regions) {
+  regions_ = regions;
+  setParameter(std::string("Regions"), regions);
+}
+
+std::string ListDiscoveredResourcesRequest::getResourceTypes() const {
+  return resourceTypes_;
+}
+
+void ListDiscoveredResourcesRequest::setResourceTypes(const std::string &resourceTypes) {
+  resourceTypes_ = resourceTypes;
+  setParameter(std::string("ResourceTypes"), resourceTypes);
+}
+
+std::string ListDiscoveredResourcesRequest::getNextToken() const {
+  return nextToken_;
+}
+
+void ListDiscoveredResourcesRequest::setNextToken(const std::string &nextToken) {
+  nextToken_ = nextToken;
+  setParameter(std::string("NextToken"), nextToken);
+}
+
+int ListDiscoveredResourcesRequest::getMaxResults() const {
+  return maxResults_;
+}
+
+void ListDiscoveredResourcesRequest::setMaxResults(int maxResults) {
+  maxResults_ = maxResults;
+  setParameter(std::string("MaxResults"), std::to_string(maxResults));
+}
+

+ 80 - 0
config/src/model/ListDiscoveredResourcesResult.cc

@@ -0,0 +1,80 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/config/model/ListDiscoveredResourcesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Config;
+using namespace AlibabaCloud::Config::Model;
+
+ListDiscoveredResourcesResult::ListDiscoveredResourcesResult() :
+	ServiceResult()
+{}
+
+ListDiscoveredResourcesResult::ListDiscoveredResourcesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListDiscoveredResourcesResult::~ListDiscoveredResourcesResult()
+{}
+
+void ListDiscoveredResourcesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto discoveredResourceProfilesNode = value["DiscoveredResourceProfiles"];
+	if(!discoveredResourceProfilesNode["NextToken"].isNull())
+		discoveredResourceProfiles_.nextToken = discoveredResourceProfilesNode["NextToken"].asString();
+	if(!discoveredResourceProfilesNode["MaxResults"].isNull())
+		discoveredResourceProfiles_.maxResults = std::stoi(discoveredResourceProfilesNode["MaxResults"].asString());
+	if(!discoveredResourceProfilesNode["PreviousToken"].isNull())
+		discoveredResourceProfiles_.previousToken = discoveredResourceProfilesNode["PreviousToken"].asString();
+	auto allDiscoveredResourceProfileListNode = discoveredResourceProfilesNode["DiscoveredResourceProfileList"]["DiscoveredResourceProfile"];
+	for (auto discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile : allDiscoveredResourceProfileListNode)
+	{
+		DiscoveredResourceProfiles::DiscoveredResourceProfile discoveredResourceProfileObject;
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceType"].isNull())
+			discoveredResourceProfileObject.resourceType = discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceType"].asString();
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["Region"].isNull())
+			discoveredResourceProfileObject.region = discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["Region"].asString();
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceCreationTime"].isNull())
+			discoveredResourceProfileObject.resourceCreationTime = std::stol(discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceCreationTime"].asString());
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["Tags"].isNull())
+			discoveredResourceProfileObject.tags = discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["Tags"].asString();
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["AccountId"].isNull())
+			discoveredResourceProfileObject.accountId = std::stol(discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["AccountId"].asString());
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceId"].isNull())
+			discoveredResourceProfileObject.resourceId = discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceId"].asString();
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceName"].isNull())
+			discoveredResourceProfileObject.resourceName = discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceName"].asString();
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceDeleted"].isNull())
+			discoveredResourceProfileObject.resourceDeleted = std::stoi(discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceDeleted"].asString());
+		if(!discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceStatus"].isNull())
+			discoveredResourceProfileObject.resourceStatus = discoveredResourceProfilesNodeDiscoveredResourceProfileListDiscoveredResourceProfile["ResourceStatus"].asString();
+		discoveredResourceProfiles_.discoveredResourceProfileList.push_back(discoveredResourceProfileObject);
+	}
+
+}
+
+ListDiscoveredResourcesResult::DiscoveredResourceProfiles ListDiscoveredResourcesResult::getDiscoveredResourceProfiles()const
+{
+	return discoveredResourceProfiles_;
+}
+

+ 45 - 0
config/src/model/ListRemediationTemplatesRequest.cc

@@ -0,0 +1,45 @@
+/*
+ * 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/config/model/ListRemediationTemplatesRequest.h>
+
+using AlibabaCloud::Config::Model::ListRemediationTemplatesRequest;
+
+ListRemediationTemplatesRequest::ListRemediationTemplatesRequest()
+    : RpcServiceRequest("config", "2020-09-07", "ListRemediationTemplates") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListRemediationTemplatesRequest::~ListRemediationTemplatesRequest() {}
+
+std::string ListRemediationTemplatesRequest::getManagedRuleIdentifier() const {
+  return managedRuleIdentifier_;
+}
+
+void ListRemediationTemplatesRequest::setManagedRuleIdentifier(const std::string &managedRuleIdentifier) {
+  managedRuleIdentifier_ = managedRuleIdentifier;
+  setParameter(std::string("ManagedRuleIdentifier"), managedRuleIdentifier);
+}
+
+std::string ListRemediationTemplatesRequest::getRemediationType() const {
+  return remediationType_;
+}
+
+void ListRemediationTemplatesRequest::setRemediationType(const std::string &remediationType) {
+  remediationType_ = remediationType;
+  setParameter(std::string("RemediationType"), remediationType);
+}
+

+ 65 - 0
config/src/model/ListRemediationTemplatesResult.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/config/model/ListRemediationTemplatesResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Config;
+using namespace AlibabaCloud::Config::Model;
+
+ListRemediationTemplatesResult::ListRemediationTemplatesResult() :
+	ServiceResult()
+{}
+
+ListRemediationTemplatesResult::ListRemediationTemplatesResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListRemediationTemplatesResult::~ListRemediationTemplatesResult()
+{}
+
+void ListRemediationTemplatesResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allRemediationTemplatesNode = value["RemediationTemplates"]["RemediationTemplate"];
+	for (auto valueRemediationTemplatesRemediationTemplate : allRemediationTemplatesNode)
+	{
+		RemediationTemplate remediationTemplatesObject;
+		if(!valueRemediationTemplatesRemediationTemplate["CompulsoryParameters"].isNull())
+			remediationTemplatesObject.compulsoryParameters = valueRemediationTemplatesRemediationTemplate["CompulsoryParameters"].asString();
+		if(!valueRemediationTemplatesRemediationTemplate["RemediationType"].isNull())
+			remediationTemplatesObject.remediationType = valueRemediationTemplatesRemediationTemplate["RemediationType"].asString();
+		if(!valueRemediationTemplatesRemediationTemplate["TemplateIdentifier"].isNull())
+			remediationTemplatesObject.templateIdentifier = valueRemediationTemplatesRemediationTemplate["TemplateIdentifier"].asString();
+		if(!valueRemediationTemplatesRemediationTemplate["TemplateName"].isNull())
+			remediationTemplatesObject.templateName = valueRemediationTemplatesRemediationTemplate["TemplateName"].asString();
+		if(!valueRemediationTemplatesRemediationTemplate["TemplateDefinition"].isNull())
+			remediationTemplatesObject.templateDefinition = valueRemediationTemplatesRemediationTemplate["TemplateDefinition"].asString();
+		remediationTemplates_.push_back(remediationTemplatesObject);
+	}
+
+}
+
+std::vector<ListRemediationTemplatesResult::RemediationTemplate> ListRemediationTemplatesResult::getRemediationTemplates()const
+{
+	return remediationTemplates_;
+}
+

+ 36 - 0
config/src/model/ListRemediationsRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * 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/config/model/ListRemediationsRequest.h>
+
+using AlibabaCloud::Config::Model::ListRemediationsRequest;
+
+ListRemediationsRequest::ListRemediationsRequest()
+    : RpcServiceRequest("config", "2020-09-07", "ListRemediations") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+ListRemediationsRequest::~ListRemediationsRequest() {}
+
+std::string ListRemediationsRequest::getConfigRuleIds() const {
+  return configRuleIds_;
+}
+
+void ListRemediationsRequest::setConfigRuleIds(const std::string &configRuleIds) {
+  configRuleIds_ = configRuleIds;
+  setParameter(std::string("ConfigRuleIds"), configRuleIds);
+}
+

+ 79 - 0
config/src/model/ListRemediationsResult.cc

@@ -0,0 +1,79 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ * 
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ * 
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ * 
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/config/model/ListRemediationsResult.h>
+#include <json/json.h>
+
+using namespace AlibabaCloud::Config;
+using namespace AlibabaCloud::Config::Model;
+
+ListRemediationsResult::ListRemediationsResult() :
+	ServiceResult()
+{}
+
+ListRemediationsResult::ListRemediationsResult(const std::string &payload) :
+	ServiceResult()
+{
+	parse(payload);
+}
+
+ListRemediationsResult::~ListRemediationsResult()
+{}
+
+void ListRemediationsResult::parse(const std::string &payload)
+{
+	Json::Reader reader;
+	Json::Value value;
+	reader.parse(payload, value);
+	setRequestId(value["RequestId"].asString());
+	auto allRemediationsNode = value["Remediations"]["Remediation"];
+	for (auto valueRemediationsRemediation : allRemediationsNode)
+	{
+		Remediation remediationsObject;
+		if(!valueRemediationsRemediation["LastSuccessfulInvocationType"].isNull())
+			remediationsObject.lastSuccessfulInvocationType = valueRemediationsRemediation["LastSuccessfulInvocationType"].asString();
+		if(!valueRemediationsRemediation["RemediationTemplateId"].isNull())
+			remediationsObject.remediationTemplateId = valueRemediationsRemediation["RemediationTemplateId"].asString();
+		if(!valueRemediationsRemediation["RemediationDynamicParams"].isNull())
+			remediationsObject.remediationDynamicParams = valueRemediationsRemediation["RemediationDynamicParams"].asString();
+		if(!valueRemediationsRemediation["RemediationId"].isNull())
+			remediationsObject.remediationId = valueRemediationsRemediation["RemediationId"].asString();
+		if(!valueRemediationsRemediation["RemediationSourceType"].isNull())
+			remediationsObject.remediationSourceType = valueRemediationsRemediation["RemediationSourceType"].asString();
+		if(!valueRemediationsRemediation["RemediationType"].isNull())
+			remediationsObject.remediationType = valueRemediationsRemediation["RemediationType"].asString();
+		if(!valueRemediationsRemediation["LastSuccessfulInvocationId"].isNull())
+			remediationsObject.lastSuccessfulInvocationId = valueRemediationsRemediation["LastSuccessfulInvocationId"].asString();
+		if(!valueRemediationsRemediation["AccountId"].isNull())
+			remediationsObject.accountId = std::stol(valueRemediationsRemediation["AccountId"].asString());
+		if(!valueRemediationsRemediation["InvokeType"].isNull())
+			remediationsObject.invokeType = valueRemediationsRemediation["InvokeType"].asString();
+		if(!valueRemediationsRemediation["ConfigRuleId"].isNull())
+			remediationsObject.configRuleId = valueRemediationsRemediation["ConfigRuleId"].asString();
+		if(!valueRemediationsRemediation["LastSuccessfulInvocationTime"].isNull())
+			remediationsObject.lastSuccessfulInvocationTime = std::stol(valueRemediationsRemediation["LastSuccessfulInvocationTime"].asString());
+		if(!valueRemediationsRemediation["RemediationOriginParams"].isNull())
+			remediationsObject.remediationOriginParams = valueRemediationsRemediation["RemediationOriginParams"].asString();
+		remediations_.push_back(remediationsObject);
+	}
+
+}
+
+std::vector<ListRemediationsResult::Remediation> ListRemediationsResult::getRemediations()const
+{
+	return remediations_;
+}
+

+ 45 - 0
config/src/model/StartAggregateRemediationRequest.cc

@@ -0,0 +1,45 @@
+/*
+ * 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/config/model/StartAggregateRemediationRequest.h>
+
+using AlibabaCloud::Config::Model::StartAggregateRemediationRequest;
+
+StartAggregateRemediationRequest::StartAggregateRemediationRequest()
+    : RpcServiceRequest("config", "2020-09-07", "StartAggregateRemediation") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+StartAggregateRemediationRequest::~StartAggregateRemediationRequest() {}
+
+std::string StartAggregateRemediationRequest::getConfigRuleId() const {
+  return configRuleId_;
+}
+
+void StartAggregateRemediationRequest::setConfigRuleId(const std::string &configRuleId) {
+  configRuleId_ = configRuleId;
+  setParameter(std::string("ConfigRuleId"), configRuleId);
+}
+
+std::string StartAggregateRemediationRequest::getAggregatorId() const {
+  return aggregatorId_;
+}
+
+void StartAggregateRemediationRequest::setAggregatorId(const std::string &aggregatorId) {
+  aggregatorId_ = aggregatorId;
+  setParameter(std::string("AggregatorId"), aggregatorId);
+}
+

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

+ 36 - 0
config/src/model/StartRemediationRequest.cc

@@ -0,0 +1,36 @@
+/*
+ * 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/config/model/StartRemediationRequest.h>
+
+using AlibabaCloud::Config::Model::StartRemediationRequest;
+
+StartRemediationRequest::StartRemediationRequest()
+    : RpcServiceRequest("config", "2020-09-07", "StartRemediation") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+StartRemediationRequest::~StartRemediationRequest() {}
+
+std::string StartRemediationRequest::getConfigRuleId() const {
+  return configRuleId_;
+}
+
+void StartRemediationRequest::setConfigRuleId(const std::string &configRuleId) {
+  configRuleId_ = configRuleId;
+  setParameter(std::string("ConfigRuleId"), configRuleId);
+}
+

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

+ 90 - 0
config/src/model/UpdateAggregateRemediationRequest.cc

@@ -0,0 +1,90 @@
+/*
+ * Copyright 2009-2017 Alibaba Cloud All rights reserved.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#include <alibabacloud/config/model/UpdateAggregateRemediationRequest.h>
+
+using AlibabaCloud::Config::Model::UpdateAggregateRemediationRequest;
+
+UpdateAggregateRemediationRequest::UpdateAggregateRemediationRequest()
+    : RpcServiceRequest("config", "2020-09-07", "UpdateAggregateRemediation") {
+  setMethod(HttpRequest::Method::Post);
+}
+
+UpdateAggregateRemediationRequest::~UpdateAggregateRemediationRequest() {}
+
+std::string UpdateAggregateRemediationRequest::getRemediationType() const {
+  return remediationType_;
+}
+
+void UpdateAggregateRemediationRequest::setRemediationType(const std::string &remediationType) {
+  remediationType_ = remediationType;
+  setBodyParameter(std::string("RemediationType"), remediationType);
+}
+
+std::string UpdateAggregateRemediationRequest::getRemediationId() const {
+  return remediationId_;
+}
+
+void UpdateAggregateRemediationRequest::setRemediationId(const std::string &remediationId) {
+  remediationId_ = remediationId;
+  setBodyParameter(std::string("RemediationId"), remediationId);
+}
+
+std::string UpdateAggregateRemediationRequest::getAggregatorId() const {
+  return aggregatorId_;
+}
+
+void UpdateAggregateRemediationRequest::setAggregatorId(const std::string &aggregatorId) {
+  aggregatorId_ = aggregatorId;
+  setBodyParameter(std::string("AggregatorId"), aggregatorId);
+}
+
+std::string UpdateAggregateRemediationRequest::getSourceType() const {
+  return sourceType_;
+}
+
+void UpdateAggregateRemediationRequest::setSourceType(const std::string &sourceType) {
+  sourceType_ = sourceType;
+  setBodyParameter(std::string("SourceType"), sourceType);
+}
+
+std::string UpdateAggregateRemediationRequest::getRemediationTemplateId() const {
+  return remediationTemplateId_;
+}
+
+void UpdateAggregateRemediationRequest::setRemediationTemplateId(const std::string &remediationTemplateId) {
+  remediationTemplateId_ = remediationTemplateId;
+  setBodyParameter(std::string("RemediationTemplateId"), remediationTemplateId);
+}
+
+std::string UpdateAggregateRemediationRequest::getParams() const {
+  return params_;
+}
+
+void UpdateAggregateRemediationRequest::setParams(const std::string &params) {
+  params_ = params;
+  setBodyParameter(std::string("Params"), params);
+}
+
+std::string UpdateAggregateRemediationRequest::getInvokeType() const {
+  return invokeType_;
+}
+
+void UpdateAggregateRemediationRequest::setInvokeType(const std::string &invokeType) {
+  invokeType_ = invokeType;
+  setBodyParameter(std::string("InvokeType"), invokeType);
+}
+

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